プログラム
1 /*=========================================================*/
2 /*= データを遡りする方法であるが、 =*/
3 /*= この方法では挿入行数が、頁の最大行を超える時は使用できない=*/
4 /*= Program name :[TEST] =*/
5 /*= DATA頁 :DATA/1 =*/
6 /*= INDEX頁 :INDEX/月額表(PAY9) =*/
7 /*=========================================================*/
8
9 <TEST>
10 $初期設定: DISP OPEN,[24,3],"給与改定額の自動記入",COLOR(G),"(サンプルAUTO)";
11 LET X1=9; LET X2=12; LET X3=8; /*議決年月日*/
12 LET X4=X1;LET X5=4; LET X6=1; /*適用年月日*/
13 DISP COLOR(W),[27,14],"初期数値は入力してあります。"COLOR(Y);
14 $初期入力画面:
15 DISP [20,6],"議決年月日 平成 年 月 日",COLOR(W);
16 INPUT [39,6]X1,U(NN/RY);
17 INPUT [45,6]X2,U(NN/RY);
18 INPUT [51,6]X3,U(NN/RY);
19 DISP [20,8],"適用年月日 平成 年 月 日",COLOR(W);
20 INPUT [39,8]X4,U(NN/RY);
21 INPUT [45,8]X5,U(NN/RY);
22 INPUT [51,8]X6,U(NN/RY);
23 $START: G;DATA/1;LET X10=T;CLEAR V40;
24 CLOSE;
25 FOR X11=X10 TO H STEP -1;CLEAR V1,5; /*該当月の検索*/
26 LET V1=[X11,@級号 ];IF LEN(V1)=0 THEN CONTINUE;
27 LET V2=[X11,@年 ];
28 LET V3=[X11,@月 ];
29 COL;Y;%X11;A; /*TESTのための色づけ*/
30 $年内遡り: IF IVAL(V2)=X4 AND IVAL(V3)<X5 THEN LET V3=NUM$(X5);
31 /*遡りの最終行*/
32 $前年遡り: IF IVAL(V2)=X1 THEN LET V3=NUM$(X5);
33 LET X23=IVAL(V3);
34 $該当行: RINDEX "PAY9",V1,V5=@月額;
35 IF ERR(0)=34 THEN GOTO $ERR;
36 IF X23<10 THEN LET V3=" "+V3; /*桁数合わせ*/
37 LET V4="給与条例改正(平成"+NUM$(X4)+"年"+V3+"月";
38 LET V4=V4+NUM$(X6)+"日から適用)";
39 IF V40="S" THEN GOTO $挿入行; /*書込が複数のとき*/
40 $書込行: MT;%X1;%X2;%X3;%X4;%V1;%V5;ESC;
41 LET X40=T;GOTO $CHECK; /*X40=挿入行番号*/
42 $挿入行: IR;S;%X40;1;
43 W;%X40;;%X1;%X2;%X3;%X4;%V1;%V5;ESC;GOTO $CHECK;
44 $CHECK: IF X23=X5 THEN brEAK; /*書込終わり*/
45 LET V40="S"; /*挿入行指示*/
46 NEXT;
47 $ERR: STOP;