免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Lantern

400上条码打印 [复制链接]

论坛徽章:
0
发表于 2003-12-30 12:17 |显示全部楼层

400上条码打印

关注中……

大家都很热心,这就是我们论坛兴旺的源泉。

论坛徽章:
0
发表于 2003-12-30 13:30 |显示全部楼层

400上条码打印

热烈盼望中~~~~

同时衷心谢谢各位楼上的兄弟姐妹!


加油!加油!

论坛徽章:
0
发表于 2003-12-30 13:56 |显示全部楼层

400上条码打印

可以使用HP普通激光打印机打印条码,OS:AS/400、Unix、Dos等,RMB5000左右。
Tel:010 8458 5012~5017-613
email:shiying@cgs.com.cn
Msn:bjshiying@21cn.com

论坛徽章:
0
发表于 2003-12-30 17:58 |显示全部楼层

400上条码打印

针对基于OS400条形码打印问题,我今天下午研究了一下,现在将结果告诉大家:
1、首先条形码的打印是借助QSYS2989(中文字库)下的ADDAPW命令来实现的,故在运行ADDAPW命令之前,必须先运行CHGSYSLIBL QSYS2989,否则运行ADDAPW时系统会出现" Command ADDAPW in library *LIBL not found. "错误信息;
2、我们在QAPWSRC下可以创建ADDAPW的一系列CL代码来实现,例如:

  1. Columns . . . :    1  71           Browse                     R21AMLBE/QAPWSRC
  2. SEU==>;                                                              MFR52AJ01B
  3. FMT **  ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7  
  4.         *************** Beginning of data *************************************
  5. 0001.00 ADDAPW LINE(12 12) MAGNIFY((59 07 3))                                   
  6. 0002.00 ADDAPW LINE(15 15) MAGNIFY((12 18 3))                                   
  7. 0003.00 ADDAPW LINE(18 18) MAGNIFY((90 06 3))                                   
  8. 0004.00 ADDAPW LINE(21 21) MAGNIFY((90 02 3))                                   
  9. 0005.00 ADDAPW LINE(21 21) MAGNIFY((105 02 3))                                 
  10. 0006.00                                                                        
  11. 0007.00                                                                        
  12. 0008.00 ADDAPW LINE(30 30) SYMBOL(20 15 CODE39 CODE39 IBMIR)                    
  13.         ****************** End of data ****************************************
  14.                                                                        
  15.                                                                                 
  16.                                                                                 
  17.                                                                                 
  18. F3=Exit   F5=Refresh   F9=Retrieve   F10=Cursor   F11=Toggle   F12=Cancel      
  19. F16=Repeat find        F24=More keys                                          
  20.                                          (C) COPYRIGHT IBM CORP. 1981, 2002.   
复制代码


3、其上面代码中,真正实现“条形码”机能的是:
ADDAPW LINE(30 30) SYMBOL(20 15 CODE39 CODE39 IBMIR)
如果代码中没有加"SYMBOL(20 15 CODE39 CODE39 IBMIR)"参数,将会出现用“*0028140480101*”形式来代替“条形码”形式,所以大家可以根据企业实际情况来进行选择。

4、以上打印出的条形码可以用“条形码扫描仪”进行扫描,得到的结果就是“*0028140480101*”。

5、以上程序在OS400 V5R2上测试通过。

论坛徽章:
0
发表于 2003-12-30 20:49 |显示全部楼层

400上条码打印

我这边是V4R4,QSYS2989下找不到ADDAPW:(
有没有V4R4支持的,可以通过普通针式打印机打印条码?

论坛徽章:
0
发表于 2003-12-31 09:49 |显示全部楼层

400上条码打印

只要打印机支持条码, 针式或激光都不是问题. 但是这个ADDAPW就不一定了----我的400是V4R5, 也没有这个程序.

期待不使用第三方软件的解决方案.
andrewleading_h 该用户已被删除
发表于 2003-12-31 13:27 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2003-12-31 13:53 |显示全部楼层

400上条码打印

1。编写程序 PGMA 按照正常情况把要打印的数据生成到O表。
2。编写如下CL程序:

  1. PGM
  2.    OVRPRTF    FILE(QPRINT)  OUTQ(OutqName)  HOLD(*YES)
  3.    CALL          PGM(PGMA)
  4.    OVRPRTF    FILE(QPAPWPRT) RPLUNPRT(*YES) OUTQ(OutqName) +
  5.              FORMTYPE(FmtTypName) SCHEDULE(*IMMED) HOLD(*NO) +
  6.              SAVE(*YES)

  7.    MRGAPW     FORMD(CODEP) FILE(CODEP) SPLF(QPRINT) +
  8.                       OUTQ(OutqName) OUTSPLF(CODEP1)

  9.    DLTSPLF    FILE(QPRINT) SPLNBR(*LAST)
  10. ENDPGM
复制代码

使用这个CL的程序就能打印条码了。

注:
1。CODEP 是个产生条码的文件,内容如下:
ADDAPW LINE(2) MAGNIFY( (03 10) )
ADDAPW LINE(3) SYMBOL(41 14 CODE39 CODE39 LIBNAME)
ADDAPW LINE(5) MAGNIFY( (03 10) )
ADDAPW LINE( SYMBOL(49 5 CODE39 CODE39 LIBNAME)
ADDAPW LINE( MAGNIFY( (03 17) )
ADDAPW LINE(11) MAGNIFY( (03 15) )
ADDAPW LINE(12) SYMBOL(45 9 CODE39 CODE39 LIBNAME)
ADDAPW LINE(14) MAGNIFY( (03 9) )
ADDAPW LINE(17) SYMBOL(4 11 CODE39 CODE39 LIBNAME)
ADDAPW LINE(23) MAGNIFY( (3 17) )

是个TXT的文件,然后用 CRTAPW 把该文件编译一下,成为FILE类型的OBJ。
CODE39是个条码数据映像文件,是个物理文件。LIBNAME 是CODE39所在的LIB。

2。CODEP:条码数据映像文件。字段定义如下:

  1. Field    /Text                     /Length
  2. -------------------------------------------
  3. KEYLEN   /SYMBOL ID ACTUAL LENGTH  /  2 0
  4. KEYFLD   /SYMBOL ID                / 10
  5. HEIGHT   /NO. LINES LONG           /  2 0
  6. WIDTH    /NO. CHARACTERS WIDE      /  2 0
  7. PRTROWS  /NO. PRT PIN ROWS         /  2 0
  8. PRTCOLS  /NO. PRT PIN COLUMNS      /  2 0
  9. SYMTXT   /USER TEXT FOR SYMBOL     / 50
  10. RESERVED /                         / 20
  11. MATRIX   /BIT ENCODED SYMBOL DEF   /648
复制代码


各字段取值举例如下:
KEYLEN  KEYFLD  HEIGHT   WIDTH   PRTROWS  PRTCOLS  SYMTXT  
1        Y        3        2        24        18        Y               
1        Z        3        2        24        18        Z               
1        0        3        2        24        18        0               
1        1        3        2        24        18        1               
1        2        3        2        24        18        2               
1        3        3        2        24        18        3               
1        4        3        2        24        18        4

以上ADDAPW 、 MRGAPW、CRTAPW命令及 QPAPWPRT 文件如果在QSYS等LIB里面找不到,可以在QAPS下找到。

ADDAPW应该和语言库相关的,在QAPS下的那个使用的时候,显示有问题,参数名字和解释都看不到。在QSYS2987,QSYS2962,QSYS2989等系统语言库里面的才好用。

以上是我原来公司一位朋友提供的。他们用的是O表,不知道打印文件是否可行。[/code]

论坛徽章:
0
发表于 2003-12-31 15:48 |显示全部楼层

400上条码打印

各位,刚从DDS REFERENCE中看到
对要用条码打印的FIELD加BARCODE关键字,
建一个PRTF,试试吧,不过要打印机支持才行。

论坛徽章:
0
发表于 2003-12-31 18:33 |显示全部楼层

400上条码打印

ADDAPW 我的400里没有这个命令哦,能告诉我这个命令需要装那些特许程序吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP