数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
PowerBuilder中实现数据窗口打印预览通用方法

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 

  我们在文字处理过程中,常常在打印前要预览,以便控制打印效果,特别在数据打印中要有选择地打印页面,更需要预览。PowerBuilder提供了程序开发过程中的数据打印预览,下面介绍在程序应用中实现打印预览通用方法。主窗口示意图如下:

打印预览窗口
预览尺寸
自定义 30% 50% 100% 200% 标尺

236245__1.gif

一、上述W_preview窗口中各控件说明:
1. 命令按钮控件(CommandButton)
Cb_1: 用于数据窗口翻至首页。
Cb_2: 用于数据窗口向上翻页。
Cb_3: 用于数据窗口向下翻页。
Cb_4: 用于数据窗口翻至尾页。
Cb_5: 用于关闭打印预览数据窗口。
2.复选框控件(CheckBox)
Cbx_1:用于为预览数据窗口添加显示标尺。
3.掩码编辑器控件(EditMask)
Em_1:用于显示和改变打印预览的相对比例。
4.成组框控件(GroupBox)
Gb_1:用于显示一组控件的共同属性信息。
5.收音机按钮控件(RadioButton)
Rb_1:用于用户自定义打印预览显示比例。
Rb_2:用于用户设置打印预览显示比例为30%。
Rb_3:用于用户设置打印预览显示比例为50%。
Rb_4:用于用户设置打印预览显示比例为100%。
Rb_5:用于用户设置打印预览显示比例为200%。
6.数据窗口控件(DataWindow)
dw_1:用于显示打印预览结果。

二、下面讲述创建上述窗口的实现过程:
1.创建一个新窗口W_preview,设置该窗口的类型(WindowType)为Response,设置窗口的标题(Title)为“打印预览窗口"。
2.在主窗口中按示意图放置各个控件,为掩码编辑器(Em_1)定义属性,在General页中定义Text为“100”,在Mask页中为Mask定义为“###”,选中Spin Control, 设置Spin Increment为“1”,设置Spin Range的Min为“1”、Max为“200”。
3.为窗口创建结构s_preview,具体步骤是:在PowerBar工具栏中点取结构画笔(Structure),在“选择结构(Select Structure)”对话框中单击“New"按钮,进入结构定义窗口,在结构成员名(Variable Name)中输入“dw_name",在结构类型(Type)中选择“String",以“s_preview"为对象名保存此结构。
4.为窗口w_preview定义Open事件程序如下:
s_preview preview_parm
preview_parm=Message.Powerobjectparm
dw_1.Dataobject=preview_parm.dw_name
dw_1.Settransobject(SQLCA)
dw_1.Objectwindow.Print.Preview=“yes"
5.为掩码编辑器(Em_1)定义二个用户事件(User Events),二事件名称为user_change和user_room, 事件user_change 的事件标识为pbm_enchange,它是在编辑器值发生改变时触发,事件user_room的事件标识为pbm_custom01,它是在用户调用TriggerEvent()函数时触发,下面介绍这二事件的程序。
user_change事件程序如下:
IF Integer(This.Text)>0 And Integer(This.Text)<=200 THEN
Dw_1.Object.Datawindow.Print.Preview.Zoom=Integer(This.Text)
END IF
Rb_1.Checked=True
user_room事件程序如下:
IF Integer(This.Text)>0 And Integer(This.Text)<=200 THEN
Dw_1.Object.Datawindow.Print.Preview.Zoom=Integer(This.Text)
END IF
6.收音机按钮Rb_2的Clicked事件程序如下:
Em_1.Text=“30”
Em_1.TriggerEvent("user_room")
7.收音机按钮Rb_3的Clicked事件程序如下:
Em_1.Text=“50”
Em_1.TriggerEvent("user_room")
8.收音机按钮Rb_4的Clicked事件程序如下:
Em_1.Text=“100”
Em_1.TriggerEvent("user_room")
9.收音机按钮Rb_5的Clicked事件程序如下:
Em_1.Text=“200”
Em_1.TriggerEvent("user_room")
10.复选框Cbx_1的Clicked事件程序如下:
IF Cbx_1.Checked=TRUE THEN
Dw_1.Object.Datawindow.Print.Preview.Rulers=“yes"
ELSE
Dw_1.Object.Datawindow.Print.Preview.Rulers=“no"
END IF
11.命令按钮Cb_1的Clicked事件程序如下:
Dw_1.ScrollToRow(0) //翻至首页
12.命令按钮Cb_2的Clicked事件程序如下:
Dw_1.ScrollPriorPage() //翻至前页
13.命令按钮Cb_3的Clicked事件程序如下:
Dw_1.ScrollNextPage() //翻至后页
14.命令按钮Cb_4的Clicked事件程序如下:
Dw_1.ScrollToRow(999999999) //翻至尾页
15.命令按钮Cb_5的Clicked事件程序如下:
Close(Parent) //退出打印预览
16.以w_preview为窗口名,保存上述窗口。

三、调用上述通用打印预览窗口(w_preview)
被预览的数据窗口可以是普通数据窗口,也可以是复合数据窗口,假设要预览的数据窗口为Dw_2,用如下方法调用:
s_preview ls_parm
ls_parm.dw_name=“temp.psr”
dw_2.Saveas("temp.psr",PSREPORT!,True)
OpenWithParm(w_preview,ls_parm)




相关文章

相关软件