计算机应用专业毕业设计

目录

内容摘要..............................................................2 Abstract..............................................................2 引言..................................................................3 第一章 概述..........................................................4 1.1 管理信息系统简介................................................4 1.2 面向对象的程序设计..............................................5 1.3 系统软件开发环境简介.............................................6 第二章 系统设计......................................................7 2.1 模块处理功能设计................................................7 2.2 数据库表结构....................................................8 第三章 应用系统实现..................................................11 3.1 创建卷名窗体的实现...............................................11 3.2 档案柜资料窗体的实现.............................................12 3.3 文件编辑窗体的实现................................................15 3.4 组卷窗体的实现....................................................16 3.5系统菜单的实现....................................................20 总 结................................................................21 致 谢................................................................22 参考文献..............................................................22

基于VISAUL BASIC6.0开发的文件档案管理系统

内容摘要

《文档管理系统》是采用VISAUL BASIC6.0开发的一个数据库管理系统。本设计说明书主要讲述了VISAUL BASIC6.0的基本功能及设计方法。紧接着以本系统为例,逐一介绍开发本系统系统的步骤:系统分析、系统设计、系统实现、系统维护。在系统分析中先后用数据流图、数据字典、系统的功能结构图分析了系统所需的各种数据。在系统的设计中,详细的展现了系统的各个功能模块。所需的数据库表及表字段。菜单的设计等。在系统的实现中,给出了实现表单中相应的功能控件的事件及代码。以及菜单实现的方法。文章的最后则给出了本系统的主要功能源代码。

本系统具有数据输入,数据存储,信息查询,报表打印等功能,系统的人机对话界面友好。系统功能全面,用户操作方便是本设计的一个特色。

关键词:面向对象 文档 管理系统 VB

Abstract

administrative system of the archives" adopts a data base management system that VISAUL BASIC6.0 developed . This design instruction has told the basic function of VISAUL BASIC6.0 and design method mainly .This design instruction has told the basic function of VISAUL BASIC6.0 and design method mainly. And then take this system as an example , recommend developing the step of this system one by one: Network analysis , designs systematically , realizes systematically , safeguards systematicallying. Successively with dataflow picture, data dictionary, function structure chart various kinds of datum analyticl system take of system in network analysis. In the design of the system, detailed each function module which has represented the system. Necessary database form and literary name section. Design of the menu ,etc.. In the realization of the system, provide and realize the incidents and codes of the corresponding function controlling part among forms. And the method that the menu realize. Provide the main function source code of this system at the end of the article. This system has data entry , the data are stored, file inquiry, such functions as the report form is typed, the interactive interface friendship of the system. The systematic function is overall, it is a characteristic that is originally designed that users are easy to operate.

Key word: archives administrative system of the archives VISAUL BASIC6.0

引言

计算机技术的飞速发展,为人类的进步注入了新的活力。新的技术为人们带来的是更快捷、更可靠的服务。越来越多的家庭、企业、机关、学校利用计算机来处理日常事务,管理信息系统(MIS )就是利用计算机为企业、学校,事业机关等的经营者、决策者收集、处理信息的一项重要工具,管理信息系统的发展源于管理现代化的推进和计算机技术的发展。籍于此管理信息系统将随着人类文明的进步而不断的完善与发展。

知识经济时代的今天,对文书档案管理工作人员提出了更新更高的要求。文档管理工作人员,必须完成由传统的管理模式向现代的管理模式的转变,由传统的管理理念向现代管理理念转变,同时在管理实践中应用,使文书档案管理工作赶上时代步伐,适应文书档案管理现代化和办公自动化的时代需要,为社会提供更好更有效的服务,使文书档案管理工作发挥出应有的经济效益及社会效益来。

《文档管理系统》针对本人对文档资料管理的调研,结合本单位长期以来管理文档资料的经验而设计的计算机管理系统。提出了一套比较适宜的施行方案,并努力将原本复杂的管理业务、归类、存档等简化为比较简单的事务。他基本上秉承了传统的文档资料管理理念,同时也兼顾当今对现代管理信息的需要,着眼于实用、高效的原则。

由于本人的水平有限,在本系统中难免存在错误和不足。望各位老师予以批评与指正

第一章 概述

1.1 管理信息系统简介

管理信息系统

MIS(manage information systion) 是由人和计算机等组成的能进行管理信息的多种操

作(包括收集、储存、加工、维护和使用) 的系统。它由四个要素组成。即现代化经济管理理论、系统工程、数学方法和计算机手段。其目的是通过自动化的事务处理方法来监视和控制企业、学校的行为、通过对历史数据的科学统计提供可靠的预测数据。并通过一些优化方法提供决策依据,管理信息系统是生产力发展的阶段标志是现代管理的综合体现。一个MIS 系统的开发应分为如下步骤进行。 1)系统任务的提出。

系统开发的工作是从接受任务开始的,而系统任务应由系统用户提出,以书面的形式给予表达。

2)初步系统调查。

初步系统调查着重了解存在的主要问题和用户提出的目的要求,并制定新系统总体规划。

3)确定系统目标。

经过初步系统调查,了解了用户的基本状况和用户对系统的设想及要求后,系统开发人员就可以初步提出档案系统的系统目标。 4)系统的可行性研究。

系统的可行性研究包括可能性和必要性。有技术上的,经济上的,人力资源上的,以及组织管理上的。经过系统的可行性研究,最后应写出一份系统可行性分析报告。分析报告是系统开发人员第一阶段工作的小结。 5)详细的系统调查。

通过详细的系统调查。可以得到人工管理业务的处理办法,并详细地掌握住处的流程,总结出现有业务过程的规律,存在的问题。从而提出改进措施。 6)现行系统的描述与分析。

着重用来分析现行系统页面设计后,相关性版块信息交互的方便性。特别是要分析现行档案系统存在主要问题和管理上的薄弱环节,以及产生这些问题的原因和解决办法。 7)用户需求及功能分析。

用户需求因不同用户而有所区别,但主要可分为系统范围,信息的处理和技术性三个方面。

8) 新系统的逻辑模型。

通过对现行系统的进行详细调查,分析及用户需求分析后,就可以确定新系统的逻辑模型。新系统的模型包括新系统的功能要求、目标、各级页面之间链接、数据字典。

9) 编码对象的分析及编码体系结构的确定。

在系统分析阶段,对现行系统及档案系统将要采用的编码对象及方法应该认真分析,以确定先进的科学的高效的系统编码体系。 10) 系统的软件,硬件配置建议。

分析人员应对档案系统所需的计算机系统的配置提出建议。

11) 系统的物理编程。

根据不同的系统要求以及用户软、硬件技术状况,在合适的平台上,选取相宜的档案语言和

工具进行实际编程。 12) 软件调查。

对设计的原代码进行调试,以修改其中错误,从而确定系统的可靠性。

13) 功能测试。

对照系统分析中提出的系统功能要求,应进行系统的功能测试,以确定系统可预期的功能。

1.2:面向对象的程序设计

面向对象的方法学是要求按人们通常的思维方式建立问题领域的模型,设计出尽可能自然表现求解方法的软件。所谓建立模型就是建立问题领域中事物间相互关系。而表现求解问题的方法就是人们思维方法的描述。在面向对象的设计方法中对象(object)和传递信息(message passing)分别表现事物和事物间的关系。类(class)和继承性(inheritamce)是描述人们思维方式的描述方法。方法(method)是在可进行的操作,这种对象、类、消息、方法的程序设计范式的关键在于对象的封装和继承性。通过封装(emcapsulation)能将对象的定义和实现分开。通过继承性,体现了类与类之间的关系,以及由此带来的基本特征。下面将从面向对象的方法学方面对有关概念作简要介绍。

1) 对象

我们把面向现实世界中的实体就称为问题空间的对象从动态的观点看,对象的操作就是对象的行为,从存储的角度看,对象是计算机内存中的一块私有存储区,在这块存储区中有数据、有方法。在面向对象的程序设计中,对象是该系统的基本运行实体,对于每个对象而言,都有与该对象对应的方法,而与每个对象相关的方法,就是定义了该对象的操作。

2) 消息和方法

在对象之间,消息是他们之间的唯一联系。在面向对象的程序环境中设计的程序,它的执行是依

靠对象向消息传递来完成的。

把所以的对象分为各种对象类,每个对象类都定义了一组方法, 所谓方法就是允许在对象类上进行

的各种操作。

3) 类

在面向对象的程序设计中,对象是程序设计的最基本的单位,相似的对象可以并到一类中去,程序员只

需定义一个类,就可根据这个类得到若干个实例,其中每个实例就是一个对象。

4) 继承性

继承性是自动地共享类、子类、对象中的方法和数据的一种机制,继承性个减少程序设计中编写代码的工作量,它不仅支持系统的可重用性,而且还促进了系统的可扩充性。

5) 封装性

所谓封装是一种信息隐蔽技术,用户只能看到对象封装界面上的信息,而对象内部对用户透明,封装的目的是把对象的使用着和对象的设计着分开,使用着只需设计访问对象的消息。

6) 多态性

当同样的消息可发送到父类的对象和它的子类的对象时,这就被称为多太性。由于多太性具有可表达对象的多个类的能力。因此,它既与动态类型有关,又与静态类型有关。

7) 动态聚束

一个程序经过编译,连接生成的可执行文件代码,其过程就是将执行代码聚束在一起,若这一过程发生在程序设计时,就称为动态聚束。面向对象语言常使用这一类聚束方式,它具有程序简单性和可扩充性等优点。

本系统在编制过程中,多次利用面向对象的技术特点。在后面的章节中将分别予以说明。

1.3 系统软件开发环境简介

本系统是在Pentyum 166mmx 以上机型的计算机上进行开发并获得通过的,同时方便系统开发,减少开发过程的难度,我们是基于以下的软件环境。 ·以Windows 98为操作系统 ·以Visual Basic6.0为开发工具

Windows 98是目前主流图形化操作系统,而Visual Basic6.0是一种优秀的面向对象的,支持多种数据库应用的开发工具。我在系统开发过程中深深地感受到Visual Basic6.0的强大威力。下面我结合自己的体会对Visual Basic6.0作一简要介绍。

Visual Basic6.0是著名的Microsoft 公司推出的完全可视化的,支持多种数据库开发工具。使用面向对象的开发技术,能够开发出强大的专门针对用户的应用程序。具有强大的API 函数库,支持ActiveX 和OCX 技术。能够管理大量复杂的数据信息,同时具有很好的安全性。

在后面的篇幅里,我将详细的说明我是如何利用Visual Basic6.0进行《文档管理系统》的系统开发的。

第二章 系统设计

系统设计是信息系统开发工作的核心,其基本的任务是把原系统分析阶段得出的逻辑模型变换成系统的物理模型。即按照系统需求分析阶段确定的目标和逻辑模型,具体设计出效率高,适应性强,可靠性好且经济实用的系统实施方案。

经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候了。设计的基本目的就是回答“系统应该如何实现?”这个问题,通过这个阶段的工作将划分出组成系统的物理元素—程序文件,数据库,人工过程和文档等等。

系统设计应从数据流程图出发。设想完成系统功能的若干种合理的物理方案。并和用户共同比较选定一个最佳方案。然后进行软件结构设计。在进行软件设计时应该遵循模块独立原理,确定软件由哪些模块组成以及这些模块之间的动态调用关系。同时可以设计出系统的层次和结构图。基于以上理论,结合需求分析阶段的数据流图和ER 图。设计出以下的模块和5个数据库表结构的设计。

2.1 模块处理功能设计

在上一章的系统分析说明书中,已经从用户的角度初步地划分了本系统的各功能模块,并且从用户的角度对主要的功能模块设置作了分析。下面我将对每个模块的总体设计作简要说明。

1.档案柜信息模块 1)编辑档案柜信息模块

该模块可以实现档案柜的创建,档案柜信息包括档案柜号、档案柜名、创建时间、创建人、备注。该模块还实现对档案柜信息记录的修改、删除等操作。

2)检索档案柜信息模块

该模块是档案柜信息模块的重要组成部分。它能够用单一条件或组合条件两种方式对满足条件的档案柜记录予以显示,条件的匹配方式包括等于、不等于、大于、小于等等,条件的组合方式有与、或等,力图从数据的任何一个角度反映整个数据表的信息。该模块将用SQL 语言实现。

3)档案柜信息报表模块

该模块可以实现在数据库中满足指定条件的记录的输出报表。该模块输出特定条件的记录也将用SQL 语言实现。由于Visual Basic6.0的报表功能的局限性,所以这里采用将检索结果到处到EXCEL ,最后通过EXCEL 实现最终的报表。

2.卷宗信息模块

1)卷宗信息编辑模块

该模块首先实现卷宗的创建。创建时用户选择卷宗的类比名和卷宗号。另外还包括卷宗的创建时间,创建人,备注等。创建以后还可以实现对卷宗包括卷宗号、卷宗名等记录的录入、修改、删除等操作。

2)卷宗信息检索模块

该模块是卷宗信息模块的重要组成部分。它能够用单一条件或组合条件两种方式对满足条件的卷宗记录以及卷宗里面的文档资料信息予以显示,检索字段包括卷宗号、卷宗名、入卷时间、文件号、文件名等。条件的匹配方式包括等于、不等于、大于、小于等等,条件的组合方式有与、或等,力图从数据的任何一个角度反映整个数据表的信息。该模块将用SQL 语言实现。

3)卷宗信息分段统计模块

该模块主要完成对满足指定条件的卷宗库表和文档资料库表中的记录按照相同卷宗号进行文档资料数量的统计。统计的结果显示在表单中的网格表中。

3.文档资料模块

该模块实现文档资料信息的管理,又可分为文档资料编辑子模块、检索文档资料子模块、文档资料报表子模块。文档资料编辑子模块主要完成文档资料的录入、修改、删除等。检索评语子模块主要完成对文档资料从文件号、文件名等字段来设定检索条件。文档资料报表子模块主要完成设定条件的记录的输出报表。

4.系统用户登录模块

该模块实现系统对用户身份的识别,只有输入正确的用户名和密码,系统才会进入系统运行界面,非法用户登录给出警告,密码填写错误给出提醒。

非法用户不能进入系统。密码三次输入不正确,系统自动退出。

2.2、数据库表结构

根据分析阶段得出的实体一联系图(E -R 图)的结论,结合本系统对有关数据的存储的需要,更加方便实现该动态档案系统的所有功能,现将本系统设计成3个数据库表,每个表的字段名、类型、宽度设计如下:

1. 档案柜基本信息表: 该表用来存放档案柜基本信息。

设计说明:为方便编程以及人们工作习惯,这里将学号设计成字符型。并根据实际需要设计了相应的宽度。

2. 卷宗信息表:

该表用来存放卷宗的创建时期的信息。

3. 文档资料信息表:

用来存放学生在校期间的评语信息。

4. 登录表:用于存放系统用户登录姓名、密码。

以上是本系统的库表结构的设计简要说明。

第三章 应用系统实现

按结构化的程序设计思想,在完成了系统分析、系统设计后,就可以进行系统实现阶段了,系统

实现是每指把系统的物理模型转换成实际运行系统的全过程。其基本任务是:

a) 前期准备

b) 系统平台的安装与调试

c) 程序的编制与调试

d) 信息系统调试

e) 数据库与文件的建立

f) 系统转换

g) 试运行、验收与维护

3.1创建卷名窗体的实现

1)运行时的窗体:

2)控件和事件

a) “节点刷新”按钮控件:click 事件是将创建新节点后的数据库信息刷新到窗体中。控制

主节点刷新的语句是:

If Left(adoPrimaryRS.Fields("卷号"), 1) = 0 Then

Set mynod = TreeView1.Nodes.Add("sort", tvwChild, "sort" & Str$(i),

adoPrimaryRS.Fields("卷名") & "(" & adoPrimaryRS.Fields("卷号") & ")")

b) “创建节点”按钮控件:click 事件是将文本框信息加入到卷名库表中,这样达到创建新节点的目的,这里创建新节点填写卷号很重要,它直接决定了子节点的从属关系。读取文本框中的信息到数据库表中的主要的实现语句是:

adoPrimaryRS.AddNew

adoPrimaryRS.Fields("卷号") = Text1.Text

adoPrimaryRS.Fields("卷名") = Text2.Text

adoPrimaryRS.Fields("备注") = Text3.Text

adoPrimaryRS.Fields("创卷人员") = "管理员"

adoPrimaryRS.Fields("创卷日期") = Date

adoPrimaryRS.Update

c )“编辑节点”按钮控件:click 事件是将原先建立的节点名,节点号,节点的从属进行再编辑。从属关系是通过修改节点号(即卷号)来达到目的的。实现的原理是修改数据库中相应的记录值。删除前提醒用户是否确认删除。实现语句是:

adoPrimaryRS.Fields("卷号") = Text1.Text

adoPrimaryRS.Fields("卷名") = Text2.Text

adoPrimaryRS.Fields("备注") = Text3.Text

adoPrimaryRS.Update

d )“删除节点”按钮控件:click 事件是已经建立的节点(卷名)删除。实现的原理是删除数据库中的相应记录值。它的实现语句是:

Delete = MsgBox("确实要删除该节点吗", vbOKCancel, "删除节点")

If Delete = vbOK Then

adoPrimaryRS.Delete

h )“退出”按钮控件:click 事件是释放当前窗体,返回主控系统。实现语句是:Unload Me

3.2:档案柜资料窗体的实现

1)运行时的窗体:

2)控件和事件

a )“网格”容器控件:显示档案柜中的数据信息。数据源设定为档案柜表的查询记录集。在窗体的装载事

件load 中用语句控制。语句是:

adoPrimaryRS.Open "select 档案柜号, 建柜人员, 建柜日期, 备注 from dag Order by 档案柜号 ", db, adOpenStatic, adLockOptimistic

Text1.Text = adoPrimaryRS.Fields("档案柜号")

Text2.Text = adoPrimaryRS.Fields("备注")

Set DataGrid1.DataSource = adoPrimaryRS

b )“最首”按钮控件:click 事件是将当前窗体中的网格控件中的信息和文本框控件中的信息指向数据库表查询记录集中的第一条记录。利用SQL 语句实现在数据库中查询符合条件的所以记录,并在表单中的网格容器中显示。如果无相应的记录,系统将给出提示。实现关键语句如下:

adoPrimaryRS.MoveFirst

Text1.Text = adoPrimaryRS.Fields("档案柜号")

Text2.Text = adoPrimaryRS.Fields("备注")

c )“下一条”按钮控件:click 事件是将网格中的,文本框中的信息同时指向当前记录的下一条记录。如果越界就给出已经是最后一条记录的提示,并将记录定位在最后一条记录。实现语句:

adoPrimaryRS.MoveNext

If adoPrimaryRS.EOF Then

MsgBox ("已经是第后一条记录了!")

adoPrimaryRS.MoveLast

Else

Text1.Text = adoPrimaryRS.Fields("档案柜号")

Text2.Text = adoPrimaryRS.Fields("备注")

d )“上一条” 按钮控件:click 事件是将网格中的,文本框中的信息同时指向当前记录的上一条记录。如果越界就给出已经是第一条记录的提示,并将记录定位在第一条记录。实现语句:

adoPrimaryRS.MovePrevious

If adoPrimaryRS.BOF Then

MsgBox ("已经是第一条记录了!")

adoPrimaryRS.MoveFirst

Else

Text1.Text = adoPrimaryRS.Fields("档案柜号")

Text2.Text = adoPrimaryRS.Fields("备注")

End Ifd) “退出”按钮控件:click 事件、实现语句和前面一样。

e) “最末”按钮控件:click 事件是将当前窗体中的网格控件中的信息和文本框控件中的信息指向数据库表查询记录集中的第后一条记录。利用SQL 语句实现在数据库中查询符合条件的所以记录,并在表单中的网格容器中显示。如果无相应的记录,系统将给出提示。实现关键语句如下:

adoPrimaryRS.MoveLast

Text1.Text = adoPrimaryRS.Fields("档案柜号")

Text2.Text = adoPrimaryRS.Fields("备注")

f) “添加”按钮控件:click 事件是创建新的档案柜,实现的原理是对数据库查询的记录集添加一条新

的记录,然后修给这条空记录的值,达到对数据库表中的档案柜记录添加的目的。实现的语句如下: If Command5.Caption = "添加" Then

Command5.SetFocus

Command5.Caption = "保存"

Text1.Enabled = True

Text2.Enabled = True

Text1.SetFocus

Text1.Text = ""

Text2.Text = ""

adoPrimaryRS.AddNew

Else

adoPrimaryRS.Fields("档案柜号") = Text1.Text

adoPrimaryRS.Fields("备注") = Text2.Text

adoPrimaryRS.Fields("建柜人员") = "管理员"

adoPrimaryRS.Fields("建柜日期") = Date

adoPrimaryRS.Update

Command5.Caption = "添加"

Text1.Enabled = False

Text2.Enabled = False

End If

g) “编辑”按钮控件:click 事件是将记录集中当前记录在文本框中进行修改,然后更改记录集中相应的记录。来达到修改数据库中的记录的目的。实现的主要语句是:adoPrimaryRS.Fields("档案柜号") = Text1.Text

adoPrimaryRS.Fields("备注") = Text2.Text

adoPrimaryRS.Update

h) “查找”按钮控件:click 事件是使框架4出现,而框架1隐藏,框架4中的“确定” 按钮控件

的click 事件是查找档案柜数据库中的满足文本框1和文本3中的查询条件。查询结果显示在网

格容器控件中。

Frame4.Visible = True

Frame1.Visible = False

Command9.Enabled = False

a = Combo1.Text

b = Text3.Text

adoPrimaryRS.Open "select 档案柜号, 建柜人员, 建柜日期, 备注 from dag where " & a & " like '%" & b & "%'", db, adOpenStatic, adLockOptimistic

Set DataGrid1.DataSource = adoPrimaryRS

查询的结果可以通过“导出”按钮导出到EXCEL 表中。以实现数据的打印报表。导出控制的语句是: For i = 0 To adoPrimaryRS.RecordCount - 1

For j = 0 To adoPrimaryRS.Fields.Count - 1

DataGrid1.Row = i

DataGrid1.Col = j

xlsheet.Cells(i + 2, j + 1) = DataGrid1.Text

Next j

Next I

利用双重循环实现导出。

3.3 文件编辑窗体的实现

1)运行时的窗体:

2)控件和事件

控件包括最首,上一个,下一个,最末,添加,编辑,删除,查询,导出,退出等按钮和用于输入信息的文本框。,其中导出按钮是隐藏在框架4中,点击查询即可显示。这些按钮控件的事件和前面档案柜资料窗体相似。下面对编辑,添加这两个按钮的事件和实现语句分析如下:

a )“编辑”按钮控件:click 事件是将按钮名改成“保存”,增加了系统的交互性。同时使文本框变得可编辑。 “保存” 按钮控件的click 事件是将按钮名改成“编辑”,同时用文本框的记录修改数据库中的记录。它的实现语句是:

If Command6.Caption = "编辑" Then

Command6.Caption = "更新"

Text1.Enabled = True

Text2.Enabled = True

Text3.Enabled = True

Text4.Enabled = True

Else

adoPrimaryRS.Fields("文件号") = Text1.Text

adoPrimaryRS.Fields("文件名") = Text2.Text

adoPrimaryRS.Fields("作者") = Text3.Text

adoPrimaryRS.Fields("内容摘要") = Text4.Text

adoPrimaryRS.Update

Text1.Enabled = False

Text2.Enabled = False

Text3.Enabled = False

Text4.Enabled = False

End If

2)“添加”按钮控件:click 事件是将按钮名改成“保存”,增加了系统的交互性。同时使文本框变

得可编辑。 “保存” 按钮控件的click 事件是将按钮名改成“添加”,此时使文本框变得不可编辑,同时用文本框的记录添加到数据库末尾。添加完成后,网格容器控件中的数据自动更新。它的实现语句是:

If Command5.Caption = "添加" Then

Command5.SetFocus

Command5.Caption = "保存"

Text1.Enabled = True

Text2.Enabled = True

Text3.Enabled = True

Text4.Enabled = True

Text1.SetFocus

Text1.Text = ""

Text2.Text = ""

Text3.Text = ""

Text4.Text = ""

adoPrimaryRS.AddNew

Else

adoPrimaryRS.Fields("文件号") = Text1.Text

adoPrimaryRS.Fields("文件名") = Text2.Text

adoPrimaryRS.Fields("作者") = Text3.Text

adoPrimaryRS.Fields("内容摘要") = Text4.Text

adoPrimaryRS.Fields("入库日期") = Date

adoPrimaryRS.Fields("状态") = "否"

adoPrimaryRS.Update

Command5.Caption = "添加"

Text1.Enabled = False

Text2.Enabled = False

Text3.Enabled = False

Text4.Enabled = False

End If

3.4 组卷窗体的实现

1) 运行时的窗体:

2)控件和事件

a)treeview 控件:nodeclick 事件是将treeview 控件选中的节点值传给文本框,得到卷号和卷名,将此作为网格容器控件中的数据源的查询条件。并将查询记录集作为网格容器控件中的数据源。

实现的语句如下:

Dim db As Connection

Set db = New Connection

db.CursorLocation = adUseClient

db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=dagl.mdb;"

Set adoPrimaryRS = New Recordset

Text4.Text = Left$(Right$(Node.Text, 3), 2)

Text1.Text = Text4.Text

Text2.Text = Left$(Node.Text, Len(Node.Text) - 4)

If Text4.Text "00" Then

Set adoPrimaryRS = New Recordset

adoPrimaryRS.Open "select 卷号, 卷名, 文件号, 文件名, 作者, 入库日期, 内容摘要, 档案柜号, 入卷日期, 组卷人, 状态 from file where 卷号 like '%" & Text4.Text & "%'", db, adOpenStatic, adLockOptimistic

Else

Text1.Text = "00"

Text2.Text = ""

End If

Text6.Enabled = True

Text6.SetFocus

Command4.Enabled = True

Set DataGrid1.DataSource = adoPrimaryRS

b )“查询”按钮控件:click 事件是根据当前窗体中的组合框控件和文本框控件的内容,作为查询的条件。这个查询是本系统最重要的一个功能。它的实现关键功能语句与说明如下:

Dim db As Connection

Set db = New Connection

db.CursorLocation = adUseClient

db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=dagl.mdb;"

Set adoPrimaryRS = New Recordset

a = Combo1.Text

b = Text7.Text

adoPrimaryRS.Open "select 卷号, 卷名, 文件号, 文件名, 作者, 入库日期, 内容摘要, 档案柜号, 入卷日期, 组卷人, 状态 from file where " & a & " like '%" & b & "%'", db, adOpenStatic, adLockOptimistic Set DataGrid1.DataSource = adoPrimaryRS

c) 导出按钮控件的click 事件是将当前网格容器控件中的查询结果导出到EXCEL 表以实现报表打印。导出的主要语句如下:

For i = 0 To adoPrimaryRS.RecordCount - 1

For j = 0 To adoPrimaryRS.Fields.Count - 1

DataGrid1.Row = i

DataGrid1.Col = j

xlsheet.Cells(i + 2, j + 1) = DataGrid1.Text

Next j

Next i

Set xlapp = Nothing

Set xlbook = Nothing

利用双重循环控制导出的位置。导出的界面如下:

说明:上面是一个对卷号为03的卷宗实现查询的结果导出到EXCEL 的结果。

为了实现组卷,还需要用到文档资料和档案柜资料的2个窗体,它们分别是在添加文档到卷宗来的时候,有2个文本号选择和档案柜号选择按钮激发的事件结果。这二个窗体运行的界面如下:

说明:选择某个档案柜号,然后点击确定,几个触发它的click 事件,将当前的档案号添加到组卷窗体的档案号中,click 事件的语句是:Form5.Text5.Text = DataGrid1.Text

文件资料窗体运行界面:

控件有:确定和关闭按钮二个控件。该窗体装载是load 事件自动实现对文件数据库中的状态是“否”的文件搜索到记录集中,并作为网格容器控件的数据源。网格控件的click 事件是将选中的记录添加到组卷窗体中的相应文本框中。作为组卷的数据信息。load 事件的代码如下:

Set db = New Connection

db.CursorLocation = adUseClient

db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=dagl.mdb;"

Set adoPrimaryRS = New Recordset

adoPrimaryRS.Open "select 文件号, 文件名, 状态 from file where 状态='否' ", db, adOpenStatic, adLockOptimistic

Set DataGrid1.DataSource = adoPrimaryRS

3.5系统菜单的实现

设计一个菜单系统,一般要经过几个步骤:菜单系统的规划,建立菜单与子菜单,把任务分配到菜单系统中,生成菜单程序,测试和运行菜单系统等,VB6.0是通过设计窗体来完成菜单的设计界面的,本系统设计的菜单运行如下:

各个菜单项的click 事件代码如下:

Private Sub exit_Click()

End

End Sub

Private Sub file_Click()

Form2.Show

End Sub

Private Sub Form_Load()

Left = (Screen.Width - Width) \ 2

Top = (Screen.Height - Height) \ 2

End Sub

Private Sub jiangui_Click()

Form4.Show

End Sub

Private Sub setup_Click()

Form3.Show

End Sub

Private Sub zhujuan_Click()

Form5.Show

End Sub

其中的Left = (Screen.Width - Width) \ 2

Top = (Screen.Height - Height) \ 2是控制窗体在屏幕中的位置居中。

总 结

经过多日来的努力《文档管理系统》终于完成了。回顾这次毕业设计的过程,我觉得收获很大,现借撰写论文总结的机会,谈一谈我的体会。

通过这次毕业设计,我掌握了一种新的数据库系统开发工具Visual Basic6.0。我对于它具有的可视化的编程环境和连接数据库的便捷性用感触颇深,Visual Basic6.0这些数据库的连接提供了多种方法。比如DATA 控件对初学着就非常容易掌握,当然利用语句对数据库的连接就可以实现对数据库的高级应用。Visual Basic6.0这种面向对象的数据库开发工具提供了窗体这种户非常友好的交互方式。利用设计好的窗体据库的记录进行操作,不但使用户更清楚记录的具体变更情况,也使开发人员的工作轻松了许多。

同时,在这次毕业设计过程中,我始终遵循软件工程的思想,这使我的工作进度明显加快,也使我少走了不少弯路。软件工程的思想,指导我一步一步从系统分析,到系统设计,再到系统实现,让我对整个系统的开发过程有了明显的全局观念,也合理地安排了整个设计的时间。

以上是我在本次毕业设计中的体会,也许认识到的问题还很肤浅,这也正是我今后要努力提高的。

致 谢

在本次毕业设计的过程中,我的指导教师给了我很大的帮助。不仅使我在规定的时间内完成了系统的设计,同时还使我学到了很多有益的经验。在此,我谨向他表示最衷心的感谢。

同时,学校给了我这次毕业设计的机会,使我得到了很好的锻炼,在此,我也向学校的各位老师表示最诚挚的感谢。

参考文献

1. 陈明 Visual Basic程序设计 中央广播电视大学出版社 2000年

2. 何旭洪等 Visual Basic6.0数据库系统开发实例导航 人民邮电出版社 2002年

目录

内容摘要..............................................................2 Abstract..............................................................2 引言..................................................................3 第一章 概述..........................................................4 1.1 管理信息系统简介................................................4 1.2 面向对象的程序设计..............................................5 1.3 系统软件开发环境简介.............................................6 第二章 系统设计......................................................7 2.1 模块处理功能设计................................................7 2.2 数据库表结构....................................................8 第三章 应用系统实现..................................................11 3.1 创建卷名窗体的实现...............................................11 3.2 档案柜资料窗体的实现.............................................12 3.3 文件编辑窗体的实现................................................15 3.4 组卷窗体的实现....................................................16 3.5系统菜单的实现....................................................20 总 结................................................................21 致 谢................................................................22 参考文献..............................................................22

基于VISAUL BASIC6.0开发的文件档案管理系统

内容摘要

《文档管理系统》是采用VISAUL BASIC6.0开发的一个数据库管理系统。本设计说明书主要讲述了VISAUL BASIC6.0的基本功能及设计方法。紧接着以本系统为例,逐一介绍开发本系统系统的步骤:系统分析、系统设计、系统实现、系统维护。在系统分析中先后用数据流图、数据字典、系统的功能结构图分析了系统所需的各种数据。在系统的设计中,详细的展现了系统的各个功能模块。所需的数据库表及表字段。菜单的设计等。在系统的实现中,给出了实现表单中相应的功能控件的事件及代码。以及菜单实现的方法。文章的最后则给出了本系统的主要功能源代码。

本系统具有数据输入,数据存储,信息查询,报表打印等功能,系统的人机对话界面友好。系统功能全面,用户操作方便是本设计的一个特色。

关键词:面向对象 文档 管理系统 VB

Abstract

administrative system of the archives" adopts a data base management system that VISAUL BASIC6.0 developed . This design instruction has told the basic function of VISAUL BASIC6.0 and design method mainly .This design instruction has told the basic function of VISAUL BASIC6.0 and design method mainly. And then take this system as an example , recommend developing the step of this system one by one: Network analysis , designs systematically , realizes systematically , safeguards systematicallying. Successively with dataflow picture, data dictionary, function structure chart various kinds of datum analyticl system take of system in network analysis. In the design of the system, detailed each function module which has represented the system. Necessary database form and literary name section. Design of the menu ,etc.. In the realization of the system, provide and realize the incidents and codes of the corresponding function controlling part among forms. And the method that the menu realize. Provide the main function source code of this system at the end of the article. This system has data entry , the data are stored, file inquiry, such functions as the report form is typed, the interactive interface friendship of the system. The systematic function is overall, it is a characteristic that is originally designed that users are easy to operate.

Key word: archives administrative system of the archives VISAUL BASIC6.0

引言

计算机技术的飞速发展,为人类的进步注入了新的活力。新的技术为人们带来的是更快捷、更可靠的服务。越来越多的家庭、企业、机关、学校利用计算机来处理日常事务,管理信息系统(MIS )就是利用计算机为企业、学校,事业机关等的经营者、决策者收集、处理信息的一项重要工具,管理信息系统的发展源于管理现代化的推进和计算机技术的发展。籍于此管理信息系统将随着人类文明的进步而不断的完善与发展。

知识经济时代的今天,对文书档案管理工作人员提出了更新更高的要求。文档管理工作人员,必须完成由传统的管理模式向现代的管理模式的转变,由传统的管理理念向现代管理理念转变,同时在管理实践中应用,使文书档案管理工作赶上时代步伐,适应文书档案管理现代化和办公自动化的时代需要,为社会提供更好更有效的服务,使文书档案管理工作发挥出应有的经济效益及社会效益来。

《文档管理系统》针对本人对文档资料管理的调研,结合本单位长期以来管理文档资料的经验而设计的计算机管理系统。提出了一套比较适宜的施行方案,并努力将原本复杂的管理业务、归类、存档等简化为比较简单的事务。他基本上秉承了传统的文档资料管理理念,同时也兼顾当今对现代管理信息的需要,着眼于实用、高效的原则。

由于本人的水平有限,在本系统中难免存在错误和不足。望各位老师予以批评与指正

第一章 概述

1.1 管理信息系统简介

管理信息系统

MIS(manage information systion) 是由人和计算机等组成的能进行管理信息的多种操

作(包括收集、储存、加工、维护和使用) 的系统。它由四个要素组成。即现代化经济管理理论、系统工程、数学方法和计算机手段。其目的是通过自动化的事务处理方法来监视和控制企业、学校的行为、通过对历史数据的科学统计提供可靠的预测数据。并通过一些优化方法提供决策依据,管理信息系统是生产力发展的阶段标志是现代管理的综合体现。一个MIS 系统的开发应分为如下步骤进行。 1)系统任务的提出。

系统开发的工作是从接受任务开始的,而系统任务应由系统用户提出,以书面的形式给予表达。

2)初步系统调查。

初步系统调查着重了解存在的主要问题和用户提出的目的要求,并制定新系统总体规划。

3)确定系统目标。

经过初步系统调查,了解了用户的基本状况和用户对系统的设想及要求后,系统开发人员就可以初步提出档案系统的系统目标。 4)系统的可行性研究。

系统的可行性研究包括可能性和必要性。有技术上的,经济上的,人力资源上的,以及组织管理上的。经过系统的可行性研究,最后应写出一份系统可行性分析报告。分析报告是系统开发人员第一阶段工作的小结。 5)详细的系统调查。

通过详细的系统调查。可以得到人工管理业务的处理办法,并详细地掌握住处的流程,总结出现有业务过程的规律,存在的问题。从而提出改进措施。 6)现行系统的描述与分析。

着重用来分析现行系统页面设计后,相关性版块信息交互的方便性。特别是要分析现行档案系统存在主要问题和管理上的薄弱环节,以及产生这些问题的原因和解决办法。 7)用户需求及功能分析。

用户需求因不同用户而有所区别,但主要可分为系统范围,信息的处理和技术性三个方面。

8) 新系统的逻辑模型。

通过对现行系统的进行详细调查,分析及用户需求分析后,就可以确定新系统的逻辑模型。新系统的模型包括新系统的功能要求、目标、各级页面之间链接、数据字典。

9) 编码对象的分析及编码体系结构的确定。

在系统分析阶段,对现行系统及档案系统将要采用的编码对象及方法应该认真分析,以确定先进的科学的高效的系统编码体系。 10) 系统的软件,硬件配置建议。

分析人员应对档案系统所需的计算机系统的配置提出建议。

11) 系统的物理编程。

根据不同的系统要求以及用户软、硬件技术状况,在合适的平台上,选取相宜的档案语言和

工具进行实际编程。 12) 软件调查。

对设计的原代码进行调试,以修改其中错误,从而确定系统的可靠性。

13) 功能测试。

对照系统分析中提出的系统功能要求,应进行系统的功能测试,以确定系统可预期的功能。

1.2:面向对象的程序设计

面向对象的方法学是要求按人们通常的思维方式建立问题领域的模型,设计出尽可能自然表现求解方法的软件。所谓建立模型就是建立问题领域中事物间相互关系。而表现求解问题的方法就是人们思维方法的描述。在面向对象的设计方法中对象(object)和传递信息(message passing)分别表现事物和事物间的关系。类(class)和继承性(inheritamce)是描述人们思维方式的描述方法。方法(method)是在可进行的操作,这种对象、类、消息、方法的程序设计范式的关键在于对象的封装和继承性。通过封装(emcapsulation)能将对象的定义和实现分开。通过继承性,体现了类与类之间的关系,以及由此带来的基本特征。下面将从面向对象的方法学方面对有关概念作简要介绍。

1) 对象

我们把面向现实世界中的实体就称为问题空间的对象从动态的观点看,对象的操作就是对象的行为,从存储的角度看,对象是计算机内存中的一块私有存储区,在这块存储区中有数据、有方法。在面向对象的程序设计中,对象是该系统的基本运行实体,对于每个对象而言,都有与该对象对应的方法,而与每个对象相关的方法,就是定义了该对象的操作。

2) 消息和方法

在对象之间,消息是他们之间的唯一联系。在面向对象的程序环境中设计的程序,它的执行是依

靠对象向消息传递来完成的。

把所以的对象分为各种对象类,每个对象类都定义了一组方法, 所谓方法就是允许在对象类上进行

的各种操作。

3) 类

在面向对象的程序设计中,对象是程序设计的最基本的单位,相似的对象可以并到一类中去,程序员只

需定义一个类,就可根据这个类得到若干个实例,其中每个实例就是一个对象。

4) 继承性

继承性是自动地共享类、子类、对象中的方法和数据的一种机制,继承性个减少程序设计中编写代码的工作量,它不仅支持系统的可重用性,而且还促进了系统的可扩充性。

5) 封装性

所谓封装是一种信息隐蔽技术,用户只能看到对象封装界面上的信息,而对象内部对用户透明,封装的目的是把对象的使用着和对象的设计着分开,使用着只需设计访问对象的消息。

6) 多态性

当同样的消息可发送到父类的对象和它的子类的对象时,这就被称为多太性。由于多太性具有可表达对象的多个类的能力。因此,它既与动态类型有关,又与静态类型有关。

7) 动态聚束

一个程序经过编译,连接生成的可执行文件代码,其过程就是将执行代码聚束在一起,若这一过程发生在程序设计时,就称为动态聚束。面向对象语言常使用这一类聚束方式,它具有程序简单性和可扩充性等优点。

本系统在编制过程中,多次利用面向对象的技术特点。在后面的章节中将分别予以说明。

1.3 系统软件开发环境简介

本系统是在Pentyum 166mmx 以上机型的计算机上进行开发并获得通过的,同时方便系统开发,减少开发过程的难度,我们是基于以下的软件环境。 ·以Windows 98为操作系统 ·以Visual Basic6.0为开发工具

Windows 98是目前主流图形化操作系统,而Visual Basic6.0是一种优秀的面向对象的,支持多种数据库应用的开发工具。我在系统开发过程中深深地感受到Visual Basic6.0的强大威力。下面我结合自己的体会对Visual Basic6.0作一简要介绍。

Visual Basic6.0是著名的Microsoft 公司推出的完全可视化的,支持多种数据库开发工具。使用面向对象的开发技术,能够开发出强大的专门针对用户的应用程序。具有强大的API 函数库,支持ActiveX 和OCX 技术。能够管理大量复杂的数据信息,同时具有很好的安全性。

在后面的篇幅里,我将详细的说明我是如何利用Visual Basic6.0进行《文档管理系统》的系统开发的。

第二章 系统设计

系统设计是信息系统开发工作的核心,其基本的任务是把原系统分析阶段得出的逻辑模型变换成系统的物理模型。即按照系统需求分析阶段确定的目标和逻辑模型,具体设计出效率高,适应性强,可靠性好且经济实用的系统实施方案。

经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候了。设计的基本目的就是回答“系统应该如何实现?”这个问题,通过这个阶段的工作将划分出组成系统的物理元素—程序文件,数据库,人工过程和文档等等。

系统设计应从数据流程图出发。设想完成系统功能的若干种合理的物理方案。并和用户共同比较选定一个最佳方案。然后进行软件结构设计。在进行软件设计时应该遵循模块独立原理,确定软件由哪些模块组成以及这些模块之间的动态调用关系。同时可以设计出系统的层次和结构图。基于以上理论,结合需求分析阶段的数据流图和ER 图。设计出以下的模块和5个数据库表结构的设计。

2.1 模块处理功能设计

在上一章的系统分析说明书中,已经从用户的角度初步地划分了本系统的各功能模块,并且从用户的角度对主要的功能模块设置作了分析。下面我将对每个模块的总体设计作简要说明。

1.档案柜信息模块 1)编辑档案柜信息模块

该模块可以实现档案柜的创建,档案柜信息包括档案柜号、档案柜名、创建时间、创建人、备注。该模块还实现对档案柜信息记录的修改、删除等操作。

2)检索档案柜信息模块

该模块是档案柜信息模块的重要组成部分。它能够用单一条件或组合条件两种方式对满足条件的档案柜记录予以显示,条件的匹配方式包括等于、不等于、大于、小于等等,条件的组合方式有与、或等,力图从数据的任何一个角度反映整个数据表的信息。该模块将用SQL 语言实现。

3)档案柜信息报表模块

该模块可以实现在数据库中满足指定条件的记录的输出报表。该模块输出特定条件的记录也将用SQL 语言实现。由于Visual Basic6.0的报表功能的局限性,所以这里采用将检索结果到处到EXCEL ,最后通过EXCEL 实现最终的报表。

2.卷宗信息模块

1)卷宗信息编辑模块

该模块首先实现卷宗的创建。创建时用户选择卷宗的类比名和卷宗号。另外还包括卷宗的创建时间,创建人,备注等。创建以后还可以实现对卷宗包括卷宗号、卷宗名等记录的录入、修改、删除等操作。

2)卷宗信息检索模块

该模块是卷宗信息模块的重要组成部分。它能够用单一条件或组合条件两种方式对满足条件的卷宗记录以及卷宗里面的文档资料信息予以显示,检索字段包括卷宗号、卷宗名、入卷时间、文件号、文件名等。条件的匹配方式包括等于、不等于、大于、小于等等,条件的组合方式有与、或等,力图从数据的任何一个角度反映整个数据表的信息。该模块将用SQL 语言实现。

3)卷宗信息分段统计模块

该模块主要完成对满足指定条件的卷宗库表和文档资料库表中的记录按照相同卷宗号进行文档资料数量的统计。统计的结果显示在表单中的网格表中。

3.文档资料模块

该模块实现文档资料信息的管理,又可分为文档资料编辑子模块、检索文档资料子模块、文档资料报表子模块。文档资料编辑子模块主要完成文档资料的录入、修改、删除等。检索评语子模块主要完成对文档资料从文件号、文件名等字段来设定检索条件。文档资料报表子模块主要完成设定条件的记录的输出报表。

4.系统用户登录模块

该模块实现系统对用户身份的识别,只有输入正确的用户名和密码,系统才会进入系统运行界面,非法用户登录给出警告,密码填写错误给出提醒。

非法用户不能进入系统。密码三次输入不正确,系统自动退出。

2.2、数据库表结构

根据分析阶段得出的实体一联系图(E -R 图)的结论,结合本系统对有关数据的存储的需要,更加方便实现该动态档案系统的所有功能,现将本系统设计成3个数据库表,每个表的字段名、类型、宽度设计如下:

1. 档案柜基本信息表: 该表用来存放档案柜基本信息。

设计说明:为方便编程以及人们工作习惯,这里将学号设计成字符型。并根据实际需要设计了相应的宽度。

2. 卷宗信息表:

该表用来存放卷宗的创建时期的信息。

3. 文档资料信息表:

用来存放学生在校期间的评语信息。

4. 登录表:用于存放系统用户登录姓名、密码。

以上是本系统的库表结构的设计简要说明。

第三章 应用系统实现

按结构化的程序设计思想,在完成了系统分析、系统设计后,就可以进行系统实现阶段了,系统

实现是每指把系统的物理模型转换成实际运行系统的全过程。其基本任务是:

a) 前期准备

b) 系统平台的安装与调试

c) 程序的编制与调试

d) 信息系统调试

e) 数据库与文件的建立

f) 系统转换

g) 试运行、验收与维护

3.1创建卷名窗体的实现

1)运行时的窗体:

2)控件和事件

a) “节点刷新”按钮控件:click 事件是将创建新节点后的数据库信息刷新到窗体中。控制

主节点刷新的语句是:

If Left(adoPrimaryRS.Fields("卷号"), 1) = 0 Then

Set mynod = TreeView1.Nodes.Add("sort", tvwChild, "sort" & Str$(i),

adoPrimaryRS.Fields("卷名") & "(" & adoPrimaryRS.Fields("卷号") & ")")

b) “创建节点”按钮控件:click 事件是将文本框信息加入到卷名库表中,这样达到创建新节点的目的,这里创建新节点填写卷号很重要,它直接决定了子节点的从属关系。读取文本框中的信息到数据库表中的主要的实现语句是:

adoPrimaryRS.AddNew

adoPrimaryRS.Fields("卷号") = Text1.Text

adoPrimaryRS.Fields("卷名") = Text2.Text

adoPrimaryRS.Fields("备注") = Text3.Text

adoPrimaryRS.Fields("创卷人员") = "管理员"

adoPrimaryRS.Fields("创卷日期") = Date

adoPrimaryRS.Update

c )“编辑节点”按钮控件:click 事件是将原先建立的节点名,节点号,节点的从属进行再编辑。从属关系是通过修改节点号(即卷号)来达到目的的。实现的原理是修改数据库中相应的记录值。删除前提醒用户是否确认删除。实现语句是:

adoPrimaryRS.Fields("卷号") = Text1.Text

adoPrimaryRS.Fields("卷名") = Text2.Text

adoPrimaryRS.Fields("备注") = Text3.Text

adoPrimaryRS.Update

d )“删除节点”按钮控件:click 事件是已经建立的节点(卷名)删除。实现的原理是删除数据库中的相应记录值。它的实现语句是:

Delete = MsgBox("确实要删除该节点吗", vbOKCancel, "删除节点")

If Delete = vbOK Then

adoPrimaryRS.Delete

h )“退出”按钮控件:click 事件是释放当前窗体,返回主控系统。实现语句是:Unload Me

3.2:档案柜资料窗体的实现

1)运行时的窗体:

2)控件和事件

a )“网格”容器控件:显示档案柜中的数据信息。数据源设定为档案柜表的查询记录集。在窗体的装载事

件load 中用语句控制。语句是:

adoPrimaryRS.Open "select 档案柜号, 建柜人员, 建柜日期, 备注 from dag Order by 档案柜号 ", db, adOpenStatic, adLockOptimistic

Text1.Text = adoPrimaryRS.Fields("档案柜号")

Text2.Text = adoPrimaryRS.Fields("备注")

Set DataGrid1.DataSource = adoPrimaryRS

b )“最首”按钮控件:click 事件是将当前窗体中的网格控件中的信息和文本框控件中的信息指向数据库表查询记录集中的第一条记录。利用SQL 语句实现在数据库中查询符合条件的所以记录,并在表单中的网格容器中显示。如果无相应的记录,系统将给出提示。实现关键语句如下:

adoPrimaryRS.MoveFirst

Text1.Text = adoPrimaryRS.Fields("档案柜号")

Text2.Text = adoPrimaryRS.Fields("备注")

c )“下一条”按钮控件:click 事件是将网格中的,文本框中的信息同时指向当前记录的下一条记录。如果越界就给出已经是最后一条记录的提示,并将记录定位在最后一条记录。实现语句:

adoPrimaryRS.MoveNext

If adoPrimaryRS.EOF Then

MsgBox ("已经是第后一条记录了!")

adoPrimaryRS.MoveLast

Else

Text1.Text = adoPrimaryRS.Fields("档案柜号")

Text2.Text = adoPrimaryRS.Fields("备注")

d )“上一条” 按钮控件:click 事件是将网格中的,文本框中的信息同时指向当前记录的上一条记录。如果越界就给出已经是第一条记录的提示,并将记录定位在第一条记录。实现语句:

adoPrimaryRS.MovePrevious

If adoPrimaryRS.BOF Then

MsgBox ("已经是第一条记录了!")

adoPrimaryRS.MoveFirst

Else

Text1.Text = adoPrimaryRS.Fields("档案柜号")

Text2.Text = adoPrimaryRS.Fields("备注")

End Ifd) “退出”按钮控件:click 事件、实现语句和前面一样。

e) “最末”按钮控件:click 事件是将当前窗体中的网格控件中的信息和文本框控件中的信息指向数据库表查询记录集中的第后一条记录。利用SQL 语句实现在数据库中查询符合条件的所以记录,并在表单中的网格容器中显示。如果无相应的记录,系统将给出提示。实现关键语句如下:

adoPrimaryRS.MoveLast

Text1.Text = adoPrimaryRS.Fields("档案柜号")

Text2.Text = adoPrimaryRS.Fields("备注")

f) “添加”按钮控件:click 事件是创建新的档案柜,实现的原理是对数据库查询的记录集添加一条新

的记录,然后修给这条空记录的值,达到对数据库表中的档案柜记录添加的目的。实现的语句如下: If Command5.Caption = "添加" Then

Command5.SetFocus

Command5.Caption = "保存"

Text1.Enabled = True

Text2.Enabled = True

Text1.SetFocus

Text1.Text = ""

Text2.Text = ""

adoPrimaryRS.AddNew

Else

adoPrimaryRS.Fields("档案柜号") = Text1.Text

adoPrimaryRS.Fields("备注") = Text2.Text

adoPrimaryRS.Fields("建柜人员") = "管理员"

adoPrimaryRS.Fields("建柜日期") = Date

adoPrimaryRS.Update

Command5.Caption = "添加"

Text1.Enabled = False

Text2.Enabled = False

End If

g) “编辑”按钮控件:click 事件是将记录集中当前记录在文本框中进行修改,然后更改记录集中相应的记录。来达到修改数据库中的记录的目的。实现的主要语句是:adoPrimaryRS.Fields("档案柜号") = Text1.Text

adoPrimaryRS.Fields("备注") = Text2.Text

adoPrimaryRS.Update

h) “查找”按钮控件:click 事件是使框架4出现,而框架1隐藏,框架4中的“确定” 按钮控件

的click 事件是查找档案柜数据库中的满足文本框1和文本3中的查询条件。查询结果显示在网

格容器控件中。

Frame4.Visible = True

Frame1.Visible = False

Command9.Enabled = False

a = Combo1.Text

b = Text3.Text

adoPrimaryRS.Open "select 档案柜号, 建柜人员, 建柜日期, 备注 from dag where " & a & " like '%" & b & "%'", db, adOpenStatic, adLockOptimistic

Set DataGrid1.DataSource = adoPrimaryRS

查询的结果可以通过“导出”按钮导出到EXCEL 表中。以实现数据的打印报表。导出控制的语句是: For i = 0 To adoPrimaryRS.RecordCount - 1

For j = 0 To adoPrimaryRS.Fields.Count - 1

DataGrid1.Row = i

DataGrid1.Col = j

xlsheet.Cells(i + 2, j + 1) = DataGrid1.Text

Next j

Next I

利用双重循环实现导出。

3.3 文件编辑窗体的实现

1)运行时的窗体:

2)控件和事件

控件包括最首,上一个,下一个,最末,添加,编辑,删除,查询,导出,退出等按钮和用于输入信息的文本框。,其中导出按钮是隐藏在框架4中,点击查询即可显示。这些按钮控件的事件和前面档案柜资料窗体相似。下面对编辑,添加这两个按钮的事件和实现语句分析如下:

a )“编辑”按钮控件:click 事件是将按钮名改成“保存”,增加了系统的交互性。同时使文本框变得可编辑。 “保存” 按钮控件的click 事件是将按钮名改成“编辑”,同时用文本框的记录修改数据库中的记录。它的实现语句是:

If Command6.Caption = "编辑" Then

Command6.Caption = "更新"

Text1.Enabled = True

Text2.Enabled = True

Text3.Enabled = True

Text4.Enabled = True

Else

adoPrimaryRS.Fields("文件号") = Text1.Text

adoPrimaryRS.Fields("文件名") = Text2.Text

adoPrimaryRS.Fields("作者") = Text3.Text

adoPrimaryRS.Fields("内容摘要") = Text4.Text

adoPrimaryRS.Update

Text1.Enabled = False

Text2.Enabled = False

Text3.Enabled = False

Text4.Enabled = False

End If

2)“添加”按钮控件:click 事件是将按钮名改成“保存”,增加了系统的交互性。同时使文本框变

得可编辑。 “保存” 按钮控件的click 事件是将按钮名改成“添加”,此时使文本框变得不可编辑,同时用文本框的记录添加到数据库末尾。添加完成后,网格容器控件中的数据自动更新。它的实现语句是:

If Command5.Caption = "添加" Then

Command5.SetFocus

Command5.Caption = "保存"

Text1.Enabled = True

Text2.Enabled = True

Text3.Enabled = True

Text4.Enabled = True

Text1.SetFocus

Text1.Text = ""

Text2.Text = ""

Text3.Text = ""

Text4.Text = ""

adoPrimaryRS.AddNew

Else

adoPrimaryRS.Fields("文件号") = Text1.Text

adoPrimaryRS.Fields("文件名") = Text2.Text

adoPrimaryRS.Fields("作者") = Text3.Text

adoPrimaryRS.Fields("内容摘要") = Text4.Text

adoPrimaryRS.Fields("入库日期") = Date

adoPrimaryRS.Fields("状态") = "否"

adoPrimaryRS.Update

Command5.Caption = "添加"

Text1.Enabled = False

Text2.Enabled = False

Text3.Enabled = False

Text4.Enabled = False

End If

3.4 组卷窗体的实现

1) 运行时的窗体:

2)控件和事件

a)treeview 控件:nodeclick 事件是将treeview 控件选中的节点值传给文本框,得到卷号和卷名,将此作为网格容器控件中的数据源的查询条件。并将查询记录集作为网格容器控件中的数据源。

实现的语句如下:

Dim db As Connection

Set db = New Connection

db.CursorLocation = adUseClient

db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=dagl.mdb;"

Set adoPrimaryRS = New Recordset

Text4.Text = Left$(Right$(Node.Text, 3), 2)

Text1.Text = Text4.Text

Text2.Text = Left$(Node.Text, Len(Node.Text) - 4)

If Text4.Text "00" Then

Set adoPrimaryRS = New Recordset

adoPrimaryRS.Open "select 卷号, 卷名, 文件号, 文件名, 作者, 入库日期, 内容摘要, 档案柜号, 入卷日期, 组卷人, 状态 from file where 卷号 like '%" & Text4.Text & "%'", db, adOpenStatic, adLockOptimistic

Else

Text1.Text = "00"

Text2.Text = ""

End If

Text6.Enabled = True

Text6.SetFocus

Command4.Enabled = True

Set DataGrid1.DataSource = adoPrimaryRS

b )“查询”按钮控件:click 事件是根据当前窗体中的组合框控件和文本框控件的内容,作为查询的条件。这个查询是本系统最重要的一个功能。它的实现关键功能语句与说明如下:

Dim db As Connection

Set db = New Connection

db.CursorLocation = adUseClient

db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=dagl.mdb;"

Set adoPrimaryRS = New Recordset

a = Combo1.Text

b = Text7.Text

adoPrimaryRS.Open "select 卷号, 卷名, 文件号, 文件名, 作者, 入库日期, 内容摘要, 档案柜号, 入卷日期, 组卷人, 状态 from file where " & a & " like '%" & b & "%'", db, adOpenStatic, adLockOptimistic Set DataGrid1.DataSource = adoPrimaryRS

c) 导出按钮控件的click 事件是将当前网格容器控件中的查询结果导出到EXCEL 表以实现报表打印。导出的主要语句如下:

For i = 0 To adoPrimaryRS.RecordCount - 1

For j = 0 To adoPrimaryRS.Fields.Count - 1

DataGrid1.Row = i

DataGrid1.Col = j

xlsheet.Cells(i + 2, j + 1) = DataGrid1.Text

Next j

Next i

Set xlapp = Nothing

Set xlbook = Nothing

利用双重循环控制导出的位置。导出的界面如下:

说明:上面是一个对卷号为03的卷宗实现查询的结果导出到EXCEL 的结果。

为了实现组卷,还需要用到文档资料和档案柜资料的2个窗体,它们分别是在添加文档到卷宗来的时候,有2个文本号选择和档案柜号选择按钮激发的事件结果。这二个窗体运行的界面如下:

说明:选择某个档案柜号,然后点击确定,几个触发它的click 事件,将当前的档案号添加到组卷窗体的档案号中,click 事件的语句是:Form5.Text5.Text = DataGrid1.Text

文件资料窗体运行界面:

控件有:确定和关闭按钮二个控件。该窗体装载是load 事件自动实现对文件数据库中的状态是“否”的文件搜索到记录集中,并作为网格容器控件的数据源。网格控件的click 事件是将选中的记录添加到组卷窗体中的相应文本框中。作为组卷的数据信息。load 事件的代码如下:

Set db = New Connection

db.CursorLocation = adUseClient

db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=dagl.mdb;"

Set adoPrimaryRS = New Recordset

adoPrimaryRS.Open "select 文件号, 文件名, 状态 from file where 状态='否' ", db, adOpenStatic, adLockOptimistic

Set DataGrid1.DataSource = adoPrimaryRS

3.5系统菜单的实现

设计一个菜单系统,一般要经过几个步骤:菜单系统的规划,建立菜单与子菜单,把任务分配到菜单系统中,生成菜单程序,测试和运行菜单系统等,VB6.0是通过设计窗体来完成菜单的设计界面的,本系统设计的菜单运行如下:

各个菜单项的click 事件代码如下:

Private Sub exit_Click()

End

End Sub

Private Sub file_Click()

Form2.Show

End Sub

Private Sub Form_Load()

Left = (Screen.Width - Width) \ 2

Top = (Screen.Height - Height) \ 2

End Sub

Private Sub jiangui_Click()

Form4.Show

End Sub

Private Sub setup_Click()

Form3.Show

End Sub

Private Sub zhujuan_Click()

Form5.Show

End Sub

其中的Left = (Screen.Width - Width) \ 2

Top = (Screen.Height - Height) \ 2是控制窗体在屏幕中的位置居中。

总 结

经过多日来的努力《文档管理系统》终于完成了。回顾这次毕业设计的过程,我觉得收获很大,现借撰写论文总结的机会,谈一谈我的体会。

通过这次毕业设计,我掌握了一种新的数据库系统开发工具Visual Basic6.0。我对于它具有的可视化的编程环境和连接数据库的便捷性用感触颇深,Visual Basic6.0这些数据库的连接提供了多种方法。比如DATA 控件对初学着就非常容易掌握,当然利用语句对数据库的连接就可以实现对数据库的高级应用。Visual Basic6.0这种面向对象的数据库开发工具提供了窗体这种户非常友好的交互方式。利用设计好的窗体据库的记录进行操作,不但使用户更清楚记录的具体变更情况,也使开发人员的工作轻松了许多。

同时,在这次毕业设计过程中,我始终遵循软件工程的思想,这使我的工作进度明显加快,也使我少走了不少弯路。软件工程的思想,指导我一步一步从系统分析,到系统设计,再到系统实现,让我对整个系统的开发过程有了明显的全局观念,也合理地安排了整个设计的时间。

以上是我在本次毕业设计中的体会,也许认识到的问题还很肤浅,这也正是我今后要努力提高的。

致 谢

在本次毕业设计的过程中,我的指导教师给了我很大的帮助。不仅使我在规定的时间内完成了系统的设计,同时还使我学到了很多有益的经验。在此,我谨向他表示最衷心的感谢。

同时,学校给了我这次毕业设计的机会,使我得到了很好的锻炼,在此,我也向学校的各位老师表示最诚挚的感谢。

参考文献

1. 陈明 Visual Basic程序设计 中央广播电视大学出版社 2000年

2. 何旭洪等 Visual Basic6.0数据库系统开发实例导航 人民邮电出版社 2002年


相关文章

  • 三峡大学人才培养方案
  • 电气信息类 一.学科门类:工学 专业名称.专业代码: 电气工程及其自动化 080601 自动化 080602 电子信息工程 080603 通信工程 080604 授予学位:工学学士 标准学制:4年 在校修业年限:3-8年 二.培养目标 1. ...查看


  • 本专业是计算机硬件与软件相结合
  • 本专业是计算机硬件与软件相结合.面向系统.侧重应用的宽口径专业.通过基础教学与专业训练,培养基础知识扎实.知识面宽.工程实践能力强,具有开拓创新意识,在计算机科学与技术领域从事科学研究.教育.开发和应用的高级人才. 本专业开设的主要课程有: ...查看


  • 西安工程大学本科专业情况简介
  • 西安工程大学本科专业情况简介 纺织工程专业 专业概况:本专业是我校特色专业之一,国家级特色专业建设点.省级特色专业建设点.省级名牌专业.该专业涵盖了纤维材料.纺织品设计.纺织品加工设备.纺织生产质量控制.纺织品经营与贸易.计算机应用等多方面 ...查看


  • 面向应用型人才培养的网络工程专业课程体系探索与实践
  • 文章编号:1672-5913(2009)19-0134-06 面向应用型人才培养的网络工程专业课程体系探索与实践 郭广军1,羊四清1,戴经国1,龚德良2 (1.湖南人文科技学院 计算机科学技术系,湖南 娄底 417000:2.湘南学院 计算 ...查看


  • 山东自考科目一览
  • 一.商务英语(本科) 专业代码050218 主考院校:山东财政学院.曲阜师范大学 本专业共设置12门课程和毕业论文. 1.中国近现代史纲要(2学分) 2.马克思主义基本原理概论(4学分) 3.日语(6学分) 4.高级英语(12学分) 5.英 ...查看


  • 计算机专业解析
  • 计算机专业就业分析与比较 网络工程12E 学号: 摘要:随着经济的发展和金融危机的影响,就业形势严峻,更多本科毕业生 加入了考研的行列,随着IT 产业的发展,对于高级人才的需求也日益加大,使得报考这一专业的研究生竞争日益激烈.2007年计算 ...查看


  • 计算机平面设计专业教学计划
  • 山东省计算机平面设计专业教学指导方案 教学计划 一.专业名称 计算机平面设计 二.专业代码 090300 三.招生对象与学制 (一)招生对象 初中毕业生或同等及以上学历者,热爱艺术计,无色盲.色弱. (二)学制三年 四.培养目标 本专业主要 ...查看


  • 2015年温州市专业资格审查办法
  • 附件2 2015年温州市各级机关考试录用公务员 专业资格审查办法 2015年温州市考试录用公务员招考专业(职位)报名资格审查的原则是,对专业技术性强的专业(职位)按照报考人员所学专业对口掌握,综合管理性的专业(职位)适当从宽,相近相关专业可 ...查看


  • 纺织工程系
  • 纺织工程系 纺织工程 主要课程:高等数学.大学英语.大学物理.计算机应用基础.机械设计基础.电工电子.纺织材料学.纺纱学.织造学.针织学.染整工艺学.非织造技术:纺纱工艺与质量控制.织造工艺与质量控制.纺织CAD.织物组织与结构.纺织厂设计 ...查看


  • 计算机科学与技术专业 主要课程
  • 计算机科学与技术专业 03023001 高等数学 Higher Mathematics [192-11-1.2] 内容提要:作为本专业的重要基础课程,内容以微积分.中值定理.不定积分.定积分及其应用,多元 函数微分法及其应用.重积分.曲线积 ...查看


热门内容