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