第15章 数据窗口对象_第1页
第15章 数据窗口对象_第2页
第15章 数据窗口对象_第3页
第15章 数据窗口对象_第4页
第15章 数据窗口对象_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库管理系统西南交通大学交通运输学院 第十五章数据窗口对象 数据窗口是PowerBuilder提供给开发人员快速建立应用程序的强有力的工具 也是PowerBuilder与其它面向对象的数据库应用前端开发工具的最主要区别 它以自动化的用户 数据库接口为开发人员最大限度地节省了时间和精力 但这种自动化并不限制开发人员的主观能动性 开发者能够以独具特色的方式灵活运用数据窗口 数据窗口包括两方面的内容 数据窗口对象和数据窗口控件 数据窗口对象主要用于展示数据并允许用户增删改数据 数据窗口控件则把数据窗口对象放置到窗口上并呈现在用户面前 我们在本章学习数据窗口对象 构造数据窗口对象时 首先要考虑两方面的内容 数据源和显示风格 数据窗口对象中的数据来源于数据源 数据源决定了数据窗口对象从什么地方得到数据 显示风格决定了数据窗口以何种方式展示 表现数据 PowerBuilder支持五种数据源 快速选择 SQL选择 查询对象 外部数据源以及存储过程 每种数据源都有其独到之处 开发应用程序时往往会多种数据源并用 PowerBuilder的数据窗口提供了十一种显示风格 列表 Tabular 表格 Grid 自由格式 Freeform 标签 Label 分栏 N Up 分组 Group 交叉列表 Crosstab 统计图 Graph OLE2 0 超文本 RichText 复合 Composite 风格 上述风格只是定义了数据窗口的基本显示样式 通过设置数据窗口对象以及它所包含的其它对象的属性 我们就能够构造出变化万端的显示界面来 另外 在数据窗口对象内部 我们还能够校验 过滤 排序其中的数据 并随时查看设计效果 15 1创建数据窗口对象的步骤 PowerBuilder是个客户 服务器计算模式的客户端开发工具 访问与操纵数据库是PowerBuilder的特长 除了嵌入式SQL语句能够操纵数据库外 本章讨论的数据窗口对象以及下章讲述的数据窗口控件能够以更方便 更直观 更简洁的方式操纵数据库 并将数据以多种方式展现在用户面前 一 数据窗口对象概述 数据窗口对象是PowerBuilder中功能十分强大的一个对象 也是PowerBuilder有别于其它数据库应用系统开发工具的主要地方 数据窗口对象的主要功能 主要用于操作数据库中的数据 数据窗口不仅能够图形化地增加 删除 修改 更新 查询数据库中的数据 而且还可以指定数据的输入格式 输出格式 以及数据的显示风格 同时 开发人员还可以在数据窗口对象中增加多种对象 包括按钮 静态文本框 图片等 没有的功能 不能完成数据库中数据定义 包括定义表和视图 修改表与视图定义 删除表与视图 应用程序中使用的数据窗口通常由数据窗口对象和数据窗口控件两部分组成 数据窗口对象一个独立的对象 它通过数据窗口画笔来创建 并保存到应用库中 数据窗口控件是放在窗口上 与其他的窗口控件相同 用于显示与其相连的数据窗口对象中的内容 通过数据窗口对象与数据窗口的配合使用 可以非常方便地完成数据的显示 增加 删除 修改等操作 在以后的学习中 我们用数据窗口指代数据窗口控件或数据窗口对象 使用数据窗口的一般方法为 1 使用数据窗口画笔创建数据窗口对象 并把它保存到应用库中 创建数据窗口对象时一般包括下述内容 定义数据源 选择数据窗口的表现风格 设置数据窗口对象及其该对象内其它对象的属性等 例如显示格式 编辑风格 跳转次序 有效性规则 排序与检索条件等 2 窗口上建立一个数据窗口控件 3 过数据窗口控件的属性设置或编写代码将数据窗口控件与数据窗口对象联系起来 使其成为一个整体 4 在窗口画笔或用户对象画笔中编写代码以操作数据窗口控件以及放置在该控件中的数据窗口对象 例如使用数据窗口控件的对象函数Retrieve 提取数据 使用Update 函数更新数据库中的数据等 二 创建数据窗口对象的一般步骤 数据窗口对象的具体创建步骤与选择的数据源 即数据窗口得到数据的方式 密切相关 对不同的数据源 数据窗口对象的创建步骤也有所不同 但总的说来 都要完成以下步骤 1 单击工具栏按钮new 弹出new对话框 选择datawindow选项 2 datawindow选项页中列出了11种数据窗口的样式 每一种样式代表一种独特的显示风格 单击OK弹出选择数据源窗口 3 PB提供5种类型的数据源 选择quickselect 单击Next按钮 弹出quickselect数据源对话框 4 在quickselect对话框中 选择表和表中的字段 单击 ok 按钮 弹出定义边框和颜色的对话框 selectcolorandbordersetting 5 在 selectcolorandbordersetting 对话框中 设置数据窗口的背景颜色 字段标签颜色等 单击 next 按钮 弹出 readytocreatefreeformdatawindow 6 在 readytocreatefreeformdatawindow 对话框中 显示了新建数据窗口的列表 设计者可以检查审定数据窗口 如不满意可以返回上一步操作重新选择和设定 如果满意 可以单击finish完成数据窗口的创建 7 单击菜单 file 下的 save 选项 将数据窗口保存起来 15 2数据源 数据源决定了数据窗口对象获取数据的方式 PowerBuilder支持五种数据源 快速选择 QuickSelect 能够创建简单的SQLSelect语句 主要用于从一个表或由外部键连接的多个表中选择数据列 但不能生成计算列 SQL选择 SQLSelect 以可视化的方式建立SQLSelect语句 SQLSelect语句的所有细节均能通过该界面创建 主要用于从一个或多个表中建立复杂的SQLSelect语句 并且可以生成各种各样的计算列 查询 Qurey 数据源将以前创建的Qurey对象作为数据窗口的数据来源 外部 External 数据源用于让数据窗口访问数据库之外的数据 比如文本文件等 存储过程 StoredProcedure 则直接利用保存在数据库中的存储过程作为数据源 这个数据源只有当当前连接的数据库支持存储过程时才有效 否则系统会自动隐藏该选项 创建新数据窗口时 关闭了 NewDataWindow 对话框后 就要针对选择的数据源进行具体的定义 下面介绍各种数据源的定义方法 一 QuickSelect数据源QuickSelect是最简单的一种数据源 它允许开发人员从一个表或与该表有外部键关联的表中选择一个或多个列 QuickSelect数据源定义出一条简单的Select语句 这条语句中可以指定选择的列 查询条件 以及排序方式 但不支持分组 计算列 提取参数等复杂的SQLSelect功能 二 SQLSELECT数据源SQLSelect数据源能够从多个表中选择列 指定查询条件 对数据排序 分组 增加计算列 定义提取参数等 a 定义SQLSELECT数据源b 定义SQLSELECT数据源的检索条件只显示满足指定条件的数据 c 定义检索参数在定义检索条件时 如果条件中的值要在运行时才能确定 就需要使用检索参数 定义了检索参数后 就可以使用检索参数构造 Value 列上的表达式了 在表达式中使用检索参数时 需要在参数前放上个冒号 例如写上 ParaName 以告诉PowerBuilder这是个检索参数 而不是列名 在条件中使用参数后 应用程序就能够根据运行情况动态地检索数据了 d 指定排序方式当希望检索出的数据按照某些列进行排列时 这时应该定义排序方式 e 定义计算列计算列不是数据库表中的原始列 而是通过表达式运算得到的列 例如 表A中由两个字符串型列aa bb 则aa bb形成的列就是个计算列 f 定义分组在SQLSelect数据源中 开发人员可根据应用程序的需要定义分组 例如我们在显示一个学生的成绩时会希望按学生姓名分组显示 g 定义having子句 三 Query数据源Query数据源选取Query对象作为数据源 Query对象实际上就是条保存在应用库中的SELECT语句 定义Query对象的目的是为了在多个数据窗口中重复使用相同的SELECT语句而避免反复定义 与定义SQLSelect数据源相似 Query对象中可以定义检索参数 指定排序方式和分组方式 定义检索条件等 1 创建query对象在定义query数据源之前 需要使用query画板首先创建query对象 方法与定义SQLselect数据源相似 2 定义query数据源 四 External数据源External数据源从外部文件 比如文本文件 中提取数据 它是数据窗口唯一不需要连接数据库的数据源 其数据或由应用程序生成 或由用户输入 定义外部数据源的数据窗口时 必须定义它的每一列及其数据类型 五 StoredProcedure数据源StoredProcedure数据源就是把存储过程作为数据源 存储过程 StoredProcedure 是一组保存在数据库中的 经过预先编译和优化的 执行数据库操作的SQL语句 与其它SQL语句相比 存储过程的执行效率更高 省掉了每次执行时的编译与优化时间 StoredProcedure数据源只在当前连接的数据库支持存储过程时才会出现在 NewDataWindow 对话框中 15 3数据窗口的显示风格 数据窗口能够以多种多样的显示风格 Presentationstyle 展现数据 表现数据 过去需要大量编程才能完成的显示任务在数据窗口中只需要简单的选择 PowerBuilder的数据窗口对象有十一种显示风格 上述风格只是定义了数据窗口的基本显示样式 通过设置数据窗口对象以及它所包含的其它对象的属性 我们就能够构造出变化万端的显示界面 下面简单介绍这十一种风格的表现形式 作用及用途 一 列表 Tabular 风格在列表风格中 数据按列排列在数据窗口中 每列的上方都有一个标题 说明该列的数据 每屏显示的数据行数取决于数据窗口的大小 而且支持运行时由用户调整各列位置 另外 在每页中都可以显示页标题 列表风格的数据窗口常用于数据输入 有时也用于生成报表 二 表格风格表格风格数据窗口中 数据的行与列之间通过网格线分隔 数据的每一项都位于其中一个网格中 运行时用户通过拖曳操作既能改变列的宽度 也能调整列的左右位置 但是 在设计数据窗口对象时我们不能移动列以及列标题的左右次序 这一点有别于列表风格和自由风格 表格风格的数据窗口既可用于数据输入 又能作为报表输出 三 自由格式 Freeform 自由格式的显示样式十分灵活 所有字段前面都加有字段标题 称为标签 并且以垂直方式排列在数据窗口中 在数据窗口画笔里 我们能够根据需要灵活地安排字段 标签 以及其它对象的位置 一般情况下 自由格式的数据窗口一屏显示一条记录 常用于单记录输入 四 标签 Label 风格标签风格的数据窗口以标签形式显示每行数据 用它可以制作各种标签 如果选择了标签风格 则在定义数据源后 还必须在 SpecifyLabelSpecifications 对话框中定义标签的各项参数 在这个对话框中 系统列出了许多预定义的通用邮件标签 我们可以从中选择一个 如果其中没有合适的格式 则完全能够进行手工调整 以满足特定的需求 五 分栏 N Up 风格分栏风格能够在一行中显示多条记录 如果选择了这种风格 在定义数据源之后 系统显示 SpecifyRowsinDetail 对话框 在这个对话框中指定一行显示几条记录 即分成几栏 六 分组 Group 风格分组风格的数据窗口提供了一种对数据进行分组的简便途径 在这种风格下 数据被分成一个一个的组 组中可以带有统计数据 实际上 我们可以把它看成是带有分组特性的列表风格 当选择了此风格且定义了数据集后 系统将弹出 GroupReport 对话框 在这个对话框中指定按哪些列进行分组 七 交叉列表 Crosstab 风格交叉列表风格支持按行和 或按列分析数据 该风格的数据窗口对数据进行加工处理后以汇总形式展现出来 当选择了此风格并定义了数据集后 系统将弹出 CrosstabDefinition 对话框 在这个对话框中分配交叉列表中的行 列及行列交叉点的数据值 通过双击分配后的行 列或值可以编辑相应的表达式 八 统计图 Graph 风格统计图风格的数据窗口以统计图的形式表现数据 在这里 数据不是通过行 列一个个孤立地显示出来 而是以图形的方式呈现在用户面前 该风格的数据窗口提供了多种统计图 包括 面积图 Area 条形图 Bar 列形图 Column 线形图 Line 饼图 Pie 散点图 Scatter 堆积图 Stacked 以及上述图形的三维形式 九 OLE2 0风格OLE2 0风格的数据窗口既能够显示非数据库数据 比如Word文档 也能够显示数据库中的BLOB 二进制大对象 列 十 超文本 RichText 风格超文本风格的数据窗口能够处理超文本数据 它可以利用Windows系统的字体 字型 颜色等属性以丰富多采的形式显示与编辑超文本 并且能够将数据库中的数据插入到超文本文档中 十一 复合 Composite 风格复合风格的数据窗口没有自己的数据源 它通过特殊方式将其它数据窗口对象组合起来 从而创建形式更复杂的数据窗口 15 4字段的显示与编辑 数据窗口主要用于显示和输入数据 它提供的显示格式可以定义列的显示方式 编辑风格能够控制用户如何输入数据 有效性规则则判断输入数据的有效性 下面分别予以介绍 一 字段数据的显示方式 fromat 我们在做数据库应用系统开发时 经常为了节约存储空间 以某种格式存储数据 而在显示数据时又以用户熟悉的方式出现 例如 以日期类型保存日期数据 以用户熟悉的年 月 日形式表现数据 以数值类型保存货币金额 显示时在金额前放上货币符号 在数据窗口中都能通过列的显示格式来定义 PowerBuilder在系统中预先建立了一些常用的显示格式 例如 标准货币格式 它会插入美元符号和逗号 并把负值变成红色 开发人员当然可以根据需要定义自己的显示风格 显示格式 DisplayFormat 决定数据以何种方式呈现在用户面前 当用户单击带有显示格式的列时 即将输入焦点移动到该列 显示格式消失 代之以编辑风格 显示格式常用于不允许用户修改的列上 二 编辑风格 editstyle 与显示格式相似 编辑风格 EditStyle 改变了数据的显示方式 与显示格式不同的是 当定义了编辑风格的列得到输入焦点时 编辑风格并不消失 编辑风格影响用户输入和修改数据的方法 编辑风格有六种不同的类型 编辑框 缺省风格 EditBox 编辑掩码 EditMask 用于以一定的格式 强制显示数据和输入数据 如电话号码 日期等 复选框 CheckBox 适合简单的两值选择数据 如 婚否 学科表里的 重点学科 单选钮 RadioButton 用于选项不多且固定的字段 达到既直观 又减轻用户的数据录入负担的效果 例如性别 学历等 下拉列表框 DropDownListBox 适用于数据量不大且又固定的场合 选项是在创建数据窗口时定义的 下拉数据窗口 DropDownDataWindow 也是使用下拉列表框选取数据 但下拉列表框中的数据是由数据库中读出的 例如 学生成绩表中的课程字段的取值 就应该是subject表中课程的取值 三 有效性规则尽早发现录入数据的错误是应用程序的基本功能之一 虽然大多数数据库都支持有效性规则 但它只能在程序向数据库提交数据时才能发现数据存在的问题 与显示格式和编辑风格相似 用数据库画笔定义列的扩展属性时可以定义列的有效性规则 并且该规则缺省地应用到数据窗口的相应列上 然而有时候我们需要针对具体的数据窗口定义相应的有效性规则 定义了有效性规则后能够在用户移动输入焦点时就发现输入的数据是否有效 有效性规则实际上就是个判别值为真或假的逻辑表达式 为真 TRUE 时数据窗口接受用户输入 为假 FALSE 时显示出错信息 让用户重新输入数据 缺省情况下PowerBuilder用消息框 MessageBox 函数 显示出错信息 当然我们也能够在数据窗口控件的ItemError事件中编写程序 针对不同错误做出不同的处理 例如在student表中 要求在输入数据时学号大于99000可以在有效性检验表达式中表示 步骤 选择View columnspecification 出现 columnspecification 子窗口 单击鼠标右键弹出菜单 选择 expression 设置有效性检验规则 Stud id 99000 15 5制数据行 在定义数据源时 我们可以指定检索条件 排序方式 以及数据如何分组 系统根据定义生成相应的SQLSELECT语句 程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论