DELPHI基础教程:数据访问部件的应用及编程(三)[4]

如题所述

第1个回答  2022-11-16

   增加字段部件

  字段编辑器Fields Editor中的Add Fields菜单项用于向数据集部件中增加字段部件的 单击Add Fields菜单项时便会打开增加字段部件对话框 如图 所示 Available Fields列表框中显示出数据集部件TTable或TQuery中当前可以用于创建永久字段部件的全部的字段 也就是说Available Fields列表框中显示字段是数据库表中实际存在的字段 而且还没有为这些字段创建相应的永久性的字段部件 在缺省状态下所有的字段都被选择用于创建相应的永久性的字段部件 用鼠标单击其中的字段名可以有选择地创建其相应的永久性的字段部件 选择好有关的字段名之后 单击OK按钮便可以创建永久性的字段部件

  字段编辑器的增加字段部件对话框

   删除字段部件

  用字段编辑器Fields Editor为数据集部件创建好的字段部件都会显示在字段编辑器的Fields列表框中 如果用户认为其中的一些字段部件不合适或不再需要时 可以单击这些不需要的字段部件 然后单击鼠标右键弹出一佣弹出式菜单 从弹出式菜单中选择Delete菜单项 便可删除相应的字段部件 如果在弹出式菜单中单击Select All菜单项 然后选择Delete菜单项 这样会删除已创建好的所有的字段部件 某一个字段部件被删除以后 通过单击Add Fields菜单项可以重新创建 只是先前为该字段部件设定的一些属性将不复存在

   定义新的字段部件

  字段编辑器Fields Editor中的弹出式菜单中New Fields菜单项是用来为数据集部件TTable或TQuery创建用于显示目的的新的字段部件 我们可以用它来为数据库表中实际存在的字段创建新的字段部件(如改变字段的数据类型 使它的字段值被显示时不再需有关的类型转换) 但是我们使用New Fields菜单项创建新的字段部件主要是创建计算字段 计算字段并不与数据库表中实际存在的字段对应 它的字段值是根据表中其它的字段值计算而来的 具体的计算表达式由用户为TTable部件或TQuery部件的OnCalCFields事件编写程序代码时决定

  定义(创建)计算字段的过程如下

   单击字段编辑器中的New Fields菜单项 定义字段对话框如图 所示

   在FieldName编辑框中输入新字段部件的名字 或者从下拉式列表框中选择一个已存在的字段部件的名字

   在FieldType列表框中为新字段部件选择一个字段类型

   单击Calculated检查框 确认定义的新字段部件是计算字段

   单击ok按钮 创建上述定义的计算字段部件 此时该字段部件的名字会自动地加入到字段编辑中的Fields列表框中

  创建新的计算字段

  新的计算字段创建好了之后 它是没有任何字段值的 我们必须要编写相应的程序代码 根据数据库表中实际存在的字段的字段值为计算字段的宝定义字段值 我们为计算字段所在数据集部件的OnCalcFields事件编写代码来为计算字段赋值 其步骤如下

   选择数据集部件TTable或TQuery

   单击数据集部件的事件页

   双击OnCalcFields事件为TTable或TQuery部件编写事件处理过程

   TReport部件及其应用

  在一般的数据库应用程序中都包含着为最终用户提供输出报表的功能 使用Delphi开发数据库应用程序时 可以使用一个叫TReport的部件来执行报表功能的 报表的具体格式和内容是由Delphi提供的一个专用报表生成工具ReprotSmith创建的 它报表的具体格式和内容生成一个报表文件 然后为TReport部件设置相应的属性参数 由TReport部件执行报表功能

  我们可以在设计阶段双击TReport部件 调用ReportSimith工具或者在Delphi程序组内双击ReportSmith图标来调用ReportSmith工具来创建一个报表文件 具体的操作步骤和设计方法请参看ReportSimth工具的使用说明

  我们在使用TReport部件执行报表功能时 要设置TReport部件的一些的一些属性 这些属性是

  ReportName属性 说明报表文件的名字 就是用ReportSmith创建的报表文件

  ReportDir属性 说明报表文件所在的途径名

  PreView属性 这是一个布尔型属性 若它的值为True 那么在执行报表功能时 只是在屏幕上显示报表 若它的值为False 则报表内容将在缺省的打印机打印出来

  AutoUnload属性 布尔型属性 它的值为True时 在执行完一个报表功能后 自动地从内存中卸出ReportSmith工具 它的值为False时 在运行完一个报表功能后 不从内存中卸出ReportSmith工具 一般情况下 如果应用程序只有一个报表或者只有较少的报表要输出时 应设置AutoUnload属性为True 如果应用程序一次要输出多个报表 那么要应设置AutoUnload属性为False

  InitialValues属性 这是一个字符串类型的属性 它是说明报表文件中使用的变量 每一条说明一个变量 如

  ReportVAR := Value;

  要详细了解创建和使用报表变量的过程请参看创建报表一节

  TReport部件要真正执行报表功能以输出一个报表需要调用Run方法 如下所示

  Report Run;

  TReport部件所具有的重要方法如表 所示

  表 TReport部件的方法

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  方法 功 能

  ────────────────────────────

  Run 执行报表功能 输出报表

  RunMacro 发送一个宏命令给Reportimith工具

  Connect 预先连接报表文件和数据库 在输出报表时不需要登录到数据库

  SetVariable 改变说明的报表变量

  ReCalcReport 当报表变量改变以后 重新输出报表

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  还有一些其他的数据访问部件如TBatchMove部件 它主要用在两个数据库表之间移动或拷贝帆数据记录 具体的使用请参看本地SQL服务器的使用

   应用举例 多个窗体显示同一个数据库表

  在应用当中 我们常常需要以不同的视图显示同一个数据库表中的内容 例如要在两窗体中同时显示一个数据库表中一个记录的不同字段时 我们必须要想办法使两个窗体中的数据浏览部件同步地显示数据库表中的同一条记录的不同字段的值 要想做到以不同的视图显示同一个数据库表中的记录 下面两条规则是很重要的

  ● 多个TDataSource部件能够同时访问同一个数据集部件

  ● 在多个窗体中显示同一个表时 必须为每个窗体设置一个TDataSource部件 只须为其中的一个窗体设置一个TTable部件

  例如 如果想在窗体Form 和Form 中同时显示一个数据库表的记录 最简单可行的办法是 为Form 和Form 各设置一个TDataSource部件叫DataSource DataSource 并在Form 中设置一个TTable部件Table 连接Form 中的Datasource 和Table 在程序运行过程中设置Form 中的DataSource 的DataSet属性为Form 中的Table 代码如下

  Format DataSource Dataset := Form Table ;

  这样 当Table 被打开时 两个窗体中便可以同步地显示数据库表中的同一条记录了

  一个名叫OForms DPR的例子在C:\Delphi\DEMos\DB\TwoForms中(如果Delphi安装在其它的磁盘驱动器中 从相应的磁盘驱动器中可以找到该例子) 它演示了在两个窗体中显示同一个数据库表的记录 应用程序在第一个窗体中打开Contry DB表 并在窗体中显示Name Captial和Continent字段 在第二个窗体中显示Area和Population字段 在第一个窗体中有一个按钮用于打开第二个窗体 两个窗体中都有TDBNavigator部件 用于记录的导航

   返回目录 DELPHI基础教程

       编辑推荐

       Java程序设计培训视频教程

       J EE高级框架实战培训视频教程

  Visual C++音频/视频技术开发与实战

  Oracle索引技术

  ORACLE G数据库开发优化指南

  Java程序性能优化 让你的Java程序更快 更稳定

  C嵌入式编程设计模式

  Android游戏开发实践指南

lishixinzhi/Article/program/Delphi/201311/25156

相似回答