回答箱 No.130-2: 貸与期間の変更に伴う、貸与計画表を作成したい

       ◆ 質問箱 No.130 質問者:  西村 重幸  2002年02月 241号 P.21
           ◆ 質問箱 目次へ
No.130-2   貸与期間の変更に伴う、貸与計画表を作成したい 回答者
  入川 精二
2002年03月
242号 P.22
 難しそうな質問で敬遠しようと思っていましたが、ワンステップ補助表を介してやれば何とかなりそうなので、トライしました。
 まず、「基本台帳」に列を追加します。1から20くらいまであれば十分でしょう。
 「基本台帳」バインダーの1頁に登録しておきます


 右のような「貸与予定表」を用意して同名のバインダーの1頁に登録します。書き込む列は8列作っておきます。
 項目の'2001'以降はそのときの必要に応じて書き換えるので、空欄でもかまいません。

 次頁にあるプログラム'TAIYO'を起動すると、「年度」を聞いてきます。
 入力すると項目行に書き込まれます。
 プログラム'TAIYO1'で基本台帳に貸与時期の数字を書き込みます。現行の貸与期間が適用されたときには頭に'+'がつきます。'+'がついても計算には支障はありません。


 プログラム'TAIYO2'で「基本台帳」の「年」を参照して、「貸与予定表」のしかるべき列に'○'または'●'を書き込みます。
 このシステムは20〜30年間使えるはずです。西村さんと、このシステムと、PIPSのいずれが長持ちするか?

 プログラムはほとんどBASICの世界です。もう少しエレガントな方法があると思いますが、取りあえずの作業には使えるでしょう。
 1 <TAIYO>
 2 $年度:   ACCEPT "表示の年度は?  [YYYY]",X30;
 3             IF ERR(0)=55 THEN GOTO $END;
 4             IF X30<2000 THEN GOTO $年度;
 5          G;貸与予定表/1;
 6          FILL;;A;6,T;;
 7          NUM;M;R;2;6;%(X30-1);1;
 8          P;貸与予定表/1;
 9          TAIYO1;
10          TAIYO2;
11 $END:    STOP;
12
13 <TAIYO1>
14          G;基本台帳/1;
15          FOR Z01=1 TO 20;
16             FOR X02=H TO T;
17                LET Z02=M(X02,@始期 )+M(X02,@現在 )*Z01;
18                   IF Z02<=2001+M(X02,@現在 ) THEN GOTO $現在;
19 $改正後:       LET M(X02,@%Z01 )=M(X02,@%(Z01-1) )+M(X02,@改正後 );
20                CONTINUE;
21 $現在:         LET [X02,@%Z01 ]="+"+NUM$(Z02);
22             NEXT;
23          NEXT;
24          P;基本台帳/1;
25 STOP;
26
27 <TAIYO2>
28          G;貸与予定表/1;G/S;基本台帳/1;
29          LET Z11=M(2,6);
30          FOR X01={H} TO {T};
31              FOR X02=1 TO 10;
32                 LET V01={X01,@%X02 };
33                   IF V01="=+*" THEN GOTO $現在;
34                 LET [X01,@%V01 ]="●";
35                 CONTINUE;
36 $現在:          LET V02=RIGHT$(V01,2);
37                    IF VAL(V02)<Z11 THEN CONTINUE;
38                 LET [X01,@%V02 ]="○";
39              NEXT;
40          NEXT;
41          P;貸与予定表/1;
42 STOP;
  
回答箱のプログラムがプログラム集に収録されています。


このページのTOPへ戻る