前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

PowerBuilder下使用并口控制POS打印机(转)----PowerBuilder_一生一念间_百度空间 相册 广场游戏 登录注册 关注此空间 一生一念间 2011-06-10 18:25 PowerBuilder下使用并口控制POS打印机(转)----PowerBuilder 通过打印机给钱箱送24V的电压就可以了,代码如下: job=PrintOpen() PrintSend(Job,char(27)+char(112)+char(0)+char(48)) PrintClose(Job) 研究了一下PB中控制POS钱箱首先找到从baidu上找到一片错误的文章:QUOTE:pos软件打印开钱箱代码 转:论坛有不少朋有询问pos软件打印及开钱箱问题,我做超市方案实施了解一点知识 愿意分享 PowerBuilder下使用并口控制打印机 使用PowerBuilder编程的人员如果需要在Windows下使用并口打印机逐行打印,而又不想使用Windows的驱动程序。我们这里提供一种不需要任何外来的元件的方法。 integer li_FileNum String PDStr li_FileNum = FileOpen("LPT1",LineMode!, Write!, LockWrite!, Append!) PDStr=”PowerBuilder Printer on LPT1” FileWrite(li_FileNum,PDStr) FileClose(li_FileNum) 如果需要控制并口的POS58打印机开钱箱,使用以上方法是不可打开的,因为PowerBuilder会把chr(0)认为毫无意义而给屏蔽掉,所以就只有使用调用外部文件的方法来实现。把附带的OpenLptDoor.exe文件复制到程序的目录下,然后在PowerBuilder下调用以下语句就可以打开了,其实该文件执行的指令就是Chr(27)+”p”+Chr(0)+Chr(60)+Chr(255): Run("OpenLptDoor.exe") 如果OpenLptDoor.exe文件保存在别的位置,就要在调用语句中加入文件存放路径。 PowerBuilder环境下控制串口顾客显示屏 使用PowerBuilder编程的人员如果需要在Windows下使用串口控制顾客显示屏或串口打印机,就需要使用外来方式。我们这里提供了API_COM.DLL这个链接库供调用。 首先把API_COM.DLL文件复制到编写的源程序目录下,接着在程序中声明调用的三个函数: 1、 打开源程序,然后选择下拉菜单“Declare”,接着从菜单中选择“Local External Functions”。 2、 此时出现“Declare Local External Functions”窗口,在窗口中输入如下内容: function Boolean com_init(Int com,int baud)library "api_com.dll" function Boolean com_rest() library "api_com.dll" function Boolean com_send(string buf,int len)library "api_com.dll" 按“OK”以后即对函数声明完毕。 3、 现在就可以在程序中调用函数了。首先打开窗体的脚本编辑器,选择“show”事件,写入如下内容,该内容表示窗体显示时打开端口: if not com_init(1,2400) then messagebox("错误","COM1打开错误!",exclamation!) end if 4、 接着选择“close”事件,写入如下内容,该内容表示窗体关闭时关闭端口: com_rest(); 5、 现在可以返回主窗体了,在窗体上增加一个按钮,打开该按钮的脚本编辑器,写入如下内容: string PDStr PDStr=Char(27)+Char(81)+Char(65)+"1234.56"+Char(13); com_send(PDStr,Len(PDStr)) 6、 按照如上操作,就可以向串口发送显示数字的指令了,如果需要实现其他的功能,只需要对PDStr进行赋值就可以了。 下面是控制顾客显示屏显示“总计”灯的命令: PDStr=Char(27)+Char(115)+”2” 该代码还可以控制POS58打印机打印,给PDStr如下赋值就开始打印了: PDStr=”PowerBuilder Printer on COM1”+Char(10) 使用打印开钱箱: Chr(27)+”p”+Chr(0)+Chr(60)+Chr(255) 研究了一下,发现可以这样实现:blob{1} lbb_zeroulong job1long ll_rtnjob1 = fileopen("LPT1",streammode!,write!)filewrite(job1,char(27) + char(112))filewrite(job1,lbb_zero)filewrite(job1,char(60) + char(255))fileclose(job1)以上代码适用与大部分兼容于EPSON TM的打印机钱箱接口 #PowerBuilder 分享到: 举报 浏览(672) 评论 转载 你可能也喜欢 恋物:扣子,我可不可以扣住你的心 飞舞的蛱碟 【nendoroid黏土】双百合CP完成! 2013.12.02小品 —— 硕果累累 秋冬的色彩 我的洋娃娃收藏(一) PB中操作BLOB数据(三、十六进制转BLOB  hex2blob)----PowerBuilder 评论 帮助中心 | 空间客服 | 投诉中心 | 空间协议©2014 Baidu