资源描述
摘 要
在办公自动化蓬勃发展的背景下,本文结合中小型企业的需求分析,采用C/S设计模式,设计了内部行文管理系统。内部行文管理系统是采用PowerBuider9.配合SQL server 2000开发的一个数据库管理系统。本文逐一介绍开发本系统的步骤:系统分析、系统设计、系统实现、系统维护。在系统分析中先后用数据流图、系统的功能结构图分析了系统所需的各种数据。在系统的设计中,详细的展现了系统的各个功能模块,所需的数据库表及表字段,菜单的设计等。在系统的实现中,给出了实现表单中相应的功能控件的事件及代码,以及菜单实现的方法。文章的最后则给出了本系统的主要功能源代码。
本系统具有数据输入,数据存储,信息查询等功能,系统的人机对话界面友好。系统功能全面,用户操作方便是本设计的一个特色。
关键词: 行文,面向对象,内部行文,PowerBuider9.0,SQL server 2000
Abstract
In the context of development in the Office automation boom, using B / S mode, base on the needs analysis of Small or Medium Enterprises. In this article, this Administrative system of the document is designed for Small or Medium firms. It adopts a data base management system which is developed by PowerBuider9.0 and SQL server 200. This article recommends developing the step of this system one by one: analysis system, design system, realizing system, maintaining system. Successively with dataflow picture, and 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, and 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 is used to realize the menu. 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: Document, Face the Target, Document from Within, PowerBuider9.0, SQL Server 2000
目 录
摘 要 I
Abstract II
第1章 引言 1
1.1 本课题研究的背景及意义 1
1.2 发展的历史及趋势 2
1.3 选题的目的和依据 2
第2章 系统需求分析 3
2.1系统需求 3
2.2开发设计思想 3
2.3 系统总体功能分析 3
2.4 系统各个功能模块分析 4
2.4.1 登录模块 4
2.4.2 主页面模块 5
2.4.3 行文撰写模块 5
2.4.4 行文修改模块 5
2.4.5 行文接收模块 6
2.4.6 行文查询模块 6
2.5 系统数据流程图 6
第3章 数据库设计 8
3.1 数据库概念结构设计 8
3.2 数据库逻辑结构设计 10
第4章 系统实现 13
4.1 系统开发环境 13
4.1.1 PowerBuilder概述 13
4.1.2 SQL Server 2000 概述 14
4.2 界面设计 15
4.2.1 登录模块的实现 15
4.2.2 行文撰写功能的实现(即拟文) 19
4.2.3 行文修改模块的实现 22
4.2.3 行文接收模块的实现 24
2.3.4 行文查询模块的实现 26
第5章 性能测试与分析 33
5.1 测试系统管理模块 33
5.2 测试行文撰写(即拟文)模块 33
5.3 测试行文修改模块 33
5.4 测试行文接收模块 33
5.5 测试行文查询模块 33
5.6 测试分析 34
第6章 结束语 35
致 谢 36
参 考 文 献 37
-IV-
第1章 引言
随着管理工作计算机化,内部行文管理系统已经采用计算机进行管理,目前有些企业的内部行文管理还采用传统的人工方式。使用传统人工方式的内部行文管理系统存在着许多缺点,如:效率低、易出错、保密性差、查找困难,浪费纸张。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已逐步为人们所认识, 利用计算机检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等优点可以解决传统人工方式内部行文管理系统的缺陷。
1.1 本课题研究的背景及意义
办公自动化系统是20世纪70年代初期随着微型计算机技术和计算机局域网络技术的发展而兴起的一门信息处理系统的分支,随着Internet技术在各个领域的广泛应用,它在办公事务方面开发出了很多文字处理,办公日常管理,邮件系统,网络办公事务处理等软件包。而内部行文管理也是在这个时候被开发出来的,它和办公日常管理,邮件系统,网络办公事务处理等是一样的,都是办公事务方面的软件包[1]。
所谓企业内部行文,是指企业内部诸如通知,决定,意见等类文件的拟稿,审核,批准签发的全部过程。它是企业行政管理的组成部分和重要手段之一[2]。企业内部行文虽不能与国家机关,政府部门的红头文件相提并论,但绝不可因此而降低要求,如果企业的内部行文不能及时准确的反应企业当前的方针,政策和问题,将直接影响企业内部的业务水平[3]。特别是在竞争越来越激烈的今天,企业发展充满变数,随时都可能被竞争对手超越甚至被市场淘汰,尤其是对于大型企业,企业内部结构复杂,条文众多,横向和纵向间都需要沟通信息,发送行文。如果没有一套可靠的企业内部行文管理系统,单凭文件发放,不仅效率低下,而且浪费纸张。所以众多的企业迫切的需要一个内部行文管理系统去帮助企业管理者对企业内部行文的编写、审核、发送、领导审批、办理结果等过程进行有效跟踪和控制,并对需要永久性记录的文件实现归档管理等,实现内部行文管理的电子化、自动化、提高部门之间的办公效率,减少纸张浪费和时间浪费,以达到快速、可靠的信息交互目的[4]。
1.2 发展的历史及趋势
行文管理是在办公自动化不断发展的基础上被开发出来的。在我国,办公自动化从80年代初提出,到现在已经有了近二十年的发展历史。在此期间大概经历了三个发展阶段,在第一个阶段主要标志是在办公过程普遍使用办公设备,如:打字机,传真机,复印机等;第二阶段主要标志是办公过程中普遍使用电脑,打印机及相关辅助设备,进行文字处理,表格处理,文件排版和单击人事和财务管理等;第三阶段的主要标志是办公过程中网络技术的使用,这一阶段在办公过程通过使用网络,实现了文件共享,网络打印共享,网络数据库管理等。到了90年代中期,互联网技术在我国迅速发展和普及,引入了Intranet,Extranet,Internet,政府上网工程,企业上网工程,电子政务,政府内网,数字化办公等一系列新概念[5]。在办公事务方面开发出了很多文字处理,办公日常管理,邮件系统,网络办公事务处理等软件包。而行文管理也是在这个时候被开发出来的,它和办公日常管理,邮件系统,网络办公事务处理等是一样的,都是办公事务方面的软件包[6]。随着计算机网络和通信技术发展,现代办公技术将朝着高性能,多功能,复合化,系统化和易使用等方向发展,行文管理的发展趋势也将是数字化,智能化,信息一体化和综合化。目前,企业行文管理已将计算机技术、通信技术、科学管理思想和行为科学有机结合在一起,应用于传统的数据处理技术难于处理的数据量庞大的,有效地提高了办公质量和办公效率[7]。
1.3 选题的目的和依据
利用信息技术的发展来改变企业的运作方式和管理模式,提高企业的管理效益和生产效益,从而提高企业经济效益,增强企业竞争力,是企业迎接知识经济时代挑战并能够立于不败之地的必由之路,也是企业发展的趋势[8]。在这种趋势下,企业办公的方式与观念也在悄然发生变化,传统的有纸办公正向着现代的办公自动化转变。
实施办公自动化,就是将以上的事件和环节通过计算机网络,加以协调,进行信息化的改造;使各种文件按本单位的规则在网络中自动运行,并最终实现无纸化办公。办公自动化系统功能在覆盖办公的所有过程和内容,操作上要简单方便,结构上要强调网络信息交流和共享。利用信息技术的发展来改变企业的运作方式和管理模式,提高企业的管理效益[9]。
第2章 系统需求分析
2.1系统需求
内部行文管理模块主要目标是实现对企业内部行文的编写,审核,发送,领导审核,办理结果等全过程的有效跟踪和控制,并对需要永久性记录的文件实现归档管理等,实现内部行文管理的电子化,自动化,提高部门之间的办公效率,减少纸张浪费和时间浪费,以达到快速,可靠的信息交互目的[10]。
2.2开发设计思想
尽量采用公司现有的软硬件环境,及先进的管理系统开发方案,从而达到充分利用公司现有资源,提高系统开发水平和应用效果的目的。
系统应该符合公司内部收文和发文的管理规定,满足公司日常工作需要,并达到操作过程中的直观,方便,实用,安全等要求。
系统采用先进的二层体系结构,Client(客户端)负责提供表达逻辑,显示用户界面信息,基本操作,Server(服务器端)负责实现数据服务。
系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员的补充,维护。
系统应该为不同权限的级别的用户提供不同的操作权限和保密措施,以保证系统和用户数据的安全性和完整性。
系统应该具备数据库维护功能,及时根据用户需求进行数据的添加,删除,修改,备份等操作。
2.3 系统总体功能分析
企业内部行文管理系统需要完成功能主要有以下几点:
l 员工基本信息的输入、由后台的数据库管理员完成输入,包括员工号、姓名、部门、性别、电话号码等。
l 行文管理信息系统使用人员的用户名和密码信息,每个部门有一位行文工程师,具体负责行文管理信息系统的使用,该工程师的用户和初始密码由后台的数据库管理预先设定。
l 文稿的撰写,包括行文号、拟稿人、行文标题、时间、正文等信息的输入,输入后选择要发送的部门(行文工程师)。
l 所保存的未发送文稿的修改、发送。
l 对方部门、行文工程师所发布文的接收、查看一级评论回复。
l 行文查询,可以查询本部门所发送的行文、未发送的行文以及别的部门所发送过来的行文。
l 行文管理系统的使用帮助。
在系统功能分析的基础上,企业内部行文管理系统的总体功能模块图如图2-1所示。
内部行文管理系统
帮助模块
行文查询模块
行文接收模块
行文修改模块
系统模块
行文撰写模块
用户管理
权限管理
反馈行文查询
已发行文查询
未发行文查询
图2-1 总体功能模块图
2.4 系统各个功能模块分析
2.4.1 登录模块
此模块实现进入系统管理前的验证操作,只有正确用户名和密码才能进入系统并进行各种操作。其结构如图2-2所示。
进入系统界面
用户登入模块
图2-2 登录模块结构图
2.4.2 主页面模块
主页面模块
系统管理
行文拟文管理
行文修改管理
行文查询管理
行文接收管理
主页面是用户通过身份验证后进入的页面,也是操作企业内部行文管理系统各功能的平台。主页面模块的结构如图2-3所示。
图2-3 主页面模块结构图
2.4.3 行文撰写模块
已发行文处理
此模块实现对行文的撰写,包括行文标题、内容、日期等基本资料。模块结构如图2-4所示。
行文撰写模块
未发行文管理
图2-4 文撰写模块结构图
2.4.4 行文修改模块
此模块实现对行文的修改,对包括行文标题,内容等资料进行修改。模块结构如图2-5所示
未发行文查看
行文修改模块
未发行文修改
未发行文处理
图2-5 行文修改模块结构图
2.4.5 行文接收模块
此模块主要实现对已接收的行文的查看,并在查看后及时的对接收的行文进行反馈。模块结构如图2-6所示
行文接收查看
行文接收模块
行文接收处理
图2-6 行文接收模块结构图
2.4.6 行文查询模块
未发行文查询
此模块主要实现对未发行文,已发行文和反馈行文进行查询。模块结构如图2-7所示
已发行文查询
行文查询模块
反馈行文查询
图2-7 行文查询模块结构图
2.5 系统数据流程图
在仔细调查企业内部行文管理过程的基础上,得到本系统所处理的数据流程,如图2-8所示:
发送接收行文库
未发送行文库
行文撰写
反馈
发送
行文修改
图2-8 数据流程图
第3章 数据库设计
数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的相应速度,简化基于此数据库的应用程序的实现等[11]。
在数据库系统开发设计的时候应该尽量考虑全面,尤其应该仔细考虑用户的各种需求,避免浪费不必要的人力和物力。
针对本系统,通过对企业内部行文管理的内容和数据流程分析,设计的数据项和数据结构如下:
1、员工基本信息的输入,由后台的数据库管理员完成输入,包括员工号、姓名、部门、性别、电话号码等。
2、用户口令信息:包括的数据项有用户名和口令。
3、企业内部信息:包括的数据项有部门代号,部门名称,部门经理,部门副经理等。
4、未发内部行文信息:包括的数据项有文件号,撰写人,标题,正文,日期等。
5、内部行文信息:包括的数据项有文件号,撰写人,标题,正文,日期。
6、内部行文处理信息:包括的数据项有文件号,撰写人,接受人,标题,正文,日期审核意见等。
有了上面的数据结构,数据项和数据流程,就能进行下面的数据库设计。
3.1 数据库概念结构设计
这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体以及它们之间的关系,为后面的逻辑结构设计打下基础。
本系统根据上面的设计规划出的实体有:员工实体,部门实体,内部行文实体,行文处理实体,各个实体的属性图及其实体间的关系描述如下:
员工实体E-R图:
员工
员工部门
员工号
性别
姓名
联系方式
图3-1 员工实体属性图
部门实体E-R图
部门信息
部门代号
经理
部门名称
图3-2 部门实体属性图
行文信息实体E-R图
行文信息
发送信息
作者、日期
内部信息
编号
图3-3 行文信息实体属性图
行文处理实体E-R图
行文处理
编号
内部信息
作者、日期
接收反馈
图3-4 行文处理实体属性图
实体和实体之间的关系E-R图所图所示:
图3-5 实体之间的E-R图
3.2 数据库逻辑结构设计
在上面实体以及实体之间的关系基础上,形成数据库中的表格以及各个表格之间的关系。
内部行文管理系统数据库中各个表格的设计结果如下面的几个表格所示,每个表格表示在数据库中的一个表。
表3-1为用户口令表。
列名
数据类型
可否为空
说明
NBXW_USER
VARCHAR2(20)
NOT NULL
用户名(主键)
NBXW_PSWD
VARCHAR2(10)
NOT NULL
口令
表3-1 用户口令表USER_PSWD
表3-2 为未发内部行文信息表。
表3-2 未发内部行文信息表WFXW
列名
数据类型
可否为空
说明
XW_ID
VARCHAR2(35)
NOT NULL
行文编号(主键)
XW_NAME
VARCHAR2(30)
NULL
行文标题
XW_AUTHER
VARCHAR2(20)
NULL
行文作者
XW_CONTEXT
VARCHAR2(100)
NULL
行文正文
XW_DATE
VARCHAR2(10)
NULL
日期
表3-3为内部行文信息表XW。
表3-3 内部行文信息表XW
列名
数据类型
可否为空
说明
XW_ID
VARCHAR2(35)
NOT NULL
行文编号(主键)
XW_NAME
VARCHAR2(30)
NULL
行文标题
XW_AUTHER
VARCHAR2(20)
NULL
行文作者
XW_CONTEXT
VARCHAR2(100)
NULL
行文正文
XW_DATE
VARCHAR2(10)
NULL
日期
表3-4为内部行文处理信息表XWCL。
表3-4内部行文处理信息表XWCL
列名
数据类型
可否为空
说明
XW_ID
VARCHAR2(20)
NOT NULL
行文编号(主键)
XW_NAME
VARCHAR2(20)
NULL
行文标题
XW_AUTHER
VARCHAR2(10)
NULL
行文作者
XW_RECEIVER
VARCHAR2(10)
NULL
行文接收者
XW_CONTEXT
VARCHAR2(50)
NULL
行文正文
XW_DATE
VARCHAR2(10)
NULL
日期
XW_REMARK
VARCHAR2(50)
NULL
意见
表3-5为 DEPT部门信息表。
表3-5 部门信息表DEPT
列名
数据类型
可否为空
说明
DEPT_ID
VARCHAR2(10)
NOT NULL
部门代号(主键)
DEPT_NAME
VARCHAR2(20)
NULL
部门名称
DEPT_MANAGER
VARCHAR2(10)
NULL
部门经理代号(外键),指向员工基本情况表EMP_NO
DEPT_VICEMANAGER
VARCHAR2(10)
NULL
部门副经理代号(外键),指向员工基本情况表的EMP_NO
表3-6为PERSONNEL员工基本状况表。
表3-6 部门信息表PERSONNEL
列名
数据类型
可否为空
说明
EMP_NO
VARCHAR2(10)
NOT NULL
员工号(主键)
EMP_NAME
VARCHAR2(20)
NULL
员工姓名
DEPT_ID
VARCHAR2(10)
NULL
部门号
EMP_GENDER
VARCHAR2(2)
NULL
性别
EMP_TELENO
NUMBER(10)
NULL
联系电话
EMP_EMAIL
VARCHAR2(20)
NULL
联系EMAIL地址
第4章 系统实现
4.1 系统开发环境
本系统是在PowerBuilder开发环境下结合SQL Server 2000设计一个企业内部行文管理系统,对企业的内部行文进行有效管理和控制,提高企业的内部的业务水平。
4.1.1 PowerBuilder概述
PowerBuilder是由著名的数据库应用开发工具生产厂商Sybase公司推出的产品,于1991年6月正式投入市场。它最初是按照客户机/服务器体系结构设计,采用面向对象技术、图形化的应用开发环境,是数据库的前端开发工具。PowerBuilder一经投入市场,就以其独特的体系结构,友好的界面,优异的性能受到了广大开发人员的欢迎[12]。
对于选择PowerBuilder 作为开发工具的用户来说,之所以会选择PowerBuilder,是因为PowerBuilder具有以下的六大特点。
1. PowerBuilder提供了对目前流行的大多数关系数据库管理系统的支持。
2. PowerBuilder采用了事件驱动工作方式。
3. PowerBuilder是一种面向对象的开发工具。各种Windows应用程序中常见的窗口,菜单,控件等在PowerBuilder中都是独立的对象。
4. PowerBuilder提供了良好的跨平台性。在PowerBuilder中,利用Windows平台开发的各种对象可以方便地应用到UNIX平台中。
5. PowerBuilder具有自己的编程语言Power Script。这一语言除了提供基本的流程控制语句外,还提供了几百个操作各种对象的函数对诸如DDE,OLE等方面进行支持。
6. PowerBuilder最具有特色的就是提供了数据窗口对象的概念。数据窗口对象也是PowerBuilder中的一种对象类型,与其他对象不同的是数据窗口对象是专门为访问后台数据库服务的。特别要指出的是,PowerBuilder在数据窗口对象中提供了丰富的数据显示方式,可以满足各种不同的需要[13]。
4.1.2 SQL Server 2000 概述
SQL Server是Micrcsoft公司在原来和Sybase公司合作的基础上打包出的一款面向高端的数据库系统。自它推出后,迅速占领了的数据库应用市场。经过不断的更新换代,它已发展到了SQL Server 2000, 它具有高性能、功能强、安全性好、易操作、易维护等优点,定位于Internet背景下,基于Windows 2000的数据库的应用,为用户的Web应用提供了一款完善的数据管理和数据分析解决方案。
SQL Server 2000是SQL Server的最新版本,该版本继承了以往SQL Server各个版本的优点,同时又增加了许多先进的功能,并可运行于从笔记本电脑到大型多处理服务器等多种平台[14]。
对于选择SQL Server 2000 作为后台数据库的用户来说,之所以会选择SQL Server 2000,是因为SQL Server 2000具有以下的七大主要特点。
(1)基于图形的管理工具。SQL Server 2000提供了服务管理器,企业管理器等众多的图形化管理工具,使得在SQL Server 2000中管理数据库变得非常容易。
(2)集中式的管理。可以在一个中心位置的管理控制台上使用企业管理器集中管理众多分布在不同物理位置上的SQL Server数据库。例如,有八台服务器,分布在相距数百里的各个地方,管理员可以在一个中心位置,使用一台计算机来管理这八台服务器。这将大大降低维护多台服务器的费用,因为只需要一名管理员来管理所有服务器。
(3)支持多个不同的开发平台。几乎可以使用现在流行的任何计算机语言,如VB,C,C++,JAVA等,和各种开发平台来开发基于SQL Server 2000的数据库应用程序。对于SQL Server 2000来说,最适合的开发平台应该是已发布的微软产品Visual Studio,其中包括多种工具可供方便,迅速地开发SQL Server 2000数据库应用程序。
(4)多线程体系结构。SQL Server 2000支持多线程,它有一个工作线程池,有1024个线程响应用户的连接请求,使每个连接对应一个线程。理论上最多可以连接1024个用户,实际上由于SQL Server动态分配可用线程,用户连接的数目可超过线程总数。
(5)支持企业级的数据库应用程序。在数据库领域,SQL Server过去常被认为属于小型的,部门级的数据库产品。随着SQL Server 2000的推出,SQL Server从性能,稳定性,安全性,可扩展性等各方面来说,都已经成为名副其实的企业级数据库产品;并且已经在企业级数据库产品市场占据了一定的市场份额,能够支持大型的,企业级的数据库应用程序。
(6)支持数据复制。SQL Server 2000的数据复制是在数据库之间对数据和数据库对象进行复制和分发并进行同步以确保其一致性的一组技术。
(7)支持数据仓库。用户在日常的业务运作过程中往往积累和收集了大量的数据。数据仓库的目的是合并和组织这些数据,以便对其进行分析并用来支持业务决策。SQL Server Analysis Services提供的强大工具,可以用来完成创建,使用和维护数据仓库的任务[15]。
4.2 界面设计
4.2.1 登录模块的实现
登录模块由2个窗口组成,一个是登录窗口,用于用户登录使用,二是修改口令窗口,用于口令的修改。
登录窗口如图4-1所示。
图4-1 登录窗口
该窗口放置了2个静态文本框Static Text控件(用户名,密码),放置在窗口的相应位置来显示文字。放置了2个单行编辑框Single line Edit控件,一个供用户输入登录的用户名(sle_1),另一个供用户输入口令。另外还放置了3个按钮控件(确定,取消,修改口令)。
W_login窗口的Open事件中主要是实现输入用户名和口令的次数的归零和取得屏幕高度并将窗口移动到屏幕的中间的操作。程序代码示例如下:
//将全局变量-输入用户名和口令的次数赋初值0
G_INPUT_TIME=0
//取得屏幕的高度和宽度
GetEnvironment(l_env)
l_ScrWidth=PixelsToUnits(l_env.ScreenWidth,XpixelsToUnits!)
l_ScrHeight=PixelsToUnits(l_env.ScreenWidth,XpixelsToUnits!)
//移动窗口到屏幕中间
Move((l_scrwidth - this.Width)/2,(l_ScrHeight - this.height)/2)
按钮控件cb_1(确定)的Click事件中主要是实现用户在sle_1和sle_2控件中输入的用户名和口令和数据库中保存的用户名和口令做比较。如果一致,则打开应用程序主窗口,并关闭登录窗口;如果不成功,在3次以内可重新输入,超过3次结束程序。程序代码示例如下:
IF sle_use.text=""THEN
//pop a message box
messagebox("payAttention!","用户名不能为空")
//sle_use get the focus
sle_use.setfocus()
elseif sle_ps.text=""then
//pop a message box
messagebox("payAttention!","密码不能为空")
//sle_ps get the focus
sle_ps.setfocus()
ELSE
G_INPUT_TIME=G_INPUT_TIME+1
G_USER=sle_use.text
G_PWD=sle_ps.text
//取出数据库用户口令表格中对应用户的口令
SELECT USER_PSWD.NBXW_PSWD INTO:CORRECT_PSWD FROM USER_PSWD
WHERE USER_PSWD.NBXW_USER=:G_USER;
//将数据库中保存的口令和用户输入的口令做比较
IF G_PWD=CORRECT_PSWD THEN
//输入正确,打开主窗口
//不正确,在3次以内可重新输入,超过3次结束程序
IF G_INPUT_TIME>3 THEN
MESSAGEBOX("警告","输入用户口令次数太多!")
CLOSE(w_login)
ELSE
MESSAGEBOX("警告","输入用户口令有误,请重新输入")
修改口令窗口如图4-2所示。
图4-2 修改口令窗口
该窗口放置了4个静态文本框Static Text控件,放置在窗口的相应位置来显示文字。放置了4个单行编辑框Single line Edit控件,供用户输入登录的用户名(sle_1),原口令,新口令,以及新口令确认。另外还放置3个按钮控件。
按钮控件确定的Click事件,用于修改用户的口令,首先判断两次输入的新密码是否一样,再判断输入的原密码是正确,,然后进行口令修改,程序代码如下:
if sle_3.text<>sle_4.text then
MESSAGEBOX("警告","两次输入的新口令不一致,请重新输入")
else
SELECT USER_PSWD.NBXW_PSWD INTO:CORRECT_PSWD FROM USER_PSWD
WHERE USER_PSWD.NBXW_USER=:G_nbxw_user;
if G_nbxw_pswd = CORRECT_PSWD then
UPDATE USER_PSWD SET USER_PSWD.NBXW_PSWD=56
WHERE USER_PSWD.NBXW_USER=:G_nbxw_user;
MESSAGEBOX("注意","你的口令已经修改,请记牢")
COMMIT USING SQLCA;
CLOSE(w_changeps)
else
MESSAGEBOX("警告","输入的原用户口令不正确")
如果密码修改成功将出现以下的对话框,提醒用户密码已经修改正确。
图4-3 密码修改成功对话框
输入正确的用户名和口令,按“确定”键后进入程序的主窗口,如图4-4所示,并且可以在此作如下工作。
1、行文的撰写(即拟文)。
2、行文的修改。
3、行文的接收。
4、行文的查询。
图4-4 程序主窗口
4.2.2 行文撰写功能的实现(即拟文)
在程序主窗口中可以看见前面创建好的菜单项显示在窗口的上方。单击“拟文”菜单出现拟文窗口,如图4-5所示。
图4-5 行文撰写窗口
拟文窗口用于撰写行文。该窗口放置了5个静态文本框Static Text控件,放置在窗口的相应位置来显示文字。放置了5个单行编辑框Single line Edit控件,用来输入行文的基本资料,包括行文的标题,内容等。其中文稿号和日期是由系统自动生成的,拟稿人则取当前的用户名。另外还放置3个按钮控件。
在拟文窗口的Open事件中输入如下的程序代码:
//定义时间变量
date t_d
time t_t
string date1
//取得系统时间
t_d = today()
t_t = now()
//自动设置文稿号为用户名+时间
g_xw_id=G_USER+string(Today(),"-yy-mm-dd-hh:mm")+string(now(),":ss")
//自动设置日期为当前的系统时间
date1=string(Today(),"yy-mm-dd")
//设置拟稿人为当前用户
sle_3.text=G_USER
sle_1.text=g_xw_id
sle_5.text=date1
“确定”按钮控件的Click事件用于保存拟文,然后打开发送对象选择窗口,程序代码如下:
insert into XW (XW_ID, XW_NAME, XW_AUTHER, XW_CONTEXT,XW_DATE)
values (:id1, :name1, :author1, :context1,:date2)
using SQLCA;
if SQLCA.sqlcode<>0 then
messagebox("插入记录失败",SQLCA.SQLErrText)
Rollback;
else
Commit;
end if//打开选择发送对象的窗口
open (w_choose)
“暂时保存”按钮控件的Click事件用于保存拟文,但不发送,程序代码如下:
insert into WFXW (XW_ID, XW_NAME, XW_AUTHER, XW_CONTEXT,XW_DATE)
values (:id1, :name1, :author1, :context1,:date2)
using SQLCA;
if SQLCA.sqlcode<>0 then
messagebox("插入记录失败",SQLCA.SQLErrText)
Rollback;
else
Commit;
输入完行文信息后,可以单击“确定”按钮,则出现如图4-6所示的行文发送对象选择窗口。
图4-6 发送对象选择窗口
发送对象选择窗口用于选择行文所要发送的部门(部门行文工程师)。该窗口由一个静态文本框,8个复选按钮以及2个按钮控件组成。选择完要发送的对象,单击“发送”按钮,即可发送文稿。单击“取消”按钮控件,则退出当前操作。
“发送”按钮控件的Click事件用于发送行文,下面以行文发送到市场部的代码为例进行说明,程序代码如下:
//得到要发送的行文信息
SELECT xw_name,xw_auther,xw_context,xw_date
INTO :xw_name1,:xw_auther1,:xw_context1,:xw_date1
FROM xw
WHERE xw_id=:g_xw_id;
//发送给市场部
if cbx_3.checked=true then
xw_receiver1="市场部"
insert into xwcl (xw_id,xw_name,xw_auther,xw_receiver,xw_context,xw_date)
valu
展开阅读全文