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

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

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

1、第 9 章 数据窗口高级技术,9.1 交叉报表 9.2 用户自设定条件的查询 9.3 动态设置数据窗口 9.4 数据图表 9.5 下拉数据窗口的使用 9.6 DataWindow中常用的对象及其属性 实训项目与习题,9.1 交 叉 报 表,实例 9.1 交叉报表的统计功能 我们先从两个数据窗口所看到的信息来看什么是交叉报表。 (1) 实例背景和要求: 某医学院拟选派1人参加联合国卫生组织的救灾活动。按照要求, 应在耐力 , 身体的灵敏度 , 外语和专业知识4个方面选拔综合指标最优的学生参加, 全校有许多学生报名参选。考核部门对每个人的考核结果形成一个记录:,将以上数据项构造成数据表test_r

2、eport, 其结构如下: number integer PK name char(10) course char(10) score integer,所有学生的科目考核结束后, 将数据录入数据表test-report, 如图 9 - 1 所示。,图 9 - 1 简单数据报表,交叉报表是根据数据形成的具有统计功能的报表。由上述表test-report 生成的一个交叉报表实例如图 9-2 所示。对比图 9 - 1 和图 9 - 2 不难发现, 采用交叉报表形式所反映的统计信息更加丰富直观。,图 9 - 2 交叉报表数据窗口,(2) 设计交叉统计表操作步骤: 在系统的主画板上单击【DataWind

3、ow】。 单击【New】。 在Presentation Style 中单击【crosstab】, 单击【OK】。 在数据源tables中单击test_report, 单击【Add All】。 再单击【OK】。 可见如图 9 - 3 的交叉报表定义窗口。 用鼠标左键点中name 字段名, 移动鼠标, 将其拖入窗口左下的Rows 框。 类似的操作将Course 字段名拖入Columns框, 将Score字段名拖入Values 框, 结果如图9 - 4 所示。,图 9 - 3 交叉报表定义窗口,图 9 - 4 定义统计计算公式, 双击Values 框中的公式sum(score for crossta

4、b), 在如图 9 - 5 所示的公式设置窗口中先单击函数avg(x for crosstab), 然后单击字段名score。 这时公式设置窗口上部的公式变成 avg(score for crosstab) (图 9 - 5 中的 ), 单击【OK】关闭公式设置窗口。,图 9 - 5 使用公式向导, 单击【OK】, 产生的数据窗口如图 9 - 2 所示。 10 右击avg(val for all), Properties, Format , 在数据显示格式中选0.00, 单击【OK】。 11 类似地将avg(grand_avg_val for all) 和crosstabavg(1)的显示格式

5、改为0.00。 12 在菜单中单击DesignPreview, 数据显示如图 9 - 6 所示。关闭数据窗口, 存盘, 键入对象名d_crosstab,单击【OK】结束数据窗口的制作。,图 9 - 6 交叉报表的数据窗口对象,13 建立一个窗口, 在窗口中加入一个数据窗口控件, 调整至适当大小(在第12步曾经看到数据显示窗口的大小), 双击数据窗口控件, 在DataWindow Object Name 框中填入d-crosstab, 注意到数据窗口控件的控件名为dw_1。选中HscrollBar 和VscrollBar 选项, 单击【OK】。,14在窗口的Open 事件中键入如下的数据库连接脚

6、本和数据检索语句: /连接数据库 sqlca.DBMS=“ODBC“ sqlca.Database=“student“ sqlca.UserId=“dba“ sqlca.DbParm=“Connectstring=DSN=student;UID=dba;PWD=sql“ connect; dw_1.settransobject(sqlca) /查询数据 dw_1.retrieve( ),15 在系统菜单中选FileSave As, 键入窗口名w-crosstab, 单击【OK】将窗口存盘。 16 执行窗口, 在窗口执行时的数据显示格式与第12步看到的预览效果完全相同。,(3) 代码分析: 从图

7、 9-2 可看到数据显示的两组分析数据。一组是纵向的Grand Total, 它们分别是每个人各科目的平均得分。如李小兰的四科平均得分为75分。 而横向的Grand Total 则是每一个科目所有人的平均分数。 如: 专业知识的平均得分是77.67分, 反映该项指标与其它三项相比, 参选者平均水平最低。 认真对比图 9 - 1 和图 9 - 2, 可以看出, 交叉报表实际上是将某列的每个值显示为表的一个列, 并自动统计分类, 统计行和列的总和, 均值以及数目等计算, 如图 9 - 7 所示。,图 9 - 7 交叉报表的执行效果,交叉数据报表在企业的经营流水帐目统计中最为方便。 例如, 企业日记

8、帐中记录了各个员工每天生产的产品及数量。 到月底要统计每个员工生产每一种产品的总量和所有产品的总量, 就可以采用类似于本例的数据交叉报表直接取得, 不需要任何的统计编程。 因此, 交叉报表是统计汇总的一个非常有效的工具。,9.2 用户自设定条件的查询,9.2.1 数据窗口的查询模式( QueryMode) QueryMode 是DataWindow 对象的一个属性。 当该属性为真值时, 用户可以根据自己的需要设定数据窗口的查询条件, 此时数据窗口只提取满足条件的数据记录。 实例9.2 使用QueryMode 为用户提供设置查询条件的机会,(1) 实例要求: 让用户自己确定查询条件。 为了便于讨

9、论, 我们假设数据库中已经有如图 9 - 8 所示的数据记录。table 名为score-report, 字段名分别为studentID char(7), name char(8), d1, d2, d3, d4, d5, d6 numeric(5,1), 主键为studentID。如果读者的数据库环境中没有这个表, 可参照第2章建立此表。,图 9 - 8 学生成绩表数据记录,(2) 操作步骤: 在系统主画板上单击【DataWindow】, 再单击【New】。 在Presentation Style 中选择Grid , 单击【OK】。 选择score_report, 单击【Add All】,

10、再单击【OK】。 单击FileSave As ,键入d_querymode, 单击【OK】。 生成的无条件数据窗口如图 9 - 9 所示。,图 9 - 9 成绩表数据窗口的数据对象, 新建一个窗口。 在窗口中加入数据窗口控件dw_1, 并指定dw_1的数据窗口对象名为d_querymode。 在窗口上加入三个按钮控件enable, disable 和 retrieve 。 在窗口的 Open 事件中键入连接数据库脚本(参见实例9.1)。 在【enable querymode】按钮的Clicked 事件中键入如下语句: dw_1.Object.DataWindow.querymode= “yes

11、“,10 在【disable querymode】按钮的Clicked 事件中键入如下语句: dw_1.Object.DataWindow.querymode= “no“ 11 在【retrieve】的Clicked 事件中键入如下语句: Dw_1.retrieve( ) 12 将窗口对象存盘并命名为w_querymode, 执行此窗口。 单击【enable querymode】, 可见条件输入表格, 在计算机网络栏栏内键入80, 在运筹学栏内键入80, 在计算机原理栏内键入75, 如图 9 - 10 所示。,图 9 - 10 在querymode 下用户输入查询条件,13 单击【disabl

12、e querymode 】, 再单击【retrieve】, 窗口的显示如图 9 - 11 所示。,图 9 - 11 令querymode 为No则数据查询条件窗口立即变成数据显示窗口,(3) 代码分析: 在querymodetrue 的情况下, 数据窗口不是显示数据, 而是显示一个空白表格, 使用户能够在空白表格中填入查询条件。 当程序将querymode 设为false关闭querymode 属性后, 系统将用户输入的查询条件记录下来, 并将数据窗口恢复成显示数据的表格, 但此时用户的条件并未生效, 而是准备作为下一个retrieve( )语句的查询条件。,在上述的执行过程中, 当窗口打开时

13、执行连接数据库的脚本,而数据窗口并未取数据。 当用户单击【enable querymode 】时, 数据窗口变成查询模式(querymode属性成真值), 因而变成了如图 9 - 10 所示的条件输入窗口。 输入条件后并没有立即按输入的条件取数据, 事实上如果不按一次 【disable 】, 【retrieve】是无效的。 当按一次【disable】后数据窗口变成非查询模式(querymode 属性成假值), 这时按【retrieve】才将数据按照输入的条件取出并显示在数据窗口中。,在querymode 有效时, 还可以将querysort属性设为true, 使条件输入表的第一行出现排序控制项

14、。 用户可在表中选择一个排序条件, 例如, 在【enable querymode】的Clicked!事件中增加一个语句 dw_1.Object.DataWindow.querymode= “yes“ dw_1.Object.DataWindow.querysort= “yes” /使条件输入表的 第一行成为排序控制 以后在执行窗口w_1时,用鼠标单击窗口的第一行将出现排序选项。 一旦选择了排序选项, 则单击【retrieve】后出现的数据将按此排序条件排列记录顺序。,9.2.2 数据窗口的Criteria 属性 实例9.3 使用数据窗口的Criteria 属性向用户提供设置数据查询条件的机会

15、(1) 实例要求: 使用户能够自己选择查询条件。,(2) 操作步骤: 建立窗口 w_criteria, 并加入数据窗口控件dw_1, 设定控件的数据窗口对象名为d_querymode。注意到d_querymode 是无查询变量的普通数据窗口。 在窗口w_criteria 的Open 事件中加入数据窗口与数据库连接的脚本(参见实例9.1)。, 在数据窗口的下面增加一个按钮, 设定显示文本为“retrieve”, 并为其Clicked 事件键入如下脚本: dw_1.Object.d1.Criteria.Dialog= “Yes“ dw_1.Object.d2.Criteria.Dialog= “Y

16、es“ dw_1.retrieve( ) 将窗口w_criteria 存盘并运行窗口, 单击【retrieve】时程序将出现如图 9 - 12 所示的条件输入对话框。 ,图 9 - 12 Criteria Dialog, 在d1列输入条件, 如85; 在d2列输入条件, 如80。之后单击【OK】, 数据窗口将从数据库中读出满足d185 and d280 的记录并显示在窗口中(参见 图 9 - 13)。,图 9 - 13 关闭Criteria对话框后数据立即显示,9.3 动态设置数据窗口,9.3.1 在脚本中取得和修改数据窗口对象的属性 实例9.4 允许用户修改数据列的标题 (1) 要求: 当鼠标右击数据窗口标题时, 在被击点上出现单行

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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