收录日期:2018/08/15 02:07:55 时间:2016/05/22 09:12:05 标签:DataWindow
我要打印的票据格式很多,用户希望能根据不同的打印格式,指定不同的打印机,请问大家有什么好办法!

Email:man996@sohu.com
我基本上是软用户选择使用哪一台打印机,即定义好的打印机格式(同一台打印机的不同联结方式)
那么如何在选择打印内容时,自动选择定义好的纸张。
请大家帮忙!
printsetup(),想怎么设怎么设
根据我做的报表的格式,自动设置纸张大小。有什么好办法?
可以调用PB内定的参数:printsetup(),也可以自己在做一个定义打印的窗口。方法很多,只要想到怎么解决应该可以办到
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)
to(moqijun(存钱) )
我不太明白你上面的char(27),char(67),char(15)
是什么意思?可以告诉我吗?
可以让数据窗口的内容自动适应纸张的大小的代码
//利用该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