【 質問箱 No.61の 回答 】 ⇒⇒⇒⇒ 質問箱 No.61(97年 09月号)の趣旨 質問者: 藤 原 良 允 <宛名ラベルの無駄を排除したい> 【プログラム】     回答者:  高 橋 周 助 <ラベル印刷> /******* A.準備 ******************************************/ DISP OPEN,[18,3],"◆ ◆ ◆ 宛名ラベル 印刷中 ◆ ◆ ◆"; LET X26=0; /*印刷済みレコード件数*/ LET X27=10; /*左余白桁数 */; LET V27=STRING$(32,X27); LET X28=40; /*左右のラベル間隔桁数*/ LET V10="左"; /*読込むデータの左右別*/ FOR X1=1 TO BINDER("顧客台帳"); G/S;顧客台帳/%X1; FOR X2={H} TO {T}; IF V10="左" THEN GOTO $左 ELSE GOTO$右; /*** B-1.(分岐先1) 左側ラベル用データ読み込み**********************/ $左: CLEAR V11,14; LET V11={X2,@郵便番号 }; LET V12={X2,@住所(1) }; IF V12="" THEN CONTINUE; LET V13={X2,@住所(2) }; LET V14={X2,@顧客名 }; IF V14="" THEN CONTINUE; LET V14=V14+{X2,@敬称 }; LET V10="右"; CONTINUE; /*** B-2(分岐先2)右側ラベル用データ読み込み*********************/ $右: CLEAR V21,24; LET V21={X2,@郵便番号 }; LET V22={X2,@住所(1) }; IF V22="" THEN CONTINUE; LET V23={X2,@住所(2) }; LET V24={X2,@顧客名 }; IF V24="" THEN CONTINUE; LET V24=V24+{X2,@敬称 }; " /*** C.左右ラベル編集、印刷 *********************************/ LET X26=X26+2; DISP CLR,[18,3],"印刷済みラベル枚数: ",X26," 枚";; DISP [5,13],V14,[45,13],V24; O;AAA;ESC; LET X11=X28-LEN(V11); LET [L2]=V27+V11+STRING$(32,X11)+V21; LET X12=X28-LEN(V12); LET [L3]=V27+V12+STRING$(32,X12)+V22; LET X13=X28-LEN(V13); LET [L4]=V27+V13+STRING$(32,X13)+V23; LET X14=X28-LEN(V14); LET [L5]=V27+V14+STRING$(32,X14)+V24; L;S;7;N;/*頁タイトルなし*/10;N;/**頁せず*/12;N;/*行番号なし*/;Y;         L;E;1;1,10;;Y;/* 印刷対象行 1,10 */ L;G;M; L;S;7;Y;/*頁タイトルあり*/10;Y;/*改頁する*/12:N;/*行番号なし*/;Y;         L;E;1;;;Y; /* 印刷対象行 全行 */ LET V10="左"; NEXT; NEXT; /******* D.左ラベル 残った場合の 最終印刷 ************************/ IF V10="左" THEN GOTO $終; LET X26=X26+1; DISP CLR,[18,31],"印刷済みラベル枚数 :  ",X26," 枚";; DISP [5,13],V14; O;AAA;ESC; LET [L2]=V27+V11; LET [L4]=V27+V12; LET [L5]=V27+V13; LET [L7]=V27+V14; L;S;7;N;/*頁タイトルなし*/10;N;/*改頁せず*/12;N;/*行番号なし*/;Y; L;E;1;1,10;,Y;/*印刷対象行1,10 */ L;G;M; L;S;7;Y;/*頁タイトルあり*/10;Y;/*改頁する*/12;N;/*行番号なし*/;Y; L;E;1;;;Y; /* 印刷対象行全行 */ /******* Z.終わり ********************************************/ $終: SELECT [20,20],"確認",X5,"終了します"; CLOSE; STOP;