回答箱 No114: 被服等貸与予定表を作りたい

    ◆ 質問箱 No.114  質問者: 西村 重幸  2000年09月 224号 P.8
        ◆ 質問箱 目次へ
No.114-1 被服等貸与予定表を作りたい 回答者
   内海 孝
2000年10月
225号 P.10
   ◆ No.114(2000年 09月号)の回答-1
    貸与予定表の条件
  • 1) 当年度前4年、後10年、計15年間の貸与表。
  • 2) 貸与年に期間毎に"*"を記入。
  • 3) 当年度貸与する品名の貸与列に○印、サイズ列にサイズ記入。
    ◆プログラムのポイント
  • 1) 最初の貸与始期年が不明ですが、最初の貸与始期年を昭和年号で入力します。
  • 2) 被服等貸与管理表の1ページから呼び出し、FOR〜NEXT STEPを使い、コードnoを3行毎に読み込み、コード毎にデータを検索、SRC指令で*マーク記入表を作成、*マーク記入後、不要分を削除、罫線を引いて、ヘッダーと結合させ、被服貸与表を完成します。被服貸与表は、被服貸与表バインダーに逐次登録されます。

◆完成表


◆ 上図から用済みの列を削除、線引きしたところ。

◆個人別貸与予定表のヘッダー部分をヘッダーバインダーに用意しておきます。
上図と合体して被服等貸与表となります。

      1<TAIYO>     
      2    ACCPT "最初の貸与始期年は昭和何年ですか?",Z8;WIN;N;; 
      3    IF ERR(0)=55 THEN GOTO $EX;G;被服貸与表/1;BIND;D;被服貸与表;Y;P;被服貸与表; 
      4    LET Z1=TODAY;LET V2=LEFT$(NUM$(Z1),4);LET Z2=VAL(V2); 
      5    LET Z2=Z2-1988;            /*Z2:平成当年*/ 
      6    LET Z3=64-Z8;              /*Z3:会社の被服等貸与した昭和年数=列数*/ 
      7    LET Z4=Z2+10;              /*Z4:平成当年の10年後*/ 
      8    LET Z5=5+Z3+Z4;            /*Z5:*マーク記入後の全桁数*/ 
      9    LET Z6=Z5-15;              /*Z6:削除対象列の最後尾列*/ 
     10    LET Z7=5+Z3+1;             /*Z7:1(平成1年)の列番号*/ 
     11    FOR X1=1 TO BINDER("被服等貸与管理表");  
     12      G;被服等貸与管理表/%X1;   
     13      FOR X2=H TO T STEP 3;   
     14        G;被服等貸与管理表/%X1;LET V1=[X2,2];CS;被服等貸与管理表/%X1;@no =%V1;;;;        
     15        LET V8=[H,4];DRL;D;DC;1,2;;SRC;INFO;;230;IC;;2;6;;IR;S;3;;NF;S;3;5/2;
     16        LET [2,1]"品名";LET [2,2]="期間";LET [3,2]="(年毎)";
     17        LET [2,3]="貸与";LET [2,4]"始";LET [2,5]="サイズ";
     18        CF;1;6;ATR;P;C;1/3;WC;2;;3;3;3;4;2;3;ESC;FILL;;A;3;;
     19        IC;D;N;3*%Z3;ESC;NUM;;R;2;6;%Z8;;
     20        IC;D;N;3*%Z4;ESC;NUM;;R;2;%Z7;1;;INFO;@;R;2;
     21        FOR X3=H TO T;
     22            LET V5=[X3,2];LET X5=VAL(V5);LET V6=[X3,4];IF V6=""THEN CONTINUE;
     23            LET V7="@"+V6;LET V7='"'+V7+'"';LET X7=CN(%V7)
     24            FOR X4=X7 TO %Z5 STEP X5;
     25              LET [X3,X4:]="*";
     26            NEXT;
     27         NEXT;
     28         MPU;;;@%Z2 ="*";"○"=@貸与;E;;MPU;;;@%Z2 ="";""=@サイズ ;E;;
     29         DC;6,%Z6;;DC;4;;DRL/C;C;1,5;C;N;R;A;ESC;IF X1=1 AND X2=4 THEN GOTO $単;
     30$複数:   P;被服貸与表/N;GOTO$ヘッダ;
     31$単:     P;被服貸与表/1;
     32$ヘッダ:   LETX4=BINDER("被服貸与表");
     33         G;ヘッダー/1;S;G;被服貸与表/%X4;CPR;S1,E;1;DR;4;;
     34         CT;[平成%Z2年度被服等貸与表  %V8];P;*;
     35      NEXT;
     36     NEXT; WIN;R;
     37$EX: STOP

                                        ◆プログラムの概要

      2       : 最初の貸与始期年の昭和年号を入力します。WIN最小化。
      3       : 前面作成した被服貸与表を1頁残して削除。
      4〜11:    TODAYから平成当年度年号、昭和年代の貸与年数=列数、当年10年後の平成年、全*
                マーク記入表全桁数、削除対象列の最後尾列、平成1年の列番号等をZ変数へ格納。
     12〜20:    FOR〜NEXT STEPを使って被服等管理表個人データを検索、氏名をV8に格納、不要列
                1,2を削除、SRC指令で縦横変換、横サイズ230桁に修正、期間列、貸与列挿入、(年毎)
                の行挿入、品名、期間、(年毎)、貸与、始、サイズ等項目名の書き込み。
                品名列桁変更、文字位置中央。期間列に3.3.3.4.2.3の書き込み。貸与列クリア。
                3桁*%Z3列追加、昭和Z8年から63年までナンバリング。
                3桁*%Z4列追加、平成1年から22年までナンバリング。参照行を2に修正。
      21〜26:   FOR〜NEXT STEPを使って個人貸与始期年から期間ごとに*マークを記入。
      28〜29:   MPU指令で当年度に*マークのある品名行の貸与列に○印記入。
                         当年度に*マークのない品名行のサイズ列のサイズを消去。
                当年度4年前以前の年列削除。始列削除、罫線後。
      30      : X1=1 AND X2=4以外なら被服当貸与表/Nに登録。
      31      : X1=1 AND X2=4なら    被服当貸与表/1に登録。
      32      : 被服等貸与表の現頁をX4に格納
      33      : 被服等貸与表の現頁とヘッダーを結合。
      34      : 氏名入り当年度被服体表のタイトルをつけ登録。
      36      : WIN解除。
                                                                                      以上
回答箱のプログラムがプログラム集に収録されています。


このページのTOPへ戻る