《毕业设计合同统计系统的设计与实现论文.doc》由会员分享,可在线阅读,更多相关《毕业设计合同统计系统的设计与实现论文.doc(39页珍藏版)》请在三一办公上搜索。
1、 毕业设计(论文)中文题目: 合同统计系统的设计与实现学 院: 专 业:计算机科学与技术学生姓名: 学 号: 指导教师: 摘 要在21世纪,随着计算机科学的发展,数据库技术在人们日常工作中的应用越来越广泛,为广大用户提供了更加周到和人性化的服务。数据库技术已逐渐成为当今计算机应用的潮流。本文主要是通过制作一款数据库软件即“合同统计系统”来介绍数据库技术在人们日常生活和工作中的应用。本论文所做的主要工作如下:(1)介绍了Visualbasic6.0软件开发工具和利用Delphi7.0和Ado技术操作数据库的一般原理。(2)阐述整个“合同统计系统”的系统结构及工作原理;分析了系统实现中的特殊性、难
2、点。(3)设计实现对数据库的操作功能、数据库查询功能、数据库打印功能。(4)分析并解决实现中的若干技术问题。(5)建立完整的“合同统计系统”,进行测试并分析结果。关键字 数据库技术 Ado 合同统计系统 AbstractAt the 21th century ,With the development of computer science, Database technology is widely used in the peoples life and work. This makes users can enjoy more convenient and individual serv
3、ices. Database technology is the trend of todays computer applications. In this work, we study the technique to build a software named Contract Stat System in order to introduce the applications of database technology in the peoples life and work. The main work of this paper are :(1) Introduces the
4、Visual Basic6.0 software development tool and introduces the method how to use the software and Ado technology to operate the database. (2) Investigates the system structure and working principle of the Contract Stat System. Analyses the particularity and difficulty of the system.(3) Analyses and re
5、solves the technical problems in implementation.(4) Establishes a test software and analyses the result after testing on it.Key Words Database technology Ado Contract Stat System 目录 第1章 绪论. 第2章 概述.2-1 Visual Basic6.0编程软件介绍及数据库概述. 2-2 Visual Basic6.0访问数据库的四种方法比较.第3章 系统分析与设计. 3-1 系统需求分析. 3-2 系统模块设计.第4
6、章 合同统计管理系统的设计与实现.4-1 各功能模块流程图或联系图.4-2 分析与创建数据库. 新建数据库及字段.4-3 系统各模块的设计与实现.4-3-1 用户登陆管理模块的设计.4-3-2合同基本信息录入模块的设计.4-3-3 用户密码修改模块的设计.4-3-4 合同统计模块的设计.4-3-5 合同信息查找模块的设计.4-3-6 收款模块的设计.第5章 系统性能测试第6章 总结. . .致谢与参考文献第1章 绪论本论文描述了一个使用VB技术来实现创建一个基于本地数据库技术的合同统计系统的实例该系统主要面向合同信息处理的单机服务,整个系统共有几个部分来实现不同的功能:l 用户登录管理。只有有
7、权限的用户才能进入本系统,没有权限的用户或非法用户不能进入本系统,从而有效地保证系统的安全。l 合同基本信息录入。能够对合同的基本信息进入录入,包括合同的编号、合同的类别、合同名称、合同部门、所属部门、合同开始日期、合同结束日期、合同额等。l 合同信息的查找。能够对合同的具体信息进行查找。可以提供按时间范围查找、按所属部门查找、按合同编号查找、按客户名称查找、按合同类别查找、按模糊条件查找。l 对用户密码进行修改。为了保证软件的安全,用户需要定期修改密码。用户在登录后要能对自己的密码进行修改。l 合同统计。通过它首先可以浏览所有合同的具体信息,还能添加、删除、修改、保存合同信息。同时,作为操作
8、本软件的主要平台,通过它能够访问其它的单元。l 收款。可以对合同的收款的情况信息进行管理,包括对收款信息的录入、删除、修改、保存等。整个系统简单划分为以上6个部分第2章 概述2-1 Visual Basic6.0编程软件介绍及数据库概述Visual Basic是由微软公司推出的一套完整的Windows系统软件开发工具,可用于开发Windows环境下的各类应用程序,是一种可视化、真正面向对象、采用事件驱动方式的结构化高级程序设计语言和工具的完美集成。它编程简单、方便、功能强大,具有与其它语言及环境的良好接口,不需要编程开发人员具备C/C+或者Turbo Pascal 语言知识和特别高深的专业知识
9、,只要懂得Windows的界面及其基本操作,就可以迅速上手,而VB在程序界面设计、多媒体开发方面更是独具优势。自1991年Visual Basic1.0推出以来,Visual Basic版本不断得到更新,功能不断得到增强,现在的最新版本是Visual Basic 6.0。为了满足不同的开发需要,Visual Basic 6.0本身又分为学习版、专业版。Visual Basic 6.0对已有功能进行完善,同时增加了许多新的功能。新的数据访问特性在数据访问技术方面Visual Basic 6.0比起Visual Basic 5.0有了极大的增强:新的数据访问接口ADO:Visual Basic 6
10、.0 支持的数据访问接口有ADO(ActiveX数据对象)、RDO(远程数据对象)和DAO(数据访问对象),每个接口都代表了数据访问技术的不同发展阶段,最新的接口是ADO。ADO是比RDO和DAO更加简单、更加灵活的对象模型,它是为OLE DB而设计的。OLDDB是新的低层COM接口,可以为任何数据源提供高性能的访问。这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等。ADO封装并实现了OLDDB的所有功能,它将全面取代DAO和RDO,成为数据访问接口的主流。新的数据源:除了已有的Data和Remote Data控件外,Visual Basic 6.0引入了几种
11、新的数据源,包括数据识别的类模块和用户控件、数据环境、ADO记录集和ADOData控件等。ADOData控件的功能与Data和Remote Data控件十分相似,都允许编程人员用最少的代码来创建数据库应用程序。新的数据库绑定控件:Visual Basic 6.0新增加了为数不少的数据绑定控件,包括DataGrid, Datalist, DataCombo, Hierarchical FlexGrid和DataRepeater等。集成的可视化数据库工具:包括查询设计器和数据库设计器,提供了可视地查看并操作表、视图、存储过程和数据库结构的功能。数据环境设计器:允许编程人员可视化地创建和操作ADO对
12、象,为编程人员操纵数据源提供了极大的方便。数据报表设计器:允许编程人员利用拖放技术来快速地从任何记录集创建报表。新的Internet特性Visual Basic 6.0提供了多种不同的途径,来帮助编程人员开发出动态的、功能强大的Internet应用程序:IIS应用程序:可以直接Visual Basic 6.0来创建IIS应用程序(服务器端Internet应用程序),响应浏览器用户的请求。对下载ActiveX文档的支持:在Internet Explorer中下载ActiveX文档与下载ActiveX控件的方法相同。除了新的数据访问特性和新的Internet特性外,Visual Basic 6.0
13、在其余方面也都做了重大改进,包括新的或增强的控件,新的或增强的语言特性,以及新的或增强的向导。所有这些都使得Visual Basic 6.0功能更为强大。总之,无论是开发小型应用系统,还是大型企业应用系统,甚至开发功能强大的Internet应用程序,Visual Basic 6.0都能胜任。2-2 Visual Basic 6.0访问数据库的四种方法比较 Visuai Basic 6.0的数据访问功能比起Visual Basic 5.O有了极大的增强。除了支持DAO(数据访问对象)和RDO(远程数据对象)外,Visual Basic 6.0还提供了新的ADO和RDO更加简单、更加灵活的数据访问
14、接口。此外,Visual Basic 6.0还提供了新的数据源、新的数据绑定控件、新的可视化数据库工具、新的数据环境设计器以及新的数据报表设计器。1.数据访问对象(DAO)控件数据访问对象(DAO)是Jet引擎的面向对象的编程接口。Jet引擎使最终用户与正在访问的特定数据库无关。Jet引擎驻留在(动态连接库)文件中,运行时将应用程序的请求翻译成对数据库的物理操作。Jet引擎真正读取、写入和修改数据库,并处理所有的内部的事务。Jet引擎介于用户界面和数据仓库之间。通过数据访问对象和Jet引擎可以识别以下三类数据库:Visual Basic数据库;外部数据库;ODBC数据库。虽然可以直接使用数据访
15、问对象来编程,但Data控件作为一个图形控件,具有易于使用的界面,它的最大优点就是只需少量代码或根本不用代码就可以创建应用程序来显示。2.运程数据对象和Remtoe Data控件远程数据访问对象是位于ODBC API和驱动程序管理器之上的对象模型,它提供了一系列的对象来满足远程数据访问的特殊要求。尽管RDO在访问Jet或ISAM数据库时受到限制,而且只能通过现存的ODBC驱动程序来访问关系数据库。但RDO能访问任何的ODBC数据源,特别适用于智能的数据库服务器(如SOL Server和Oracle等)。Remote Data与Data控件基本类似,都提供了对数据库的无缝访问,用户不必编写任何代
16、码就可以创建数据识别的应用程序,区别在于:Remite Data控件是通过使用RDO来实现数据访问,而Data控件则通过使用DAO来连接到Jet引擎。3.ActiveX数据对象和ADO Data控件OLE DB是一种统一的数据访问接口,它能够访问各种DBMS和非DBMS数据源。DBMS数据源包括主机数据库(如IMS和DB2、服务器数据库(如Oracle和SQL Sereer)以及桌面数据库(如(Micromft Access);非DBMS数据源包括存放在Windows和UNIX文件系统中的信息、电子邮件、电子表格、web上的文件或图形以及目录服务等。OLE DB使得数据消费者(应用程序)可以使
17、用相同的方法访问各种数据,而不用考虑数据的具体存储地点、格式及类型。ADO(ActiveX数据对象)是DAO、RDO的后继产物,更简单和灵活。它扩展了DAO和RDO所使用的对象模型,包含较少的对象,更多的属性、方法和事件。ADO是为OLE DB而设计的,它封装并实现了OLE DB的所有功能。ADO Data控件,也就是Adodc,是Visual Basic 6.0新引进的数据访问控件,它使用ADO来快速建立数据绑定控件和数据提供者之间的连接,它使编程者使用最少的代码来创建数据库应用程序。当然,用ADO Data控件进行访问数据时必须为待访问的数据库创建OLE DB数据连接。本毕业设计就是采用这
18、种先进的数据库访问技术访问数据库的。4.数据环境设计器和数据报表设计器数据环境设计器用于在设计时创建ADO对象,它为数据库访问提供了一个交互式环境。在编程时,可以使用数据环境设计器创建连接、命令和其他ADO对象,使用ADO对象的方法和属性,执行命令和操作记录集等。在数据环境设计器中创建连接和命令对象之后,数据环境设计器在设计时创建了DataEnvieonmwnr对象以及从属的ADO对象。当连接和命令对象的数据源可用时,可以在程序运行时直接访问数据环境设计器创建的Command、Connection和Recordset对象,好像这些对象是直接通过ADO创建的一样。例如,可以在运行时用代码将数据识
19、别控件绑定到一个命令对象或命令对象中的字段,也可以在对象关闭时动态地设置ADO Connection和Recordset对象的属性,并在数据绑定前设置参数值。Microsoft数据报表设计器(Micromft Data Report designer)是Visual Bmic6.0提供的新的报表设计器,和Visual Basic中已有提供数据源的对象(如数据环境设计器)一起使用,通过鼠标的拖放操作,可以方便的创建复杂的报表。DataReport设计器创建的报表可以直接打印,也可以将报表导出到HTML或文本文件中。数据库最主要的功能是存储数据和提供信息。数据报表的作用就是将数据从数据库中检索到的
20、数据,以用户自定义的格式打印出来或是显示在计算机屏幕上。使用报表可以解决数据库打印格式的特殊要求,也可以解决大量重复性的劳动。在具体的数据库应用程序中,报表可以解决各种各样的实际问题。例如:当建成一个完整的数据库系统后,用户可以通过SQL语句,或事先定义好的查询来检索数据库中的信息。通过比较可以发现:ADO(ActiveX Data Object,ActiveX数据对象)是微软提出的新标准,它使得客户端应用程序能够通过任何OLEDB提供者来访问和操作数据库服务器中的数据,而不必进行ODBC配置。ADO有两个主要优点:其一是易于使用、速度快、内存支出少和磁盘遗迹小。其二是“远程数据访问”,能够通
21、过一个来回的传输将数据从服务器移动到客户端应用程序或Web中,然后在客户端对数据进行操作,最后将更新数据返回服务器。由于ADO操作数据库有着其他方法操作数据库无法比拟的优点,所以本毕业设计选择使用ADO操作数据库。第3章 系统分析与设计3-1 需求分析:为了更好地适应工作人员对合同统计系统的需求,缓解手工管理存在的弊端,开发合同统计系统。合同统计系统向用户提供的服务将在传统的“录入-修改-删除-查找”基础上,进一步提供全方位的信息服务。它具有以下几个特点:(1)可以存储所有合同的资料,具有安全、高效的特性;(2)只需1名合同信息录入人员即可操作本合同统计系统,可以节省大量的人力和物力。(3)可
22、以通过查询系统迅速查到所需要的信息。在对合同统计系统的流程进行认真系统的分析后,我认为本系统用户的需求可以分为3个方面:第1方面是用户登录管理。只有有权限的用户才能进入本系统,没有权限的用户或非法用户不能进入本系统,从而有效地保证系统的安全。第2方面是合同信息的查找。能够对合同的具体信息进行查找。可以提供按时间范围查找、按所属部门查找、按合同编号查找、按客户名称查找、按合同类别查找、按模糊条件查找。第3方面也是合同统计系统的核心工作,即合同基本信息录入。能够对合同的基本信息进入录入,包括合同的编号、合同的类别、合同名称、合同部门、所属部门、合同开始日期、合同结束日期、合同额等。3-2.模块设计
23、:根据需求分析的结果,我将本系统主要弄分为6个子模块:用户登录、图书管理、图书查询、借阅查询、借阅管理、基础维护。系统各模块的主要功能如下:(1) 用户登录管理模块。本模块的主要功能是对系统的操作进行限制;只有有权限的用户才能进入本系统,没有权限的用户或非法用户不能进入本系统,从而有效地保证系统的安全。(2) 合同基本信息录入模块。本模块的主要功能是能够对合同的基本信息进入录入,包括合同的编号、合同的类别、合同名称、合同部门、所属部门、合同开始日期、合同结束日期、合同额等。(3) 用户密码修改模块。本模块的主功能是为了保证软件的安全,用户需要定期修改密码。用户在登录后要能对自己的密码进行修改。
24、(4)合同统计模块。本模块的主要功能是首先是通过本模块可以浏览到数据库内所有合同的具体信息,还能添加、删除、修改、保存合同信息。同时,作为操作本软件的主要平台,通过它能够访问其它的模块,如用户修改模块、收款模块等。(5)收款模块。本模块的主要功能是对合同的收款的情况信息进行管理,包括对收款信息的录入、删除、修改、保存等。第4章 合同统计系统的实现4-1软件流程图合同统计模块(主窗体)用户登录模块基础维护模块收款模块合同统计模块合同信息录入模块用户密码修改模块4-2 分析与创建数据库4-2-1 新建数据库及字段运行Microsoft公司的Office2000办公软件中的Access数据库软件。1
25、点击菜单“文件”,在出现的菜单项中选择“新建”菜单项。2然后点击“空数据库”,在弹出的“文件新建数据库”对话框中键入数据库的名称,本软件中应写入:database.mdb。3这时系统将会自动进入详细的数据库设计窗体。我们选择“使用设计器”创建表。4在弹出的“表1”设计窗体中,依次写入各个字段名以及他们相对应的数据类型和说明事项。在本数据库中他们依次是:字段名称数据类型字段大小作用Dbname文本20用户名Dbpassword文本50密码Dbbranch文本50部门权限文本50权限5设计好字段名后,关闭并保存表为“login,即“用户登录信息”表 。6双击“login”表,然后在弹出的数据录入窗
26、体中录入数据,并保存。因为软件中需要三个数据库表,所以还要在数据库中新建一个“基本资料”表、“收款信息”表。下面就用表格的形式分别列出这二个表的字段名称和数据类型。基本资料表字段名称数据类型字段大小作用合同编号文本50合同编号客户名称文本50客户名称合同类别文本50合同类别所属部门文本50所属部门合同开始日期日期/时间合同开始日期合同额货币合同额已收款货币已收款成本货币成本已付成本货币已付成本应付税金货币应付税金已付税金货币已付税金未收余额货币未收余额未付成本货币未付成本未付税金货币未付税金项目毛利货币项目毛利可分配毛利货币可分配毛利收款计划货币收款计划合同结束日期日期/时间合同结束日期收款信
27、息表字段名称数据类型字段大小作用收款id文本50收款id合同编号文本50合同编号客户名称文本50客户名称合同类别文本50合同类别所属部门文本50所属部门合同期日期/时间合同期收款时间日期/时间收款时间下一期收款时间日期/时间下一期收款时间合同额货币合同额本期收款货币本期收款成本货币成本本期付成本货币本期付成本应付税金货币应付税金本期付税金货币本期付税金未收余额货币未收余额未付成本货币未付成本未付税金货币未付税金项目毛利货币项目毛利可分配毛利货币可分配毛利收款计划货币收款计划收款人文本50收款人4-3系统各模块的设计与实现4-3-1用户登录管理模块的设计1. 用户登录管理模块的主要功能是对系统的
28、操作进行限制;只有有权限的用户才能进入本系统,没有权限的用户或非法用户不能进入本系统,从而有效地保证系统的安全。2.界面设计:新建一个窗体,然后在上面加上各种必须的控件,运行图如下所示:2.本模块的核心代码及解释:(1)系统显示时自动在用户名的下拉列表里列出所有目前数据库里用户的用户名,供工作人员选择4-3-2合同基本信息录入模块设计1. 合同基本信息录入模块的主要功能是能够对合同的基本信息进入录入,包括合同的编号、合同的类别、合同名称、合同部门、所属部门、合同开始日期、合同结束日期、合同额等。从严格意义上来说本模块是合同统计模块中的一个小模块,这实现合同统计模块中的合同信息录入的功能。2.窗
29、体界面的设计:新建一个窗体,然后在上面加上各种必须的控件,运行图如下所示:3.核心代码及解释如下:在输入正确的合同信息后,按“确定”按钮触发的事件代码如下所示:Private Sub comOK_Click()Dim strtxtSQL As String If txtID.Text = Or txtName.Text = Then MsgBox 合同编号不能为空 txtID.SetFocus Exit Sub End If 计算已收款 If Val(txtPactMoney.Text) Val(txtEndMoney.Text) Then MsgBox 已收金额不能大于合同金额 txtEnd
30、Money.SetFocus Exit Sub End If txtNotMoney.Text = Val(txtPactMoney.Text) - Val(txtEndMoney.Text) 计算未付成本 If Val(txtCost.Text) Val(txtEndCost.Text) Then MsgBox 已付成本不能小于成本 txtEndCost.SetFocus Exit Sub End If txtNotCost.Text = Val(txtCost.Text) - Val(txtEndCost.Text) 计算未付税金 If Val(txtTax.Text) Val(txtEn
31、dTax.Text) Then MsgBox 已付税金不能小于应付税金 txtEndTax.SetFocus Exit Sub End If txtNotTax.Text = Val(txtTax.Text) - Val(txtEndTax.Text) 计算项目毛利 If Val(txtPactMoney.Text) Val(txtCost.Text) + Val(txtTax.Text) Then MsgBox 成本+应付税金不能大于合同额 txtTax.SetFocus Exit Sub End If txtGrossProfit.Text = Val(txtPactMoney.Text)
32、 - Val(txtCost.Text) - Val(txtTax.Text) 计算可分配毛利 If Val(txtPactMoney.Text) Val(txtEndCost.Text) + Val(txtEndTax.Text) Then MsgBox 已付成本+已付税不能大于已收款 txtEndTax.SetFocus Exit Sub End If txtAssignGrossPprofit.Text = Val(txtEndMoney.Text) - Val(txtEndCost.Text) - Val(txtEndTax.Text) mycon.ConnectionString =
33、 ConnString mycon.Open strtxtSQL = select * from 基本资料 order by 合同编号 Set ADORecordset = ExecuteSQL(strtxtSQL) 打开基本资料表 ADORecordset.AddNew ADORecordset!合同编号 = txtID.Text ADORecordset!客户名称 = txtName.Text ADORecordset!合同类别 = txtSort.Text ADORecordset!所属部门 = txtBranch.Text ADORecordset!合同开始日期 = DTPicker1
34、 txtDate.Text ADORecordset!合同结束日期 = DTPicker2 ADORecordset!合同额 = txtPactMoney.Text ADORecordset!已收款 = txtEndMoney.Text ADORecordset!成本 = txtCost.Text ADORecordset!已付成本 = txtEndCost.Text ADORecordset!应付税金 = txtTax.Text ADORecordset!已付税金 = txtEndTax.Text ADORecordset!未收余额 = txtNotMoney.Text ADORecords
35、et!未付成本 = txtNotCost.Text ADORecordset!未付税金 = txtNotTax.Text ADORecordset!项目毛利 = txtGrossProfit.Text ADORecordset!可分配毛利 = txtAssignGrossPprofit.Text ADORecordset!收款计划 = txtProject.Text ADORecordset.Update Set mycon = Nothing Set ADORecordset = Nothing mycon.Close Set mycon = Nothing Unload Me Call 合
36、同统计系统.Initializtion(0)End Sub4-3-3用户密码修改模块1.本模块的主功能是为了保证软件的安全,用户需要定期修改密码。用户在登录后要能对自己的密码进行修改。2.界面设计:新建一个窗体,然后在上面加上各种必须的控件,运行图如下所示:3.在输入正确的新密码后按“确定”按钮触发的事件代码如下:响应窗体加载事件,进行数据库的连接。代码如下:Private Sub comOK_Click() Dim strSQL As String Dim ADOCommand As New ADODB.Command Dim 权限 As String Select Case Combo1.
37、Text Case 管理员 权限 = 0 Case 修改 权限 = 1 Case 浏览 权限 = 2 End Select If Text1.Text = Then MsgBox 新密码不能为空。 Text1.SetFocus Exit Sub ElseIf Text2.Text = Then MsgBox 请输入确认新密码。 Text2.SetFocus Exit Sub End If If Text1.Text Text2.Text Then MsgBox 两次输入的新密码不正确,请重新输入。 Exit Sub End If Dim ADORecordset As New ADODB.Re
38、cordset strtxtSQL = select * from Login where DBName = & cobName.Text & Set ADORecordset = ExecuteSQL(strtxtSQL) If Not (ADORecordset.BOF = True And ADORecordset.EOF = True) Then Do Until ADORecordset.EOF = True strSQL = update login set DBName = & cobName.Text _ & ,DBPassword = & Text1.Text _ & ,DB
39、Branch = & cobBranch.Text _ & ,权限 = & 权限 & where DBName= & cobName.Text & ADORecordset.MoveNext Loop Else strSQL = Insert into login (DBName,DBPassword,DBBranch,权限) Values( & cobName.Text & , & Text1.Text & , & cobBranch.Text & , & 权限 & ) End If Set ADOCommand.ActiveConnection = mycon ADOCommand.Com
40、mandText = strSQL ADOCommand.Execute Set ADOCommand = Nothing Set ADORecordset = Nothing Unload MeEnd Sub4-3-4合同统计模块的设计1.本模块的主要功能是首先是通过本模块可以浏览到数据库内所有合同的具体信息,还能添加、删除、修改、保存合同信息。同时,作为操作本软件的主要平台,通过它能够访问其它的模块,如用户修改模块、收款模块等。2.窗体设计:新建一个窗体,然后在上面加上各种必须的控件,运行图如下所示:3.核心代码及解释如下:(1)响应“新增基本资料”按钮的单击事件,触发的事件代码如下:Pr
41、ivate Sub ComNew_Click() fomBasic.txtID.Text = fomBasic.txtName.Text = fomBasic.txtSort.Text = fomBasic.txtBranch.Text = fomBasic.DTPicker1 = Date fomBasic.txtPactMoney.Text = 0 fomBasic.txtEndMoney.Text = 0 fomBasic.txtCost.Text = 0 fomBasic.txtEndCost.Text = 0 fomBasic.txtTax.Text = 0 fomBasic.txtEndTax.Text = 0 fomBasic.txtNotMoney.Text = 0 fomBasic.txtNotCost.Text = 0 fomBasic.txtGrossProfit.Text = 0 fomBasic.txtAssignGrossPprofit.Text = 0 fomBasic.txtProject.Text = With BasicDataType .strID =