十分火急!!!pb中套打印发票时要连续打印出错的问题!

mypride 2002-12-13 01:33:53
我在做发票打印的时候单张打印是正确的,可是连续打印的时候就出错了,不知道怎么设置走纸,请做过这方面的高手给指示
我的代码如下
boolean lb_1
dec{3} lde_jsd
dec{5} lde_zhdj
datetime ldt_kprq
long i,ll_h,ll_w,job,job1,ll_1 = 0,li_count
String ls_byqdm,ls_yhdm,ls_yhmc,ls_yhdz,ls_fph,ls_djmc,ls_ssny
String ls_cby,ls_sfy,ls_kpy,ls_zje,ls_page,ls_rq,ls_dxje,ls_cbb
dec{2} lde_qd,lde_zd,lde_jjdl,lde_zdl,lde_zhdjdf,lde_zje,lde_hjje

Job = PrintOpen( )

PrintDefineFont(Job, 1, "Courier 10Cpi", -11, 200, Default!, Decorative!, FALSE, FALSE)
PrintDefineFont(Job, 2, "Courier 10Cps", -10, 700, Default!, Modern!, FALSE, FALSE)
PrintDefineFont(Job, 3, "Courier 10Cpi", -20, 300, Default!, AnyFont!, FALSE, FALSE)
PrintDefineFont(Job, 4, "Courier 10Cpi", -26, 350, Default!, Decorative!, FALSE, FALSE)
PrintDefineFont(Job, 5, "Courier 10Cpi", -30, 800, Default!, Decorative!, FALSE, FALSE)
PrintDefineFont(Job, 6, "Courier 10Cpi", -36, 450, Default!, Decorative!, FALSE, FALSE)
PrintDefineFont(Job, 7, "Courier 10Cpi", -30, 500, Default!, Decorative!, FALSE, FALSE)
PrintDefineFont(Job, 8, "Courier 10Cpi", -40, 600, Default!, Decorative!, FALSE, FALSE)

ls_rq = string(year(today()),'0000')+'.'+string(month(today()),'00')+'.'+string(day(today()),'00')
ls_fph = is_fph_jsd
ls_byqdm = gf_string(dw_fp.Object.byqdm[1])
ls_page = dw_fp.object.st_fph.text
ls_cbb = dw_fp.object.st_cbbh.text
ls_yhdm = gf_string(dw_fp.Object.yhdm[1])
ls_yhmc = gf_string(dw_fp.Object.yhmc[1])
ls_yhdz = gf_string(dw_fp.Object.yhdz[1])
ls_ssny = gf_string(dw_fp.Object.ssny1[1])
ls_djmc = gf_string(dw_fp.Object.djmc[1])
lde_qd = gf_0(dw_fp.Object.qd[1])
lde_zd = gf_0(dw_fp.Object.zd[1])
lde_jjdl = gf_0(dw_fp.Object.jjdl[1])
lde_zdl = gf_0(dw_fp.Object.zdl[1])
lde_zhdjdf= gf_0(dw_fp.Object.zhdjdf[1])
lde_zhdj = gf_0(dw_fp.Object.zhdj[1])
lde_hjje = gf_0(dw_fp.Object.zje[1])
ls_dxje = dw_fp.object.st_dxje.text
ls_cby = dw_fp.object.st_cby.text
ls_sfy = dw_fp.object.st_czy.text
ls_kpy = dw_fp.object.st_kpy.text

ll_1 = 50
ll_h = Str_sysmsg.gl_d_h - 250
ll_w = Str_sysmsg.gl_d_w - 100

PrintText(Job,ls_page, 100+ll_w,ll_1 + ll_h - 160,1)
PrintText(Job,ls_cbb, 3000+ll_w,ll_1 + ll_h - 160,1)

PrintText(Job,ls_byqdm,250+ll_w,ll_1 + ll_h,1)
PrintText(Job,ls_fph, 2750+ll_w,ll_1 + ll_h,1)
PrintText(Job,ls_yhmc, 350+ll_w,ll_1 + 236+ll_h,1)
PrintText(Job,ls_yhdm,2750+ll_w,ll_1 + 236+ll_h,2)

PrintText(Job,ls_yhdz, 350+ll_w,ll_1 + 472+ll_h,1)
PrintText(Job,ls_rq,2900+ll_w,ll_1 + 472+ll_h,1)

PrintText(Job,ls_djmc,50+ll_w,ll_1 + 944+ll_h,1)
PrintText(Job,String(lde_qd,'0'), 750+ll_w,ll_1 + 944+ll_h,1)
PrintText(Job,String(lde_zd,'0'), 1300+ll_w,ll_1 + 944+ll_h,1)
PrintText(Job,String(lde_jjdl,'0'),2000+ll_w,ll_1 + 944+ll_h,1)
PrintText(Job,String(lde_zdl,'0'), 2300+ll_w,ll_1 + 944+ll_h,1)
PrintText(Job,String(lde_zhdj,'0.#####'),2750+ll_w,ll_1 + 944+ll_h,1)
PrintText(Job,String(lde_zhdjdf), 3250+ll_w,ll_1 + 944+ll_h,1)

PrintText(Job,ls_dxje,700+ll_w,ll_1 + 1410+ll_h,1)
PrintText(Job,string(lde_hjje,"#0.00"),3250+ll_w,ll_1 + 1410+ll_h,1)

PrintText(Job,ls_cby,1250+ll_w,ll_1 + 1650+ll_h,1)
//PrintText(Job,ls_sfy,2300+ll_w,ll_1 + 1650+ll_h,1)
PrintText(Job,ls_kpy,3250+ll_w,ll_1 + 1650+ll_h,1)
PrintClose(Job)

Job = PrintOpen()
Printsend(job,CHAR(27)+CHAR(51)+CHAR(4))
if mod(gl_jsd,2) = 1 then
Printsend(job,CHAR(27)+CHAR(67)+CHAR(1)) //¾«¶ÈΪ1/16
else
Printsend(job,CHAR(27)+CHAR(67)+CHAR(2))
end if
printtext(job,'',1,8,1)
PrintClose(Job)
gl_jsd++
...全文
272 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdkong 2002-12-26
  • 打赏
  • 举报
回复
可我已在打印机的属性里设置了纸的大小,怎么还出现走纸走多的情况呀
pborvb 2002-12-25
  • 打赏
  • 举报
回复
对了,那里用这么烦琐,设好打印纸的大小就ok了
balloonman2002 2002-12-13
  • 打赏
  • 举报
回复
只要在操作系统 的打印机的首选项中设置好打印纸的大小即可,打印机会自动走纸,如果稍有偏差,只要微调打印纸大小即可;
flyhot 2002-12-13
  • 打赏
  • 举报
回复
gz
lijaja 2002-12-13
  • 打赏
  • 举报
回复
傻冒哦
先设置单据的高度再打
xingjiaren 2002-12-13
  • 打赏
  • 举报
回复
打印时能使纸回退,打印完之后能能让纸前进一些,
适合于打票据的单位
long jobjob=printopen()
printsend(job,"~h1B~h6A~254")
printsend(job,"~h1B~h6A~100")
print(job,"")


print(job,400,*****,900)
..
..
..
print(job,6000,*****)
/*其中*****是你要在票据写字的地方需要的内容,该
内容需要你自己想办法取出来,并且400/900/6000等等需要你自己调试,
在epson针式打印机上通过。*/


printclose(job)
Job = PrintOpen()
printsend(job,"~h1B~h43~254")
printsend(job,"~h1B~h43~100")
printclose(job)
888888888888 2002-12-13
  • 打赏
  • 举报
回复
关注

401

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧