回答箱No.117: 毎月の最終残高だけを取り出したい

  ◆ 質問箱No.117 質問者: 入川 精二  2000年11月 226号 P.18
      ◆ 質問箱 目次へ
No.117-1   毎月の最終残高だけを取り出したい 回答者
  内海 孝
2000年12月
227号 P.11


<TEST>
DR/P;売掛台帳;WORK1/D;4,5;;Y;SET;S;;3;-1;;;SIZE;WORK1;60;WORK2/D;
    /*1 */
DRUP/P;WORK2;WORK2;Y;LET X4=BINDER("WORK2");IF X4=1 THEN GOTO $1P;
    /*2 */
SIZE;WORK2;60;月末残高表/D;DRUP;DC;3,5;;CT;月末残高表;P;*;GOTO $EX;
    /*3 */
$1P:CPP;WORK2;月末残高表/D;;DC;3,5;;CT;月末残高表;P;*;
    /*4 */
$EX:STOP

<DRUP>
   /* 1列目の下のセルと同じデータの上のセル行を削除 予備行 -1が必要 */
LET X2=T;
FOR X1=H TO T;
      IF X1=X2 THEN BREAK;LET V1=[ X1,1] ;LET V2=[ X1+1,1] ;
      IF V1=V2 THEN GOTO $SP ELSE CONTINUE;
$SP: LET [ X1,1] ="";
NEXT;IR;S;H;;DR;@;;P;*;
/*IR=スペース行削除(DR;@;;)のためダミースペース行1 を挿入*/
STOP;

『プログラムの説明』

  1. 売掛台帳各ページの4,5 行を削除してWORK1 へ登録。
    <DRUP>のダミー行挿入のために、予備行-1を設定。WORK1のサイズを60桁に変更してWORK2へ登録。
  2. WORK2は2ページ以上あるものとして、<DRUP>をページ間処理。WORK2が1ページなら$1Pへ。
  3. 再度、SIZE指令でWORK2を月末残高表バインダーの1ページにまとめ、<DRUP>を実行し 、 3,5 列を削除、ページタイトル訂正して終了。
  4. WORK2が1ページのときは、月末残高表へ登録して3,5列を削除、ページタイトル訂正して終了。


このページのTOPへ戻る