资源描述
条形码(BarCode)打印介绍(AS400)
整理:左正林
1.条形码介绍
条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。
2.条形码(BarCode)的种类
• 一维条码
UPC-A/E、CODE 128、CODE39、Codabar(库德巴码/NW 7)、ITF-14、interleaved 2of5…
• 二维条码
PDF417, MicroPDF 417, Data Matrix, MaxiCode…
详细介绍请参考:常用条码类型-条码内容应用范围详细介绍Notes Link
3.AS400客户端Barcode字体的安装
Barcode使用的字体在Windows操作系统中默认是没有安装的。
如果不安装Barcode专用字体,在AS400仿真终端中将不能正常显示、打印Barcode。
详细安装方法请参考:APW用バーコード外字フォントの導入(WindowsXP版)Notes Link
4.MEKTRON集团RPG中Barcode的打印
(1)在MEKTRON现有RPG中使用的Barcode打印分成两类
• CODE39(代表: MP4560R)
资料内容支持0~9、A~Z、 !@#$%^&等资料长度可为1~N个,长度无限制,资料前后必须加入"*"作为起始及结束码,让读码器判别使用,所以"*"不可作为资料内容。
• Codabar/库德巴码/NW 7(代表:MJ3055R)
NW7在使用上需于资料内容的两端加上A,B,C,D起始&结束码,资料长度部份并无限制,唯资料内容仅支持0~9、"+", "-", "*" ,"/" ,"$" ,"." ,":"等7个特殊符号。
(2)CODE39同NW7的区别
• CODE39(代表: MP4560R)
a.可以打印字母、数字及符号
b.打印的宽度较宽
• Codabar/库德巴码/NW 7(代表:MJ3055R)
a.只能打印数字及符号,不能打印字母
b.打印的宽度较窄
• 建议今后只使用CODE39的方式。
• 如果使用CODE39的方式进行打印,打印纸的宽度不够时,可以考虑使用NW7的方式。
5.CODE39的处理方法
(1)MP4560R中写法解析
0015.00 E BT1 44 44 1
0016.00 E BT2 11 44 4
0017.00 E BCD 15 1
0018.00 E BAR 40 1
0054.00 I*** FOR BAR-CODE **
0055.00 I DS
0056.00 I 1 4 BWK
0057.00 I 1 1 BWSR
0058.00 I 2 2 BWC1
0059.00 I 3 3 BWC2
0060.00 I 4 4 BWED
0160.00 C*****************************************************************
0161.00 C @BCOD1 BEGSR
0162.00 C*****************************************************************
0163.00 C MOVEAW#BOCD BCD
0164.00 C MOVELBT2,40 BWK
0165.00 C MOVELBWSR BAR,1 'OE'
0166.00 C MOVELBWC1 BAR,2 STR/バーコード
0167.00 C MOVELBWC2 BAR,3 STR/バーコード
0168.00 C Z-ADD4 M 20
0169.00 C*
0170.00 C 1 DO 15 N 20
0171.00 C Z-ADD1 L 20
0172.00 C BCD,N LOKUPBT1,L 80
0173.00 C 80 MOVELBT2,L BWK
0174.00 C 80 MOVELBWC1 BAR,M
0175.00 C 80 ADD 1 M
0176.00 C 80 MOVELBWC2 BAR,M
0177.00 C 80 ADD 1 M
0178.00 C ENDDO
0179.00 C*
0180.00 C MOVELBT2,40 BWK
0181.00 C MOVELBWC1 BAR,34 END/バーコード
0182.00 C MOVELBWC2 BAR,35 END/バーコード
0183.00 C MOVE BWED BAR,36 'OF'
0184.00 C*
0185.00 C MOVEABAR R1001 40
0186.00 C*
0187.00 C ENDSR
0256.00 O E 1 PRTH01
0257.00 O R1001 68
0258.00 O E 1 PRTH01
0259.00 O R1001 68
0260.00 O E 1 PRTH01
0261.00 O R1001 68
0262.00 O E 1 PRTH01
0263.00 O 10 ' '
0264.00 O E 1 PRTH01
0265.00 O W#BOCD 44
0270.00 ** BT1
0271.00 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%
0272.00 ** BT2
0273.00
0274.00
0275.00
0276.00
通用简略写法
0011.00 E BT1 44 44 1
0012.00 E BT2 11 44 4
0013.00 E BCD 60 1
0030.00 C MOVELW#BOCD W#STRS 60 P
0031.00 C EXSR @BCOD
0032.00 C MOVELW#BAR R1001 40
0037.00 C*****************************************************************
0038.00 C @BCOD BEGSR
0039.00 C*****************************************************************
0040.00 C MOVEAW#STRS BCD
0041.00 C ' ' CHEKRW#STRS LEN 20
0042.00 C MOVEL*BLANK W#BAR 120
0043.00 C*
0044.00 C 3 SUBSTBT2,40:1 W#FLG 3 STRART BARCODE
0045.00 C MOVELW#FLG W#BAR STRART BARCODE
0046.00 C*
0047.00 C 1 DO LEN N 20
0048.00 C Z-ADD1 L 20
0049.00 C BCD,N LOKUPBT1,L 80
0050.00 C 80 2 SUBSTBT2,L:2 W#BCD 2
0051.00 C 80 CAT W#BCD:0 W#BAR
0052.00 C ENDDO
0053.00 C*
0054.00 C 3 SUBSTBT2,40:2 W#FLG END BARCODE
0055.00 C CAT W#FLG:0 W#BAR
0056.00 C*
0057.00 C ENDSR
0256.00 O E 1 PRTH01
0257.00 O R1001 68
0258.00 O E 1 PRTH01
0259.00 O R1001 68
0260.00 O E 1 PRTH01
0261.00 O R1001 68
0262.00 O E 1 PRTH01
0263.00 O 10 ' '
0264.00 O E 1 PRTH01
0265.00 O W#BOCD 44
** BT1
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%
** BT2
(2)APW的写法
字符间隔请务必使用“6.7”,条码枪才可以准确快速读取
LPI(18 20 8)
ADDAPW LINE(18 20) IGCCPI((2 80 6.7))
(3)CL的写法
0020.00 CALL PGM(MP4560R) PARM(&P#IHNO)
0021.00 MRGAPW FORMD(MP4560RP) FILE(QFILSRC) SPLF(QPRINT) +
0022.00 JOB(*) SPLNBR(*LAST) OUTQ(*FILE)
0023.00 DLTSPLF FILE(QPRINT) JOB(*) SPLNBR(*LAST)
0024.00 MONMSG MSGID(CPF0000)
6.NW 7的处理方法
(1)MJ3055R中写法解析
0024.00 E BT1 12 12 1
0025.00 E BT2 14 14 4
0028.00 E BCD 11 1
0029.00 E BCE 6 1
0030.00 E BAR 32 1
0031.00 E BAS 22 1
0090.00 I*** FOR BAR-CODE **
0091.00 I DS
0092.00 I 1 4 BWK
0093.00 I 1 1 BWSR
0094.00 I 2 2 BWC1
0095.00 I 3 3 BWC2
0096.00 I 4 4 BWED
0404.00 C*****************************************************************
0405.00 C @BCOD1 BEGSR
0406.00 C*****************************************************************
0407.00 C MOVE *BLANK BAR
0408.00 C* 部品キー
0409.00 C MOVEAL1PKNO BCD
0410.00 C MOVELBT2,11 BWK
0411.00 C MOVELBWSR BAR,1
0412.00 C MOVELBWC1 BAR,2
0413.00 C MOVELBWC2 BAR,3
0414.00 C MOVELBT2,12 BWK
0415.00 C MOVELBWC1 BAR,4
0416.00 C MOVELBWC2 BAR,5
0417.00 C Z-ADD6 M 20
0418.00 C*
0419.00 C 1 DO 11 N 20
0420.00 C Z-ADD1 L 20
0421.00 C BCD,N LOKUPBT1,L 80
0422.00 C 80 MOVELBT2,L BWK
0423.00 C 80 MOVELBWC1 BAR,M
0424.00 C 80 ADD 1 M
0425.00 C 80 MOVELBWC2 BAR,M
0426.00 C 80 ADD 1 M
0427.00 C END
0428.00 C*
0429.00 C MOVELBT2,13 BWK
0430.00 C MOVELBWC1 BAR,28
0431.00 C MOVELBWC2 BAR,29
0432.00 C MOVELBT2,14 BWK
0433.00 C MOVELBWC1 BAR,30
0434.00 C MOVELBWC2 BAR,31
0435.00 C MOVE BWED BAR,32
0436.00 C*
0437.00 C MOVEABAR LBAR1 32
0438.00 C ENDSR
0997.00 O E 24 N18 MEI
0998.00 O LBAR1 33
0999.00 O LBAR2 70
1000.00 O E 25 N18 MEI
1001.00 O LBAR1 33
1002.00 O LBAR2 70
1003.00 O E 26 N18 MEI
1004.00 O LBAR1 B 33
1005.00 O LBAR2 70
1019.00 ** BT1 ** NW7 ************************
1020.00 0123456789AT
1021.00 ** BT2
1022.00
库德巴码ABCD对应的条码符号如下图:
(2)APW的写法
字符间隔请务必使用“7.5”,条码枪才可以准确快速读取
LPI(24 26 8)
ADDAPW LINE(24 26) IGCCPI((2 80 7.5))
(3)CL的写法
0136.01 CALL PGM(MJ3055RK) PARM('XJST' &OUT ' ')
0136.02 IF COND(&OUT *EQ '1') THEN(DO)
0136.03 OVRPRTF FILE(QPAPWPRT) SAVE(*YES)
0136.04 IF COND(&IN89 *NE '1') THEN(DO)
0136.05 MRGAPW FORMD(MJ3055RPK) FILE(BARFILE) SPLF(QPRINT) +
0136.06 OUTQ(&OUT02) FORMTYPE('カード1P')
0136.07 MONMSG MSGID(CPF0000)
0136.08 ENDDO
0136.09
展开阅读全文