【关键词】 Powerbuilder
关键词: Powerbuilder;数据库;打印;预览;程序设计
0 引言
在Power builder中设计一个打印格式要求较高的应用程序时,经常需要对欲打印的内容事先按一定的比例进行预览,对打印页面按一定的要求进行设置,以保证不同情况下的打印输出效果.为此,我们设计了数据窗口打印和预览程序.
1 数据源打印窗口设计
1.1 首先新建一个窗口 在该窗口中适当位置插入数据窗口控件,并为该控件命名.在Power builder的命名规则中数据窗口控件名字以“dw-”为前缀(本文以dw-1为例).
1.2 建立数据窗口对象 选择数据源和显示风格,选择要连接的数据库表和视图.为了美化和增强数据窗口对象的功能,上述操作后可对数据窗口中的字体及各工作区的布局、颜色等进行设计.也可以将静态文本、计算对象、位图图像以及线段、矩形、椭圆等对象加到数据窗口的任何区域中.完成了数据窗口的总体设计后保存数据窗口对象,数据窗口对象的名字系统默认以“d_”为前缀.由于打印和浏览有一定区别,如有些背景图案、颜色等只适合显示浏览而不适合打印,所以除了建立可视的数据窗口对象外,还应建立一个非可视的数据存储对象(本文命名为ds_1).
1.3 将数据窗口控件与数据窗口对象相关联 选择已建立的数据窗口对象名称,可适当调整数据窗口控件的大小,以适应数据窗口对象的显示预览和打印.
1.4 在该窗口的适当位置建立预览和打印按钮等 各按钮的编程代码介绍如下:①预览放大按钮的Clicked事件设计为:dx=dx+10//dx为每按一次该按钮后的放大系数dw-1.object.datawindow.print.preview.zoom=dx//设置放大功能②预览缩小按钮的Clicked事件设计为:if dx&>20then//该条件为当dx系数值≤20不许再缩小.dx=(dx)-10//每按一次该按钮后的缩小系数end ifdw-1.object.datawindow.print.preview.zoom=dx//设置缩小功能③打印按钮的Clicked事件代码设计为:Open with Parm(w-printsetup,dw-1)或Open with Parm(w-printsetup,ds-1)利用该语句在打开一个窗口时将某些参数传递给该窗口.第一项参数为要打开打印参数设置窗口;第二项指定传递给打开窗口的数据,该数据保存在Message对象的属性中.
2 打印参数设置窗口的设计
在Powerbuilder中Datawin-dow对象的打印特性有许多,可以满足不同的需要.以下是我们在应用程序设计中建立的打印环境设置窗口,在该窗口设计了三个标签对象即打印设置、页面设置和打印预览标签,在本例中标签名为tab-1,各标签页名分别为tabpage-1,tab-page-2和tabpage-3.在各标签页中分类设置打印参数.
2.1 定义实例变量object io-obj//定义对象类型变量datawindow win-dw//对应上级窗口传递来的可视数据窗口对象datastore ids-win//对应上级窗口传递来的非可视数据存储对象string dw-or-win
2.2 该窗口的Open事件中的程序代码如下:io-obj=message.powerobjectparm.typeof()//得到上级窗口传递来的对象类型CHOOSE CASE io-objCASE datawindow!//当对象类型为可视的数据窗口对象时作以下参数设置win-dw=message.powerobjectparm//将传来的数据窗口对象赋给变量win-dw这里还需要设计以下三种功能代码:・判断打开该窗体时的打印预览状态(程序代码略)・判断打印方向,包括横向、纵向、缺省(程序代码略)・打印机纸张类型与边界设置(程序代码略)
2.3 “打印设置”标签页中控件和事件代码 打印份数设计为“掩码编辑控件(Editmask)”,在其属性对话框中为该控件取名为em-copies,同时设置取值增量和取值范围等属性.
打印范围设计为两个“单选按钮(Radiobutton)”和一个“单行编辑框(Single line edit)”,在各自属性对话框中为这三个控件起名为rb-all,rb-part和sle-pagenumber.rb-all控件设计clicked事件代码为:if this.checked then//如果选择该项,则sle-pagenumber置为无效.sle-pagenumber.enabled=falsesle-pagenumber.text=’’end if对rb-part设计clicked事件代码为:if this.checked then//在sle-pagenumber中填写打印的部分页码数.sle-pagenumber.enabled=truesle-pagenumber.setfocus()end if
2.4 “页面设置”标签页中控件和事件代码 纸张大小设计 为“下拉列表框(Drodrowlistbox)”,在其属性框中起名为ddlb-papersize,并输入纸张大小的内容项.应注意的是Datawindow对象的Print.paper.size的有效值序号是从0开始的,而在下拉列表框中内容项是从1开始的,在编程时要考虑到此差别.为其所编写的modified事件代码是(程序代码略).
页边距上、下、左、右分别设计为“掩码编辑控件(Edit-mask)”,在各自的属性框中为其起名em-top,em-bottom,em-left和em-right.并对各控件设置适当的增量和取值范围.
打印方向设计为两个“单选按钮(Radio button)”,纵向按钮和横向按钮,分别起名为eb-portrait和rb-landscape.打印方向2是纵向、1是横向、3是使用缺省值.纵向按钮的clicked事件编码为:win-dw.object.datawindow.print.orientation=2横向按钮的clicked事件编码为:win-dw.object.datawindow.print.orientation=1是否选择彩色打印设计为“复选框(Checkbox)”,为其取名cbx-color.
2.5 “打印预览”标签页中控件和事件代码 打印预览和打印标尺分别为“复选框(Checkbox)”,为其取名cbx-preview和cbx-rulers.再为打印预览控件的clicked事件的编码(程序代码略)预览缩放比例在这里设计了四种“单选按钮(Radio but-ton)”,分别起名为rb-1,rb-2,rb-3和rb-4.各单选按钮的clicked事件编码为:win-dw.object.datawindow.print.preview.zoom=200在此分别取值为200,100,50,33.当然,也可以为预览缩放比例设计一个“掩码编辑控件(Editmask)”使其任意选值.其modified事件的编码可写为:win-dw.object.datawindow.print.preview.zoom=integer(tab-1.tabpage-3.em-custom.text)
2.6 窗口按钮控件 “打印机设置”按钮取名为cb-printer,对其clicked事件的编码可写为printsetup().在执行时会弹出打印机设置对话框,可在其中选择打印机类型.“取消”按钮取名为“cb-cancel”,对其clicked事件的编码可写为close(parent).“确定”按钮取名为“cb-ok”.单击该按钮,可对该窗口的三个标签页对象内的各选项进行认可,并按此进行打印或预览.其clicked事件的编码与open事件类似,也应判断是否为可视对象,再分别设置各类参数.
3 小结
以上是我们用Powerbuilder设计大型应用程序时关于Datawindow中打印的具体实现,并在实践中得到应用.当然,随着应用目的的不同,可能还有其他更为复杂的要求,本文的设计思路会对设计者有一定的启发.
关于Powerbuilder中数据窗口打印和预览的设计和应用
论文价格:0元/篇
论文用途:仅供参考
编辑:论文网
点击次数:0
Tag:
如果您有论文相关需求,可以通过下面的方式联系我们
客服微信:371975100
相关论文大全文章
- 关于组织型纤溶酶原激活物基因疗法防治血管
- 关于血清IgE水平检测及变应原皮试诊断Ⅰ型
- 16全血细胞浅析仪主要性能评价
- 关于手术室预防外科切口感染的措施
- 关于脾虚证与胃窦D细胞的关系
- 关于大鼠肠粘膜不同状态下转化生长因子的表
- 关于胚胎期豚鼠前庭终器细胞凋亡的检测
- 关于淮南地区人芽囊原虫感染的流行病学调查
- 关于肢端型系统性硬皮病1例
- 关于胎兔和成兔皮肤伤口愈合的病理学比较
- 关于食管癌放疗前后并发症支架治疗31例
- 关于钙拮抗剂尼群地平的合成新工艺
- 关于BMPsⅡ型突变受体真核表达载体的构建与
- 关于胃癌及其癌前病变中ras,c┐erbB┐2,p53癌
- 核素骨显像对肺癌骨转移特点和规律的研讨
- D1和CDK4在口腔正常上皮、炎症及鳞癌中表达