回答箱 No.82: DOS/Vあるいは95 PIPSで4連用紙でラベル印刷したい

  ◆ 質問箱 No.82 質問者: 元山 よし子  1998年08月 199号 P.16
      ◆ 質問箱 目次へ
No.82-1   DOS/Vあるいは95 PIPSで4連用紙でラベル印刷したい 回答者
  高橋 周助
1998年10月
201号 P.12
   ◆ No.82(1998年8月号)の回答-1
  1. B-Aブロック.データ読み込み:バインダの項目名を適切に指定してください。
  2. B-Bブロック.印刷用データの編集:項目にあわせて、ご希望どうりの編集をしてください。
    サンプルプログラムでは、最低のエッセンスだけにしてありますが、いくらでも複雑な編集ができます。凝り性の元山さんのことですから、深みにはまらないか心配です。
  3. サブプログラムでは、LFの行数を適正にきめて、縦方向の行位置を調整してください。
    なお、ESC/Pモードで、縦倍角・4倍角を印刷すると、行ピッチにズレが生じます。適正な補正をしてください。詳細が必要なら、ご相談ください。

 1 <4連ラベル>      1998.8.19
 2 /******* A.準備 *****************************************************/
 3     LET V40=";顧客名簿";; /*バインダ名*/
 4     LET X10= 0; /*ラベル番号初期化。 左側から 1 → 2 → 3 → 4 */
 5     LET X26= 0; /*印刷済みレコード件数*/
 6     LET X27=10; /*左余白桁数          */
 7     LET X28=40; /*ラベル横間隔        */
 8 /******* B.実行 *****************************************************/
 9     DISP OPEN,[18,3],";◆ ◆ ◆  宛名ラベル  印刷中  ◆ ◆ ◆";;
10     FOR X1=1 TO BINDER(V40);
11       G;%V40/%X1;
12       IF T<H THEN CONTINUE;
13       FOR X2=H TO T;
14         /*** B-A.データ読み込み *************************************/
15         CLEAR V11,19;
16         LET V11=[X2,@郵便番号  ];
17         LET V12=[X2,@住所1    ];  IF V12=";"; THEN CONTINUE;
18         LET V13=[X2,@住所2    ];
19         LET V14=[X2,@氏名      ];  IF V14=";"; THEN CONTINUE;
20         LET V15=[X2,@敬称      ];
21         LET X10=X10+1;  IF X10=5 THEN LET X10=1;
22         /*** B-B.印刷用データ編集 *************************************/
23         IF X10=1 THEN CLEAR V21,29;
24         LET X11=X28-LEN(V11);  LET V21=V21+V11+STRING$(32,X11);
25         LET X12=X28-LEN(V12);  LET V22=V22+V12+STRING$(32,X12);
26         LET X13=X28-LEN(V13);  LET V23=V23+V13+STRING$(32,X13);
27         LET X14=X28-LEN(V14)-1-LEN(V15);
28                                LET V24=V24+V14+"; ";+V15+STRING$(32,X14);
29         /*** B-C.ラベル印刷 *****************************************/
30         IF X10=4 THEN GOSUB 4連ラベルSUB;
31       NEXT;
32     NEXT;
33     /******* B-D.未印刷データが 残った場合の 最終印刷 ***************/
34     IF X10<>0 AND <>4 THEN GOSUB 4連ラベルSUB;
35 /******* Z.終わり ***************************************************/
36 $終:CLOSE;  STOP;
37
38 <4連ラベルSUB>
39     PRINT LF2;
40     PRINT SP%X27,V21,LF;
41     PRINT SP%X27,V22,LF;
42     PRINT SP%X27,V23,LF;
43     PRINT SP%X27,V24,LF4;
44     LET X26=X26+X10;
45     DISP CLR,[18,3],";印刷済みラベル枚数: ";,X26,"; 枚";;
46     RETURN;


このページのTOPへ戻る