其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

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


发布日期:2018年08月15日
 
DELPHI基础教程:数据访问部件的应用及编程(三)[4]

增加字段部件

字段编辑器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方法如下所示

ReportRun;

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

TReport部件的方法

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

方法 功 能

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

Run 执行报表功能输出报表

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

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

SetVariable 改变说明的报表变量

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

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

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

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

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

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

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

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

FormatDataSourceDataset := FormTable;

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

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

返回目录DELPHI基础教程

编辑推荐

Java程序设计培训视频教程

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

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

Oracle索引技术

ORACLEG数据库开发优化指南

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

C嵌入式编程设计模式

Android游戏开发实践指南

[] [] [] []

               

上一篇:DELPHI基础教程:数据访问部件的应用及编程(二)[1]

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