PowerBuilder技术教程 教学课件 ppt 作者 戴士弘 高职 第5-6章 第5章

上传人:E**** 文档编号:89354564 上传时间:2019-05-23 格式:PPT 页数:138 大小:4.31MB
返回 下载 相关 举报
PowerBuilder技术教程 教学课件 ppt 作者 戴士弘 高职 第5-6章 第5章_第1页
第1页 / 共138页
PowerBuilder技术教程 教学课件 ppt 作者 戴士弘 高职 第5-6章 第5章_第2页
第2页 / 共138页
PowerBuilder技术教程 教学课件 ppt 作者 戴士弘 高职 第5-6章 第5章_第3页
第3页 / 共138页
PowerBuilder技术教程 教学课件 ppt 作者 戴士弘 高职 第5-6章 第5章_第4页
第4页 / 共138页
PowerBuilder技术教程 教学课件 ppt 作者 戴士弘 高职 第5-6章 第5章_第5页
第5页 / 共138页
点击查看更多>>
资源描述

《PowerBuilder技术教程 教学课件 ppt 作者 戴士弘 高职 第5-6章 第5章》由会员分享,可在线阅读,更多相关《PowerBuilder技术教程 教学课件 ppt 作者 戴士弘 高职 第5-6章 第5章(138页珍藏版)》请在金锄头文库上搜索。

1、第 5 章 数据窗口使用,5.1 制作学生信息维护窗口 5.2 设置数据窗口控件的属性 5.3 数据窗口的函数和事件 5.4 事务对象 5.5 出错处理 实训项目与习题,5.1 制作学生信息维护窗口,实例5.1 制作学生信息维护窗口 (1) 实例的功能要求: 在实例5.1中, 我们将对学生信息窗口进行维护, 通过数据窗口控件完成学生数据的增加、 删除、 保存、 查询等功能。 在界面上我们考虑在实例4.1的基础之上增加最前、最后、 上、 下记录翻页和插入、删除、 拷贝、 保存按钮, 来实现对学生信息的维护功能。,(2) 实例的结构: 实例5.1是在实例4.1的基础之上扩充, 所以没有新增的窗口和

2、数据窗口对象, 只是在实例4.1的w_student_detail 窗口上添加信息维护按钮, 新增按钮如表 5-1所示。,表 5-1 窗口(w_student_detail)中的新增控件,(3) 实例的创建过程: 我们首先要在PowerBuilder开发环境中打开实例4.1的w_student_detail窗口, 再在窗口上放置信息维护按钮, 新增按钮参照表 5-1设置属性。 调整刚放置的按钮, 使调整后界面效果如图 5-1所示。 编写脚本。 在本实例中, 我们需对各个维护按钮的Clicked 事件编写脚本, 实例4.1的其它脚本则不必修改。, 【最前记录】 cb_first按钮的Clicke

3、d!事件 / clicked for cb_first dw_1.scrolltorow(1) /跳转到第一条记录 【上一记录】 cb_prior按钮的Clicked!事件 / clicked for cb_prior dw_1.scrollpriorrow( ) /跳转到上一条记录 【下一记录】 cb_next按钮的Clicked!事件 / clicked for cb_next dw_1.scrollnextpage( ) /跳转到下一页记录 【最后记录】 cb_last按钮的Clicked!事件 / clicked for cb_last dw_1.scrolltorow(dw_1.ro

4、wcount( ) /滚动到最后一条记录,【插入记录】 cb_insert按钮的Clicked!事件 / clicked for cb_insert dw_1.insertrow(dw_1.getrow()+1) /在当前记录后增加一条空记录 dw_1.scrollnextrow( ) /跳转到新增的那条记录上 【删除记录】 cb_delete按钮的Clicked!事件 / clicked for cb_delete if dw_1.rowcount( )0 then /数据窗口上的记录数大于零 if messagebox(“提示信息“,“确认删除当前记录吗“,Question!,& YesN

5、o!,2)=1 then /确认是否删除当前记录 dw_1.deleterow(0) /删除当前记录 end if end if, 【拷贝记录】 cb_copy按钮的Clicked!事件 / clicked for cb_copy if dw_1.getrow( ) 1 then return /当前的记录号是否大于零 dw_1.RowsCopy(dw_1.GetRow(), dw_1.getrow( ), Primary!, /回滚事务 end if,(4) 在PowerBuilder开发环境中, 单击【Run】, 实例开始运行, 打开学生主细目窗口。 用户单击各个按钮, 可以使记录翻到最前

6、、 最后以及上一条、 下一条记录, 也可以进行插入、删除记录的操作。插入记录是在当前记录之后插入一条, 拷贝记录是把当前记录拷贝一条以进行修改, 也方便插入比较相似的新记录。 需要注意的是进行插入、 删除和拷贝修改后, 必须再保存才可以使记录操作真正地修改数据库中的内容。 当然主细目窗口的功能依然可以实现。 单击【返回】则退出运行, 返回PowerBuilder开发环境。 运行效果如图 5-1 所示。,(5) 本实例中的操作主要是通过用户单击按钮来进行, 至于窗口怎样打开、 数据库如何关联及数据的显示等与实例4.1相同, 此处就不再重复。,(6) 在实例4.1中我们接触了数据窗口的RowFoc

7、usChanged 事件, 在实例5.1 中我们又涉及到有关数据窗口的几个函数, 那么常用的数据窗口事件还有哪些及怎样触发呢?还有哪些常用的函数呢, 本章接下来就会安排这方面的内容。 本实例是在最理想情况下进行的数据维护工作, 也就是说插入、删除、拷贝等工作均可以顺利进行。但实际上的操作可能会出错, 比如插入库中本来就存在的该学号学生的信息,或者在保存数据时不能够正确保存, 以及在读者自己创建的成绩表维护窗口中插入学生表中不存在的学生(或课程表中不存在的课程)的成绩信息等等, 在这些操作中发生意外情况的处理我们称之为出错处理。,5.2 设置数据窗口控件的属性,将数据窗口控件放置在窗口上之后,

8、右击数据窗口控件, 弹出如图 5-2所示的菜单。在图 5-2所示的菜单上单击各个选项, 可以分别完成以下工作。 (1) Script: 进入该数据窗口控件的脚本画板, 从而可以选择事件进行脚本编写工作。 (2) Modify DataWindow: 打开该数据窗口控件上联系的数据窗口对象, 进入数据窗口画板, 可对该数据窗口对象进行修改。 (3) Cut、 Copy、 Clear、 Duplicate: 对该数据窗口控件进行编辑操作, 比如剪切、 拷贝、 清除、 在窗口上复制一个副本等。,图 5-2 右击数据窗口控件的弹出菜单,(4) Bring to Front、 Send to Back:

9、 如果在数据窗口控件上有另外一个控件, 将该数据窗口控件设置为前景或背景。 (5) Properties: 打开如图 5-3所示的属性设置对话框。 接下来介绍其General属性的设置及由此而引起的控件外观的变化。 Name: 数据窗口控件的名称, 通常使用dw_作前缀; DataWindow Object Name: 该数据窗口控件关联的数据窗口对象的名称; Title: 数据窗口控件的标题; ,图 5-3 数据窗口控件的属性对话框, Visible: 此选项系统默认被选中, 所以此数据窗口控件可见。 如果没被选中, 则不可见, 运行时及设计阶段在窗口上均不可见。语句 Dw_1.visibl

10、e = True 或 Dw_1.visible = False 可在运行阶段设置其为可见或不可见。 在设计阶段的用户窗口上如果该控件不可见, 就不能对其进行任何操作。 如果要再次对其进行操作, 必须使其可见, 步骤如下: 在菜单画板中打开该数据窗口所在的窗口, 单击EditControl List., 弹出如图 5-4所示Control List对话框。,图 5-4 Control List对话框, 在Controls 列表框中单击将要改变Visible属性的控件名。 在Control List对话框单击【Properties.】, 则弹出该控件的属性设置对话框。 在属性设置对话框中单击【Vi

11、sible】复选框, 使其改为选中。 单击【OK】, 关掉对话框, 返回窗口画板, 会发现刚才不可见的控件又显示出来。 这一步骤适应于所有控件的相应操作。, Border: 指定边框风格, 共有如3D Lowered、 3D Raised、 Box、 None、 Resize、 ShadowBox等六种, 其中, 选择Resize后 运行时允许用户改变数据窗口控件的大小。 Title Bar: 此选项系统默认不被选中。 如果选中后, 在数据窗口控件上显示标题栏, 显示在“Title”中设置的标题, 并且可根据需要选择标题栏上是否增加最大化、 最小化按钮以及控制菜单, 这些部件分别对应于复选框“

12、Maximize Box”、 “Minimize Box”、 “Control Menu”, 选中“Control Menu”后, 系统自动在标题栏上增加关闭按钮。, Enabled: 系统默认选中此选项, 所以该数据窗口可用, 否则不可使用。语句 Dw_1.Enabled = True 或 Dw_1.Enabled = False 可使数据窗口控件在运行时可用或不可用, 但不可用时仍然可见。 HScroll Bar: 选中恢复选框时显示水平滚动条。 VScroll Bar: 选中该复选框时显示垂直滚动条。,图 5-6 设置数据窗口的Icon属性,5.3 数据窗口的函数和事件,5.3.1 数据

13、窗口缓冲区 在前面的几个实例中, 我们都通过数据窗口控件在窗口上显示数据。在实例5.1 中我们还对记录数据进行了插入、删除等维护操作。这是我们从表面上看到的数据记录的表现和数据窗口的行为。实际上, 数据窗口从数据库中检索到的数据都放置在内存中, 这片内存我们称之为缓冲区。数据窗口的缓冲区共有4种, 分别为: Primary缓冲区、Delete缓冲区、Filter缓冲区和Original缓冲区。,最重要的缓冲区是Primary缓冲区。此缓冲区保存有所有当前有效的记录(显示在数据窗口控件中的记录), 在实际操作中, 当使用数据提取函数Retrieve( )检索数据时, 检索到的数据放置在Prima

14、ry缓冲区中。 当插入数据时, 插入的数据也存放在此缓冲区中。 该缓冲区的记录条数通过RowCount( )函数得到。,Delete缓冲区包括了所有通过DeleteRow( )或RowsMove( )函数从Primary缓冲区中删除的记录, 即删除数据时, 被删除数据从Primary缓冲区移动到Delete缓冲区。 该缓冲区的记录数通过DeleteCount( )函数得到, RowsMove( )函数用于DataWindow之间和不同缓冲区之间移动行。 当使用数据窗口控件的对象函数Update( )将数据窗口的修改发送到数据库管理系统后, 被成功删除的记录均从Delete缓冲区中清除。,Fil

15、ter缓冲区存放从数据源中检索出而通过过滤条件过滤掉的记录, 该缓冲区的记录条数通过数据窗口控件的对象函数FilterCount( )得到。 在第 4 章中我们介绍过定义数据窗口对象的过滤条件, 那些满足数据源定义(即满足Select语句中的条件)而不满足过滤条件的行被放置到Filter缓冲区。 第四个缓冲区是Original缓冲区(这个缓冲区在5.0版本以前被隐藏了), 是用来存储从数据库检索来的各行的值。这四个缓冲区的关系如图 5-7 所示。,图 5-7 数据窗口四个缓冲区关系图,可以通过数据窗口控件的对象函数SetFilter( )动态改变过滤条件, 然后使用数据窗口控件的对象函数Fil

16、ter( )更新Primary缓冲区和Filter缓冲区。 数据窗口控件只显示Primary缓冲区中的数据。 许多数据窗口控件函数都能访问特定的缓冲区。指定哪一个缓冲区起作用的枚举数据类型为dwBuffer, 它具有以下值: Primary!、Delete!和Filter!。比如在实例5.1的拷贝数据功能的实现中我们就用到了指定Primary缓冲区的Primary!值。,5.3.2 编辑控件 在处理数据窗口时, 有一个重要的概念是编辑控件, 这是PowerBuilder在操纵数据窗口中的数据时的处理方式, 即先将数据作为一个文本放在一个文本型控件中, 这个文本型控件就是编辑控件。实际上用户同数据窗口打交道是通过编辑控件进行的, 它在接受用户输入

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号