【 質問箱 No.73 回答 】その1. ⇒⇒⇒⇒ 質問箱 No.73(98年3月号)の趣旨 質問者:西 村 重 幸 <職員の履歴管理表に行を追加したい の再質問> 回答者:高 橋 周 助 1 (第1案 できるだけPIPS的に) 2 LET X1=9; LET X2=12; LET X3=8; /* 適用日 */ 3 LET X4=X1; LET X5= 4; LET X6=1; /* 対象期間初日 */ 4 /********* B.『級号』欄にデータがある行のみを検索する。***************/ 5 CS;DATA;@級号 ="=*?";;;WK/D; IF RESULT(1)=0 THEN GOTO $終わり; 6 /********* C. 対象期間の行のみを検索する。**************************/ 7 CS;WK;@年 =%X4 & @月 >=%X5;;;WK2/D; 8 IF RESULT(1)=0 THEN GOTO $初日行; 9 G;WK2/1; 10 IF VAL([H,@月 ])=X5 & VAL([H,@日 ])=X6 THEN GOTO $新月額; 11 /********* D. 初日データの行がなければ、作る。************************/ 12 $初日行:CS;WK;(@年 =%X4 & @月 <%X5) OR (@年 <%X4);;;WK3/D; 13 IF RESULT(1)=0 THEN GOTO $新月額; 14 G;WK3/E; 15 IF H=T THEN GOTO $単行; DR;H,T-1;Y; 16 $単行: LET [T,@年 ]=NUM$(X4); 17 LET [T,@月 ]=NUM$(X5); 18 LET [T,@日 ]=NUM$(X6); 19 P;WK2/N; LET X5=BINDER("WK2"); ARP;WK2;M;%X5;1; 20 /********* E. 新月額を書き込む。************************************/ 21 $新月額:MPU;WK2;PAY9;@級号 ;;@級号 ;;S@月額 =@月額 ;E;Y; 22 /********* F. 事項・年・月・日 欄を書き替え。**************************/ 23 FOR X11=1 TO BINDER("WK2"); 24 G;WK2/%X11; 25 FOR X12=H TO T; 26 LET V21=[X12,@年 ]+"年"+[X12,@月 ]+"月"+[X12,@日 ]+"日"; 27 LET [X12,@事項 ]="給与条例改定(平成"+V21+"から適用)"; 28 LET [X12,@年 ]=NUM$(X1); 29 LET [X12,@月 ]=NUM$(X2); 30 LET [X12,@日 ]=NUM$(X3); 31 NEXT; 32 P;WK2/%X11; 33 NEXT; 34 /********* G. 元バインダへ アペンド ***********************************/ 35 APD;WK2;DATA;Y; 36 /********* Z. 終わり ***********************************************/ 37 $終わり:STOP;