<貸与予定表作成>
/******* 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;
<sub処理>
/********* 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;