AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > PowerBuilder

PB中数据窗口的精确页面打印技术

51自学网 http://www.51zixue.net

  一个通用Datawindow打印控制程序

  将数据窗口中的报表在打印机上输出是PowerBuilder应用程序开发过程中必不可少的功能,作为例子,这里提供一个使用上述方法研制的通用打印控制窗口,用以替代Prompt属性所提供的Print窗口,实现汉化界面,并且可被自行修改扩充。为了书写简单,程序中采用直接赋值的方式修改属性。

  实例变量:

datawindowdw_print

stringprintername,name,port

  窗口open 事件脚 本:

dw_print=Message.PowerObjectParm

printername=dw_print.Object.Datawindow.Printer

name=left(printername,pos(printername,"on")-1)

port=right(printername,len(printername)-pos(printername,"on")-1)

plb_printername.additem(name,1)

st_portname.text=port

“设置” 按钮clicked事件脚本

Integercode

Code=printSetup()

Ifcode=1then

printername=dw_print.Object.Datawindow.Printer

name=left(printername,pos(printername,"on")-1)

port=right(printername,len(printername)-pos(printername,"on")-1)

plb_printername.additem(name,1)

st_portname.text=port

endif

  打印范围组中“全部”选择钮clicked事件 脚本

dw_print.object.DataWindow.Print.Range=''

sle_1.enabled=false

sle_2.enabled=false

sle_3.enabled=false

“页数” 栏后sle_2单行文本编辑框Modified事件 脚本

dw_print.object.DataWindow.Print.Page.Range=sle_1.text +"-"+sle_2.text

“自定 义”栏后sle_3单行文 本编辑 框Modified事件脚本

dw_print.object.DataWindow.Print.Page.Range=sle_3.text

  打印份数组中份数单行文本编辑框Modified事件脚本

dw_print.Object.DataWindow.Print.Copies=integer(this.text)

  “全部” 选择钮Cliecked事件 脚本

dw_print.Object.DataWindow.Print.Page.Rangeinclude =0

  “奇数” 选择钮Cliecked事件 脚本

dw_print.Object.DataWindow.Print.Page.Rangeinclude =1

  “偶数” 选择钮Cliecked事件 脚本

dw_print.Object.DataWindow.Print.Page.Rangeinclude =2

  “确认” 命令按 钮Clicked事件脚本

longjob

ifIsValid(dw_print)then

job=PrintOpen()

PrintDataWindow(job,dw_print)

PrintClose(job)

close(parent)

endif

  “取消” 命令按 钮Clicked事件脚本

close(parent)

  窗口调用方法:在其它带有数据窗口的窗口中,使用OpenWithParm(w_print_set,dwname) 即可,其中w_print_set为本窗口名,dwname为要打印的数据窗口。该程序是一个通用打印控制程序,可在任何版本的PowerBuilder应用中使用。

 
 

上一篇:在PB 7.0中实现多数据窗口的连续打印  下一篇:实现PB数据窗口的多表更新