前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

PB中数据窗口的精确页面打印技术,PowerBuilder,数据库 在线留言 | Alexa查询 | 在线工具 | 技术论坛 | 会员注册 | 繁文 首页 WEB编程 WEB设计 WEB标准 脚本特效 WEB安全 数据库 开发工具 资源下载 WEB资讯 欢迎访问阿里西西WEB开发技术网站! → ASP编程| PHP编程| JSP编程| ASP.NET| C#.NET| VB.NET| Cgi/Perl| XML/RSS| → WEB设计软件| WEB设计艺术| WEB设计规范| WEB设计欣赏| → HTML| XHTML| CSS样式表| → JavaScript| VBScript| → WEB服务器| WEB黑客攻防| WEB攻防工具| → ACCESS| MSSQL| MySQL| Oracle| PowerBuilder| FoxPro| DB2| → Dreamweaver| FrontPage| Fireworks| FLASH| Ultradev| 精品工具| → 电子教程手册| 语言参考手册| 网站开发文档| 精典源码函数| → 互联网新闻| WEB市场推广| WEB程序员专栏| ACCESS MSSQL MySQL Oracle PowerBuilder FoxPro DB2 首页 / 数据库 / PowerBuilder / [PowerBuilder] PB中数据窗口的精确页面打印技术 作者:[转载] 文章来源:http://www.alixixi.com/ 更新时间:2005-12-13 1.引言   自PowerBuild4.0问世以来,以其简洁高效的集成开发环境、强大的数据窗口技术、(几乎)无所不能的数据库访问能力,越来越受到编程人员的青睐。据Sybase自己的统计,目前全球有60万程序员和系统分析人员在使用他们的PowerBuilder和S-designer,进行各种类型的应用程序开发。最新发布的PowerBuilder6.0族系列开发工具,直接支持ActiveX技术、ServerPush技术,对分布式计算模型的定义更加明确,实现更为简便,并可以利用数据窗口直接生成HTML格式文件,等等。所以,PowerBuilder 已成为C/S模式应用和基于InterNet 模式应用的主要开发工具之 一。   数据窗口(DataWindow)是PowerBuilder的专利,也是PowerBuilder应用程序的核心和精华所在.PowerBuilder通过丰富的属性和函数来控制数据窗口的显示和数据操纵,但对数据窗口的打印支持似乎过于简单,只有一个Print() 窗口函数和一个PrintDataWindowPowerScript函数,并且这两个函数的功能几乎都是一样,都只简单地将选定数据窗口原样送入打印队列,本身 不具备页面控制功能。为此很多程序员抱怨这是PowerBuilder的一个缺陷,其实,PowerBuilder对打印功能的支持一样十分周到全面,只不过应用场合不同,需要用户自行加以选择。   以下是对PowerBuilder打印控制功能的详尽分析,并介绍一个实用的数据窗口页面控制程序。   2.PowerBuilder实现动态页面控制的途径 PowerBuilder数据窗口有一对函数Describe 和Modify,用于动态描述和修改数据窗口结构,与其它相关函数结合可以完成动态生成数据窗口、任意改变数据窗口显示方式、修改打印属性等。这两个函数是控制与修改数据窗口的核心函数,其使用方法如下:   1)Describe获取数据窗口特定属性值    语法:dwcontrol.Describe(propertylist)    参数:dwcontrol数据窗口(或datastore)控 件名。   propertylist用字符串表示的数据窗口属性。    返回值:返回一个表示属性的字符串。    数据窗口属性值也可以用dwcontrol.object.Datawindow.property来完成直接取得。   2)Modify修改数据窗口特定属性    语法:dwcontrol.Modify(modstring)    参数:dwcontroldwcontrol数据窗口(或datastore)控 件名。   modstring用字符串表示的数据窗口属性。    返回值:如果函数执行成功返回“1”。    与Describe类似, 修改数据窗口属性可以用:    dwcontrol.object.Datawindow.property=value直 接赋值。   3)与打印有关的数据窗口属性    数据窗口属性中与打印有关的有24个,其中实现打印页面控制的几个属性是:    Copies:打印份数。    Filename:如果不为空,表示输出到文件的文件名。    Orientation:打印方向1=横向,2=纵 向    Page.Range:输出页范围,要打印1,2,和5到10 页,输入: "1,2,5-10"。Page.RangeInclude:本 次打印范围,0=全部,1= 偶数页,2= 奇数页。Paper.Size:纸张大小。    Scale:打印比例。   程序中利用Modify函数设置好这些属性后,即可实现动态修改数据窗口的目的,再调用datawindow.print()函数,完成最后的打印输出。 一个通用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中使用FORMULA ONE入门介绍 [2005-12-13] 下一篇:PB中消息对话框的居中显示 [2005-12-13] 网友评论 相关搜索 关于我们|网站地图|隐私和安全性|联系我们|在线工具|友情链接|粤ICP备05097432号 ©2004-2005 Alixixi Development Team.All rights reserved 保留所有权利。 访问本网站表明您同意信息使用条款。