合同管理系统毕业设计论文

上传人:仙*** 文档编号:29845729 上传时间:2021-10-08 格式:DOC 页数:46 大小:507.01KB
返回 下载 相关 举报
合同管理系统毕业设计论文_第1页
第1页 / 共46页
合同管理系统毕业设计论文_第2页
第2页 / 共46页
合同管理系统毕业设计论文_第3页
第3页 / 共46页
点击查看更多>>
资源描述
毕毕业业设设计计(论论文文)合合同同管管理理系系统统的的设设计计与与实实现现 摘摘 要要在 21 世纪,随着计算机科学的发展,数据库技术在人们日常工作中的应用越来越广泛,为广大用户提供了更加周到和人性化的服务。数据库技术已逐渐成为当今计算机应用的潮流。本文主要是通过制作一款数据库软件即“合同管理系统”来介绍数据库技术在人们日常生活和工作中的应用。本论文所做的主要工作如下:(1)介绍了 Visualbasic6.0 软件开发工具和利用 Delphi7.0 和 Ado 技术操作数据库的一般原理。(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 services. 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 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 resolves 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 章 绪论 .5第 2 章 概述 .62.1 编程软件介绍及数据库概述.62.2 访问数据库的方法.8第 3 章 系统分析与设计 .123.1 需求分析.123.2.模块设计.13第 4 章 合同管理系统的实现 .144.1 软件流程图.144.2 分析与创建数据库.154.3 系统各模块的设计与实现.184.3.1 用户登录管理模块的设计.184.3.2 合同基本信息录入模块设计.214.3.3 用户密码修改模块.264.3.4 合同统计模块的设计.294.3.5 收款模块的设计.364.3.6 合同信息查找模块的设计.40第五章 系统性能测试 .43总结 .44致 谢 .45参考文献 .46第第 1 1 章章 绪论绪论本论文描述了一个使用 VB 技术来实现创建一个基于本地数据库技术的合同管理系统的实例该系统主要面向合同信息处理的单机服务,整个系统共有几个部分来实现不同的功能:用户登录管理。只有有权限的用户才能进入本系统,没有权限的用户或非法用户不能进入本系统,从而有效地保证系统的安全。合同基本信息录入。能够对合同的基本信息进入录入,包括合同的编号、合同的类别、合同名称、合同部门、所属部门、合同开始日期、合同结束日期、合同额等。合同信息的查找。能够对合同的具体信息进行查找。可以提供按时间范围查找、按所属部门查找、按合同编号查找、按客户名称查找、按合同类别查找、按模糊条件查找。对用户密码进行修改。为了保证软件的安全,用户需要定期修改密码。用户在登录后要能对自己的密码进行修改。合同统计。通过它首先可以浏览所有合同的具体信息,还能添加、删除、修改、保存合同信息。同时,作为操作本软件的主要平台,通过它能够访问其它的单元。收款。可以对合同的收款的情况信息进行管理,包括对收款信息的录入、删除、修改、保存等。整个系统简单划分为以上 6 个部分第第 2 2 章章 概述概述2.1 编程软件介绍及数据库概述Visual Basic 是由微软公司推出的一套完整的 Windows 系统软件开发工具,可用于开发 Windows 环境下的各类应用程序,是一种可视化、真正面向对象、采用事件驱动方式的结构化高级程序设计语言和工具的完美集成。它编程简单、方便、功能强大,具有与其它语言及环境的良好接口,不需要编程开发人员具备 C/C+或者 Turbo Pascal 语言知识和特别高深的专业知识,只要懂得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.0 支持的数据访问接口有ADO(ActiveX 数据对象)、RDO(远程数据对象)和 DAO(数据访问对象),每个接口都代表了数据访问技术的不同发展阶段,最新的接口是 ADO。ADO 是比 RDO 和DAO 更加简单、更加灵活的对象模型,它是为 OLE DB 而设计的。OLDDB 是新的低层 COM 接口,可以为任何数据源提供高性能的访问。这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等。ADO封装并实现了 OLDDB 的所有功能,它将全面取代 DAO 和 RDO,成为数据访问接口的主流。新的数据源:除了已有的 Data 和 Remote Data 控件外,Visual Basic 6.0引入了几种新的数据源,包括数据识别的类模块和用户控件、数据环境、ADO记录集和 ADOData 控件等。ADOData 控件的功能与 Data 和 Remote Data 控件十分相似,都允许编程人员用最少的代码来创建数据库应用程序。新的数据库绑定控件:Visual Basic 6.0 新增加了为数不少的数据绑定控件,包括 DataGrid, Datalist, DataCombo, Hierarchical FlexGrid 和DataRepeater 等。集成的可视化数据库工具:包括查询设计器和数据库设计器,提供了可视地查看并操作表、视图、存储过程和数据库结构的功能。数据环境设计器:允许编程人员可视化地创建和操作 ADO 对象,为编程人员操纵数据源提供了极大的方便。数据报表设计器:允许编程人员利用拖放技术来快速地从任何记录集创建报表。新的 Internet 特性Visual Basic 6.0 提供了多种不同的途径,来帮助编程人员开发出动态的、功能强大的 Internet 应用程序:IIS 应用程序:可以直接 Visual Basic 6.0 来创建 IIS 应用程序(服务器端 Internet 应用程序),响应浏览器用户的请求。对下载 ActiveX 文档的支持:在 Internet Explorer 中下载 ActiveX 文档与下载 ActiveX 控件的方法相同。除了新的数据访问特性和新的 Internet 特性外,Visual Basic 6.0在其余方面也都做了重大改进,包括新的或增强的控件,新的或增强的语言特性,以及新的或增强的向导。所有这些都使得 Visual Basic 6.0 功能更为强大。总之,无论是开发小型应用系统,还是大型企业应用系统,甚至开发功能强大的Internet 应用程序,Visual Basic 6.0 都能胜任。22 访问数据库的方法 Visuai Basic 6.0 的数据访问功能比起 Visual Basic 5.O 有了极大的增强。除了支持 DAO(数据访问对象)和 RDO(远程数据对象)外,Visual Basic 6.0 还提供了新的 ADO 和 RDO 更加简单、更加灵活的数据访问接口。此外,Visual Basic 6.0还提供了新的数据源、新的数据绑定控件、新的可视化数据库工具、新的数据环境设计器以及新的数据报表设计器。1.数据访问对象(DAO)控件数据访问对象(DAO)是 Jet 引擎的面向对象的编程接口。Jet 引擎使最终用户与正在访问的特定数据库无关。Jet 引擎驻留在(动态连接库)文件中,运行时将应用程序的请求翻译成对数据库的物理操作。Jet 引擎真正读取、写入和修改数据库,并处理所有的内部的事务。Jet 引擎介于用户界面和数据仓库之间。通过数据访问对象和 Jet 引擎可以识别以下三类数据库:Visual Basic 数据库;外部数据库;ODBC 数据库。虽然可以直接使用数据访问对象来编程,但 Data 控件作为一个图形控件,具有易于使用的界面,它的最大优点就是只需少量代码或根本不用代码就可以创建应用程序来显示。2.运程数据对象和 Remtoe Data 控件远程数据访问对象是位于 ODBC API 和驱动程序管理器之上的对象模型,它提供了一系列的对象来满足远程数据访问的特殊要求。尽管 RDO 在访问 Jet或 ISAM 数据库时受到限制,而且只能通过现存的 ODBC 驱动程序来访问关系数据库。但 RDO 能访问任何的 ODBC 数据源,特别适用于智能的数据库服务器(如 SOL Server 和 Oracle 等)。Remote Data 与 Data 控件基本类似,都提供了对数据库的无缝访问,用户不必编写任何代码就可以创建数据识别的应用程序,区别在于: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 使得数据消费者(应用程序)可以使用相同的方法访问各种数据,而不用考虑数据的具体存储地点、格式及类型。ADO(ActiveX 数据对象)是 DAO、RDO 的后继产物,更简单和灵活。它扩展了DAO 和 RDO 所使用的对象模型,包含较少的对象,更多的属性、方法和事件。ADO 是为 OLE DB 而设计的,它封装并实现了 OLE DB 的所有功能。ADO Data 控件,也就是 Adodc,是 Visual Basic 6.0 新引进的数据访问控件,它使用 ADO 来快速建立数据绑定控件和数据提供者之间的连接,它使编程者使用最少的代码来创建数据库应用程序。当然,用 ADO Data 控件进行访问数据时必须为待访问的数据库创建 OLE DB 数据连接。本毕业设计就是采用这种先进的数据库访问技术访问数据库的。4.数据环境设计器和数据报表设计器数据环境设计器用于在设计时创建 ADO 对象,它为数据库访问提供了一个交互式环境。在编程时,可以使用数据环境设计器创建连接、命令和其他 ADO 对象,使用 ADO 对象的方法和属性,执行命令和操作记录集等。在数据环境设计器中创建连接和命令对象之后,数据环境设计器在设计时创建了 DataEnvieonmwnr 对象以及从属的 ADO 对象。当连接和命令对象的数据源可用时,可以在程序运行时直接访问数据环境设计器创建的Command、Connection 和 Recordset 对象,好像这些对象是直接通过 ADO 创建的一样。例如,可以在运行时用代码将数据识别控件绑定到一个命令对象或命令对象中的字段,也可以在对象关闭时动态地设置 ADO Connection 和Recordset 对象的属性,并在数据绑定前设置参数值。Microsoft 数据报表设计器(Micromft Data Report designer)是 Visual Bmic6.0提供的新的报表设计器,和 Visual Basic 中已有提供数据源的对象(如数据环境设计器)一起使用,通过鼠标的拖放操作,可以方便的创建复杂的报表。DataReport 设计器创建的报表可以直接打印,也可以将报表导出到 HTML 或文本文件中。数据库最主要的功能是存储数据和提供信息。数据报表的作用就是将数据从数据库中检索到的数据,以用户自定义的格式打印出来或是显示在计算机屏幕上。使用报表可以解决数据库打印格式的特殊要求,也可以解决大量重复性的劳动。在具体的数据库应用程序中,报表可以解决各种各样的实际问题。例如:当建成一个完整的数据库系统后,用户可以通过 SQL 语句,或事先定义好的查询来检索数据库中的信息。通过比较可以发现:ADO(ActiveX Data Object,ActiveX 数据对象)是微软提出的新标准,它使得客户端应用程序能够通过任何 OLEDB 提供者来访问和操作数据库服务器中的数据,而不必进行 ODBC 配置。ADO 有两个主要优点:其一是易于使用、速度快、内存支出少和磁盘遗迹小。其二是“远程数据访问” ,能够通过一个来回的传输将数据从服务器移动到客户端应用程序或 Web 中,然后在客户端对数据进行操作,最后将更新数据返回服务器。由于 ADO 操作数据库有着其他方法操作数据库无法比拟的优点,所以本毕业设计选择使用 ADO 操作数据库。第第 3 3 章章 系统分析与设计系统分析与设计3.1 需求分析为了更好地适应工作人员对合同管理系统的需求,缓解手工管理存在的弊端,开发合同管理系统。合同管理系统向用户提供的服务将在传统的“录入-修改-删除-查找”基础上,进一步提供全方位的信息服务。它具有以下几个特点:(1)可以存储所有合同的资料,具有安全、高效的特性;(2)只需 1 名合同信息录入人员即可操作本合同管理系统,可以节省大量的人力和物力。(3)可以通过查询系统迅速查到所需要的信息。在对合同管理系统的流程进行认真系统的分析后,我认为本系统用户的需求可以分为 3 个方面:第 1 方面是用户登录管理。只有有权限的用户才能进入本系统,没有权限的用户或非法用户不能进入本系统,从而有效地保证系统的安全。第 2 方面是合同信息的查找。能够对合同的具体信息进行查找。可以提供按时间范围查找、按所属部门查找、按合同编号查找、按客户名称查找、按合同类别查找、按模糊条件查找。第 3 方面也是合同管理系统的核心工作,即合同基本信息录入。能够对合同的基本信息进入录入,包括合同的编号、合同的类别、合同名称、合同部门、所属部门、合同开始日期、合同结束日期、合同额等。3.2.模块设计根据需求分析的结果,我将本系统主要弄分为 6 个子模块:用户登录、图书管理、图书查询、借阅查询、借阅管理、基础维护。系统各模块的主要功能如下:(1) 用户登录管理模块。本模块的主要功能是对系统的操作进行限制;只有有权限的用户才能进入本系统,没有权限的用户或非法用户不能进入本系统,从而有效地保证系统的安全。(2) 合同基本信息录入模块。本模块的主要功能是能够对合同的基本信息进入录入,包括合同的编号、合同的类别、合同名称、合同部门、所属部门、合同开始日期、合同结束日期、合同额等。(3) 用户密码修改模块。本模块的主功能是为了保证软件的安全,用户需要定期修改密码。用户在登录后要能对自己的密码进行修改。(4)合同统计模块。本模块的主要功能是首先是通过本模块可以浏览到数据库内所有合同的具体信息,还能添加、删除、修改、保存合同信息。同时,作为操作本软件的主要平台,通过它能够访问其它的模块,如用户修改模块、收款模块等。(5)收款模块。本模块的主要功能是对合同的收款的情况信息进行管理,包括对收款信息的录入、删除、修改、保存等。第第 4 4 章章 合同管理系统的实现合同管理系统的实现4.1 软件流程图用户密码修改模块合同模块(主窗体)合同信息录入模块合同模块收款模块基础维护模块用户登录模块4.2 分析与创建数据库运行 Microsoft 公司的 Office2000 办公软件中的 Access 数据库软件。1点击菜单“文件” ,在出现的菜单项中选择“新建”菜单项。2然后点击“空数据库” ,在弹出的“文件新建数据库”对话框中键入数据库的名称,本软件中应写入:database.mdb。3这时系统将会自动进入详细的数据库设计窗体。我们选择“使用设计器”创建表。4在弹出的“表 1”设计窗体中,依次写入各个字段名以及他们相对应的数据类型和说明事项。在本数据库中他们依次是:字段名称字段名称数据类型数据类型字段大小字段大小作用作用Dbname文本20用户名Dbpassword文本50密码Dbbranch文本50部门权限文本50权限5设计好字段名后,关闭并保存表为“login,即“用户登录信息”表 。6双击“login”表,然后在弹出的数据录入窗体中录入数据,并保存。因为软件中需要三个数据库表,所以还要在数据库中新建一个“基本资料”表、 “收款信息”表。下面就用表格的形式分别列出这二个表的字段名称和数据类型。基本资料表字段名称字段名称数据类型数据类型字段大小字段大小作用作用合同编号文本50合同编号客户名称文本50客户名称合同类别文本50合同类别所属部门文本50所属部门合同开始日期日期/时间合同开始日期合同额货币合同额已收款货币已收款成本货币成本已付成本货币已付成本应付税金货币应付税金已付税金货币已付税金未收余额货币未收余额未付成本货币未付成本未付税金货币未付税金项目毛利货币项目毛利可分配毛利货币可分配毛利收款计划货币收款计划合同结束日期日期/时间合同结束日期收款信息表字段名称字段名称数据类型数据类型字段大小字段大小作用作用收款 id文本50收款 id合同编号文本50合同编号客户名称文本50客户名称合同类别文本50合同类别所属部门文本50所属部门合同期日期/时间合同期收款时间日期/时间收款时间下一期收款时间日期/时间下一期收款时间合同额货币合同额本期收款货币本期收款成本货币成本本期付成本货币本期付成本应付税金货币应付税金本期付税金货币本期付税金未收余额货币未收余额未付成本货币未付成本未付税金货币未付税金项目毛利货币项目毛利可分配毛利货币可分配毛利收款计划货币收款计划收款人文本50收款人4.3 系统各模块的设计与实现4.3.1 用户登录管理模块的设计1. 用户登录管理模块的主要功能是对系统的操作进行限制;只有有权限的用户才能进入本系统,没有权限的用户或非法用户不能进入本系统,从而有效地保证系统的安全。2.界面设计:新建一个窗体,然后在上面加上各种必须的控件,运行图如下所示:2.本模块的核心代码及解释:(1)系统显示时自动在用户名的下拉列表里列出所有目前数据库里用户的用户名,供工作人员选择,即代码如下:Private Sub Form_Load() 连接 Dim ADORecordset As New ADODB.Recordset mycon.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source= _ & App.Path & database.mdb;Persist Security Info=False 打开表 With ADORecordset .CursorType = adOpenKeyset .LockType = adLockOptimistic .Open login, mycon, , , adCmdTable End With 向用户名中填加记录 If Not (ADORecordset.BOF = True And ADORecordset.EOF = True) Then Do Until ADORecordset.EOF = True cobName.AddItem IIf(IsNull(ADORecordSet.Fields(Name).Value), _ , ADORecordSet.Fields(Name).Value) cobName.AddItem IIf(IsNull(ADORecordset.Fields(DBName).Value), _ , ADORecordset.Fields(DBName).Value) ADORecordset.MoveNext Loop End If cobName.Text = cobName.List(0) ADORecordset.Close txtName.Enabled = FalseEnd Sub (2)用户选择用户名并输入密码后,按“确定”按钮触发的事件代码如下:Private Sub cmdOk_Click() Dim ADOmrc As ADODB.Recordset strtxtSQL = select * from login where DBpassword = & Trim(txtPassword.Text) & and DBName= & Trim(cobName.Text) & Set ADOmrc = ExecuteSQL(strtxtSQL) If ADOmrc.EOF = True Then MsgBox 密码错误!, vbExclamation + vbOKOnly, 警告 txtPassword.SetFocus txtPassword.SelStart = 0 txtPassword.SelLength = Len(txtPassword.Text) Exit Sub Else 用户权限 = IIf(IsNull(ADOmrc.Fields(权限).Value), _ , ADOmrc.Fields(权限).Value) 所属部门 = IIf(IsNull(ADOmrc.Fields(DBBranch).Value), , ADOmrc.Fields(DBBranch).Value) End If Set ADOmrc = Nothing Unload Me Load 合同管理系统 合同管理系统.Show vbModalEnd Sub4.3.2 合同基本信息录入模块设计1. 合同基本信息录入模块的主要功能是能够对合同的基本信息进入录入,包括合同的编号、合同的类别、合同名称、合同部门、所属部门、合同开始日期、合同结束日期、合同额等。从严格意义上来说本模块是合同统计模块中的一个小模块,这实现合同统计模块中的合同信息录入的功能。2.窗体界面的设计:新建一个窗体,然后在上面加上各种必须的控件,运行图如下所示: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 已收金额不能大于合同金额 txtEndMoney.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(txtEndTax.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) - 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 = 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 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 ADORecordset!未付成本 = 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 合同管理系统.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.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.Recordset 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 _ & ,DBBranch = & 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.CommandText = strSQL ADOCommand.Execute Set ADOCommand = Nothing Set ADORecordset = Nothing Unload MeEnd Sub4.3.4 合同统计模块的设计1.本模块的主要功能是首先是通过本模块可以浏览到数据库内所有合同的具体信息,还能添加、删除、修改、保存合同信息。同时,作为操作本软件的主要平台,通过它能够访问其它的模块,如用户修改模块、收款模块等。2.窗体设计:新建一个窗体,然后在上面加上各种必须的控件,运行图如下所示:3.核心代码及解释如下:(1)响应“新增基本资料”按钮的单击事件,触发的事件代码如下:Private 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 = .strName = .strSort = .strBranch = .dateDTPicker = Date .dateDTPicker1 = Date .strPactMoney = .strEndMoney = .strCost = .strEndCost = .strTax = .strEndTax = .strNotMoney = .strNotCost = .strGrossProfit = .strAssignGrossPprofit = .strProject = End With fomBasic.Show vbModalEnd Sub(2)响应“修改基本资料”按钮的单击事件,触发的事件代码如下:Private Sub comEdit_Click() Dim ADORecordset As New ADODB.Recordset If ctList1.ListCount = 0 Then Exit Sub fomBasic.txtID.Text = ctList1.CellText(ctList1.ListIndex, 2) BasicDataType.strID = ctList1.CellText(ctList1.ListIndex, 2) 合同编号 fomBasic.txtName.Text = ctList1.CellText(ctList1.ListIndex, 3) BasicDataType.strName = ctList1.CellText(ctList1.ListIndex, 3) 客户名称 fomBasic.txtSort.Text = ctList1.CellText(ctList1.ListIndex, 4) BasicDataType.strSort = ctList1.CellText(ctList1.ListIndex, 4) 合同类别 fomBasic.txtBranch.Text = ctList1.CellText(ctList1.ListIndex, 5) BasicDataType.strBranch = ctList1.CellText(ctList1.ListIndex, 5) 所属部门 fomBasic.DTPicker1 = ctList1.CellText(ctList1.ListIndex, 6) BasicDataType.dateDTPicker = ctList1.CellText(ctList1.ListIndex, 6) 合同期 fomBasic.DTPicker2 = ctList1.CellText(ctList1.ListIndex, 7) BasicDataType.dateDTPicker1 = ctList1.CellText(ctList1.ListIndex, 7) 合同期 fomBasic.txtPactMoney.Text = ctList1.CellText(ctList1.ListIndex, 8) BasicDataType.strPactMoney = ctList1.CellText(ctList1.ListIndex, 8) 合同额 fomBasic.txtEndMoney.Text = ctList1.CellText(ctList1.ListIndex, 9) BasicDataType.strEndMoney = ctList1.CellText(ctList1.ListIndex, 9) 已收款 fomBasic.txtCost.Text = ctList1.CellText(ctList1.ListIndex, 10) BasicDataType.strCost = ctList1.CellText(ctList1.ListIndex, 10) 成本 fomBasic.txtEndCost.Text = ctList1.CellText(ctList1.ListIndex, 11) BasicDataType.strEndCost = ctList1.CellText(ctList1.ListIndex, 11) 已付成本 fomBasic.txtTax.Text = ctList1.CellText(ctList1.ListIndex, 12) BasicDataType.strTax = ctList1.CellText(ctList1.ListIndex, 12) 应付税金 fomBasic.txtEndTax.Text = ctList1.CellText(ctList1.ListIndex, 13) BasicDataType.strEndTax = ctList1.CellText(ctList1.ListIndex, 13) 已付税金 fomBasic.txtNotMoney.Text = ctList1.CellText(ctList1.ListIndex, 14) BasicDataType.strNotMoney = ctList1.CellText(ctList1.ListIndex, 14) 未收余额 fomBasic.txtNotCost.Text = ctList1.CellText(ctList1.ListIndex, 15) BasicDataType.strNotCost = ctList1.CellText(ctList1.ListIndex, 15) 未付成本 fomBasic.txtNotTax = ctList1.CellText(ctList1.ListIndex, 16) BasicDataType.strNotTax = ctList1.CellText(ctList1.ListIndex, 16) 未付税金 fomBasic.txtGrossProfit.Text = ctList1.CellText(ctList1.ListIndex, 17) BasicDataType.strGrossProfit = ctList1.CellText(ctList1.ListIndex, 17) 项目毛利 fomBasic.txtAssignGrossPprofit.Text = ctList1.CellText(ctList1.ListIndex, 18) BasicDataType.strAssignGrossPprofit = ctList1.CellText(ctList1.ListIndex, 18) 可分配毛利 fomBasic.txtProject.Text = ctList1.CellText(ctList1.ListIndex, 19) BasicDataType.strProject = ctList1.CellText(ctList1.ListIndex, 19) 收款计划 mycon.Close mycon.ConnectionString = ConnString mycon.Open strtxtSQL = DELETE * from 基本资料 where 合同编号 = & ctList1.CellText(ctList1.ListIndex, 2) & Set ADORecordset = ExecuteSQL(strtxtSQL) mycon.Close Set ADORecordset = Nothing ctList1.ClearList fomBasic.Show vbModalEnd Sub(3) 响应“删除基本资料”按钮的单击事件,触发的事件代码如下:Private Sub comDel_Click() Dim ADORecordset As New ADODB.Recordset If ctList1.ListIndex 0 Then Exit Sub mycon.ConnectionString = ConnString mycon.Open strtxtSQL = DELETE * from 基本资料 where 合同编号 = & ctList1.CellText(ctList1.ListIndex, 2) & Set ADORecordset = ExecuteSQL(strtxtSQL) mycon.Close Set ADORecordset = Nothing ctList1.ClearList Call Initializtion(0)End Sub4.3.5 收款模块的设计1.本模块的主要功能是对合同的收款的情况信息进行管理,包括对收款信息的录入、删除、修改、保存等。2.窗体设计:新建一个窗体,然后在上面加上各种必须的控件,运行图如下所示:3.本模块的核心代码解释:在依次输入各项收款信息后,按“确定”按钮触发的事件代码如下所示:Private Sub comOK_Click()Dim ADORecordset As New ADODB.RecordsetDim logj As Long mycon.ConnectionString = ConnString mycon.Open Dim ADORecordset As New ADODB.Recordset strtxtSQL = select * from 收款表 order by 收款 ID,合同编号 Set ADORecordset = ExecuteSQL(strtxtSQL) ADORecordset.AddNew ADORecordset!收款 ID = txtEndMoneyID.Text ADORecordset!合同编号 = txtID.Text ADORecordset!客户名称 = txtName.Text ADORecordset!合同类别 = txtSort.Text ADORecordset!所属部门 = txtBranch.Text ADORecordset!合同期 = DTPicker1 ADORecordset!收款时间 = DTPicker2 ADORecordset!下一期收款时间 = DTPicker3 ADORecordset!合同额 = txtPactMoney.Text ADORecordset!本期收款 = txtEndMoney.Text ADORecordset!成本 = txtCost.Text ADORecordset!本期付成本 = txtEndCost.Text ADORecordset!应付税金 = txtTax.Text ADORecordset!本期付税金 = txtEndTax.Text ADORecordset!未收余额 = txtNotMoney.Text ADORecordset!未付成本 = txtNotCost.Text ADORecordset!未付税金 = txtNotTax.Text ADORecordset!项目毛利 = txtGrossProfit.Text ADORecordset!可分配毛利 = txtAssignGrossPprofit.Text ADORecordset!收款计划 = txtProject.Text ADORecordset!收款人 = txtSKR.Text ADORecordset.Update With ctList1 logj = .AddItem() .CellText(logj, 2) = txtEndMoneyID.Text .CellText(logj, 3) = txtID.Text .CellText(logj, 4) = txtName.Text .CellText(logj, 5) = txtSort.Text .CellText(logj, 6) = txtBranch.Text .CellText(logj, 7) = DTPicker1 .CellText(logj, 8) = DTPicker2 .CellText(logj, 9) = DTPicker3 .CellText(logj, 10) = txtPactMoney.Text .CellText(logj, 11) = txtEndMoney.Text .CellText(logj, 12) = txtCost.Text .CellText(logj, 13) = txtEndCost.Text .CellText(logj, 14) = txtTax.Text .CellText(logj, 15) = txtEndTax.Text .CellText(logj, 16) = txtNotMoney.Text .CellText(logj, 17) = txtNotCost.Text .CellText(logj, 18) = txtNotTax.Text .CellText(logj, 19) = txtGrossProfit.Text .CellText(logj, 20) = txtAssignGrossPprofit.Text .CellText(logj, 21) = txtSKR.Text .CellText(logj, 22) = txtSKR.Text .SortList If .ListCount 0 Then .ListIndex = 0 Else .ListIndex = -1 End If End With Set ADORecordset = Nothing strTextSQL = UPDATE 基本资料 set 已收款 & Val(txtEndMoney.Text) + Val(BasicDataType.strEndMoney) _ & ,已付成本 = & Val(txtEndCost.Text) + Val(BasicDataType.strEndCost) _ & ,应付税金 = & Val(txtTax.Text) _ & ,已付税金 = & Val(txtEndTax.Text) + Val(BasicDataTy
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!