教案动态数据窗口modify.ppt

上传人:牧羊曲112 文档编号:6292857 上传时间:2023-10-14 格式:PPT 页数:10 大小:244.49KB
返回 下载 相关 举报
教案动态数据窗口modify.ppt_第1页
第1页 / 共10页
教案动态数据窗口modify.ppt_第2页
第2页 / 共10页
教案动态数据窗口modify.ppt_第3页
第3页 / 共10页
教案动态数据窗口modify.ppt_第4页
第4页 / 共10页
教案动态数据窗口modify.ppt_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《教案动态数据窗口modify.ppt》由会员分享,可在线阅读,更多相关《教案动态数据窗口modify.ppt(10页珍藏版)》请在三一办公上搜索。

1、第13章 动态数据窗口,数据窗口对象可以在数据窗口画板中创建,但这是静态数据窗口对象。为了增加应用程序的适应性和通用性,经常要求应用程序在运行时能够动态修改数据窗口的形式和内容,或者创建新的数据窗口对象,这就需要使用动态数据窗口技术。13.1 动态指定数据窗口对象 一个数据窗口控件对应一个数据窗口对象,完成固定的查询。这时是在窗口画板中选择数据窗口控件,然后在数据窗口控件的Properties窗口General标签页中的DataObject属性编辑框中指定一个已经设计好的数据窗口对象。而有时有如下情况:一个应用程序有很多查询,这些查询有类似的界面;为了某种目的,希望在一个界面中能够完成所有的查

2、询;为了利用可重用的特性提高软件的质量等等。这个时候界面是类似的,数据窗口对象是事先设计好的,只是数据窗口控件与数据窗口对象的关联要在应用程序运行时指定。这时只要在适当事件中包含如下语句dwcontrol.DataObject=其中是数据窗口控件名;DataObject是数据窗口控件的属性,其值为关联的数据窗口对象;是用字符串指定的数据窗口对象名。,结束放映,第一页,上一页,下一页,最后一页,13.1 动态指定数据窗口对象,例如:要开发一个应用系统,其中有雇员信息和客户信息两种查询,可按如下思路设计应用。1.设计一个可视用户对象,含有若干公共控件,其中包括数据窗口控件。2.用继承的方法建立各查

3、询界面,并为数据窗口控件指定相应的数据窗口对象。为此首先设计祖先窗口w_super,图中有一个数据窗口控件、两个命令按钮,两个命令按钮上显示的文本分别是开始和退出,在该窗口的Open事件脚本中有连接数据库的语句:/profile EAS Demo DB V4SQLCA.DBMS=ODBCSQLCA.AutoCommit=FalseSQLCA.DBParm=ConnectString=DSN=EAS Demo DBV4;UID=dba;PWD=SQ1Connect;为命令按钮“开始”的Clicked事件编程如下:dw_1.SetTransobject(sqlca)dw_1.retrieve(),

4、结束放映,第一页,上一页,下一页,最后一页,13.1 动态指定数据窗口对象,为命令按钮“退出”的Clicked事件编程如下:close(parent)然后用继承的方法(单击PowerBar上的Inherit按钮)建立窗口w_employee(查询雇员信息的窗口)和w_custom(查询客户信息的窗口)。为w_employee窗口的Open事件编写语句:dw_1.dataobject=d_employee其中d_employee是已经建立好的数据窗口对象。为w_custom窗口的Open事件编写语句:dw_1.dataobject=d_custom其中d_custom是已经建立好的数据窗口对象。

5、13.2 动态建立数据窗口对象使用数据窗口控件的Create函数动态创建数据窗口对象。Create函数的格式如下:dwcontrol.Create(syntax,errorbuffer),结束放映,第一页,上一页,下一页,最后一页,13.2 动态建立数据窗口对象,其中参数dwcontrol是数据窗口控件名;syntax是用字符串给出的创建数据窗口对象的源代码;errorbuffer(可选项)是一字符串变量,用于保存创建数据窗口对象过程中出错时的错误信息,如果没有指定该项则使用信息框显示错误信息。Create函数用指定的源代码动态创建数据窗口对象,并用新的数据窗口对象取代数据窗口控件中原有的数据

6、窗口对象。事实上,数据窗口对象的源代码是非常复杂的,我们几乎不可能自己来直接设计这些源代码。PowerBuilder为我们提供了源代码编辑器,对于那些PowerBuilder高手则可以直接在源代码编辑器中完成一些特殊的设计和修改。打开源代码编辑器的方法是:1.单击PowerBar上的Open按钮打开Open对话框。2.在Target下拉列表框中选择目标,在Libraries列表框中选择库文件,在Using下拉列表框中选择Source Editor(源代码编辑器,默认是Painter,即画板),在Objects of Type下拉列表框中选择DataWindows。3.最后在Object Nam

7、e文本框中选择要打开的数据窗口对象,并单击Ok按钮,则在源代码编辑器中就会打开所选择的数据窗口对象的源代码。,结束放映,第一页,上一页,下一页,最后一页,13.2 动态建立数据窗口对象,另外还可以用以下方法获得或产生数据窗口对象的源代码:1.使用Describe函数,通过访问数据窗口对象的Syntax属性获得数据窗口对象的源代码,例如语句:mle_1.text=dw_1.Describe(“datawindow.syntax”)其中mle_1是用来显示数据窗口对象源代码的多行编辑器。2.使用LibraryExport函数从PowerBuilderL库文件中导出数据窗口对象的源代码,例如语句:m

8、le_1.text=LibraryExport(“demo.PowerBuilderl”,”d_employee”,ExportDataWindow!)从库文件demo.PowerBuilderl导出数据窗口对象d_employee的源代码。3.在Library画板中,使用导出功能(选择了要导出的对象后,单击PainterBar上的Export按钮或者选择菜单“EntryLibrary ItemExport”)将数据窗口对象的源代码导出到一个文件中(结果为文本文件)。4.使用DataWindows Syntax工具获得数据窗口对象的源代码(见13.3节)。5.使用SyntaxFromSQL函数

9、根据SQL SELECT语句生成数据窗口对象的源代码。,结束放映,第一页,上一页,下一页,最后一页,13.3 动态修改数据窗口对象,一般使用Modify函数动态修改数据窗口对象,该函数的格式是:dwcontrol.Modify(modstring)其中参数dwcontrol是数据窗口控件名:modstring是修改数据窗口对象的源代码(字符串),该参数有三种格式:Objectname.property=value:修改属性CREATE object(settings):添加新对象到数据窗口对象中DESTROY COLUMN object:从数据窗口对象中删除列或对象 需要说明的是modstri

10、ng的语法格式是非常复杂的,让开发人员掌握这种语法几乎是不可能的,但是PowerBuilder提供了一个内置工具 DataWindow Syntax可以为我们生成所需要的modstring。DataWindowSyntax工具是PowerBuilder内置的应用程序,它的作用就是为开发人员生成Modify、SyntaxFromSQL、Describe函数所需要的语法。DataWindowSyntax工具被集成在New对话框的Tool标签页中,从Tool标签页中选择DataWindowSyntax则可以启动DataWindowSyntax应用程序,该应用程序为适应Modify、SyntaxFro

11、mSQL、Describe函数有若干不同界面,可以通过syntex菜单来选择。,结束放映,第一页,上一页,下一页,最后一页,13.3.1 添加对象到数据窗口,可以使用Modify函数动态向数据窗口中添加对象(如列、计算域、图片等),添加对象的Modify函数的语法格式如下:dwcontrol.Modify(CREATE object(Setting)其中CREATE是关键字,表示在数据窗口中建立新对象;object指出新建立的对象类型,如compute(计算列)、Button(命令按钮)等;Setting给出要创建对象的一组属性及其值。参数Setting的指定比较复杂,尽管可以从DataWin

12、dow Syntax工具中得到基本语法格式,然后进行编辑修改。例如:某数据窗口中有Salary(工资)列,一般情况下不需要显示工资合计信息,但是在某些情况却需要汇总信息,这时就可以考虑在程序运行时为数据窗口动态增加一个计算域,可以编写如下程序代码:string ls_setting ls_setting=compute(band=summary alignment=0+&expression=sum(salary for all)border=0 color=0+&x=654 y=64 height=76 width=741 format=GENERAL+&name=compute_1 fon

13、t.face=Arial font.height=-12 font.weight=400+&Font.family=2 font.pitch=2 font.charset=0+&background.mode=2 background.color=16777215)dw_1.Modify(create+ls_setting),结束放映,第一页,上一页,下一页,最后一页,13.3.2 删除数据窗口中的对象,程序运行时也可以使用Modify函数动态删除数据窗口中的对象,Modify函数的格式是:dwcontrol.Modify(DESTROY COLUMN object)其中DESTROY是关键字

14、,说明要删除数据窗口中的对象;COLUMN也是关键字,说明要删除的是数据列;object指出具体要删除的对象名。例1:假设在数据窗口dw_1中有一个名称为p_1的图片,如下语句可以动态删除该图片:dw_1.Modify(destroy p_1)例2:假设在打开窗口时通过检查用户名,确定该用户不能查看工资信息,那么可以用如下语句删除窗口中的工资(salary)列:dw_1.Modify(“destroy column salary”),结束放映,第一页,上一页,下一页,最后一页,13.3.3 修改数据窗口对象的属性,某些应用程序可能需要在运行时能够动态改变数据窗口对象的外部特征(例如在浏览数据窗

15、口中的数据时,为了便于浏览和对比可以使不同范围的值以不同的颜色显示),这些要求可以通过动态修改数据窗口对象的属性来实现。动态修改数据窗口对象属性的Modify函数的格式是:dwcontrol.Modify(“objectname.property=value”)其中objectname指出对象名;property指出属性名;value给出具体的属性值。注意:如果有多层属性,可以用圆点表示法表示下去。动态修改数据窗口对象属性的应用非常广泛,下面通过一个例子加以说明。例1:假设数据窗口数据源的原始SQL SELECT语句不包括WHERE子句,在应用程序运行时通过单行编辑框sle_1输入任意查询条件

16、,然后动态地为原始SQL SELECT语句增加WHERE条件。为此,首先说明一个实例变量:string original_select在窗口的Open事件中包括了如下语句:dw_1.settransobject(sqlca)/得到原始的SQL SELECT语句original_select=dw_1.Describe(DataWindow.Table.select)在命令按钮下编写如下语句即可实现查询:,结束放映,第一页,上一页,下一页,最后一页,13.3.3 修改数据窗口对象的属性,string mod_stringmod_string=DataWindow.Table.Select=&+original_select+where+sle_1.text+dw_1.Modify(mod_string)dw_1.Retrieve(),结束放映,第一页,上一页,下一页,最后一页,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号