第六章数据窗口和数据窗口控件.ppt_第1页
第六章数据窗口和数据窗口控件.ppt_第2页
第六章数据窗口和数据窗口控件.ppt_第3页
第六章数据窗口和数据窗口控件.ppt_第4页
第六章数据窗口和数据窗口控件.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

第六章数据窗口和数据窗口控件 本章要点 1 数据窗口的创建2 数据源3 显示风格4 数据窗口对象的常用属性5 数据窗口控件的属性 事件和函数 数据窗口对象 用于展示数据并允许用户操作数据 数据窗口控件 把数据窗口对象放置到窗口上并呈现在用户面前 使用数据窗口的一般方法为 1 创建数据窗口对象 并把它保存到应用库中 2 在窗口中放置一个数据窗口控件 3 通过数据窗口控件的属性设置或编写代码 将数据窗口控件与数据窗口对象相关联 4 编写代码操作数据窗口控件及数据窗口对象 6 1数据窗口概述 6 3数据源 一 QuickSelect数据源QuickSelect是最简单的一种数据源 它允许开发人员从一个表或与该表有外部键关联的表中选择一个或多个列 6 2创建数据窗口对象 二 SQLSelect数据源SQLSelect数据源能够从多个表中选择列 指定查询条件 对数据排序 分组 增加计算列 定义提取参数等 三 Query数据源Query数据源选取Query对象作为数据源 Query对象实际上就是一条保存在应用库中的SELECT语句 定义Query对象的目的是为了在多个数据窗口中重复使用相同的SELECT语句而避免反复定义 四 External数据源External数据源从外部文件中提取数据 它不需要连接数据库 数据由应用程序生成或由用户输入 定义外部数据源的数据窗口对象时 必须定义它的每一列及其数据类型 五 StoredProcedure数据源StoredProcedure数据源就是把存储过程作为数据源 存储过程 StoredProcedure 是一组保存在数据库中的 经过预先编译和优化的 执行数据库操作的SQL语句 一 表格 Grid 风格二 自由 Freeform 风格三 列表 Tabular 风格四 标签 Label 风格五 分栏 N Up 风格六 分组 Group 风格 6 4数据窗口的显示风格 一 设置数据窗口对象的属性 6 5数据窗口对象的属性 二 设置列的属性 1 显示格式2 编辑风格 一 数据窗口的缓冲区 6 6控制数据行 数据窗口从数据库中检索到的数据都放置在客户机的内存中 1 主缓冲区 PrimaryBuffer 主缓冲区保存显示在数据窗口控件中的所有数据行 以及这些行和各个列的状态 当使用函数Retrieve 检索数据时 检索到的数据放置在主缓冲区中 当插入数据时 插入的数据也存放在主缓冲区 1 内存的区域 2 删除缓冲区 DeleteBuffer 当删除数据行时 被删除数据行从主缓冲区移动到删除缓冲区 当使用数据窗口控件的对象函数Update 将数据窗口的修改发送到数据库管理系统后 被成功删除的记录均从删除缓冲区中清除 3 过滤缓冲区 FilterBuffer 过滤缓冲区用于保存那些满足数据源定义 即满足SELECT语句中的条件 而不满足过滤条件的行 4 原始缓冲区 OriginalBuffer 原始缓冲区保存数据窗口从数据库中检索出的原始数据 注意 数据窗口控件只显示主缓冲区中的数据 用户的所有操作 查看数据 修改数据等 都是针对主缓冲区进行的 2 主缓冲区 删除缓冲区 过滤缓冲区之间的关系 二 记录过滤 过滤针对存放在数据窗口缓冲区中的数据进行 不生成新的SQL语句 也不访问数据库 1 利用菜单定义过滤条件 2 用SetFilter 函数动态改变过滤条件 三 记录排序 6 7数据窗口控件 DataWindow 一 数据窗口控件的属性 DataObject 在该编辑框中输入与该数据窗口控件关联的数据窗口对象的名称 Title 数据窗口控件的标题 TitleBar 选中该复选框后 在数据窗口控件上显示标题栏 此时可根据需要选择标题栏上是否增加最大化按钮 最小化按钮以及控制菜单 HScrollBar 选中该复选框时显示水平滚动条 VScrollBar 选中该复选框时显示垂直滚动条 Resizable 选中该复选框后 运行时允许用户改变数据窗口控件的大小 Border 选中该复选框时 可以在 BorderStyle 下拉框中选择边框风格 Icon 设置数据窗口的图标 该图标将出现在数据窗口控件标题栏的左边 二 数据窗口控件的事件 1 Clicked事件 触发时机 用鼠标左键单击数据窗口控件时触发 返回值 0 缺省值 继续随后的处理过程 1 终止处理过程 2 GetFocus事件 触发时机 当焦点切换到数据窗口控件时发生 3 LoseFocus事件 触发时机 当数据窗口控件本身失去焦点时发生 4 DBError事件 触发时机 由于调用数据窗口对象函数Retrieve 或Update 而导致某种数据库错误时触发 参数 SQLDBCODE 出错代码 SQLErrText 出错信息 返回值 0 缺省值 显示保存在事务对象的SQLErrText属性中的出错信息 1 不显示出错信息 6 ItemError事件 触发时机 当用户修改了字段 然后移走焦点 但数据未能通过该列的有效性检查时发生 返回值 0 缺省值 拒绝输入值并显示有效性验证出错信息 不允许移走焦点 1 拒绝输入值 但不显示出错信息 不允许移走焦点 2 接收输入值 3 拒绝输入值 但允许移走焦点 三 数据窗口控件的函数 1 SetTransObject 函数 功能 为数据窗口控件分配事务对象 语法格式 dwcontrol SetTransObject transactiontransactionvariable 在使用数据窗口控件检索数据前 必须通知数据窗口使用哪个事务对象来操作数据库 实际上是告诉数据窗口从哪个数据库中检索数据 Dwcontrol 数据窗口控件的名称 Transaction 事务对象名 返回值 1 执行成功 1 执行失败 例 dw score SetTransObject SQLCA 为数据窗口控件dw score分配事务对象SQLCA 即把数据窗口控件dw score与连接数据库的事务对象SQLCA联系在一起 2 Retrieve 函数 功能 把数据装入数据窗口中 语法格式 dwcontrol Retrieve 返回值 该函数执行成功时返回一个长整数指示显示的数据行数 即主缓冲区中的数据行数 失败时返回 1 3 InsertRow 函数 功能 在数据窗口的主缓冲区中插入一个空行 语法格式 dwcontrol InsertRow longrow row 指定插入行的插入位置 等于0时表示在主缓冲区最后添加一行 返回值 函数执行成功时 返回一个long型值指示插入行的行号 执行失败时返回 1 例 在数据窗口dw student中插入一行 并让该行成为数据窗口的第10行 dw student InsertRow 10 4 DeleteRow 函数 功能 在数据窗口的主缓冲区中删除一行 语法格式 dwcontrol DeleteRow row row 要删除行的行号 row等于0时表示删除当前行 返回值 函数执行成功时返回1 失败时返回 1 例 删除数据窗口控件dw student中的当前行 dw student DeleteRow 0 5 Update 函数 功能 把修改过的数据保存到数据库中 语法格式 dwcontrol Update 返回值 函数执行成功时返回1 否则返回 1 注 执行该函数后 应该检查返回值 当返回值为1时 使用COMMIT语句提交修改 让数据永久性地写入到数据库中 否则 使用ROLLBACK语句撤销所有修改 例 保存对数据窗口所做的修改 intli rtnli rtn dw operator Update IFli rtn1THENROLLBACK MessageBox 错误 存盘失败 ELSECOMMIT MessageBox 提示 存盘成功 ENDIF 例 删除数据窗口的当前行 intli ret1 li ret2li ret1 messagebox 询问 确认删除吗 messagebox 提示 删除失败 endifendif 6 GetRow 函数 功能 得到当前行 语法格式 dwcontrol GetRow 返回值 返回长整数 代表当前行号 没有选中任一行时返回0 出错时返回 1 7 GetColumn 函数 功能 得到当前列 语法格式 dwcontrol GetColumn 返回值 返回整数 代表当前列号 返回值为0表示无当前列 1表示操作失败 8 SetRow 函数 功能 设置某行为当前行 语法格式 dwcontrol SetRow row 返回值 返回整数 设置成功时该函数返回1 否则返回 1 如果row的值小于1或大于数据窗口中的总行数 则SetRow 函数执行失败 9 SetColumn 函数 功能 设置某列为当前列 语法格式 dwcontrol SetColumn column 返回值 返回整数 设置成功时该函数返回1 否则返回 1 如果column的值小于1或大于数据窗口中的总列数 则SetColumn 函数执行失败 Column 可以是列号 integer类型 也可以是列名 String类型 10 ScrollToRow 函数 功能 把指定行滚动到窗口视野中 让用户不用按滚动条就看到新行 语法格式 dwcontrol ScrollToRow row 返回值 返回整数 函数执行成功时返回1 否则返回 1 Row 指示把哪一行滚动到用户视野 11 SetFilter 函数 功能 在程序中动态设置数据窗口的过滤条件 语法格式 dwcontrol SetFilter stringfiltercondition 返回值 返回整数 函数执行成功时返回1 否则返回 1 Filtercondition 作为过滤条件的表达式 表达式中可以包括列名或列号 12 Filter 函数 功能 把不满足条件的数据移动到过滤缓冲区中 语法格式 dwcontrol Filter 例 按姓名查询学生记录 在数据窗口中显示出来 stringls con ls xmls xm Trim sle xm text IfLen ls xm 0Thenmessagebox 提示 请输入检索条件 Elsels con xm ls xm Endifdw 1 setfilter ls con dw 1 filter 例 按性别查询学生的记录 在数据窗口中显示出来 stringls jstj IFrb nan checkedTHENls jstj sex 男 ELSEls jstj sex 女 ENDIFdw 1 SetFilter ls jstj dw 1 Filter 例 设置复合条件显示所需记录 stringls name ls sex ls jstj ls name trim sle xm text Iflen ls name 0Thenls jstj xm ls name EndifIFrb nan checkedTHENIFlen ls jstj 0THENls jstj ls jstj and xb 男 ELSEls jstj xb 男 ENDIFENDIF IFrb nv checkedTHENIFlen ls jstj 0THENls jstj ls jstj and xb 女 ELSEls jstj xb 女 ENDIFENDIFdw txl SetFilter ls jstj dw txl Filter 注 要去掉过滤条件 可把过滤条件设置为空字符串 然后调用Filter 函数 即执行下述语句 dwcontrol SetFilter dwcontrol Filter 执行上述语句后 过滤缓冲区中的数据被传送到主缓冲区中 放在主缓冲区原有数据的后面 例 设计通讯录管理信息系统 设主界面如图所示 要求本系统能完成以下功能 1 窗口打开时 数据窗口中显示所有记录 2 可以实现记录的增加 保存 删除等基本功能 3 可以按姓名检索所需记录 完成以下程序 1 应用对象是应用程序入口 一般情况下 在应用的 open 事件完成以下工作 配置并连接要访问的数据库 打开应用程序的第一个窗口等 请将下列程序补充完整 使程序能完成以上两个基本功能 设应用程序第一个窗口的名称为w main SQLCA DBMS ODBC SQLCA AutoCommit FalseSQLCA DBParm ConnectString DSN txl UID dba PWD sql connect open w main 2 在窗口w main的 open 事件编程 完成以下功能 窗口的标题为 通讯录管理系统 数据窗口dw txl在窗口打开时显示数据库中所有记录 使按钮 增加 得到焦点 增加 按钮的名称 cb insert This title 通讯录管理系统 dw txl SetTransObject SQLCA dw txl Retrieve cb insert setfocus 3 在按钮 增加 的 clicked 事件编程 单击该按钮时 使数据窗口dw txl自动增加一行 并使该行成为当前行 第一列成为当前列 longll rowll row dw txl InsertRow 0 dw txl ScrolltoRow ll row dw txl SetRow ll row dw txl SetColumn 1 dw txl SetFocus 4 在按钮 保存 的 clicked 事件编程 单击该按钮时 使数据窗口中增加或修改的信息提交数据库 intli rtnli rtn dw txl Update IFli rtn 1THENcommit MessageBox 提示 存盘成功 ELSEROLLBACK MessageBox 提示 存盘失败 returnENDIF 5 在按钮 删除 的 clicked 事件编程 单击该按钮时 可删除当前行 并用messagebox函数给出确认是否删除的提示信息 integerli ret li ret2li ret MessageBox 询问 确实要删除所选记录吗 messagebox 提示 删除成功 ENDIFENDIF

温馨提示

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

评论

0/150

提交评论