数据库应用软件开发delph.ppt

上传人:小飞机 文档编号:6364937 上传时间:2023-10-21 格式:PPT 页数:205 大小:1.82MB
返回 下载 相关 举报
数据库应用软件开发delph.ppt_第1页
第1页 / 共205页
数据库应用软件开发delph.ppt_第2页
第2页 / 共205页
数据库应用软件开发delph.ppt_第3页
第3页 / 共205页
数据库应用软件开发delph.ppt_第4页
第4页 / 共205页
数据库应用软件开发delph.ppt_第5页
第5页 / 共205页
点击查看更多>>
资源描述

《数据库应用软件开发delph.ppt》由会员分享,可在线阅读,更多相关《数据库应用软件开发delph.ppt(205页珍藏版)》请在三一办公上搜索。

1、数据库应用软件开发delphi,软件蓝领班毕业设计,目录,第1章 概述第2章 系统分析和设计第3章 Delphi与数据库设计第4章 Delphi连接数据库的不同方式比较第5章 Delphi 界 面 设 计第6章 Delphi 查 询 设 计第7章 Delphi报表设计第8章 Delphi实现数据库的备份与恢复第9章 Delphi应用程序的封装与发布,第1章 概述,1.什么是软件?软件是指计算机程序及其有关的数据和文档。软件文档(software documentation)是以人们可读的形式出现的技术数据和信息。“软件是程序以及开发、使用和维护所需要的所有文档(document)。”,2.软件

2、生存周期定义从设计软件产品开始到产品不能使用为止的时间周期。软件生存周期中,软件开发与维护时的费用越低,软件的使用寿命越长,产生的价值就越大,这就是掌握软件工程学的目的。3.软件生存周期的阶段划分由软件计划、软件开发和软件运行维护三个时期组成。软件计划时期分为问题定义、可行性研究、需求分析三阶段。软件开发时期分为软件概要设计、软件详细设计、软件实现、综合测试等阶段。软件运行过程中需要不断地进行维护,使软件持久满足用户需要。,第 2 章 学生成绩管理系统分析与设计,2.1 系 统 分 析2.2 系 统 设 计,2.1 系 统 分 析,2.1.1 可行性分析,要开发的是小型数据库应用软件,利用开发

3、者学过的delphi语言和access数据库可以实现,机房配备相关软件和硬件,有4个月的开发时间已经足够。,2.1.2 需求分析,需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确切要求,即明确系统究竟要“做什么”。需求分析是发现、逐步求精、建模、规格说明和复审的过程。为了全面反映出系统各方面的需求,在需求分析阶段应在与用户充分沟通和调查研究的基础上,运用各种需求分析的工具和技术,为系统建立准确的数据模型、功能模型、行为模型以及数据字典。2.1.1 确定目标系统的具体要求(1)确定系统的运行环境要求(2)系统的性能要求(3)确定系统功能,2.1.2 建立目标系统的逻辑模型模型是为了理

4、解事物而对事物做出一种抽象,对事物的无歧义的书面描述。模型由一组图形符号和组成图形的规则组成。建模的基本目标是:描述用户需求 为软件的设计奠定基础 定义一组需求,用以验收产品。模型分为:数据模型:来描述数据对象及相互关系。用实体关系图(ER)功能模型:用数据流图 行为模型:用状态转换图数据字典用来描述软件使用或产生的所有数据对象,并对各种图形工具所不能表达的内容加以补充。,学生成绩管理系统实体-关系图,数据模型,画学生成绩管理系统的数据流图。,功能模型,输入处理输出(Input Process Output)图的简称。画出学生成绩管理系统的 IPO 图。,数据字典使用的符号,表示“等价于”或“

5、定义为”连接,|表示“或”,用“|”分隔,表示可任选其中某一项 表示“重复”()表示“可选”,用“,”号隔开1A 表示 A 的内容至少要出现 1 次。B 表示 B 的内容允许重复 0 至任意次。如:成绩单学号姓名1课程名成绩3 也可写为 成绩单学号姓名 课程名成绩,2.2 系 统 设 计,2.2.1 功能设计 作为学生成绩管理系统,从功能上主要分为登录模块、主程序模块和退出模块3大部分。,登录模块主要用于登录学生成绩管理系统,是进入系统的第一步,主要涉及数据库的连接,用户名、密码的检测判断和软件验证。主程序模块是整个系统的操作界面,包括班级管理、档案管理、交费管理、课程管理、成绩管理、奖惩管理

6、、奖学金管理、学生补助管理、勤工助学管理、统计分析以及系统帮助等模块。,退出模块包括数据备份数,即退出系统的同时对整个操作过程中的数据库数据进行备份。图2-1所示为学生成绩管理系统的功能模块图。,班级管理,学生信息管理,课程管理,成绩管理,奖惩管理,教师信息管理,统计分析,系统帮助,系统登录,退出,图2-1 学生成绩管理系统功能模块图,2.2.2 系统结构框图 系统结构框图可以反映系统主要功能之间的关系,对学生成绩管理系统进行总体设计,需要对整个系统的结构有一个清楚的认识和设计。图2-2所示为学生成绩管理系统的结构框图。,学生成绩管理系统的结构图,学生成绩管理系统在学生入学时输入学生基本信息。

7、每次单科成绩是按班级内学生学号的顺序依次输入每位学生的平时成绩和考试成绩。然后由计算机计算每位学生的单科成绩总评分。输出的学生个人成绩单格式。班级各科成绩汇总表。,2.2.3 系统实现 学生成绩管理系统是一个数据库应用系统,实现该系统所采用的框架是单机结构。,第 3 章 Delphi与数据库设计,3.1 常用桌面型数据库3.2 常 用 大 型 数 据 库3.3 学生成绩管理系统数据库设计,3.1 常用桌面型数据库,DBF格式的数据库文件是最常用的数据库格式文件之一,它可由多种数据库软件创建,包括dBASE、Foxpro、Visual Foxpro、Clipper等,通过使用这些数据库工具,可以

8、直接编辑、修改、查询存储在以DBF为后缀文件中的数据,采用Microsoft Excel也可以打开并修改DBF数据,Paradox数据库是Borland公司的第一个数据库开发工具。创建Paradox数据库可以采用随Delphi一起分发的Database Desktop工具,它可以创建和修改表结构、索引,可以输入、修改表中的记录数据。Access数据库Microsoft Access是微软公司推出的Office 组件中的一个重要组成部分,是目前应用最广泛的主流桌面数据库管理系统之一。,3.2 常 用 大 型 数 据 库,简 介 大型数据库泛指那些容量大、功能完善、速度快的DBMS(Databas

9、e Manager System),例如MS SQL Server、Oracle、DB/2、Informix、Sybase等,大型数据库与普通数据库是从安全性、严谨性、共享性等原则上进行区分的。大型数据库向分布式数据库和对象数据库技术方向发展。,从功能角度来看,大型数据库对因特网的支持、对数据库仓库OLAP(OnLine Analytical Processing,联机分析处理)应用的支持越来越强,其管理平台正在向集成化、智能化、平台化发展。,大型数据库可以进行巨量数据的处理,例如,Oracle能够处理数百万TB容量的数据。同时,大型数据库与桌面型数据库相比较,最显要的特点就是内含存储过程、触

10、发器、视图和自定义数据类型等数据库元素,同时有的大型数据库还可以建立用户自己的函数、规则等,以扩充数据库的功能。大型数据库支持SQL语句,可通过约束、规则、触发器等数据库对象来保证数据的完整性,包括实体完整性、参照完整性和数据域的完整性。,需要注意的是,各大型数据库的SQL语法规范在符合SQL92标准的基础上,都对SQL语法进行了相应的扩充,这些扩充并不能保证不同类型的数据库之间相互兼容,这点在数据库平台发生变更的时候要充分考虑。,大型数据库均可为用户提供多层的客户机/服务器数据库应用平台。数据库驻留在一个中央计算机上,作为数据服务器,用户端通过应用程序访问该数据服务器上的数据库。访问的时候,

11、服务器首先对客户端进行安全认证,在获得许可后,数据服务器对客户端提出的数据访问请求进行处理,然后将执行结果返回给客户端。,这种客户机向服务器提出服务请求,服务器进行处理服务请求,然后,将结果返回到客户端的数据处理模式就是客户机/服务器工作模式。,考虑到本系统的通用性与开发的可易性,我们采用MS Access 2000数据库进行开发,数据连接方式采用ADO,开发完成后可以非常容易地升级到网络级的应用,网络数据库可以采用MS SQL Server 7.0或MS SQL Server 2000。,3.3 学生成绩管理系统数据库设计,第 4 章 Delphi连接数据库的不同方式比较,4.1 BDE4.

12、2 ADO4.3 dbExpress 4.4 ODBC 4.5 学生成绩管理系统连接数据库,4.1 BDE,BDE(Borland Database Engine)是Borland公司推出的一套数据引擎,用来实现应用程序与数据库之间的连接。使用BDE的时候,需要使用BDE Administrator来配置一个别名,这个别名实质上是访问数据库的一个标识符,内部封装了访问数据库所需要的多个参数,如图4-1所示,不同的数据库所封装的参数是不一样的。,图4-1,4.1.1 BDE文件组成 BDE所需要的一系列文件在默认情况下位于Program FilesCommon filesBorland Shar

13、edBDE目录下,包括不同类型数据的支持库、BDE Administrator(bdeadmin.exe)、数据迁移工具(datapump.exe)、帮助文件等。BDE通常采用以下3种方式实现应用程序与数据库的连接。,(1)采用Borland公司自己内置的驱动程序来连接数据库。一般应用在连接Paradox、dBase等数据库。(2)采用SQL Links连接数据库。一般应用在客户机/服务器模式下的数据库应用程序开发。(3)采用ODBC方式连接数据库。一般应用在不具备内置驱动,又不具备SQL Links驱动程序的数据库。,如果数据库是Microsoft Access,则分发BDE相关文件的同时还

14、要分发DAO(Data Access Objects),它是基于COM技术的数据访问 API,提供了对Jet和ODBC的封装。,4.1.2 BDE组件 在组件面板BDE页上集成了访问和管理BDE数据集的VCL组件,如图4-2所示。,图4-2,其中包括TTable、TQuery、Tdatabase等组件,这些都是不可见组件。Ttable代表任何数据库中的物理表或数据集,TQuery可实现单表或多表的查询,实现连接或嵌套的各种复杂查询,实现按照SQL合法语句完成的功能,例如Insert、Update、Drop等操作。,4.1.3 BDE手工配置 在开发应用程序时,使用的数据库可以通过BDE Adm

15、inistrator来进行配置。BDE Administrator可在Delphi安装程序组或者控制面版中打开。配置完成后,通过“Open”操作可以进行测试是否成功,如图4-3所示。,图4-3,如果配置BDE别名成功,可以使用Delphi自带的SQL Explore来打开其中的表、视图、存储过程等数据库对象。,4.1.4 程序设计中建立BDE别名 在程序中建立BDE别名,需要使用BDE组件面板上的Database控件。操作步骤如下。(1)启动Delphi后,新建或选择已存在的DataModule,然后选择BDE组件面板,将Database控件添加到DataMoudle上,并取名为Databas

16、e1。如图4-4所示。,图4-4,(2)鼠标双击控件Database1,弹出如图4-5所示界面,进行别名参数设置。(3)单击“OK”完成BDE的设置。,图4-5,有以下两点需要注意。(1)在其他单元中,如果要使用所定义的Database,必须使用USE语句引入DataMoudle单元,否则无法实现关联引用。(2)把数据规则定义在同一模块是一种好的编程习惯,不但方便使用和维护,而且对于以后程序的扩展升级也方便,很容易迁移到三层或多层。所以建议将Database、Table、Query等对象创建到同一个DataMoudle管理模块中。,4.1.5 动态创建BDE别名 程序中可以动态创建BDE别名,

17、以降低应用程序与数据库的关联密切性。下面给出一种解决方案。(假设应用程序工程文件为cjgl.prj,编译后生成的执行程序为cjgl.exe),(1)建立cjgl.ini文本配置文件(2)使用代码将cjgl.ini中数据库选项的内容读取到Database的参数列表中,实现应用程序与实际数据库的代码隔离。(3)在程序中,所有需要引用DataBaseName的BDE数据组件,其属性DataBaseName均引自该DataModle中的DataBase。,4.1.6 通过BDE别名查看数据库对象 通过BDE别名查看数据库对象的操作步骤如下。(1)打开SQL Explore后,在Database列表中选

18、择将要查看的BDE别名,如图4-6所示。,图4-6,(2)用鼠标单击别名前面的“+”号,或者在别名上单击鼠标右键,或者使用菜单来打开当前的别名,如图4-7所示。,图4-7,打开别名后,数据库对象名称以树形结构显示出来,如图4-8所示。,图4-8,(3)用鼠标单击对象名称,可以查看具体的内容,如图4-9所示。,图4-9,4.2 ADO,ADO(ActiveX Data Objects)是Microsoft公司提供的访问数据库的一套组件,其底层为OLE DB。ADO是Microsoft公司近年来所提出的数据访问策略之一,这些策略大多以大写字母的缩写来表示,了解其含义,有助于对ADO有更清楚的认识。

19、,4.2.1 ADO组件 在组件面板ADO页上集成了访问和管理ADO数据集的VCL组件,如图4-10所示。,图4-10,4.2.2 程序设计中建立ADO连接 在程序中建立ADO连接,需要使用ADO组件面板上的ADOConnection控件。操作步骤如下。(1)启动Delphi后,新建或选择已存在的DataModule,然后选择ADO组件面板,将ADOConnection控件添加到DataMoudle上,并取名为ADOConnection1。,(2)鼠标双击控件ADOConnection1,弹出如图4-11所示界面,进行别名参数设置。(3)单击“OK”完成ADO的设置。,图4-11,有以下几点需

20、要注意。(1)在其他单元中,如果要使用所定义的ADOConnection,必须使用USE语句引入DataMoudle单元,否则无法实现关联引用。(2)把数据规则定义在同一模块中是一种好的编程习惯,不但方便使用和维护,而且便于以后程序的扩充,很容易迁移到三层或多层应用。所以建议将使用到的组件。,在图4-11中,单击按钮“Build”,进入ADO链接串配置向导,如图4-12所示。,图4-12,图4-13和图4-14分别给出了Paradox和MS SQL Server两种数据库的参数配置界面。如果有口令保护,并且不希望程序连接数据库时提示输入用户名称和对应的口令,则需要在界面中输入用户名称和对应的密

21、码,并且要注意修改ADOConnection的LoginPrompt的属性为False。,图4-13,图4-14,完成参数填充后,单击按钮“测试连接”可以测试给出的参数是否正确。如果正确,系统提示“测试连接成功”,如图4-15所示。,图4-15,4.2.3 动态建立ADO连接(1)建立ADO连接的参数保存在程序的配置文件gxgl.ini中。(2)在应用程序中,创建Database前使用下面的代码将gxgl.ini中数据库选项的内容读取到Database的参数列表中,实现应用程序与实际数据库的代码隔离。,注意事项。(1)以上代码假设ADOConnection在DataMoudle中创建,并且Da

22、taMoudle的名字为DMData。(2)由于使用了TiniFile对象,需要在声明中引入inifiles,即使用uses语句声明inifiles。,(3)由于使用了Application对象,需要在声明中引入Forms。(4)对于theIni,在本例中作为全局变量,要求系统启动时首先创建theIni,例如,可在DMData的initialization初始化模块中建立;在系统退出时要释放,例如,在DMData的finalization模块中执行FreeanNil(theIni)。,4.2.4 不同数据库的ADO链接串定义 1DBF/FoxPro 2Oracle 3MySQL 4Interb

23、ase,5Sybase 6Informix 7Excel 8Text 9Visual FoxPro 10Paradox,4.3 dbExpress,4.3.1 dbExpress组件 在组件面板dbExpress页上集成了访问和管理dbExpress数据集的VCL组件,如图4-16所示。,图4-16,4.3.2 使用dbExpress创建数据库应用程序,图4-17,图4-18,图4-19,图4-20,图4-21,图4-22,图4-23,图4-24,图4-25,图4-26,图4-27,图4-28,图4-29,图4-30,图4-31,只能单向浏览,图4-32,图4-33,采用dbExpress也能

24、够实现数据的双向浏览和修改保存,1.通过组件TSimpleDataSet来实现2.使用TSQLDataSet搭配TDataSetProvider和TClientDataSet组件来实现,4.4 ODBC,ODBC(Open Database Connectivity)即“开放式数据库互连”,是Microsoft公司的一种技术。图4-36给出了应用ODBC环境的4个层次模型。,图4-36,配置ODBC,可打开Windows操作系统中的控制面板,通过附带的ODBC数据源管理器进行配置,如图4-37所示。,图4-37,4.4.1 通过管理器创建ODBC数据源 4.4.2 动态创建ODBC数据源,动态

25、建立ODBC的过程可仿照上述代码来完成。需要注意的是,不同的数据库所对应的参数是不一样的,具体的参数可通过手工建立ODBC,然后参考注册表“HKEY_CURRENT_USERSoftwareODBCODBC.INIODBC Data Sources”键下的内容进行相应修改。,4.5 学生成绩管理系统连接数据库,本系统在开发时采用MS Access数据库。根据前面我们讨论的内容可以看出,采用ADO数据连接方式最方便。,第 5 章 Delphi 界 面 设 计,5.1 设计界面应考虑的问题5.2 校务管理系统界面设计 5.3 设计通用型数据输入界面5.4 系 统 安 全 设 计5.5 系 统 性

26、能 优 化,用户界面(User Interface,UI)是应用程序非常重要的,它直接影响到程序的使用价值。对于大多数用户来说,界面就是他们对一个产品的全部了解,界面就是程序。一个内部设计良好,功能、性能都不错,但界面不好的应用程序就不是一个好的程序。我们采用Delphi开发Windows应用程序,一定要重视界面的设计。,5.1 设计界面应考虑的问题,常用的用户界面设计技巧和技术(1)界面一致(2)建立标准并遵循这个标准(3)阐明规则(4)同时支持生手和熟手,(5)界面间切换很重要(6)界面上的布局很重要(7)提示信息和标签措辞要适当(8)了解控件(9)对其他软件不盲从(10)颜色使用要适当,

27、(11)遵循对比原则(12)字体使用要适当(13)灰掉而不是移走(14)使用非破坏性的缺省按钮(15)区域排列,(16)数据对齐要适当(17)屏幕不能拥挤(18)有效组合(19)在操作焦点处打开窗口(20)弹出菜单不应是惟一的功能来源,而应是屏幕上各操作功能的补充,5.1.2 常用的窗体设计技巧常用的窗体设计技巧有如下几个方面。(1)注意界面间切换、界面布局。(2)理解窗口中的各组件。(3)使用颜色要谨慎。界面中除非有特殊需要,否则不要使用非常鲜艳的颜色。(4)遵循对比原则。在浅色背景上使用深色文字,在深色背景上使用浅色文字。,(5)字体使用要适当、一致。建议窗口容器及所有的可视组件使用中文宋

28、体,9磅(小五号)字体,字符集使用CHINESE_GB2312,这样可保证窗口在Windows 9X 和 Windows 2000系列操作系统中不变形。(6)菜单或按钮等对象不可用时,使用Disable属性使其灰掉而不是移走或不可见。,(7)对于缺省按钮,要保证其不会产生错误的操作。(8)编辑区域左对齐,相应的标签则应右对齐。(9)整数、浮点数右对齐,字符串左对齐。,(10)避免屏幕中各个对象形成拥挤的现象,布局间距要均匀一致。(11)使用方框和间隔对窗体上有逻辑关系的项目加以组合。(12)在操作焦点处打开窗口。(13)右键弹出菜单不应是惟一的功能来源。,5.2 校务管理系统界面设计,5.2.

29、1 创建主程序 主程序是程序控制的核心,在主程序的窗体中可以调用程序中的任一个模块,实现系统的所有功能。主程序窗体一般包括菜单栏、主界面和状态栏3部分。,图5-1,图5-2,图5-3,图5-4,图5-5,图5-6,图5-7,图5-8,图5-9,5.2.2 菜单 在进行菜单设计时,在主窗体MainFrm上拖放TmainMenu,双击或单击鼠标右键,在弹出的菜单中选择“Menu Designer”,如图5-10所示。设定系统菜单项如图5-11所示,运行效果如图5-12所示。,图5-10,图5-11,图5-12,5.2.3 窗体 执行“File”“New”“Form”,创建新的窗体界面。按照上面讲述

30、的步骤设定窗体字体,修改窗体及对应单元的Name,然后存盘。根据功能的设计,在此窗体上依次拖放、编排对应可视化组件,同时注意进行属性的初始化和对应方法或事件的处理。在引用此窗体的单元中,注意使用uses语句加入引用。图5-13所示为基本课程设置界面。,图5-13,图5-14,图5-15,图5-16,5.2.4 数据录入界面 数据录入界面是数据的入口,数据录入一般有两种方式:表单式录入和浏览式录入。表单式录入方式有两种,一种是采用TDBEdit、TDBMemo、TDBCheckBox等数据控制组件来组成录入界面。第二种是采用非数据控制组件,例如TEdit、TMemo、TCheckBox等组件构成

31、录入界面。,5.2.5 数据浏览界面 一般情况下,数据浏览界面与数据录入界面的差别为:在数据浏览界面中不能对数据进行修改、删除等操作,对于用户来说数据是只读的,数据操作侧重于浏览而不是编辑。在“高校学生校务管理系统”中,数据浏览界面结构如图5-19所示。,图5-19,5.3 设计通用型数据输入界面,为了减少代码量,在分析同类型功能模块的基础上,如果能够实现公用输入模块,则建议设计通用型数据输入界面。例如,对于简单的数据输入,可以直接采用如图5-23所示的界面来完成。,图5-23,5.4 系 统 安 全 设 计,一般的系统安全设计应该保证以下几点。(1)有口令保护。(2)对不同级别的操作员分配不

32、同的权限。(3)数据存储中,对敏感的内容进行加密处理。,5.4.1 系统登录界面,图5-28,5.4.2 权限分配与设计 利用数据位来存储权限。例如第0位为“1”时表示具有“增加班级权限”,为“0”时表示没有“增加班级权限”,依此类推来设定所有的权限。存储权限的字段可以是字符型,也可以是整型。当为整型的时候,注意对于Integer类型的数据为32位,说明最多可以保存32种权限,即要注意数据类型字节数的问题。,5.5 系 统 性 能 优 化,狭义地讲,软件性能是指软件在尽可能少地占用系统资源的前提下,尽可能高地提高运行速度;广义地讲,软件性能是指软件质量的属性,包括正确性、可靠性、易用性、安全性

33、、可扩展性、兼容性和可移植性。,应当对业务进行充分的面向对象的分析和设计,从而得到我们真正需要实现什么以及如何去实现。代码量的增大,应当充分考虑可重用性代码,以面向对象技术去构建自己常用的、性能稳定的源代码工具包,作为插接件,去构建不同的系统。,针对执行程序,如果功能、代码很多,应该考虑执行代码的“分装”。系统内部有些不常使用的对象,建议在使用的时候才创建,使用完成后接着进行释放。,第 6 章 Delphi 查 询 设 计,6.1 设计查询界面应考虑的问题6.2 校务管理系统查询设计6.3 设计通用型查询界面,6.1 设计查询界面应考虑的问题,对于数据库管理系统,数据查询占有很重要的地位,而且

34、必不可少。数据查询既可以查询所输入的各种数据,也可以对有关数据进行统计汇总,所以设计查询界面的时候应当考虑统计、汇总的操作。,用户查询的结果应当能够在屏幕上直接显示出来,同时必要的时候,也应该考虑查询结果能够在打印机上输出,以满足不同查询的需要。查询数据应当充分考虑用户的不同需要,既要有对常用数据的查询,又应当考虑用户对数据的其他需求,所以建立查询界面的时候不应当局限于某些数据,应当充分考虑用户业务规则的需求。,查询界面应当简洁、明快,使用户操作方便。容易上手的操作界面始终是用户乐于接受的,相反,操作复杂、约束又很多的查询界面,即使最后结果能够满足查询结果的要求,用户往往也是不容易接受的。,查

35、询数据的方法在Delphi中一般应用较广的是使用SQL语句,或者利用DataSet的Filter属性来实现。前者功能强大,可以同步实现排序、统计个数、求和、平均、最大、最小等操作,而且可以通过关联语句实现多个表的组合查询、模糊查询;后者针对当前Dataset缓冲中的数据按照一定条件进行过滤,具有查询速度快的特点。针对不同的需求,这两种查询方法都有各自的特点,可应用于不同场合。,6.2 校务管理系统查询设计,6.2.1 SQL的应用6.2.2 Filter的应用,6.3 设计通用型查询界面,数据查询是有共性的,即根据用户查询的要求去合成(或创建)查询过滤语句,实现数据的查询。,第 7 章 Del

36、phi报表设计,7.1 设计报表应考虑的问题7.2 实现用户自定义报表7.3 Delphi 7自带报表系统介绍7.4 FastReport 介 绍7.5 校务管理系统报表,7.1 设计报表应考虑的问题,数据报表是数据库应用系统不可分割的重要组成部分,作为企事业单位上报、下达、存档的重要信息载体,数据报表已经成为管理信息系统中重要的一项功能,并且,由于数据的多样性和统计信息的增加,数据报表的系统实现变得越来越复杂。,在设计数据库应用程序的时候,报表一方面要反映出用户的需求,另一方面应该能够根据用户业务要求衍生出一系列对用户实际有所帮助的统计、分析报表。报表的输出格式有纸张打印和屏幕输出两种,设计

37、应用系统的时候这两种格式均应能够实现。此外,为了实现数据的交换,应该考虑报表以其他格式的保存,例如Html超文本格式、微软Excel的格式(*.XLS)等,实现信息数据的共享。,一般情况下,用户业务需求是不断发展变化的,设计出的报表系统应该能够适应这种动态业务的发展,及时为用户提供新格式的报表。,尽管报表格式相对固定,但是由于用户业务的调整而带来的报表的修改也应当考虑。为了减少维护成本,增强用户报表功能,应充分考虑报表模板的可维护性,也就是说,如果用户能够自己维护、扩充报表及报表模板,那么对于加强所开发的应用系统的功能是非常有意义的。,7.2 实现用户自定义报表,7.2.1 概述 采用Delp

38、hi开发报表应用程序可以使用第三方VCL报表组件,包括Delphi自带的报表系统。这些组件功能强大、使用方便,不过在编写应用系统的时候,建立属于自己的报表系统往往还是很有必要的,一方面可以更灵活地实现报表需求,另外可以不用考虑版权等约束,此外还有可能减少不要的代码,使程序更加简练。,Delphi中封装了TPrinter对象,它隐藏了大部分的打印管理工作,通过TPrinter的属性和方法使程序员可以像在窗体画布上画图一样在打印机上进行输出。TPrinter.Canvas表示的是打印机的输出画布,大多数显示文本、图像、画图的程序都可以如同窗体画布上显示的一样在打印机上打印输出,这样通过TPrint

39、er可以实现自定义报表。,7.2.2 文本打印 使用TPrinter打印文本的时候,只需向打印机发送文本即可。界面如图7-1所示,其中FontDialog1的属性Device取值为fdPrinter。,图7-1,7.2.3 图形打印和窗体打印 打印图形依赖于TPrinter.Canvas,完全类似于在窗体画布上绘制图形。窗体的打印直接使用TForm的Print方法即可。,7.3 Delphi 7自带报表系统介绍,随Delphi 7一起安装使用的是一套Rave的报表组件,如图7-2所示,它由13个控件组成,来完成报表的工程管理、引擎、数据连接等功能。,图7-2,各部分功能简介如表7-3所示。,采

40、用Rave设计报表的是通过Rave Designer来实现的。在Rave组件面板上选择TrvProject控件并拖放到设计报表的Form上,双击TrvProjec控件或者在Delphi的IDE开发环境中,选择“Tools”“RaveDesigner”命令,打开Rave Designer,启动窗口如图7-3所示。,图7-3,Rave Designer的主界面如图7-4所示,报表开发环境由菜单栏、工具栏、组件面板、属性编辑器、页面设计器、事件编辑器、对象浏览器组成。报表设计器是一个可视化的开发环境,类似于Delphi开发环境。,图7-4,使用Rave设计一个数据报表。,7.4 FastReport

41、 介 绍,FastReport简介 顾名思义,FastReport就是“快速报表”系统,是目前数据库管理与应用开发常用的一套报表系统。FastReport由Delphi编写完成,可获取多种数据源来实现报表,例如BDE、ADO、IBO(连接InterBase),甚至字符列表、Pascal数组等。,具有以下功能。(1)独立的可视化的报表设计器,能够完成报表模板的设计。(2)报表模板支持文件存储、数据库BLOB字段存储、DFM窗体存储、数据流存储等模式,支持最终用户的调用修改。(3)由于使用纯Delphi编写完成,所以可以将整个报表支持系统编译连接到应用程序。,(4)支持很多有用组件,例如文本、线段

42、、图像、图形、OLE对象、格式文本、图表、条形码、带阴影的文本等。(5)报表页数无限制。(6)使用纸张无限制(打印可用纸张与打印机设备有关)。(7)输出支持预览和打印,支持向TXT、RTF、HTML、CVS等格式的文件输出。,(8)支持子母表、分组报表、多页报表、多栏报表等多种形式的报表输出。(9)报表内置Pascal解释器,支持创建自己的报表组件、函数类库,从而可使报表更加生动、直观。(10)支持多种获取外部数据源的连接,例如BDE、ADO等。,图7-18图7-20所示为FastReport2.52安装后的组件面板,共有3组组件:FastReport面板上的组件为报表系统的主要组件,包括设计

43、器、预览、数据连接组件等;FastReport Exports为报表输出文件格式控制组件,包括RTF、XLS、HTML、BMP等;FastReport Tools为一组界面控件,主要应用于FastReport Designer界面中设计,当然,也可以使用这组控件用于我们设计的界面。,图7-18,图7-19,图7-20,7.5 校务管理系统报表,7.5.1 OLE技术简介7.5.2 采用Excel实现报表输出 优点。报表设计器就是Excel自身,功能强大、方便易用;报表模板可随时根据需要进行改正。,Excel打印预览等功能强大,可以直接使用。Excel自身提供强大的自动化接口,方便易控。减少开发

44、成本,提高开发效率。但是,采用Excel作为报表工具的应用程序要求用户使用端必须安装Microsoft的Excel,这点是不利的,因为不能够保证所有的应用系统用户都安装了MS Excel。,Delphi控制Excel的实现原理和方法。1创建Excel文件2数据表格控制(1)数据的导入(2)单元格的合并、边框的控制(3)表格的复制与粘贴,3文件的保存4报表制作应注意的问题(1)报表格式的选择(2)打印(3)报表时间和表头,第 8 章 Delphi实现数据库的备份与恢复,8.1 文件复制方式备份数据库8.2 数据差额方式备份与恢复 8.3 校务管理系统的数据库备份,8.1 文件复制方式备份数据库,

45、系统的安全性包括数据库的安全,数据库的安全一方面需要加强用户管理,防止非法侵入,另一方面要做好数据库的及时备份,防止因各种原因导致的数据丢失等。,纯粹的桌面型数据库一般都是以文件为单位进行管理的,这样的数据库最简单的备份方法就是直接拷贝数据库文件,对于索引文件(*.idx、*.cdx等)、备注文件(*.fpt)等也要同步备份。对于大型数据库,将备份出的文件拷贝到不同的介质进行保存,实现数据库的备份。当然大型数据库的备份/恢复功能是很强大的。,总之,备份数据库的原则就是将保存数据的文件拷贝到异地、异存储介质上,以达到数据安全备份的目的。,8.1.1 Delphi实现文件的复制下面给出Delphi

46、实现文件复制的几种方法。实现文件拷贝,调用API函数需要LZEXPAND.DLL实现文件拷贝,使用文件流的方式实现文件拷贝,利用内存块读写buffer实现,8.1.2 不同数据库的全文件备份与恢复讲述MS SQL Server数据库的备份/恢复。1冷操作备份2冷操作恢复,3热操作备份方法:通过SQL备份语句Backup来实现。语法:Backup DataBase DatabaseName to Disk FileName with init 实现:在Query Analyzer环境中执行上述命令,或通过代码来实现。,4热操作恢复方法:通过SQL恢复语句Restore来实现。语法:Restore

47、 DataBase DatabaseName to Disk FileName 实现:在Query Analyzer环境中执行上述命令,或通过代码来实现。,8.2 数据差额方式备份与恢复,8.2.1 原理 采用差额方式备份与恢复最关键的技术是“时间”概念,即在数据保存的同时要记录当前的时间,这样对于所有的数据,都会记录下“时间”,从而为差额备份与恢复提供了技术依据。,8.2.2 SQL与文件流实现数据差额备份与恢复 备份过程实现的基本思路如下。(1)通过TADOQuery实现与数据表的连接,通过select语句中的where子句实现获取特定时间的数据。,(2)将获取的数据以记录、字段顺序进行保

48、存,保存的过程中,由于涉及文件的读写,采用文件流方式比较快且操作方便。对于恢复,则首先将数据读入到ADODataset中,然后依次送回到数据库中。上述方法实现起来比较复杂,需要考虑的注意事项较多,这里不再详细阐述。,8.2.3 ADO连接方式下的特殊应用 在ADOdataSet中有个SaveToFile方法,通过SaveToFile可以将当前数据集中的数据保存到一个文件中,如果这个文件存在,则进行覆盖。语法为:procedure SaveToFile(const FileName:String=;Format:TPersistFormat=pfADTG);,与之相对应的是LoadFromFil

49、e,实现了从一个文件中读取数据到数据集中,语法为:procedure LoadFromFile(const FileName:WideString);,8.3 校务管理系统的数据库备份,由于校务管理系统的数据相对来说并不大,所以在数据库备份的时候可以采用全额备份的方式,即备份整个数据库的内容,通过采用以下两种方式实现备份。,(1)对于Access数据库,可以直接备份Access所对应的数据文件,即GXData.mdb。(2)对于MS SQL Server数据库,采用以下Backup Database方式。程序中使用代码完成。程序外通过MS SQL Server集成环境来实现。,第 9 章 De

50、lphi应用程序的封装与发布,9.1 应 考 虑 的 问 题9.2 系统帮助文件的制作9.3 安 装 盘 的 制 作,9.1 应 考 虑 的 问 题,Delphi的功能很强大,可以开发多种类型的应用程序或支持库组件,为了实现对开发产品的分发,需要对开发出来的产品及相关文件进行打包封装。在封装与分发的过程中,要注意以下几个方面的问题。,(1)要保证文件能够正常运行。一般情况下,我们开发出来的程序需要许多其他文件作为支持,例如数据文件、数据库支持文件、数据库链接文件、系统配置文件等,这些文件在我们的开发环境中已经具备,但在用户端不能保证所有的文件都具备,所以应当考虑在应用程序封装的时候不能遗忘系统

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号