




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文设计 论文题目 通讯录管理系统 学 号 0932001468008 姓 名 宋薇 指导教师 张红荣 职称 讲师 职称 市 校 宿迁市广播电视大学 分 校 教 学 班 09计算机(秋) 2011 年11月20日目录引言1第一章 我的通讯录管理系统的初步设计2第二章 系统功能的设计4二、主表间的关系设计5第三章 窗体数据集模块64.2.2 系统的功能模块8第四章 创建登录窗体模块94.3创建数据集模块94.3.2编写窗体代码104.4.2系统主窗体的设置114.4.3 编写窗体代码11第五章 创建主窗体模块154.5创建筑窗体模块154.5.2主窗体(frm_mian)的工作流程154.5.4数据更新子模块164.5.5数据导出excel子模块184.5.6数据统计子模块194.5.7登录信息查询子模块224.5.8信息管理子模块24第六章 用户的管理模块304.6用户管理模块304.6.1窗体界面的设计304.6.2窗体的工作流程304.6.3编写窗体代码314.7用户组管理模块394.7.1窗体界面的设计394.7.2窗体的工作流程404.7.3编写窗体代码41第七章 总结49致 谢50参考文献50 引言 我所选择的毕业设计的主题是通讯录管理系统。毕业设计是在张红荣老师指导下完成的,毕业设计是从六月初开始的。通过这几个月的通讯录管理系统设计我学到了很多知识,这也对于我自己来说是一次很好的实践机会。通讯录管理系统是一个非常通用的管理系统。很多地方都需要拥有自己的通讯录管理系统,以便对自己的同学、同事、朋友等信息资料的管理及使用。本毕业设计以通用的通讯录管理系统为实例,运用Microsoft Access和Delphi进行程序设计,讲述如何开发通讯录管理系统。此设计具有很强的实用性,使用者只要根据具体情况稍加修改,就可以把它应用到实际需要中。本设计主要包括系统用户管理模块、用户基本资料模块。我们根据这些功能,设计出系统的功能模块,每一个功能模块都需要针对不同的表完成相同的数据库操作,分别是查询(查看、预览)模块,具体实现了用户和人员信息的查看和预览;更新(添加、修改、删除)模块,具体实现了用户和(新)人员信息的登记,修改和删除;生成预览报表,具体实现了人员信息的总的查看和浏览。设计利用Delphi7.0、Microsoft Access数据库技术的基本特点,提高了编成效率和可靠性.关键词:通讯录管理系统、数据库、Access、Delphi 第一章 我的通讯录管理系统的初步设计 随着网络与信息技术的发展,人们的联系人越来越多,需要联系的人逐渐增多,需要记录的信息也逐渐增多。以前是将这些信息手写到通讯录中,这很容易造成信息的丢失,而且查找起来很不方便。本系统主要实现同学信息的管理,包括同学信息的添加、修改、查询和删除,及一些辅助项目管理,如登录系统用户管理和用户组管理。系统的组成模块主要包括数据集模块,登录窗体模块,系统管理模块,主窗体模块,通讯录模块,通讯录数据管理模块,信息管理模块,登录信息查询模块。开发软件流程如下:(1)将合适的控件加入窗体(2)修改控件属性并添加响应事件代码(3)调试软件(4)完成开发,进行维护阶段开发过程:(1)数据库引擎(存取规范)的选择:Delphi本身自带有BDE数据库引擎,可以用来存取很多类型的数据库,如Access,InterBase等数据库,鉴于其开发软件时设置的困难及软件发布时附带的文件容量(大约要9M多)太大,故使用微软的数据库操作引擎ADO; (2)ADO简介:ADO(Access Data Object)是微软为了统一数据库存取的标准而制订的规范,用ADO可以存取几乎任何类型的数据,如文本文件,电子邮件,关系型数据库等,ADO是以OLE DB为基础发展起来的,具有使用方便,存取效率高等特点,并且软件发布简单(在Windows平台上,只要安装了ADO的数据库驱动程序即可,也即安装了Office办公软件中的Access即可)。 通讯录管理系统流程图:开始初始化用户登录,权限判断,进入系统的主界面 帮助文件模块数据模块(数据导出Excel,根据字断选项设置显示在表格中,然后导出excel)数据统计模块数据修改模块数据查询模块数据录入处理模块(多记录操作,由超级用户完成)数据字断模糊查询数据字断确定查询退出系统Y保存处理数据保存?N结束 流程图 第二章 系统功能的设计一、根据通讯录管理系统的功能要求,选择Access数据库作为后台数据库。该数据库有5个主表组成,包括信息表、同学表、用户表、用户组表和系统登录登记表。1、 信息表是对同学在通讯录中所留言信息的统计(表1)字段名数据类型说明IdIntId号,主键,字段大小为4发送人Nvarchar发送人姓名,字段大小为20接受人Nvarchar接受人姓名,字段大小为20信息内容Nvarchar所留信息的内容,字段大小为200发送时间Datetime信息发送的时间,字段大小为82、 同学表是对同学信息的统计(表2)字段名数据类型说明IdIntId号,主键,字段大小为4姓名Nvarchar字段大小为10性别Nvarchar字段大小为6出生年月Datetime字段大小为8用户组Nvarchar字段大小为10昵称Nvarchar字段大小为8手机号码Nvarchar字段大小为12家庭电话Nvarchar字段大小为12家庭地址Nvarchar字段大小为24就读学校Nvarchar字段大小为20班级Nvarchar字段大小为14邮编Nvarchar字段大小为10E-mailNvarchar字段大小为20QQ/ICQ/MSNNvarchar字段大小为16星座Nvarchar字段大小为16备注Nvarchar字段大小为16IsbmpNvarchar 字段大小为2相片Nvarchar字段大小为163.用户表是对通讯录系统登录用户信息的统计(表3)字段名数据类型说明Id IntId号,主键,字段大小为4用户名Nvarchar字段大小为15密码Nvarchar 字段大小为12用户权限Nvarchar字段大小为20用户组Nvarchar字段大小为204.用户组表是对用户信息的统计(表4)字段名数据类型说明IdIntId号,主键,字段大小为4用户名Nvarchar字段大小为20组长Nvarchar字段大小为205、登录系统登记表是对用户登录信息的统计(表5)字段名数据类型说明Id IntId号,主键,字段大小为4用户名Nvarchar字段大小为10用户组Nvarchar字段大小为10登陆时间Nvarchar字段大小为20退出时间Nvarchar字段大小为20二、主表间的关系设计 在这些标之间存在一定的关系。例如在同学表中,用户主字段和用户组表建立了关联关系,这样在查询同学的时候,就能够显示出用户所在组的信息,同时在查看信息表的时候,又可以通过发送人字段与同学表进行关联,以显示该同学的具体信息,各表关系图如下:(图1)第三章 窗体数据集模块本系统运行时,首先显示的是系统登录窗体,在该窗体中输入用户名和密码,并输入或者从用户权限列表中选择用户权限。系统会在用户表中验证用户输入或者选择的信息,如果验证不成功,则给出图3所示的提示信息;如果验证成功,则根据用户的权限不同进入不同的操作界面。 (图2) (图3)(图2)“通讯录管理系统“的登陆窗体 (图3)“登陆失败”的提示窗体如果用户的权限是管理员,则进入(图4)所示的窗体: (图4) 如果用户的权限是一般人员,则进入(图5)所示的窗体: (图5)在“通讯录数据管理”菜单中,包含4个子菜单。l 数据更新:可进入同学信息的管理子模块,进行同学信息的添加信息、保存信息、编辑信息和删除信息操作。l 信息浏览:可进入同学信息详细浏览的管理子模块,进行信息详细的查询操作。l 数据统计:可进入同学信息的统计子模块,根据用户设置的条件,统计符合条件的同学人数。l 数据Excel:可进入同学信息的Excel子模块,将同学表中的信息导出到Excel表中,以进行进一步的处理。(2) 在“消息管理”菜单中包含4个子菜单。l 发送消息:进入信息管理子模块,给同学写留言。l 查询消息:进入信息管理子模块,查询给同学写的留言。l 修改消息:进入信息管理子模块,修改给同学写的留言。l 删除消息:进入信息管理子模块,删除给同学写的留言。(3) 单击“登录信息查询”菜单,便可以进入到“登录信息查询”模块,进行系统登录信息查询操作(4) 在“系统管理”菜单中包含2个子菜单。l 用户管理:可以进入到“系统用户信息”管理模块,进行系统用户添加、修改、查询和删除操作。l 用户组管理:可以进入到“用户组信息”管理模块,进行用户的添加、修改、查询和删除操作。(5) 单击“退出本系统”菜单,便可以退出通讯录管理系统。4.2.2 系统的功能模块本系统主要划分为数据集模块、登陆窗体模块、系统管理模块和主窗体模块。其中主窗体模块又包括通讯录数据管理子模块、信息管理子模块和登陆信息查询子模块,主要的系统模块如图7所示。通讯录管理系统登陆窗体模块数据集模块系统管理模块主窗体模块用户管理用户组管理登陆信息查询子模块数据管理子模块信息管理子模块数据excel信息浏览数据更新数据统计(图6) 系统关系模块图第四章 创建登录窗体模块4.3创建数据集模块下面分别对这些功能模块进行介绍。1. 数据集模块通过此模块来统一管理通讯录管理系统中用到的数据库连接控件、数据源控件、数据集控件和数据查询控件。2. 登陆窗体模块使用本系统的用户分为3类:管理员、组长和一般人员。为了方便用户登陆,在登陆窗体中用户可以输入或者从用户权限列表选择用户权限,但用户名和密码要输入。在登陆窗体模块中,系统还将自动记录登陆用户的用户名和登陆时间。3. 系统管理模块用户通过此模块来管理用户组合系统登陆用户,包括登陆用户组和系统登陆用户名称的添加、修改、删除和查询等。 在进行登陆用户组和系统登陆用户记录的添加并保存时,应该进行用户组和系统登陆用户记录的用户组是否重复的检验。如果添加的用户组名和系统登陆用户名称重复,则要对用户进行提示,只有在不重复的情况下才能够进行用户组和系统登陆用户记录的添加。在进行用户组和系统登陆用户记录的删除时,要首先谈出提示窗体让用户确认是否删除,只有在用户确认以后才能进行用户组和系统登陆用户记录的删除。在进行用户组的添加和修改时,对于用户组组长字段,要提供一些用户名,以便于用户选择。在进行系统登陆用户记录的添加和修改时,对于用户组字段,要提供一些用户组名称,以便于用户选择。4. 主窗体模块主窗体模块是通讯录管理系统的主要窗体,担任着调动程序其他模块的功能,是整个应用程序的核心。用户通过此模块可以显示系统的主菜单,也可以执行数据库的备份和恢复操作。在主窗体模块中,还包括3个子模块:通讯录数据管理子模块、信息管理子模块和登陆信息查询子模块。5、通讯录数据管理子模块通讯录数据管理包括以下几部分:(1) 数据更新通过此模块进行通讯录数据的管理,包括同学信息添加、修改、查询和删除操作。(2) 数据查询通过此模块进行通讯录数据的复杂查询。(3) 数据统计通过此模块将通讯录数据的简单统计,即显示出符合条件的记录数据。(4) 数据导出报表通过此模块将通讯录中的数据导出到Excel表中,以便进一步的处理。3、 信息管理子模块通过此模块来管理通讯录中的同学留言信息,包括这些同学留言的添加、修改、查询和删除。4、 登陆信息查询子模块具有管理员身份的用户通过此模块来管理系统用户的登录信息,包括系统用户登录时间和退出时间的查询等操作。4.3.2编写窗体代码1、模块级过程的声明声明模块级过程NotifyScroll模块级过程NotifyScroll用于判断当前数据集所处的操作状态,并根据所处操作状态的不同,执行不同的操作。在过程代码中,首先记录当前数据集所处的操作状态,最后根据所处操作状态的不同执行不同的操作。声明模块级函数的代码如下:procedure NotifyScroll2、模块级过程NotifyScroll定义如下:3、数据集组件ADODataSet_classMate的AfterScroll事件 数据集组件ADODataSet_classMate的AfterScroll事件代码主要在以下两种情况下触发:l 在同学表中,添加新的同学记录并保存后;l 在同学表中,修改同学表中的某个记录并保存后。该事件代码的主要作用是根据当前数据集组件ADODataSet-classMate所处的操作状态,采取不同的方式来保存同学信息记录中的出生年月字段和相片字段。在该事件的代码中,首先定义一个tjpegimage类型的变量,然后记录挡前记录中同学的出生年月,最后判断相片字段的图像类型,并根据相片字段的不同,采用不同的方法存储相片字段的值。数据集组件ADODataSet_classMate的AfterScroll事件代码如下:4.4创建登录窗体模块登录窗体是通讯录管理系统的主窗体。使用本系统得用户分为3类:管理员和一般人员。为了方便用户登录,在登录窗体中用户可以输入或者从用户权限列表中选择用户权限,用户名和口令要用户输入。同时在该模块中,还将记录登录用户的用户名、用户权限、所属用户组和登录时间。4.4.1窗体界面设计在工程中添加一个窗体,命名为CheckUserForm,界面图7如下: ( 图7)4.4.2系统主窗体的设置要将CheckUserForm窗体设置为系统的主窗体,应该按照以下步骤执行:(1)在菜单中依次选择“工程” “选项”,出现的对话框。(2)在“Main form”列表框中选择“CheckUserForm”选项,单击“OK”按钮。4.4.3 编写窗体代码1. 模块级变量的声明声明窗体级变量username、userright、usergroup和user_loginintime,分别记录登录用户的用户名、用户权限、所属用户组和登录时间。声明模块级变量的代码如下: 2. 模块级函数的声明 声明窗体级过程judge_user和clear 以及窗体级函数Glogin。 其中窗体级函数Glogin用于判断用户输入的用户名、密码和用户权限是否符合用户登录的条件:窗体级过程judge_user用于判断登录用户的用户权限,并根据用户权限的不同设置系统主窗体中的菜单项;窗体级过程clear用于清空登录窗体中用户名、密码和用户权限对应的数据控件中的内容,以方便用户的输入。声明模块级函数的代码如下:3、模块级函数的定义(1) 窗体级过程judge_user()在窗体级函数judge_user的代码中,首先创建通讯录管理系统得主窗体,然后判断登录用户的用户权限,并根据用户权限的不同执行不同的操作。 如果登录用户是一般人员,则第一步将隐藏主窗体中的系统管理和登录信息查询菜单项,并将数据管理菜单单项中的数据更新子菜单项设置成灰色;第二步将设置对应信息表的数据集对象ADODataSet_message的CommandText属性,使该数据集返回与该登录用户具有相同用户组的同学所留的信息;第三步将设置对应同学表的数据级对象ADODataSet_classMate的CommandText属性,使该数据集返回与该登录用户具有相同用户组的同学的记录;最后打开数据级对象ADODataSet_message和ADODataSet_classMate,并显示通讯录管理系统住窗体。 如果登录用户是用户组长,则第一步将隐藏住窗体中的系统管理菜单项;第二步将设置对应与信息表的数据集对象ADODataSet_message的CommandText属性,使该数据集返回与该登录用户具有相同用户组的同学所留的信息;第三步将设置对应同学表的数据级对象ADODataSet_classMate的CommandText属性,使该数据集返回与该登录用户具有相同用户组的同学的记录;第四步将设置对应于登录登记表的数据级对象ADODataSet_login 的CommandText属性,是该数据集返回与该登录用户具有相同用户组的系统用户登录的登录信息;最后打开数据集对象ADODataSet_message、ADODataSet_classMate和ADODataSet-login,并显示通讯录管理系统主窗体。如果登录用户是系统管理员,则将没有任何限制,首先打开数据级对象ADODataSet_message、ADODataSet_classMate 和ADODataSet_login,然后显示通讯录管理系统的主窗体。定义窗体级过程judge_user的代码如下:(2)声明窗体级过程clear()在窗体级过程clear 的代码中,首先清空登录窗体中用户名、密码和用户权限对应的数据控件中的内容,最后将光标定位在用户名对应的数据控件上。定义窗体级过程clear的代码如下:(3)窗体级函数Glogin()在窗体级函数Glogin的代码中,首先关闭数据库链接对象ADOConnection,然后设置对应于用户表的数据集对象的CommmandText属性,使该数据集包括用户名、密码、用户权限等于用户输入的用户名、密码、用户权限的纪录,最后判断是否有满足条件的记录,如果没有满足条件的记录,返回false值,如果有满足条件的记录,返回true值。定义窗体级函数Glogin的代码如下:4、处理登录窗体的FormActivate事件该事件中代码的主要作用设置与用户表中用户权限对应ComboBox_UserAuthority组合框组件的初始值和数据库连接组件ADOConnectionxx的ConnectionString属性,使其连接到数据库classl。在该事件的代码中,首先从“通讯录管理.ini”配置文件中读取数据库连接字符串,然后设置数据库连接组件ADOConnectionxx的ConnectionString属性,使其连接到数据库classl,最后在与用户权限对应得数据控件中添加内容“管理员”、“组长”和“一般人员”。登录窗体FormShow事件对应得代码如下:procedure Tfrm_mian.FormActivate(Sender: TObject);begin CheckUserForm.ShowModal(); if username then begin if qx1 then begin MnuItem_Maitenance_Users.Enabled :=true; MnuItem_Maitenance_name.Enabled := true; MnuItem_Manipulation_Input.Enabled :=true; MnuItem_Message_modi.Enabled :=true; MnuItem_Message_del.Enabled :=true; MnuItem_login.Enabled :=true; tbmessage.Enabled :=true; tbshtLQuery.Enabled :=true; Smodi.Enabled :=true; Sdel.Enabled :=true; Suser.Enabled :=true end else begin MnuItem_Maitenance_Users.Enabled :=false; MnuItem_Maitenance_name.Enabled :=false; MnuItem_Manipulation_Input.Enabled :=false; MnuItem_Message_modi.Enabled :=false; MnuItem_Message_del.Enabled:=false; MnuItem_login.Enabled :=false; tbmessage.Enabled:=false; tbshtLQuery.Enabled :=false; Smodi.Enabled :=false; Sdel.Enabled :=false; Suser.Enabled :=false; Sgroup.Enabled :=false; SAdd.Enabled:=false; end; end else close;end;5. 处理“确定”按钮的Click事件“确定”按钮的Click事件的代码的主要作用是验证登录用户的合法性,如果是合法用户,就根据登录用户的用户权限来设置通讯录管理系统主窗体中的菜单项和一些组件的初始状态。在该事件的代码中,首先调用窗体级函数Glogin判断登录用户的合法性,然后根据用户是否合法来进行相应的操作。如果登录用户是合法用户,则第一部将存储登录用户的用户权限、用户名称、密码和所属的用户组,第二步将在“登陆登记表”中记录该用户的登录时间和所属的用户组,第三步将显示欢迎用户登录的信息,最后调用窗体级过程judge_user判断登录用户的用户权限,并根据登录用户的权限来设置通讯录管理系统主窗体中的菜单项和一些组件的初始状态。如果登录用户不是合法用户,则首先显示用户登录失败的信息,然后将光标定位在用户名对应的Edit_DBEdit_UserName组件上,要求用户重新输入。第五章 创建主窗体模块4.5创建筑窗体模块主窗体(frm_mian)是通讯录管理系统的主要窗体,担任着调动程序其他模块的功能,是整个应用程序的核心。4.5.1窗体界面的设计在工程中添加一个窗体,命名为frm_mian。界面图如下: (图8)4.5.2主窗体(frm_mian)的工作流程主窗体的作用很明显,主要作为整个系统的各个管理窗体的父窗体。对于不同身份的登录用户(管理员、组长和一般人员),主窗体中的主菜单显示不同的菜单项,并且PgCtrl_ShortCut和PgCtrl_Mainpulation组件上也将显示不同的内容。 对于管理员,由于管理员用户具有系统中所有的权限,因此主窗体的主菜单中显示所有的菜单项,可以通过单击菜单项进入“通讯录数据管理”子模块、“信息管理”子模块、“登录信息查询”子模块和“系统管理”子模块。 对于用户组长,由于用户组组长具有除系统管理员以外的所有权限,因此除了“系统管理”菜单项外,主窗体的主菜单中将显示其他所有的菜单项。可以通过单击菜单子项进入“通讯录数据管理”子模块、“信息管理”子模块、“登录信息查询”子模块,但是不能进入“系统管理”子模块。 对于一般人员,由于只有查询通讯录数据和用户留言的权限,因此主窗体的主菜单中将显示除“系统管理”和“登录信息查询”以外的其他的菜单项,并且“通讯录数据管理”菜单中的“数据管理”子菜单项的颜色呈灰色。可以通过单击菜单项进入“通讯录数据管理”子模块和“信息管理”子模块,但不能进入“系统管理”子模块和“登录信息查询”子模块,也不能使用“通讯录数据集”子模块中的“数据管理”功能。4.5.3数据更新子模快当系统主菜单中依次选择“通讯录数据管理” “数据更新”后 ,或者在PgCtrl_ShortCut组件中依次单击“数据管理” “数据更新”后 ,将进入通讯录数据更新子模块。该模块主要用于通讯录数据的管理,包括同学记录的添加、修改、简单查询和删除操作。1、 该子模块对应得frm_mian窗体界面设计如图:2、 处理“选择图像”按钮的Click事件“选择图像”按钮的Click事件对应的代码主要作用是为正在添加或修改的同学记录中的照片字段选择一幅图像。在该事件的代码中,首先使用系统提供的OpenPictureDialog1组件选择一幅图像,然后在系统中载入这幅图象。事件代码如下:3、 处理“保存图像”按钮Click事件 “保存图像”按钮的Click事件对应的代码主要作用是为将用户选择的图像存入正在添加或修改的同学记录中的照片字段。在该事件的代码中,首先判断用户选择的图像是否为空,如果选择的图像不位空,则调用系统函数extractfileext得到所选图像文件的扩展名,接着根据所选图像文件的扩展名设置同学表中的isbmp字段的值,以标明该幅图象是bmp还是其他的图像,最后将用户选择的图像存入正在添加或修改的同学记录中的照片字段。事件代码如下:4.5.4数据更新子模块 当在系统主菜单中依次选择“通讯录数据管理” “数据更新”后,或者在PgCtrl_ShortCut组件中依次单击“数据管理” “数据更新”后,将进入通讯录数据更新子模块,该模块主要用于同学添加、编辑、删除等功能。1、 该子模块对应得frm_mian界面设计图如下: (图9)2、 添加了Actionlist1控件。该控件主要是添加:object DataSetInsert1: TDataSetInsert Category = Dataset Caption = DataSetInsert1Endobject DataSetDelete1: TDataSetDelete Category = Dataset Caption = DataSetDelete1Endobject DataSetEdit1: TDataSetEdit Category = Dataset Caption = DataSetEdit1Endobject DataSetPost1: TDataSetPost Category = Dataset Caption = DataSetPost1end3、 处理“删除”按钮的Click事件“删除”按钮的Click事件代码的主要作用是删除所有信息。代码如下: procedure Tfrm_mian.BdelClick(Sender: TObject);begin if MessageDlg(你确信要删除记录?,mtwarning,mbok,mbcancel,0)=mrok then ADOQueryclass.Delete;end;4.5.5数据导出excel子模块 当系统主菜单中依次选择“通讯录数据管理” “数据导出excel”后,或者在PgCtrl_ShortCut组件中依次单击“查询统计” “excel”后,将进入通讯录数据导出excel子模块。该模块主要用于将通讯录中的数据导出至Excel表中,以便进一步的处理,例如设计统计和打印。1、 该子模块对应的frm_mian窗体界面的设计对应窗体界面设计图如下: (图10)2、 处理“导出excel”按钮的Click事件处理“导出”按钮的Click事件对应代码的主要作用是导出数据到Excel表中。代码如下:procedure Tfrm_mian.BitBtn1Click(Sender: TObject);var i,row,column:integer;begin Try ExcelApplication1.Connect; Except MessageDlg(Excel may not be installed,mtError, mbOk, 0); Abort; End; ExcelApplication1.Visible0:=True; ExcelApplication1.Caption:=Excel Application; ExcelApplication1.Workbooks.Add(Null,0); ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks1); ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets1 as _Worksheet); adoqueryclass.Open; row:=1; While Not( adoqueryclass.Eof) do begin column:=1; for i:=1 to adoquerymessage.FieldCount do begin ExcelWorksheet1.Cells.Itemrow,column:= adoqueryclass.fieldsi-1.AsString; column:=column+1; end; adoqueryclass.Next; row:=row+1; end;end;4.5.6数据统计子模块 当在系统主菜单中依次选择“通讯录数据管理” “数据统计”后,或者在PgCtrl_ShortCut组件中依次单击“查询统计” “数据统计”后,将进入通讯录数据统计子模块。 该模块主要用于统计通讯录中具有相同条件的记录的个数。1、该子模块对应的frm_mian窗体界面的设计对应窗体界面设计图如下: (图11)2、 模块级过程DisplayAllRecorders。 模块级过程DisplayAllRecorders的主要作用是显示同学表中所有记录。模块级过程DisplayAllRecorders的代码如下: procedure Tfrm_mian.DisplayAllRecorders ;begin with ADOQueryclass do begin close; sql.Clear; sql.Add(select * from 同学); open; end;end;3、模块级过程search。 模块级过程search的主要作用是来模糊查询同学中记录的条件。模块级过程search代码如下:procedure Tfrm_mian.search;var SearchField: string; /要查找的字段名 SearchValue: string; /要查找的字段值begin SearchField := Trim(CB1.Text); /将ComboBox的值赋给SearchField SearchValue := % + Trim(Edit1.Text) + %; /将Edit的值赋给SearchField try with ADOQueryclass do begin close; /先关闭数据模块中的ADOQuery sql.Clear; /清空ADOQuery中的SQL值 sql.Add(select * from 同学 where + SearchField + like % + SearchValue + %); /进行数据查询的SQL语句(SearchFidel和SearchValue / 分别赋到SQL语句中 end; finally ADOQueryclass.Open; /打开数据模块中的ADOQuery end;end;4、 模块级过程filldata。 模块级过程filldata的主要作用的来调用ADOQueryclass的记录。 模块级过程filldata代码如下:procedure Tfrm_mian.filldata;var iCount: Integer; /将从数据模块中取得的数据库表的字段名填入ComboBox中begin CB1.Items.Clear; /首先清空ComboBox中Items的值 for iCount := 0 to ADOQueryclass.Fields.Count - 1 do begin CB1.Items.Add(ADOQueryclass.FieldsiCount.FieldName); /加入字段名 ADOQueryclass.Next; /向下移动到下一个字段 end; CB1.ItemIndex := 0; /设置表单刚出现时ComboBox的值为第一个end;5、处理“查询”按钮的Click事件 “查询”按钮的Click事件的代码的主要作用是在所有记录中或者登录用户所在的用户组中统计出同类型别的记录数。使其统计出符合条件的记录的数量。代码如下: procedure Tfrm_mian.bcxClick(Sender: TObject);begin search; Label39.Caption := IntToStr(ADOQueryclass.RecordCount); /将数据库表中检索到的结果条数赋给label39的Captionend;5、 处理“显示所有”按钮的Click事件。“显示所有”按钮的Click事件主要用显示“同学“表中的信息,它调用模块级过程DisplayAllRecorders。procedure Tfrm_mian.Button1Click(Sender: TObject);begin DisplayAllRecorders; /显示所有end;4.5.7登录信息查询子模块当在系统主菜单中选择“登录信息查询”后,或者在PgCtrl_ShortCut组件中单击“登录信息”后,将进入通讯录的登录信息查询子模块。只有具有系统管理员权限的登录用户才能看到和单击登录信息查询的菜单项,具有用户组组长和一般人员身份的登录用户不能使用该模块。该模块主要用于查询所有登录用户的登录信息,包括登录用户的登录时间、退出时间。1、 该子模块对应的frm_mian窗体界面的设计 对应窗体界面设计图如下: (图12)2、处理“查询”按钮的Click事件 “查询”按钮的Click事件的代码的主要作用是查询符合用户设置条件的记录,并将符合条件的记录显示在DBGrid3网格组件中。 在该事件的代码中,首先判断用户输入或选择的登录用户名是否为空,如果不为空,则接着设置查询字符串,然后设置数据集组件ADOQuerylogin的Filter属性,使其返回符合查询字符串条件的记录,最后判断是否有符合条件的记录,如果没有符合条件的记录,则给出提示,并重新设置数据集组件ADOQuerylogin的Filter属性,使其返回记录。代码如下: procedure Tfrm_mian.cmdchaxunClick(Sender: TObject);var sqlstr:string;begin sqlstr:=登陆时间=+datetimetostr(dtloginintime.DateTime)+ and 登陆时间=+datetimetostr(dtloginouttime.DateTime)+; /判断用户输入或选择的登陆用户名是否为空 if dbcomboxname.Text then /设置查询字符串 sqlstr:=sqlstr+ and 用户名=+dbcomboxname.Text+; /设置数据集组件 adoqueryloginlogin的Filter属性,使其返回符合查询字符串条件的记录 adoquerylogin.Filter:=sqlstr; /判断是否有符合条件的记录 if adoquerylogin.Eof then begin /没有符合条件的记录,给出提示 showmessage(没有找到符合条件的记录); /重新设置数据集组件 adoquerylogin的Filter属性,使其返回所有记录 adoquerylogin.Filter:=用户名=; end; /将数据库表中检索到的结果条数赋给label17的Captionend;3、处理“清空条件”按钮的Click事件“清空条件”按钮的Click事件的代码的主要作用是清空用户设置的查询条件,以便于用户重新设置查询条件。在该事件的代码中,首先清空登录用户对应的组合框中的内容,然后设置登录事件和退出时间,最后重新设置数据集组件ADOQuerylogin的Ftlter属性,使其返回所有记录。处理“清空条件”按钮的Click事件的代码如下: procedure Tfrm_mian.cmdclearClick(Sender: TObject);begin /清空登陆用户对应的组合框中的内容dbcomboxname.Text:=;/设置登陆时间为2007-10-1dtloginintime.Date:=strtodate(2007-10-1);/设置退出时间为当天日期 dtloginouttime.Date:=dat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肢体功能障碍的康复护理
- 文员试用期工作总结
- 酒店餐饮厨师工作总结
- 幼儿园后勤主任年度述职报告范文3篇
- 公司级网络安全培训知识课件
- 调任后工作汇报
- 公司级安全培训指导文件课件
- 高血压三级病人护理要点
- 《花-果实和种子》课件
- 《自相矛盾》讲解课件
- GB/T 17948.7-2025旋转电机绝缘结构功能性评定总则
- 农光互补光伏发电项目发展趋势与前景分析
- 数字信号处理理论与应用练习题集
- 处方药销售管理制度2023年零售药店管理制度
- 2025年黑龙江省嫩江铁路有限责任公司招聘笔试参考题库含答案解析
- 2025年度汽车销量目标达成合作协议模板
- 《生物技术在环境保护中的应用》课件
- 2025年华能上海电力检修有限责任公司招聘笔试参考题库含答案解析
- 保洁日常标准培训
- 人教版八年级物理上册《第一章机械运动》单元测试卷(含答案)
- 全国第三届职业技能大赛(工业机器人系统操作项目)选拔赛理论考试题及答案
评论
0/150
提交评论