精华内容
下载资源
问答
  • pb打印条形码源码程序

    热门讨论 2009-09-15 08:01:38
    实现条形码的打印,非常实用。pb打印条形码源码程序
  • pb打印条码(39code,128code)

    热门讨论 2009-12-24 09:00:11
    pb打印条码(39code,128code)
  • PB条码打印

    2016-07-26 16:40:23
    PB条码打印
  • PowerBuilder打印条形码(barcode)源代码,标签打印
  • pb生成条形码

    2015-08-03 11:34:18
    pb生成条形码,可以方便的生成条形码,进行打印
  • PB 128条码打印

    2014-07-24 17:49:06
    PB9 128条码打印. 有源码。亲测可用。
  • 通过pb 实现条码打印

    热门讨论 2009-11-14 11:46:50
    看到很多人需要pb实现条码打印 自己小写了一个,供大家学习使用 我这个是用pb8.04写的 为的是让低版本的用户也能使用 大家可以直接用pb更高版本打开 升级 里面有更详细的说明
  • pb条码打印

    2015-05-01 18:22:51
    条码打印自己测试过。好用。 请各位下载。具体功能是用OCX解决下载。
  • pb条码打印源码

    2018-08-15 08:47:42
    pb下生成各种条码源码。可按要求生成不同类型的条码打印
  • PB条码打印功能

    2012-10-30 09:47:12
    使用PB开发的条码打印,可以实现条码打印等功能
  • pb调用codesoft打印条码

    2013-10-12 09:55:26
    pb9.0调用codesoft6.0生成的条码文件打印条码
  • 条码打印PB

    2013-07-18 12:12:10
    条码打印PB源码程序
  • pb 条码打印程序V1.0

    2012-06-26 22:10:17
    简单的条码打印程序。支持批量打印pb版本 9.0
  • PB条码打印探讨

    千次阅读 2012-12-06 12:23:40
    在信息系统开发时通常有用户要求能够打印条码,笔者现在就power builder 工具开发的系统初略的介绍一下条码的实现方式及其优缺点。本文主要讨论code39和code128的实现方法。  code39总共可表示的字符范围:0~9,A~...
    在信息系统开发时通常有用户要求能够打印条码,笔者现在就power builder 工具开发的系统初略的介绍一下条码的实现方式及其优缺点。本文主要讨论code39和code128的实现方法。
    
           code39总共可表示的字符范围:0~9,A~Z以及 +、-、*、/、%、$、.等特殊字符,在加上空格符‘ ’,共计44组编码,条码没有长度限制。但code39码能表示的字符的范围挺小的,而且表示出来的条码也比较长。然而,这种条码这pb中实现起来很简单。

           Code128相对较为复杂,支持的字元也相对较多,又有不同的编码方式可供交互运用。它具有A、B、C三种不同的编码类型,可表示的范围也很广,具体特性大家可以到网上查找相关资料。它能表示高密度数据,条码不会太长。

    一、使用条形码字体实现code39、code128
           需要在本机上安装code39或code128字体,需要注意的是由于CODE128码字符串包含不可正常显示的字符,你必须使用支持Unicode码的PB版本,如PB10以上。
           对于code39来说,通常用“*”号作为起始、终止符,校验码不用。如‘6921168509256’的值为:*6921168509256* 。在数据窗口中可以加一列计算列,表示为:'*'+yourcode+'*' ,然后在将计算列的字体选为:3 of 9 Barcode ,设置一下大小就可以了。需要注意的是code39条码一般都会很长,最好不要用它来表示太长的条码。在pb9和pb10中测试没有问题,用激光打印机打出来的条码可以在普通的条码扫描枪上正确识别。
           对于code128来说实现起来没那么容易,Code128编码规则:开始位 + [FNC1(为EAN128码时加)] + 数据位 + 检验位 + 结束位。所以这要求我们先要计算出编码结果,然后用128字体表示出来。笔者在网上找了一个实现code128B版本的转换函数,使用它可以将字符串轻松转换。当然,如果大家有时间可以到网上好好查查code128的编码规则,然后自己写个函数。
    附CODE128码在PB中的实现源代码。
    /*******************************************************************/
    //CODE128条码基础知识
    //CODE128有三个版本
    //CODE128A: 标准数字和字母, 控制符, 特殊字符
    //CODE128B: 标准数字和字母, 小写字母, 特殊字符
    //CODE128C: [00]-[99]的数字对集合, 共100个
    //本函数采用CODE128B版本
    //条码由开始位、数据位、校验位、停止位组成
    //计算过程:
    //1.取各字符ASC码乘以字符序号之和(以ASC=32为分界点,大于32减32,小于32加64)
    //2.计算校验码
    //3.组合条码:开始位+数据位+校验位+停止位
    int li_asc_total = 104
    int li_asc_tmp,i
    char lc_start=char(204)//采用CODE128B版本
    char lc_stop=char(206)
    int li_check_digit
    string ls_check_digit

    //1.取各字符ASC码乘以字符序号之和(以ASC=32为分界点,大于32减32,小于32加64)
    For i = 1 To len(as_sourcetext)
            li_asc_tmp = Asc(mid(as_sourcetext,i, 1))
            If li_asc_tmp >= 32 Then
                    li_asc_total = li_asc_total + (li_asc_tmp - 32) * i
            Else
                    li_asc_total = li_asc_total + (li_asc_tmp + 64) * i
            End If
    Next
    //2.计算校验码
    li_check_digit = mod(li_asc_total,103)
    If li_check_digit >= 95 Then//特殊字符
           li_check_digit = li_check_digit + 100
    Else
            li_check_digit = li_check_digit + 32
    end if
    ls_check_digit = char(li_check_digit)
    //3.组合条码:开始位+数据位+校验位+停止位
    Return lc_start + as_sourcetext + ls_check_digit  + lc_stop

           先感谢一下函数的作者辛苦劳动。将转换后的字符串以128字体的方式显示即可。最后测试没问题,激光打印机打出来的条码可以在普通的条码扫描枪上正确识别。
    二、使用MSBCODE9.OCX实现
           这是微软提供的条码控件,可以表示多种条码字体,具体资料大家可以查阅MSBCODE9.CHM,可以到office安装目录下查找。
      msbcode9.ocx是微软公司OFFICE自带的一个条码控件。不需要条码字体直接就可以打印一些条码,比如CODE128、CODE39等。而且对于开发环境没有太多的限制,至少pb9、pb10都测试通过。
      1、首先你要注册一下msbcode9.ocx控件。regsvr32 msbcode9.ocx
      2、使用ole在PB中把注册的控件增加到窗口中或数据窗口中。
      3、双击控件就会看到一些属性,包括选择条码字体。
      4、不过也可以在程序中用代码来控制。
        dw_1.o b j e c t.ole_1.o b j e c t.style = 7 //7代表CODE128 6代表CODE39

        dw_1.o b j e c t.ole_1.o b j e c t.value = '条码值'


           然后就可以打印了,最后测试没问题,激光打印机打出来的条码可以在普通的条码扫描枪上正确识别,而且扫描效果很好,比用字体实现的要好。但存在另一个问题,如果想要打印一批单据,每个单据都带条码的话,用条码字体比较好实现,用控件的话不好实现。可以先把ole对象存在数据库中,最后检索出来,但日后数据库检索的速度会很慢,这是因为存储ole对象的缘故。
    三、其他
           还有一些使用图片生成条码的,其实质也是先通过字符串编码转换为条码编码,然后以图片的形式进行显示,感觉倒不如使用控件更直接。对于直接向打印机发送控制命令来实现条码的方式,笔者没有进行测试,希望有兴趣的可以试试。
    展开全文
  • pb 条形码打印

    2012-07-04 13:53:06
    就是一个数据窗口,里面有商品编号,之后跟条形码,还有其他的信息。 生成条码的是数字,另外还有"-" 这个符号 。谁有生成条码的程序啊 。给一份 。越简单越好, 我的邮箱qianqi79@163.com 给点代码也中 。
  • PB调用barcodex控件打印条码案例源码

    热门讨论 2011-07-01 07:23:49
    PB调用barcodex控件打印条码案例源码,自己写的网上找不到的
  • PB条码打印探讨

    千次阅读 2013-04-10 15:04:01
    在信息系统开发时通常有用户要求能够打印条码,笔者现在就power builder 工具开发的系统初略的介绍一下条码的实现方式及其优缺点。本文主要讨论code39和code128的实现方法。  code39总共可表示的字符范围:0~9,A~...
    PB条码打印探讨
    


    在信息系统开发时通常有用户要求能够打印条码,笔者现在就power builder 工具开发的系统初略的介绍一下条码的实现方式及其优缺点。本文主要讨论code39和code128的实现方法。
           code39总共可表示的字符范围:0~9,A~Z以及 +、-、*、/、%、$、.等特殊字符,在加上空格符‘ ’,共计44组编码,条码没有长度限制。但code39码能表示的字符的范围挺小的,而且表示出来的条码也比较长。然而,这种条码这pb中实现起来很简单。
           Code128相对较为复杂,支持的字元也相对较多,又有不同的编码方式可供交互运用。它具有A、B、C三种不同的编码类型,可表示的范围也很广,具体特性大家可以到网上查找相关资料。它能表示高密度数据,条码不会太长。
    一、使用条形码字体实现code39、code128
           需要在本机上安装code39或code128字体,需要注意的是由于CODE128码字符串包含不可正常显示的字符,你必须使用支持Unicode码的PB版本,如PB10以上。
           对于code39来说,通常用“*”号作为起始、终止符,校验码不用。如‘6921168509256’的值为:*6921168509256* 。在数据窗口中可以加一列计算列,表示为:'*'+yourcode+'*' ,然后在将计算列的字体选为:3 of 9 Barcode ,设置一下大小就可以了。需要注意的是code39条码一般都会很长,最好不要用它来表示太长的条码。在pb9和pb10中测试没有问题,用激光打印机打出来的条码可以在普通的条码扫描枪上正确识别。
           对于code128来说实现起来没那么容易,Code128编码规则:开始位 + [FNC1(为EAN128码时加)] + 数据位 + 检验位 + 结束位。所以这要求我们先要计算出编码结果,然后用128字体表示出来。笔者在网上找了一个实现code128B版本的转换函数,使用它可以将字符串轻松转换。当然,如果大家有时间可以到网上好好查查code128的编码规则,然后自己写个函数。
    附CODE128码在PB中的实现源代码。
    /*******************************************************************/
    //CODE128条码基础知识
    //CODE128有三个版本
    //CODE128A: 标准数字和字母, 控制符, 特殊字符
    //CODE128B: 标准数字和字母, 小写字母, 特殊字符
    //CODE128C: [00]-[99]的数字对集合, 共100个
    //本函数采用CODE128B版本
    //条码由开始位、数据位、校验位、停止位组成
    //计算过程:
    //1.取各字符ASC码乘以字符序号之和(以ASC=32为分界点,大于32减32,小于32加64)
    //2.计算校验码
    //3.组合条码:开始位+数据位+校验位+停止位
    int li_asc_total = 104 
    int li_asc_tmp,i
    char lc_start=char(204)//采用CODE128B版本
    char lc_stop=char(206)
    int li_check_digit
    string ls_check_digit


    //1.取各字符ASC码乘以字符序号之和(以ASC=32为分界点,大于32减32,小于32加64)
    For i = 1 To len(as_sourcetext)
            li_asc_tmp = Asc(mid(as_sourcetext,i, 1)) 
            If li_asc_tmp >= 32 Then 
                    li_asc_total = li_asc_total + (li_asc_tmp - 32) * i 
            Else 
                    li_asc_total = li_asc_total + (li_asc_tmp + 64) * i 
            End If 
    Next 
    //2.计算校验码
    li_check_digit = mod(li_asc_total,103)
    If li_check_digit >= 95 Then//特殊字符
           li_check_digit = li_check_digit + 100
    Else 
            li_check_digit = li_check_digit + 32 
    end if
    ls_check_digit = char(li_check_digit) 
    //3.组合条码:开始位+数据位+校验位+停止位
    Return lc_start + as_sourcetext + ls_check_digit  + lc_stop


           先感谢一下函数的作者辛苦劳动。将转换后的字符串以128字体的方式显示即可。最后测试没问题,激光打印机打出来的条码可以在普通的条码扫描枪上正确识别。
    二、使用MSBCODE9.OCX实现
           这是微软提供的条码控件,可以表示多种条码字体,具体资料大家可以查阅MSBCODE9.CHM,可以到office安装目录下查找。
      msbcode9.ocx是微软公司OFFICE自带的一个条码控件。不需要条码字体直接就可以打印一些条码,比如CODE128、CODE39等。而且对于开发环境没有太多的限制,至少pb9、pb10都测试通过。
      1、首先你要注册一下msbcode9.ocx控件。regsvr32 msbcode9.ocx
      2、使用ole在PB中把注册的控件增加到窗口中或数据窗口中。
      3、双击控件就会看到一些属性,包括选择条码字体。
      4、不过也可以在程序中用代码来控制。
        dw_1.o b j e c t.ole_1.o b j e c t.style = 7 //7代表CODE128 6代表CODE39
        dw_1.o b j e c t.ole_1.o b j e c t.value = '条码值'


    MSBCODE9的帮助文件:MSBCODE9.HLP

    目录在:C:\Program Files\Microsoft Office\OFFICE11\2052


           然后就可以打印了,最后测试没问题,激光打印机打出来的条码可以在普通的条码扫描枪上正确识别,而且扫描效果很好,比用字体实现的要好。但存在另一个问题,如果想要打印一批单据,每个单据都带条码的话,用条码字体比较好实现,用控件的话不好实现。可以先把ole对象存在数据库中,最后检索出来,但日后数据库检索的速度会很慢,这是因为存储ole对象的缘故。
    三、其他
           还有一些使用图片生成条码的,其实质也是先通过字符串编码转换为条码编码,然后以图片的形式进行显示,感觉倒不如使用控件更直接。对于直接向打印机发送控制命令来实现条码的方式,笔者没有进行测试,希望有兴趣的可以试试。
    展开全文
  • 条码打印PB源代码

    2014-01-22 00:04:53
    主要针对Powerbuilder程序开发,当然应用程序也可直接供给最终用户用来打印价签、条码证件之类的;本程序无需安装条码字库,无需控件,无需条码打印机,功能...可进行完整的条码打印或仅打印条形码,可设定条码的线宽。
  • PB万能生成条码打印

    热门讨论 2013-03-23 11:15:19
    通过调用不同的对象函数以便产生不能类型的条码,比如COde128
  • pb做的条码打印软件

    2011-12-03 22:21:36
    很好的 pb开发的斑马 条码打印技术 支持连续打印
  • PB打印斑马条码程序

    2010-11-25 17:05:59
    ll_state=printsend(job, "^FO20,40^BCN,70,N,N,N,N^FD"+curr_code+"^FS",10)//打印条形码图形 if i = 1 then ls_return=ls_return+string(ll_state)+'-' ll_state=printsend(job, "^FO120,120^AD^FDNO:"+curr_...
    uf_print13( string startcode, string stdtype, long copys ,string direct ) returns string
    ------------------------------------------------------
    long job, i, counter,ll_state
    string curr_code, static_part,ls_return
    static_part = mid(startcode, 1, 7)
    if direct = "N" then
    counter = long(mid(startcode, 8, 8))
    else
    counter = long(mid(startcode, 8, 8)) + copys - 1
    end if
    job = printopen("barcode 02")
    if job= -1 then
    messagebox('提示','02分配打印作业失败!!')
    return ''
    end if
    ls_return=string(job)+':'
    for i = 1 to copys
    ll_state=printsend(job, "^XA", 10) //开始打印
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    curr_code = static_part + mid(string(100000000+counter), 2, 8)
    ll_state=printsend(job, "^BY2,3.0,", 10) //条形码的宽度
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=printsend(job, "^LH30,10", 10) //定义标签起始位置
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=Printsend(job, "^FO20,15^XGXH,1,1^FS",10) // FO20,15表示坐标,
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=printsend(job, "^FO20,40^BCN,70,N,N,N,N^FD"+curr_code+"^FS",10)//打印条形码图形
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=printsend(job, "^FO120,120^AD^FDNO:"+curr_code+"^FS",10)//打印条形码字符
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=Printsend(job, "^FO20,165^XGXH,1,1^FS",10)
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=printsend(job, "^FO20,190^BCN,70,N,N,N,N^FD"+curr_code+"^FS",10)
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=printsend(job, "^FO120,270^AD^FDNO:"+curr_code+"^FS",10)
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=Printsend(job, "^FO20,325^XGXH,1,1^FS",10)
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=printsend(job, "^FO20,350^BCN,70,N,N,N,N^FD"+curr_code+"^FS",10)
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=printsend(job, "^FO120,430^AD^FDNO:"+curr_code+"^FS",10)
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=Printsend(job, "^FO20,475^XGXH,1,1^FS",10)
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=printsend(job, "^FO20,500^BCN,70,N,N,N,N^FD"+curr_code+"^FS",10)
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=printsend(job, "^FO120,580^AD^FDNO:"+curr_code+"^FS",10)
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    /*四联*///2005-1028 2008-12-06 新格式打印
    ll_state=Printsend(job, "^FO20,630^XGXH,1,1^FS",10) //140i3
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=printsend(job, "^FO20,655^BCN,70,N,N,N,N^FD"+curr_code+"^FS",10) //打印条形码图形
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=printsend(job, "^FO120,735^AD^FDNO:"+curr_code+"^FS",10) //打印条形码字符
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=Printsend(job, "^FO18,740^XGhx,1,1^FS",10) //140i3
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=Printsend(job, "^FO20,765^XGrq,1,1^FS",10) //140i3
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    /*四联*///2005-1028
    /*
    ll_state=Printsend(job, "^FO20,475^XGXH,1,1^FS",10)
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=printsend(job, "^FO20,500^BCN,70,N,N,N,N^FD"+curr_code+"^FS",10)
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    ll_state=printsend(job, "^FO120,580^AD^FDNO:"+curr_code+"^FS",10)
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    */
    ll_state=printsend(job, "^XZ", 10)
    if i = 1 then ls_return=ls_return+string(ll_state)+'-'
    if direct = "N" then
    counter = counter + 1
    else
    counter = counter - 1
    end if
    next
    printclose(job)
    return ls_return
    [@more@]

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/443058/viewspace-1042078/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/443058/viewspace-1042078/

    展开全文
  • PB开发的关于普印力的oracle版的指令打印程序
  • 斑马条码打印程序版本PB8,斑马条码打印程序
  • pb生成并打印CODE39条码
  • 使用PB12.6编写 在数据窗口内填加了一个OLe控件,让其使用microsoft barcode ,我使用以下语句赋值 dw_9.Object.ole_1.Object.style = 7 dw_9.Object.ole_1.Object.forecolor(0) dw_9.Object.ole_1.Object.Value...
  • PB一维条码打印例程,PB8.0源码
  • 能够批量实现数据窗口内内容条形码的批量打印 ean8码为7位数值+1位校验位 ean13码为12位数值+1位校验位 code39码可为数值及字母的任意组合 三种条形码各有100个随机测试 按数据窗口字段内容编码,解决用控件不能实现...
  • PB利用字体打印EAN13条码

    热门讨论 2009-11-09 15:36:40
    PB中利用字体实现EAN13条码打印,不需要控件。请先将包里的ean13.ttf安装到Windows的字体Fonts目录下. 本方法可以很方便的将图书ISBN打印条码

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 297
精华内容 118
关键字:

pb打印条码