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