• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

如何利用RPG,CL和ACCESS制作一个条形码标签的打印程序?

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: ChinaUnix.net

软件测试论坛讨论

领测软件测试网
如何利用RPG,CL和ACCESS制作一个条形码标签的打印程序? :shock:

 hliu 回复于:2004-09-08 19:17:19
AFP不是支持条形码打印吗

 qingzhou 回复于:2004-09-09 13:51:34
说来话长,基于OS/400利用CLP、RPG是可以实现条形码的打印。
不过实现起来有点难度。。。

 mamei 回复于:2004-09-09 18:34:39
我们已经是在打印文件用硬代码写的!

不过,如果换个型号的打印机就不能用了

 zhurisoft 回复于:2004-09-09 19:21:24
标签(价签)自由排版打印系统-LabelPrint v1.0  
  特点: 
1、 普通打印机 无需使用专业的打印机即可打印商品的标签/价签。 
2、 操作简单 界面操作简单,可编辑出任何形式的商品的标签和价签。 
3、支持图像 支持图像的汇入,可丰富标签/价签的内容。 
4、 排版打印同步 提供“所见即所得”,所编辑的内容、尺寸、大小与打印时相同。 
5、数据格式自由 LabelPrint不限制数据的格式,您只需将数据导出文本,在系统中导入并与所编辑的内容连接即可打印。 
6、支持多种条码 支持常见的32种条码,如:Ean13,Ean8,Ean128,Code39,Code128,Jan13,UpcA等等。 
7、支持模版方式 用户可将自己绘制好的标签保存为模版,后续使用此样式的标签时无需重新绘制。 
http://www.longesoft.com/products/LabelPrint.exe

 winner_530 回复于:2004-09-10 14:32:02
是否是 for AS400、windowsunix等?!!!

 灌木林 回复于:2004-09-15 13:10:41
FOR AS/400

 winner_530 回复于:2004-09-15 16:29:23
我只会在windows上作条码,想学学如何在400上作!哈哈哈!!!

 qingzhou 回复于:2004-09-16 09:03:18
基于OS/400平台生成“条形码”打印图形的实现过程简介如下:

1)CHGSYSLIBL QSYS2989

2)在QAPWSRC下创建程序:
  LIBRARY/QAPWSRC(TEST),type为TXT。
[code:1:cfdc6ede0d]
 Columns . . . :    1  71           Browse                      LIBRARY/QAPWSRC 
 SEU==>                                                                    TEST 
 FMT **  ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7  
        *************** Beginning of data ************************************* 
0001.00 ADDAPW LINE(12 12) MAGNIFY((59 07 3))                                   
0002.00 ADDAPW LINE(15 15) MAGNIFY((12 18 3))                                   
0003.00 ADDAPW LINE(18 18) MAGNIFY((90 06 3))                                   
0004.00 ADDAPW LINE(21 21) MAGNIFY((90 02 3))                                   
0005.00 ADDAPW LINE(21 21) MAGNIFY((105 02 3))                                  
0006.00                                                                         
0007.00                                                                         
0008.00 ADDAPW LINE(30 30) SYMBOL(20 15 CODE39 CODE39 IBMIR)                    
        ****************** End of data **************************************** 
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
 F3=Exit   F5=Refresh   F9=Retrieve   F10=Cursor   F11=Toggle   F12=Cancel      
 F16=Repeat find        F24=More keys                                           
                                         (C) COPYRIGHT IBM CORP. 1981, 2002.    [/code:1:cfdc6ede0d]

3)其中“ADDAPW LINE(30 30) SYMBOL(20 15 CODE39 CODE39 IBMIR)”中关键实现条形码打印的是“SYMBOL(20 15 CODE39 CODE39 IBMIR)”,如果最后一句改为“ADDAPW LINE(30 30)”将只输入数字而无法输出条形码。                    

[code:1:cfdc6ede0d]                                   (ADDAPW)                                    
                                                                                
  输入选择,并按“执行”键。                                                    
                                                                                
                                                                                
                                  > 30            Number                        
                                  > 30            Number                        
                                                                                
                                                  Number                        
                                                  Number                        
                                    3             Character value               
                + 尚有其余值                                                    
                                                                                
                                  > 20            Number                        
                                  > 15            Number                        
                                  > CODE39        Name                          
                                  > CODE39        Name                          
                                  > IBMIR         Name, *LIBL, *CURLIB          
                                                                                
                                                  Number                        
                                                  Number                        
                                                  Character value               
                + 尚有其余值                                                    
                                                                                
                                                                       尚有 ... [/code:1:cfdc6ede0d]

4)Library:IBMIR所含信息如下:

[code:1:cfdc6ede0d]
                          Work with Objects Using PDM                  S******* 
                                                                                
 Library . . . . .   IBMIR            Position to . . . . . . . .               
                                      Position to type  . . . . .               
                                                                                
 Type options, press Enter.                                                     
   2=Change       3=Copy        4=Delete      5=Display       7=Rename          
   8=Display description        9=Save       10=Restore      11=Move ...        
                                                                                
 Opt  Object      Type        Attribute   Text                                  
      CODE39      *FILE       LF38        SYMBOL LF                             
      CODE39     *FILE       PF38-DTA    SMALL SYM PF                          
      CODE39#     *FILE       PF38-DTA    MEDIUM SYM PF                         
      CODE39@     *FILE       PF38-DTA    LARGE SYM PF                          
      CODE39A     *FILE       LF38        SYMBOL LF                             
      CODE39A    *FILE       PF38-DTA    SMALL SYM PF                          
      CODE39A#    *FILE       PF38-DTA    MEDIUM SYM PF                         
      CODE39A@    *FILE       PF38-DTA    LARGE SYM PF                          
      CODE39C     *FILE       LF                                                
      CODE39C    *FILE       PF-DTA                                            
      CODE39C#    *FILE       PF-DTA                                            
      CODE39C@    *FILE       PF-DTA                                            
      CODE39D     *FILE       LF                                                
      CODE39D    *FILE       PF-DTA                                            
      CODE39D#    *FILE       PF-DTA                                            
      CODE39D@    *FILE       PF-DTA                                            
      CODE39E     *FILE       LF                                                
      CODE39E    *FILE       PF-DTA                                            
      CODE39E#    *FILE       PF-DTA                                            
      CODE39E@    *FILE       PF-DTA                                            
                                                                                
                                                                                
                                                                         Bottom 
 Parameters or command                                                          
 ===>                                                                           
 F3=Exit          F4=Prompt            F5=Refresh           F6=Create           
 F9=Retrieve      F10=Command entry    F23=More options     F24=More keys       [/code:1:cfdc6ede0d]

暂且提供至此,有什么疑问请继续。。。

 Sillycube 回复于:2004-09-16 15:17:23
:em06: 惭愧!惭愧!居然是故人相见,哎!水品下降!太丢脸了!

 qingzhou 回复于:2004-09-16 17:50:24
[quote:743268a36a="Sillycube"]:em06: 惭愧!惭愧!居然是故人相见,哎!水品下降!太丢脸了![/quote:743268a36a]
不要计较那么多,多多交流吧。。。
我也每天一直在努力。。。
顺带问问,问题解决没?

 V01619 回复于:2004-09-17 09:18:22
:cry: 如题.

 qingzhou 回复于:2004-09-17 14:40:17
IBMIR这个库里头的东西是字库,打开好象会乱码,只能作成savf了。






 Sillycube 回复于:2004-09-20 13:44:24
HP打印机已经差不多了,但是5400-006应该用ADDAPW可以直接打印的吧,请qingzhou版主做一个SAMPLE吧,最好扫描一下结果,或者拍下来放在网上那最好了,其实HP的打印结果也最好放在网页上,这样大家对照着结果看也清楚些,你看怎么样?

 qingzhou 回复于:2004-09-21 10:53:07
扫描仪扫描的样板如下,请参考。






 Sillycube 回复于:2004-09-21 12:22:02
这个是HP的吧,能不能搞个5400-006的?

 qingzhou 回复于:2004-09-21 13:07:33
上副图片是采用A4纸张、基于Print Session方式IBM Infoprint 1125激光打印机打印的样板。

这副是采用8.5×13inch纸张、基于TWINAX连接的IBM 5400-006针式打印机打印出样板效果如下:






 V01619 回复于:2004-09-22 10:40:11
老大:为什么我在MRGAPW后,页数从原来的一页变成了二页?第二页它会打出一页空白页的.

 qingzhou 回复于:2004-09-24 22:21:55
[quote:7602cc0f6a="V01619"]老大:为什么我在MRGAPW后,页数从原来的一页变成了二页?第二页它会打出一页空白页的.[/quote:7602cc0f6a]
通过生成的SPLF查到Device File和对应的Library,然后再通过CHGPRTF命令了调整参数,注意“强制换页”参数等。。。

顺带再补充一点:

1。如果是基于IBM 5400-006的条形码产生,无须采用IBMIR这个字库,因为5400打印机本身就带有字库和驱动,只需要先用ADDAPW创建CLP,然后通过MRGAPW生成打印数据流(SPLF)即可。

2。如果采用激光打印机输出条形码,就必须采用RPG程序兼IBMIR这个字库来配合生成SPLF,因为激光打印机本身不带识别条形码的字库。请留意!

 qingzhou 回复于:2004-09-26 08:52:38
留底备案,以帮助以后有此需要的朋友参考。
以免重复发问和赘述。

 V01619 回复于:2004-09-26 10:33:29
我是用CHGSPLFA   FILE(ADRSFRM2) PAGERANGE(1 &PN)解决的.
其中&PN,是合并文件之前的打印文件的页数.ADRSFRM2是合并后的打印文件名,不用这条命令的话,如果合并之前有2页的话,合并之后会生成4页,打完2页后,再印刷2张空白的.

 Sillycube 回复于:2004-09-27 16:28:58
:em02:  :em02:  :em17:

 qingzhou 回复于:2004-09-27 16:44:05
[quote:6c58f1a2ca="V01619"]我是用CHGSPLFA   FILE(ADRSFRM2) PAGERANGE(1 &PN)解决的.
其中&PN,是合并文件之前的打印文件的页数.ADRSFRM2是合并后的打印文件名,不用这条命令的话,如果合并之前有2页的话,合并之后会生成4页,打完2页后,再印刷2?.........[/quote:6c58f1a2ca]

Very Good!!! :em02:  :em02:  :em02:

 灌木林 回复于:2004-10-13 12:57:28
我是这样实现条形码标签的打印:
    1 用RPG和CL编程.将所需要的数据存储到工作文件中.
    2 利用PCOM的AS400-PC的数据传输功能,将数据导出,我现在导出的格式是.TXT文件
    3 配置ODBC数据源,用BARONE(一个标签打印程序)来作好条形码的格式,这个程序支持ODBC.
    4.做两个批处理文件一个用于数据传输,一个用于打印标签. 在CL中使用STRPCCMD调用这两个文件

但是现在我们领导要求我不用BARONE用ACCESS来制作条形码标签部分.请问该如何处理呢?
 :shock:

 qingzhou 回复于:2004-10-14 14:46:04
[quote:562f2ab57d="灌木林"]..........
但是现在我们领导要求我不用BARONE用ACCESS来制作条形码标签部分.请问该如何处理呢? [/quote:562f2ab57d]
不是很明白你的做法,通过ADDAPW、MGRAPW这2个CL命令组合起来就可以实现基于OS/400平台的条形码的打印。
无须用到BARONE和ACCESS啊。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网