如何自动设置打印纸张,在PB下,请大家帮忙!

linyuze 2003-11-04 10:39:43
我要打印的票据格式很多,用户希望能根据不同的打印格式,指定不同的打印机,请问大家有什么好办法!

Email:man996@sohu.com
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
小子侯 2003-12-09
  • 打赏
  • 举报
回复
可以让数据窗口的内容自动适应纸张的大小的代码
//利用该PageCountAcross()函数可以让数据窗口的内容自动适应纸张的大小
//使用一个循环检测如果该值等于1就说明已经自动适应纸张大小了
String AS_ACROSS,AS_zoom
long I,K
K=0
DW_PRINT.SetRedraw(FALSE)
FOR I=50 to 500
AS_ZOOM=string(I)
dw_print.modify("datawindow.zoom="+AS_ZOOM)
AS_ACROSS = dw_print.describe( " evaluate('PageCountAcross()',"+string(dw_print.object.datawindow.firstrowonpage)+")" )
if long(AS_ACROSS)=2 then
AS_ZOOM=string(I - 1 )
dw_print.modify("datawindow.zoom="+AS_ZOOM)
K=1
EXIT
END IF
NEXT
DW_PRINT.SetRedraw(TRUE)
IF K=0 AND I=50 then
MESSAGEBOX('系统信息','你的报表可能太宽了,目前打印机支持的纸张已经不能适应了!')
edn if

hui3zhihui 2003-12-08
  • 打赏
  • 举报
回复
to(moqijun(存钱) )
我不太明白你上面的char(27),char(67),char(15)
是什么意思?可以告诉我吗?
moqijun 2003-11-07
  • 打赏
  • 举报
回复
ll_job = printopen()
If ll_job = -1 then
messagebox("提示","打印機未準備好")
Return
End if
//定制行距1/8英寸 1/8英寸 = 0.125 英寸 = 3.175 毫米
PrintSend(ll_job, CHAR(27)+CHAR(48))
//設定頁長= 1/8 英寸 * 15 = 1.875 英寸
PrintSend(ll_job, CHAR(27)+CHAR(67)+CHAR(15))
//因為 1 英寸 = 25.4 毫米 ,所以最終的紙長是:
//= 1.875 英寸 * 25.4 = 47.625 毫米
//必須使用printdatawindow,這樣纔能利用剛纔設置的打印控制碼
printdatawindow(ll_job,dw_print)
printclose(ll_job)
linyuze 2003-11-05
  • 打赏
  • 举报
回复
那么如何在选择打印内容时,自动选择定义好的纸张。
justin0470 2003-11-05
  • 打赏
  • 举报
回复
可以调用PB内定的参数:printsetup(),也可以自己在做一个定义打印的窗口。方法很多,只要想到怎么解决应该可以办到
linyuze 2003-11-05
  • 打赏
  • 举报
回复
根据我做的报表的格式,自动设置纸张大小。有什么好办法?
dingzhaofeng 2003-11-05
  • 打赏
  • 举报
回复
我基本上是软用户选择使用哪一台打印机,即定义好的打印机格式(同一台打印机的不同联结方式)
workhand 2003-11-05
  • 打赏
  • 举报
回复
printsetup(),想怎么设怎么设
linyuze 2003-11-05
  • 打赏
  • 举报
回复
请大家帮忙!

609

社区成员

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

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