《东北大学-数据库开发技术-课件-第7章--Delphi数据库系统设计技术ppt.ppt》由会员分享,可在线阅读,更多相关《东北大学-数据库开发技术-课件-第7章--Delphi数据库系统设计技术ppt.ppt(120页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第7章 Delphi数据库系统系统设计技术7.1 数据库应用系统实施的步骤与方法数据库应用系统实施的步骤与方法7.2 Delphi 两层数据库应用系统的支持技术两层数据库应用系统的支持技术 7.3 数据库引擎管理器数据库引擎管理器7.4 连接连接ODBC数据库数据库7.5 数据集控件数据集控件7.6 数据控制控件数据控制控件7.7 报表控件报表控件7.1 数据库应用系统实施的步骤与方法数据库应用系统实施的步骤与方法 图7-1 数据库系统实现步骤和阶段成果开发数据库应用系统是Delphi的强项。要建立数据库应用系统,除了要熟悉有关Delphi组件和object Pascal外,还要精通DBMS及
2、数据库建立的方法。数据库应用系统设计和实现步骤如下:7.2 Delphi 两层数据库应用系统的支持技术两层数据库应用系统的支持技术 数据库应用系统主要采用两层结构和三层结构的架构。两层数据库系统是指C/S(客户服务器)结构或B/S(浏览器服务器)结构,而三层结构是客户、应用服务器和数据库服务器的系统结构。delphi 7支持两层数据库应用系统结构的技术有BDE技术、ADO技术、dbExpress技术和InterBass技术4种。作为重点,主要介绍BDE技术及使用方法。7.2.1 基于BDE技术的两层数据库系统BDE为Delphi数据库应用程序访问各种数据库提供了一致的接口。它具有以下一些特点:
3、 通过BDE访问任何一种格式的数据库,用户不必修改程序代码,只需在BDE中设置新的数据库的服务器名或者路径即可。 BDE非常适合开发大型的客户机/服务器应用程序. 如果要让BDE能访问一个新的数据库,只要在系统中安装新数据库的BDE驱动程序或者ODBC驱动程序就可以了。 BDE是32位的数据库引擎,支持多线程和有优先级的多任务处理,多个应用程序可以同时运行并访问同一个数据库。基于BDE技术的两层数据库系统的结构如图图7-2 基于BDE技术的两层数据库系统的结构7.2.2 ADO技术支持的两层数据库系统ADO(ActiveX Data Object)是微软公司推是微软公司推出的一种数据访问技术,
4、它和出的一种数据访问技术,它和ODBC(Open Database Connection) 、RDS(Remote Data Service)一起称为一起称为MDAC(MicroSofe Data Access Compenents)。使用。使用ADO技术时,需技术时,需要安装要安装MDAC,而,而Delphi 7在安装时也会自动在安装时也会自动安装安装MDAC。采用。采用ADO技术也可以通过技术也可以通过ODBC访问数据源。访问数据源。基于ADO技术的两层数据库系统的结构如图图7-2 基于ADO技术的两层数据库系统的结构7.2.3 dbExpress技术支持的两层数据库系统 dbExpres
5、s是一种数据访问标准,它包括是一种数据访问标准,它包括一组支持数据库存取的驱动程序和组件。一组支持数据库存取的驱动程序和组件。 dbExpress可以用于可以用于windows下的下的Delphi,也,也可以用于可以用于Linux平台上的平台上的Kylix,能够进行不同,能够进行不同平台的数据交换,便于开发跨平台的数据库应平台的数据交换,便于开发跨平台的数据库应用系统。用系统。 dbExpress支持两层的数据库系统,支持两层的数据库系统,也支持多层数据库系统。也支持多层数据库系统。基于 dbExpress 技术的两层数据库系统的结构如图图7-2 基于dbExpress技术的两层数据库系统的结
6、构7.2.4 Interbase技术支持的两层数据库系统 Interbase是是Borland公司开发的一种关系数据库公司开发的一种关系数据库管理系统。管理系统。Delphi提供了专门的提供了专门的Interbase组件,可以组件,可以快速高数地访问快速高数地访问Interbase数据库。基于数据库。基于Interbase的两的两层数据库系统的系统结构如图;层数据库系统的系统结构如图; 7.3 数据库引擎管理器1数据库别名的管理2驱动程序的管理3系统配置图7-2 BDE Administrator运行界面图7-3 设置数据库驱动程序名图7-4 Paradox数据库的BDE别名图7-5 BDE
7、Administrator管理驱动程序的界面图7-6 BDE Administrator的系统配置 7.4 连接ODBC数据库配置ODBC驱动程序:安装ODBC驱动程序,打开Windows的控制面板,双击“ODBC Data Source(32bit)”,打开ODBC Data Source Administrator对话框,如图7-7所示。单击“Add”按钮,就会打开创建新数据源对话框,如图7-8所示。 这里从驱动程序列表中选择“Microsoft Access Driver(*.mdb)”,并单击“完成”按钮,则会打开ODBC Microsoft Access Setup对话框,如图7-9
8、所示。选择Configuration页框,展开Drivers节点,然后用鼠标右键单击ODBC,从弹出的菜单中选择“New”选项,这时将打开New ODBC Driver对话框,如图7-10所示。 接着,展开Database页框,选择“Object”菜单上的“New”命令,打开New Database Alias对话框,如图7-11所示。其中,选择ODBC-access作为数据库驱动程序,单击“OK”。输入完整的别名accesstry如图7-12所示。最后,选择Object菜单上的Apply命令,将新建的别名保存到BDE配置文件中。 图7-7 ODBC Data Source Administr
9、ator对话框图7-8 创建新数据源对话框 图7-9 ODBC Microsoft Access Setup对话框 图7-10 New ODBC Driver对话框 图7-11 New Database Alias对话框图7-12 新的别名 7.5 数据集控件7.5.1 数据访问控件简介7.5.2 数据集控件及其应用7.5.3 TTable控件及其使用7.5.4 TQuery控件及其使用7.5.5 TDataSource控件及其使用7.5.1 数据访问控件简介图7-34 BDE控件栏VCL组件的公共属性7.5.2 数据集控件及其应用1数据集控件的状态v 非活动状态(Inactive)v 浏览状
10、态(Browse)v 编辑状态(Edit)v 插入状态(Insert)v 查找状态(SetKey)v 处理计算字段状态(CalcFields)2数据集的打开和关闭(1)打开数据集方法1:通过设置数据集控件的Active属性为True来打开与数据集相连的数据库表。方法2:调用数据集控件的Open方法,打开与数据集控件相连的数据库表,这种方法只能在程序运行过程中通过程序进行。(2)关闭数据集方法1:设置数据集控件的Active属性为False,以关闭与数据集控件相连的数据库表。方法2:调用Close方法以关闭与数据集控件相连的数据集表。3数据集的浏览表7-1 数据集的浏览方法方法方法功能功能Fir
11、st移动记录指针到数据集中的第一条记录移动记录指针到数据集中的第一条记录Next移动记录指针到数据集中的下一条记录移动记录指针到数据集中的下一条记录Prior移动记录指针到数据集中的前一条记录移动记录指针到数据集中的前一条记录Last移动记录指针到数据集中的最后一条记录移动记录指针到数据集中的最后一条记录MoveBy(n)n是正,将记录指针下移是正,将记录指针下移n条记录;否则,上移条记录;否则,上移n条记录条记录属性属性功能功能BOF当记录指针位于数据集开头时,属性值为当记录指针位于数据集开头时,属性值为True,否则为,否则为FalseEOF当记录指针位于数据集结尾时,属性值为当记录指针位
12、于数据集结尾时,属性值为True,否则为,否则为False表7-2 数据集的浏览属性4数据集中的数据维护表7-3 数据集中数据维护的方法方法方法功能功能Edit将数据集置为编辑状态将数据集置为编辑状态Append保存所有被修改的记录,然后将记录指针移到表中的最保存所有被修改的记录,然后将记录指针移到表中的最后一条记录,且将数据集置为插入状态后一条记录,且将数据集置为插入状态Insert保存所有被修改的记录,将数据集置为插入状态保存所有被修改的记录,将数据集置为插入状态Post将插入或者被修改的记录写回到数据表,当保存成功时将插入或者被修改的记录写回到数据表,当保存成功时数据集回到浏览状态,若保
13、存不成功则数据集恢复原来数据集回到浏览状态,若保存不成功则数据集恢复原来状态状态方法方法功能功能Cancel取消当前的操作且将数据集置为浏览状态取消当前的操作且将数据集置为浏览状态Delete删除当前记录指针所在的记录且将数据集置为浏览状删除当前记录指针所在的记录且将数据集置为浏览状态态AppendRecord在数据表的最后插入一条新记录,记录的各个字段值在数据表的最后插入一条新记录,记录的各个字段值作为作为AppendRecord的参数传递给新记录的参数传递给新记录InsertRecord在当前指针所在记录的后面插入一条新记录,在当前指针所在记录的后面插入一条新记录, 记录的记录的各个字段值
14、作为各个字段值作为InsertRecord的参数传递给新记录。的参数传递给新记录。SetFields修改当前记录,字段名和相应的字段值作为修改当前记录,字段名和相应的字段值作为SetFields的的参数参数7.数据集的书签有关书签操作,Delphi提供了三个方法: GetBookMark GotoBookMark FreeBookMark7.数据集控件与数据控制控件的连接数据集控件具有三个方法,用于控制数据集控件和与其相连的数据控制控件之间的连接,以及控制数据控制控件的显示。它们是DisableControls方法、EnableControls方法、Refresh方法。数据集控件的事件 Bef
15、oreOpen/Afteropen:在数据集控件打开之前/之后被触发。 BeforeClose/Afterclose:在数据集控件关闭之前/之后被触发。 BeforeInsert/AfterInsert:在数据集控件进入插入状态之前/之后被触发。 BeforeEdit/AfterEdit:在数据集控件被编辑之前/之后被触发。 BeforePost/AfterPost:在数据集控件保存被修改的记录之前/之后被触发。 BeforeCancel/AfterCancel:在数据集控件取消进一步操作之前/之后被触发。 BeforeDelete/AfterDelete:在数据集控件删除当前记录之前/之后被
16、触发。 OnNewRecord:当建立一条新记录时被触发。 OnCalcFields:当为表中的计算字段计算字段值时被触发。7.5.3 TTable控件及其使用1TTabel控件的主要属性(1)DatabaseName属性和TableName属性(2)KeyExclusive属性(3)IndexFields属性和IndexFieldsCount属性(4)IndexName属性和IndexFieldNames属性(5)Exclusive属性(6)ReadOnly属性和CanModify属性2TTable控件的方法及应用(1)设定数据库表的使用范围(2)查询数据库表(3)生成数据库表(如表7-4所
17、示)控件名控件名属性属性属性值属性值Table1DatabaseNameDBDEMOSTablenameEmployee.dbActiveTrueDataSource1DataSetQuery1Label1Caption雇员号:雇员号:Label2Caption姓名:姓名:Label3Caption提示信息提示信息Button1Caption查询查询Button2Caption退出退出表7-4 各个控件的属性设置7.5.4 TQuery控件及其使用1TQuery控件的主要属性和方法( 7) E xecS Q L方 法( 4) R equestLive属 性( 1) D atabaseN am
18、e属 性( 8) C lose方 法( 5) U niD irectional属 性( 2) S Q L属 性( 9) P repare方 法( 6) O pen方 法( 3) P aram s和 P aram C ount属 性2TQuery控件的静态SQL查询使用TQuery控件建立静态SQL查询的步骤如下:(1)为TQuery控件设置DatabaseName属性(2)为TQuery控件设置SQL属性(3)设置TDataSource控件的DataSet属性(4)连接数据控制控件和TQuery控件(5)执行SQL语句 3TQuery控件的动态SQL语句在程序中为SQL语句中的参数赋值通常有三
19、种方法: (1)使用TQuery控件的Params属性(2)使用TQuery控件的ParamByName方法(3)使用TParams对象的ParamValues属性控件名属性属性值Query1DatabaseNameDBDEMOSDataSource1DataSetQuery1DBGrid1DatasourceDataSource1Button1Caption执行(&E)Button2Caption清空(&C)BitButton1Caption退出(&X)KindbkCloseMemo1Lines清除其中内容表7-5 各个控件的属性设置7.5.5 TDataSource控件及其使用1TData
20、Source控件的属性(1)DataSet属性、(2)Enable属性、(3)AutoEdit属性2TDataSource控件的事件(1)OnDataChange事件、(2)OnUpdataData事件、(3)OnStateChange事件7.6 数据控制控件7.6.1 数据控制控件简介7.6.2 TDBGrid控件7.6.3 TDBNavigator控件7.6.4 TDBText控件7.6.5 TDBEdit控件7.6.6 TDBMemo控件7.6.7 TDBImage控件7.6.8 TDBListBox控件7.6.9 TDBComboBox控件7.6.10 TDBLookupListBox
21、控件7.6.11 TDBLookupComboBox控件7.6.12 TDBCheckBox控件7.6.13 TDBRadioGroup控件7.6.14 其他控件图7-42 DataControls控件页上的控件7.6.1 数据控制控件简介数据控制控件是通过TDatasource控件连接到TTable控件中具体的字段控件的,因而数据控制控件具有一些共同的属性,用于连接TDatasource控件和TField控件。(1)Datasource属性(2)DataField属性(3)Enabled属性(4)ReadOnly属性表表7-6 各数据控制控件概述各数据控制控件概述控件名称控件名称功能说明功能
22、说明TDBGrid用网格形式显示来自数据源的数据,可以在设计用网格形式显示来自数据源的数据,可以在设计时使用字段编辑器,或者在运行时动态生成时使用字段编辑器,或者在运行时动态生成TDBNavigator提供一组用于数据库导航的按钮,可以修改、插提供一组用于数据库导航的按钮,可以修改、插入、删除记录以及刷新数据的显示,包含的按钮入、删除记录以及刷新数据的显示,包含的按钮在设计阶段可以进行选择在设计阶段可以进行选择TDBText用于显示数据库表中当前记录的字段值用于显示数据库表中当前记录的字段值TDBEdit用于显示和编辑数据库表中当前记录指定的字段用于显示和编辑数据库表中当前记录指定的字段值值T
23、DBMemo用于显示数据库表中的备注型字段,备注型字段用于显示数据库表中的备注型字段,备注型字段中可以包含多行字符甚至可以是中可以包含多行字符甚至可以是BLOB(大二进(大二进制对象)数据制对象)数据TDBImage用于显示数据库表中的图形字段和用于显示数据库表中的图形字段和BLOB数据数据TDBListBox当用户编辑修改表中当前记录的某个字段时,该当用户编辑修改表中当前记录的某个字段时,该控件是一个包含多个选择项的列表框,用户可以控件是一个包含多个选择项的列表框,用户可以从中选择一个项做为字段的值从中选择一个项做为字段的值TDBComboBox显示一个下拉列表框,可以直接在其编辑框中输显示
24、一个下拉列表框,可以直接在其编辑框中输入字段值,或者从下拉列表框中选择一个字段值入字段值,或者从下拉列表框中选择一个字段值TDBCheckBox显示一个复选框,当指定字段值与该复选框的显示一个复选框,当指定字段值与该复选框的ValueChecked属性值相匹配时,该复选框被选中属性值相匹配时,该复选框被选中TDBRadioGroup为用户提供一组单选按钮,用户只能从中选择一个可为用户提供一组单选按钮,用户只能从中选择一个可选项选项TDBLookupListBox显示一个列表框,用户可通过它编辑修改数据表中的显示一个列表框,用户可通过它编辑修改数据表中的字段,列表框中的值可从其他数据表中查阅字段
25、,列表框中的值可从其他数据表中查阅TDBLookupComboBox该控件结合该控件结合TDBEdit控件和控件和TDBComboBox控件的功控件的功能,下拉列表框中的可选项可从其他数据库表中读取能,下拉列表框中的可选项可从其他数据库表中读取TDBRichEdit提供一个多行编辑框,显示编辑提供一个多行编辑框,显示编辑Rich Text Memo字段字段TDBCtrlGrid可以根据用户指定的格式用二维网格显示所有数据表可以根据用户指定的格式用二维网格显示所有数据表中的字段中的字段TDBChart用于显示数据库中有关数据汇总的图形和表用于显示数据库中有关数据汇总的图形和表7.6.2 TDBG
26、rid控件1TDBGrid控件的主要属性:(1)Options属性(2)DragMode属性(3)DefalultDrawing属性(4)Columns属性图7-44 字段编辑对话框 2TDBGrid控件的主要事件及应用表7-7 TDBGrid控件中的主要事件 事件名事件名目的用途目的用途OnColEnter当用户进入网格各列时,触发该事件当用户进入网格各列时,触发该事件OnColExit当用户离开网格各列时,触发该事件当用户离开网格各列时,触发该事件OnDblClick当用户在网格中双击鼠标左键时,触发该事件当用户在网格中双击鼠标左键时,触发该事件OnDragDrop当用户在网格中用鼠标进行
27、拖放操作时,触发该事件当用户在网格中用鼠标进行拖放操作时,触发该事件OnDragOver当用户在网格中用鼠标拖动网格时,触发该事件当用户在网格中用鼠标拖动网格时,触发该事件OnDrawDataCell用于定制绘制网格中各网格单元,当向网格中填充数用于定制绘制网格中各网格单元,当向网格中填充数据时触发该事件据时触发该事件OnEndDrag当用户停止拖动网格时,触发该事件当用户停止拖动网格时,触发该事件OnEnter当网格获得焦点时,触发该事件当网格获得焦点时,触发该事件OnExit当网格失去焦点时,触发该事件当网格失去焦点时,触发该事件OnKeyDown当用户在网格中按下任何键或组合键时,触发该
28、事件当用户在网格中按下任何键或组合键时,触发该事件OnKeyPress当用户在网格中按了任何一个数字键或字母键时,触当用户在网格中按了任何一个数字键或字母键时,触发该事件发该事件OnKeyUp当用户在网格中释放任何被按下的键时,触发该事件当用户在网格中释放任何被按下的键时,触发该事件图7-45 程序的设计界面表7-8 各控件的主要属性设置控件名控件名属性属性属性值属性值Table1DatabaseNameDBDEMOSTableNameCustomer.DBActiveTrueDataSource1DataSetTable1DBGrid1DatasourceDataSource1Dbnavig
29、ator1DatasourceDataSource1Listbox1VisibleFalse7.6.3 TDBNavigator控件1TDBNavigator控件的主要属性(1)VisibleButtons属性(2)ShowHint属性(3)Hints属性图7-47 TDBNavigator控件 表7-9 TDBNavigator控件中的控制按钮按钮名称功能First将当前记录指针移到数据库表中第一条记录处Prior将记录指针移到当前记录的前一条记录处Next将记录指针移到当前记录的后一条记录处Last将当前记录指针移到数据库表中最后一条记录处Insert调用数据集控件的Insert方法,在当
30、前记录的前面插入一条新记录,并将数据集控件设置为插入状态按钮名称功能Delete删除当前记录,如果TDBNavigator控件的ConfirmDelete属性设置为true,则会弹出删除确认对话框Edit将数据集控件设置为编辑状态,以便用户修改当前的记录Post提交(保存)对当前记录的修改Cancel取消对当前记录的修改,并将数据集控件置为浏览状态Refresh清除数据浏览控件的显示缓冲区,并用与其相连的数据集控件(TTable或TQuery)中的记录刷新显示缓冲区2TDBNavigator控件的主要事件TDBNavigator控件一个重要的事件是OnClick事件,它在TDBNavigato
31、r控件的某个按钮被单击并执行相应的操作之后触发。基本格式如下:procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);7.6.4 TDBText控件1TDBText控件的主要属性在应用程序中一般要使用TDBText控件的DataSource属性和DataField属性。 2TDBText控件的应用举例用TDBText控件显示Customer.DB表中的Company字段信息,可以用如图7-50所示的窗体来实现。主要属性设置如表7-10所示。图7-50 程序设计界面表表7-10 图中各控件的属性设置图中各
32、控件的属性设置控件名控件名属性属性属性值属性值Table1DatabaseNameDBDEMOSTableNameCustomer.DBActiveTrueDataSource1DataSetTable1DBText1DatasourceDataSource1DataFieldCompany7.6.5 TDBEdit控件1TDBEdit控件的主要属性TDBEdit控件专门用于显示编辑数据库表中当前记录的字段值。 2TDBEdit控件的应用举例在图7-51所示的窗体中,TDBEdit控件用于显示和编辑Customer.DB表中当前记录的三个指定的字段,窗体中各控件的属性设置如表7-11所示,程序
33、运行之后如图7-52所示。 图7-51 用TDBEdit控件显示和编辑表中的数据控件名属性属性值Table1DatabaseNameDBDEMOSTableNameCustomer.DBActiveTrueDataSource1DataSetTable1DBNavigatorDatasourceDataSource1DBEdit1DatasourceDataSource1DataFieldCustNoReadOnlyFalse表7-11 图中各控件的属性设置DBEdit2DatasourceDataSource1DataFieldCompanyReadOnlyFalseDBEdit3Datas
34、ourceDataSource1DataFieldAddr1ReadOnlyFalseLabel1CaptionCustNoLabel2CaptionCompanyLabel3CaptionAddr1BitBtn1KindBkClose图7-52 用TDBEdit控件显示和修改表中的数据7.6.6 TDBMemo控件TDBMemo控件的主要属性:(1)ReadOnly属性(2)MaxLength属性(3)ScrollBar属性(4)WordWrap属性(5)Alignment属性(6)AutoDisplay属性7.6.7 TDBImage控件1TDBImage控件的主要属性:(1)AutoDi
35、splay属性(2)ReadOnly属性(3)Stretch属性2TDBImage控件的应用举例下面举一个使用TDBImage控件和TDBMemo控件的例子。程序的主窗体界面如图7-53所示。其中主要控件的属性设置如表7-12所示。图7-53 程序的设计界面控件名控件名属性属性属性值属性值Table1DatabaseNameDBDEMOSTableNameBiolife.dbActiveTrueDataSource1DataSetTable1DBNavigatorDatasourceDataSource1DBMemo1DatasourceDataSource1DataFieldNotesAut
36、odisplayTrueScrollBarsssVerticalWordWrapTrueDBImage1DatasourceDataSource1DataFieldGraphicAutoDisplayFalseStretchTrue表7-12 窗体中各控件的属性设置7.6.8 TDBListBox控件1TDBListBox控件的主要属性(1)IntegralHeight属性(2)Items属性(3)Style属性(4)ItemHeight属性2TDBListBox控件的应用举例举一个使用TDBListBox控件的例子。列表框的选项在设计时用String List Editor来进行编辑。程序的
37、主窗体的设计界面如图7-56所示。其中主要控件的属性设置如表7-13所示。程序的运行界面如图7-57所示。 图7-56 使用TDBListBox控件的窗体设计界面表7-13 属性设置控件名属性属性值Table1DatabaseNameDBDEMOSTableNamecountry.dbActiveTrueDataSource1DataSetTable1DBNavigatorDatasourceDataSource1控件名属性属性值DBListbox1DatasourceDataSource1DataFieldAreaItemHeight10Items.Strings(1000500009600
38、00013489284)DBGrid1DatasourceDataSource1BitBtnKindBkClose图7-57 程序运行界面7.6.9 TDBComboBox控件1TDBComboBox控件的主要属性(1)Items属性(2)Style属性(3)DropDownCount属性(4)ItemHeight属性(5)Sorted属性图7-58 TDBComboBox控件2TDBComboBox控件的应用举例图7-59 使用TDBComboBox控件的程序运行界面7.6.10 TDBLookupListBox控件控件名属性属性值Table1DatabaseNameDBDEMOSTable
39、Namecustomer.dbActiveTrueTable2DatabaseNameDBDEMOSTableNameorders.dbIndexFieldNamesCustnoMasterFieldCustno表7-14 各控件属性设置 MasterSourceDataSource1ActiveTrueDataSource1DataSetTable1DataSource2DataSetTable2DBNavigatorDatasourceDataSource1DBLookupListBox1ListSourceDataSource2KeyFieldOrdernoListFieldOrdern
40、oDBGrid1DataSourceDataSource1BitBtnKindBkCloseLabel1Captionorder no:图7-60 使用TDBLookuplistbox控件的程序运行界面7.6.11 TDBLookupComboBox控件 TDBLookupComboBox控件外观与TDBComboBox控件相同,但显示在组合框中的数据也来自于查询数据表。TDBLookupComboBox控件有关查询条件的设置与TDBLookup-ListBox控件相同。7.6.12 TDBCheckBox控件TDBCheckBox控件是把字段的值与预设的两个字符串比较,分别由ValueChe
41、cked属性和ValueUnChecked属性指定。如果字段的值与ValueChecked属性指定的字符串相匹配,则选中复选框。如果字段的值与ValueUnChecked属性指定的字符串相匹配,则不选中复选框。但这两个属性中的内容对逻辑字段本身是不起任何作用的。 7.6.13 TDBRadioGroup控件表7-15 各控件属性设置控件名属性属性值Table1DatabaseNameDBDEMOSTableNameCountry.dbActiveTrueDataSource1DataSetTable1DBNavigatorDatasourceDataSource1DBRadioGroup1Da
42、tasourceDataSource1DataFieldContinentCaption所在洲Items.Strings(AsiaSouth AmericaNorth America)DBGrid1DatasourceDataSource1BitBtnKindBkClose图7-61 使用TDBRadioGroup控件的程序运行界面7.6.14 其他控件1TDBCtrlGrid控件(如表7-16、图7-62所示)2TDBRichEdit控件3TDBChart控件控件名属性属性值Table1DatabaseNameDBDEMOSTableNameanimal.dbActiveTrueDataSo
43、urce1DataSetTable1DBNavigatorDatasourceDataSource1DBCtrlGrid1DatasourceDataSource1RowCount2Label1CaptionName表7-16 各控件属性设置Label2CaptionSizeLabel3CaptionWeightDBImage1DataFieldBMPDatasourceDataSource1DBEdit1DataFieldNameDatasourceDataSource1DBEdit2DataFieldSizeDatasourceDataSource1DBEdit3DataFieldWeig
44、htDatasourceDataSource1BitBtnKindBkClose图7-62 使用TDBCtrlGrid控件的程序运行界面返回本节返回本节7.7 报表控件7.7.1 报表控件简介7.7.2 制作报表实例7.7.3 快速创建报表7.7.1 报表控件简介QReport控件是一组用于为Delphi数据库应用程序制作报表的控件,在它的控件板中,一共有23个控件,位于控件栏的QReport控件选项卡中,如图7-78所示。图7-78 QReport控件板1、TQuickRep控件的主要属性方法有:( 4 ) P a g e 属 性( 1 ) B a n d s 属 性( 5 ) S h o
45、w P ro g re s s 属 性( 2 ) O p tio n s 属 性( 6 ) P rin te rS e ttin g s 属 性( 3 ) D a ta S e t属 性(1)Preview方法(2)Print方法 2TQRBand控件TQuickRep控件的主要属性有:(1)BandType属性(2)ForceNewPage属性(3)BeforePrint属性3TQRSubDetail控件TQRSubDetail控件的主要属性有:(1)DataSet属性(2)Master属性(3)Bands属性4其他QReport控件(1)TQRChildBand控件:一般用于在其中显示备注
46、信息。 (2)TQRLabel控件:用于在报表中显示静态的文本。(3)TQRDBText控件:用于显示数据集控件中某一个字段中的数据。 (4)TQRExpr控件:它可以使用TQRExpr控件为报表创建有关数据表的复杂计算(如图7-79所示)。图7-79 Expression属性向导对话框(5)TQRSysData控件:TQRSysData控件用于在报表中显示一些有关系统的信息。 (6)TQRMemo控件和TQRImage控件:用于在报表内显示一些备注信息,也可以通过Lines属性添加备注信息 。(7)TQRShape控件:TQRShape控件用于在报表中显示一些简单的图形。(8)TQRDBIm
47、age控件:TQRDBImage控件用于在报表中显示数据表中的图像字段。 7.7.2 制作报表实例图7-80 报表的设计界面控件名属性属性值Table1DatabaseNameDBDEMOSTableNameCustomer.DBActiveTrueTable2DatabaseNameDBDEMOSTableNameOrders.DBActiveTrueIndexNameCustNo表7-17 各控件的属性设置QuickRep1DataSetTable1HasColumnHeaderTrueHasDetailTrueHasPageFooterTrueHasTitleTrueQRLabel1Ca
48、ption主主/从报表的例子从报表的例子QRLabel2CaptionCustNoQRLabel3CaptionCityQRLabel4CaptionPhone控件名控件名属性属性属性值属性值7.7.3 快速创建报表1QuickReport Wizard(1)选择“File”“New”“Other”选项,从弹出的New Items对话框中选择Business页面,然后选取QuickReport Wizard,如图7-82所示。 (2)单击“OK”按钮后,就弹出选择报表类型对话框,如图7-83所示。 (3)然后单击“Start Wizard”按钮,就会弹出设置数据源对话框,如图7-84所示。单击“Finish”按钮,就完成了报表的设计如图7-85所示。 图7-82 New Items对话框图7-83 选择报表类型对话框 图7-84 设置数据源对话框 图7-85 利用报表向导创建的报表2利用报表模板创建报表(1)QuickReport Labels模板(2)QuickReport List模板(3)Quick Report Master/Detail模板图7-87 选择模板对话框图7-88 QuickReport Labels模板生成的报表窗体图7-89 QuickReport List模板生成的报表窗体