转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件使用 >> 常用软件 >> 正文
PowerBuilder应用开发系列讲座(5)         

PowerBuilder应用开发系列讲座(5)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:660 更新时间:2009/4/24 21:43:36
p> DataWindow的打印输出
  在PowerBuilder应用程序的开发中,各种报表的打印功能是必不可少的。Power-Builder4.0提供了大量与打印机进行通信的内部函数,用于各种打印输出。运用这些函数,您不仅可以打印常见的DataWindow对象,还可以打印字符串、位图、图形对象,甚至是全屏。

DataWindow的两种打印方法:
  在PowerBuilder中我们可以有两种方法打印DataWindows。一种最简单的方法就是直接地将DataWindow提交给打印机,另一种方法是将大量的DataWindow(或混合其他的对象)放在一起作为一个单一的打印作业提交输出。

  方法一:不指定打印作业,而发送一个单一的DataWindow。将报表传给打印机输出的最简单的方式是使用DataWindow对象的Print()函数,您只需简单指明您打印的DataWindow控件的名字就可以得到该DataWindow生成的报表了。例:

dw_data.print({cancel dialog})

  Print()函数不需要任何参数,但是它有一个可选参数,可以控制PowerBuilder是否显示Print Cancel对话框窗口(缺省为自动出现,如图1所示)。Cancel dialog参数是一个布尔型变量,其缺省值为真。
一 Print:HP LaserJet HP on LPT1:
Preparing page 1 of 2
Cancel
除非特别指定,否则将在打印时缺省出现Print Cancel对话框。Print()函数还有一些格式可控制打印正文字符串,但是它们要求首先打开一个打印作业。这些格式将在后面解释。

  方法二:集成多个DataWindow作为一个打印作业。您可以将提交打印的多个DataWindow作为一个单一的打印指令。为实现这一功能必须打开一个所谓打印作业(Print job),即发送给打印机一个单一工作单元,其中可以包含多个子任务。在PowerBuilder中一个打印作业由它的作业代号唯一指定。我们使用PrintOpen({job name})函数打开一个作业,并得到打印作业号。PrintOpen()函数有一个可选参数,就是打印作业名称,这个作业名字将作为Windows 3.x的Print Manager作业集中的名字。当您使用PrintOpen()函数时,系统将另起一页开始打印。当然在打印作业中,您还可以使用其他函数换页,比如将在后面讲述的PrintPage()函数。
  在您打开了一个作业号后,就可以在这个作业内使用下列函数继续其他各种各样的打印项目。

1)在打印作业中加入字符串:
  我们也可以使用另外一个与Print()函数 ⒉煌暮创蛴∽址?:

PrintText(print_job_number,string,x,y{,font_number})

  这个函数将包含在string参数中的正文字符串当作一个对象进行打印。这个打印的字符串在由X,Y参数(以千分之一寸为单位)指定的坐标处开始。font_number参数是一个可选参数,缺省使用当前字型,否则font_number的值可以从0到8,0是打印机缺省的字型,1-8是使用后面讲述的PrintDefineFont()函数定义的字型。这个函数不像其他指定坐标的函数,它将改变打印光标的位置。这个函数的返回值是打印光标的新X坐标,但它不改变Y坐标。

2)在打印作业中打印对象
  下面的这些函数可以使您在打开的打印作业中打印不同的对象。这些函数中的任一个指定X、Y坐标的函数都不会改变当前打印光标位置。

objectname.Print(print_job_number,x,y {,width,height})

  这个函数可以将任何一个object_name指定的对象放在print_job_number定义的打印作业中打印,这个对象可以是一个窗口也可以是一个DragObject类的继承类(包括了所有的窗口控件)。X、Y参数指定了一页中的坐标,您可以指出所打印对象出现的位置(以千分之一寸为单位)。Width和Height参数是可选的参数,用来指明你所需的打印对象的宽和高(仍以千分之一寸为单位)。如果缺省,PowerBuilder将使用对象本身的尺寸打印。

PrintBitmap(print_job_number,bitmap,x,y,width,height)

  这个函数将在由X,Y参数(千分之一寸为单位)指定的打印区域上打印一个位图。bitmap参数是一个包含要打印位图的文件名的字符串(例:BRUSH.BMP)。Width和Height参数指定位图显示的宽和高,这个参数并不是可选的。输入0值,意味着位图按它本身的值打印。

PrintDataWindow(print_job_number,datawindowcontrol)

  这个函数将一个DataWindow控件的内容作为这个指定的打印作业的一部分来打印。由于Power-Builder使用在DataWindow对象中定义的字型,Print-DefineFont()和PrintSet-Font()函数不对其产生影响。Powersoft建议如用PrintDataWindow,那么在这个打印作业中就不需要使用其它函数。因为这个函数将使用整张纸,每一次调用PrintDataWidnow,您打印的下一项都将另起一页。

PrintLine(Print_job_number,X1,Y1,X2,Y2,thickness)

  这个函数将打印一指定宽度的线。这条线将在由X1,Y1参数(以千分之一寸为单位)指定的坐标处开始,在由X2,Y2参数(也以千分之一寸为单位)指定的坐标处结束。thickness参数是一个整型变量,它指定了这条线的宽度,以千分之一寸为单位。

PrintOval(print_job_number,x,y,width,height,thickness)

  这个函数打印一个椭圆(如果宽度和高度相同则形成一个圆)它的轮廓线的宽度由thickness指定。椭圆都由一个想象的边框包围,X,Y参数指定了这个界框的左上角的位置(千分之一寸为单位),width,heigh为这个边框的高和宽。

PrintRect(print_job_number,x,y,width,height,thickness)

  除了它是打印一个矩形外,这个函数与PrintOval()函数完全一样。

PrintRoundRect(print_job_number,x,y,width,height,thickness)

除了它是打印一个圆角矩形外,这个函数与PrintO-val()函数完全一样。


[办公软件]在sybase中插入图片、PDF、文本文件  [办公软件]安装Sybase ASE
[办公软件]linux指令大全(完整篇)  [办公软件]Linux新手入门常用命令大全
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法
[办公软件]Linux程序员必读:中文化与GB18030标准  [办公软件]linux指令大全
[办公软件]制作Linux启动盘的四种方法  [办公软件]Linux文件系统的反删除方法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 办公软件  · 系统软件
    · 常用软件  · 聊天工具
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台