<貸与予定表作成> /******* A. 設定 ********************************************************/ /**** A-a.説明(変数の使い方)***********************************/ /*X01:FOR〜NEXT の頁コントロール変数。*/ /*X02:FOR〜NEXT の行コントロール変数。*/ /*上記以外で、添え字01〜09の変数は、その場限りの使い捨て。*/ /*添え字10〜 の変数は、プログラムを通して同一の意味を持つ。 */ /**** A-b.規定 **************************************************/ LET X10=2002;/*改定基準年*/ LET X11=2006;/*表示の当該年。前1年、後6年を表示する。*/ /********* B.演算用の表(ワーク)作成 ***********************************/ SET;S;M;1;100;;Y;/* 横桁数100 */ O;WK;10;西暦年;10;行NO;10;貸与有無;;ESC; IR;S;H;50; NUM;M;C;@西暦年 ;H;1990;1; NUM;M;C;@行NO ;H;%(H);1; CS;M;C1=C1;;;WK/D;/*バインダ「WK」に登録*/ /********* C.社員毎の処理 ***********************************************/ FOR X01=1 TO BINDER("貸与品基本台帳"); G;貸与品基本台帳/%X01; FOR X02=H TO T; /**** C-a.作業服A *******************************************/ G;貸与品基本台帳/%X01; LET V22=[X02,@作業服A ]; LET X22=IVAL(V22);/*貸与開始年*/ G;貸与期間/1; LET V23=[@作業服A ,@現在 ]; LET X23=IVAL(V23); LET V24=[@作業服A ,@改定後 ]; LET X24=IVAL(V24); GOSUB sub処理; G;貸与品基本台帳/%X01; LET V31=[X02,@社員名 ]; CA;WK;;@西暦年 ;@貸与有無 ;;%V31/D;/*社員名でバインダ作成。*/ /**** C-b.作業服B *******************************************/ G;貸与品基本台帳/%X01; LET V22=[X02,@作業服B ]; LET X22=IVAL(V22);/*貸与開始年*/ G;貸与期間/1; LET V23=[@作業服B ,@現在 ]; LET X23=IVAL(V23); LET V24=[@作業服B ,@改定後 ]; LET X24=IVAL(V24); GOSUB sub処理; CAM;%V31;WK;@西暦年 ;;@西暦年 ;A;S@貸与有無 ;;%V31; /**** C-c.作業服C *******************************************/ G;貸与品基本台帳/%X01; LET V22=[X02,@作業服C ]; LET X22=IVAL(V22);/*貸与開始年*/ G;貸与期間/1; LET V23=[@作業服C ,@現在 ]; LET X23=IVAL(V23); LET V24=[@作業服C ,@改定後 ]; LET X24=IVAL(V24); GOSUB sub処理; CAM;%V31;WK;@西暦年 ;;@西暦年 ;A;S@貸与有無 ;;%V31; /********* D.表の縦横変換 ***********************************************/ CS;%V31;%X11-1<=@西暦年 AND @西暦年 <=%X11+6;;;; W;H-2;2;作業服A;作業服B;作業服C;ESC; IR;S;H;1; G/S/F;貸与品基本台帳/%X01; LET [H,@作業服A ]={X02,@作業服A }; LET [H,@作業服B ]={X02,@作業服B }; LET [H,@作業服C ]={X02,@作業服C }; SRC; W;H-2;;貸与品;貸与始期;ESC; P;%V31/1;ESC; NEXT; NEXT; /********* Z.終わり *****************************************************/ $終わり:STOP; /********* A.改定前の貸与期間の適用 要/不要を判断 ***********************/ IF X22<=X10 THEN GOTO $改正前; /********* B.改定前の貸与期間の適用 不要の場合 **************************/ CS;WK/1;@西暦年 =%X22;;;; LET V25=[H,@行NO ]; LET X25=IVAL(V25)/*NUM開始の行NO*/ G;WK/1; FILL;;A;@貸与有無 ;Y; P;WK/1;ESC; GOTO $NUM; /********* C.改定前 *****************************************************/ $改正前:CS;WK/1;@西暦年 =%X22;;;; LET V05=[H,@行NO ]; LET X05=IVAL(V05)/*西暦年 行NO*/ G;WK/1; FILL;;A;@貸与有無 ;Y; LET X06=1+X23-1; NUM;M;C;@貸与有無 ;%X05;1;1/%X06/C;/*開始:1,増分:1,最大値:X06*/ P;WK/1;ESC; /********* D.改定後 *****************************************************/ $改正後:CS;WK;@西暦年 >=%X10 & @貸与有無 =1;;;; LET V25=[H,@行NO ]; LET X25=IVAL(V25); G;WK/1; FILL;;%(X25+1),T;@貸与有無 ;Y; P;WK/1;ESC; LET X25=X25+X24;/*NUMの開始行NO*/ $NUM: G;WK/1; LET X26=11+X24-1;/*NUMの最大値*/ NUM;M;C;@貸与有無 ;%X25;11;1/%X26/C;/*始:11,増分:1,最大値:X26*/ P;WK/1;ESC; /********* E.○●記号で書き換え *****************************************/ MPU;WK;;@貸与有無 = 1;"○"=@貸与有無 ; @貸与有無 =11;"●"=@貸与有無 ; @貸与有無 <>"○" & @貸与有無 <>"●";""=@貸与有無 ;;E;Y; /********* Z.出口 *******************************************************/ $出口: RETURN;