企业合同管理系统的开发设计摘要:长期以来,由于在合同管理中实行手工作业,合同审批流程不明确,存在各部门之间合同流转时间长而且特别容易出错等问题。
合同管理系统就是针对当前的合同管理业务特点所定制的一套管理系统,该套系统本着进一步完善企业内部合同管理制度,规范合同管理机制的目的,更加及时、准确、全面地反映合同信息,辅助企业管理决策,从而实现该企业合同管理智能化,降低管理成本,提高内部管理水准,为企业决策层及时了解合同管理业务层的工作情况提供第一手资料。
该系统采用了Jbuilder2005结合Access2000的开发环境,应用Jbuilder2005提供的数据库控件和Swing控件,比如Swing包的JTree、JTable、JSplitPane、JTabbedPane,dbSwing包的JdbTable、JdbComboBox、TableScrollPane、JdbNavToolBar,DataExpress包的Database、QueryDataSet,sql包的Connection、Statement、ResultSet等等,完成了系统管理、客户管理、合同管理和系统帮助这四个模块的功能。
关键字:合同管理,Jbuilder,Access,SQL目录第一章引言 (1)第二章合同管理系统需求分析 (2)2.1.用户概述 (2)2.2.现有业务流程及分析 (2)2.3.效益分析 (3)第三章.合同管理系统概要设计 (5)3.1.系统开发目标 (5)3.2.系统开发环境 (5)3.3.系统功能分析 (6)3.4.系统模块设计 (6)3.5.数据库的设计 (7)第四章合同管理系统的详细设计及实现........................................ . (10)4.1.用户管理 (10)4.2.群组管理 (15)4.3.权限配置 (16)4.4.系统日志 (20)4.5.查询 (21)4.6.动态菜单 (25)4.7.排序 (27)4.8.可视的日历 (28)4.9.合同信息 (29)第五章结束语 (32)致谢 (33)主要参考文献 (34)附录 (35)引言合同,又称契约,它是当事人双方或数方设立、变更和中止相互权利和义务关系的协议。
合同制度在我国有着悠久的历史,合同作为一种企业之间横向联系的工具,是现代生产和商品交换高度发展的结果。
合同管理即合同行为的监督管理,是规范、制约、完善合同行为的一种活动,是国家法律赋予管理主体的一种职能,是企业在经济活动中保证企业利益的重要环节。
改革开放以来,我国的经济建设取得了长足的发展,然而长期以来,由于在合同管理中实行手工作业,合同审批流程不明确,造成合同管理过程中业务处理效率低,浪费了大量的人力、物力,各部门之间合同流转时间长而且特别容易出错等问题。
为了解决这一问题,需要开发一套功能完整的智能化的合同管理系统软件,用于各行各业的大中小型企业的合同制定、评审、实施动态控制等方面的具体应用需求,并以先进成熟的计算机网络和通信技术为手段,覆盖整个企业的各部门,实现该企业合同管理智能化,提高办公效率及人员的利用率成为促进企业迅速发展的一支很好的催化剂。
合同管理系统需求分析2.1用户概述“禹洲集团建筑工程公司”包括好几个部门,下属有人事部、财务部、质量部等部门。
现在除了个别的部门实现微机辅助管理外,其他各部门尚未实现微机管理,同时已实现微机管理的部门也没有很好的进行合同资源共享。
而且已经实现微机管理的部门因工作升级、部门工作的变动和重新分工,原有系统已经不能满足当前工作的需要。
我们提出基于禹洲集团建筑工程公司扩大业务的整体考虑,规划实施"禹洲集团建筑工程公司合同管理系统",此套合同管理系统的最终用户是禹洲集团建筑工程公司的所有员工和董事长,要充分满足当前用户需求,按照合同管理思想规范禹洲集团建筑工程公司合同的签定,变更,索赔,保险,审核等管理,减少了人为主观因素的干预,通过系统的实施使禹洲集团建筑工程公司合同管理达到智能化,为企业节省许多的管理费用,为禹洲集团建筑工程公司的发展战略的实现奠定基础。
2.2 现有业务分析合同管理系统的主要功能有系统管理、客户管理、合同管理和系统帮助。
其中合同管理的流程如下图1所示:图1 合同管理业务流程图流程说明:各部门签定好合同后,合同管理员将合同信息输入系统,交由合同管理系统统一管理。
如果在合同履行过程中碰到不可克服的困难而需要变更合同时,就上交一份合同变更申请,由公司主管领导进行审核,若审核通过,则开始进行合同变更,若审核不通过,则退回申请。
如果在合同履行过程中对方未履行合同所规定的义务,就上交一份合同索赔申请,由公司主管领导进行审核,若审核通过,则开始进行合同索赔,若审核不通过,则退回申请。
如果合同到期,则删除该合同。
2.3 效益分析1.规范了合同管理的业务流程,增强了合同业务处理过程的透明度系统通过设置用户权限,定义了不同组别的用户在系统中的功能,从而规范了合同管理过程中各个岗位的职能,避免了业务处理时责任不明确的现象,使得每个岗位(即用户)能够各司其责,杜绝了人为干预的现象。
系统中工作流的定义,使得合同管理的业务流程更加合理、科学。
去掉了原有手工合同管理流程中不必要的审批环节,增加了审批过程中不可缺少的业务处理环节。
2.对合同的执行情况做到了动态控制系统存储了与合同相关的所有数据,通过各种提醒等功能的设置从合同的签定开始,系统便对合同执行了"监控",可以对合同的执行情况进行具有实用价值的监督。
例如:随时查看已生效和即将结束的合同,提醒用户下一步的操作,并可以检查合同执行过程中是否有因出现了某些问题而无法完成的合同,既而采取必要的解决办法,最大限度的减少企业的损失。
3.提高了工作效率,降低了管理成本通过系统的实施,业务人员可方便地进行业务操作、资料查阅、相关业务进展查询、接收业务指令等各种日常业务处理;领导人员可方便地进行各种业务查询、事务审批等。
使各级人员摆脱了原有手工操作的束缚,大大地提高了工作效率,使得将更多的时间和精力钻研业务成为可能。
总之系统实现了合同管理的信息化,从而减少了公司的人力、物力,进一步降低了公司的管理成本。
合同管理系统概要设计3.1.系统开发目标合同管理系统可用于支持企业完成合同管理工作,有如下3个方面的目标:●支持企业实现规范化和智能化的合同管理。
●支持企业高效率完成合同管理的日常业务,包括合同签定后合同信息的建立,合同变更,合同索赔,合同审核等。
●支持企业进行合同管理及其相关方面的科学决策,如企业领导根据合同的变更信息或解除信息来决定是否变更或解除合同,以便更好地解决合同的纠纷。
3.2 系统开发环境●开发工具的选择Borland 公司的Jbuilder2005是运用功能强大的JAVA程序设计语言的应用程序开发工具。
它提供了很多可视的和不可视的控件,还提供可视化的编程环境,开发人员可以直接运用这些控件在可视化的界面进行用户界面布局,大大地减少了开发人员的工作量。
这种开发工具对网络安全和其它网络方面的应用也有很大的支持,用这种工具开发出来的应用程序可运行多种操作平台。
所以相对于其他的开发工具,Jbuilder2005是一个较好的选择。
●关系数据库的实现微软公司提供的Access2000 就是一种关系数据库开发工具,它用于开发中小型关系数据库,开发人员可以在它的可视化界面方便地创建数据库,表,视图等等,简单易用,不用花费开发人员的很多时间,Access2000的优点还在于它能使用数据表示图或自定义窗体收集信息。
数据表示图提供了一种类似于Excel 的电子表格,可以使数据库一目了然。
另外,Access 允许输出数据库中的信息。
Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。
经分析,该合同管理系统使用了一个包括十几张表的数据库,属于小型的关系数据库,而且信息维护也不怎么复杂,所以对该系统来说,Access2000是一个较好的数据库开发工具。
●Jbuilder2005和Access2000的结合Jbuider2005提供了不同的程序接口用于连接数据库和执行SQL语句。
利用它提供的JDBC API(JAV A数据库互连应用程序接口)接口,可以执行通常的SQL语句(用Statement 类),动态SQL语句(用PreparedStatement 类),以及带IN和OUT参数的存储过程。
其中ResultSet类和QueryDataSet类用于保存系统从数据库表中检索出来的记录集,这两个类都可以建立动态的或静态的记录集合,利用这两个类可以很方便地将检索结果显示于用户界面,也可以新增或修改数据库表里的记录。
3.3. 系统功能分析合同管理涉及合同的多个方面,如工程信息、合同信息、合同变更信息、合同索赔信息等等。
根据这些信息完成合同管理的日常业务。
本系统需要完成的功能主要有:●合同信息和具体内容的建立。
●合同变更、索赔等方面信息的输入。
●工程信息和客户信息的输入与查询。
●对各种信息的查询、添加、删除和编辑。
●系统管理员对不同组别的用户权限的配置。
●系统日志的建立。
3.4. 系统模块设计在系统功能分析的基础上,得到如图2所示的功能模块图。
图2 功能模块图3. 5. 数据库设计(库表设计)表12. HTGL_HTSPXX(合同索赔信息表)合同管理系统的详细设计及实现4.1用户管理图3 用户管理4.1.1 组织机构与用户的显示4.1.1.1用户信息显示的算法在左边的树型窗口中(JTree)显示组织机构以及用户,有多层结构,第一层显示数据是组织机构名称(ZZJGMC)检索数据:组织机构代码(ZZJGDM)数据来源:XTGL_ZZJG检索条件:length(ZZJGDM)=2 (说明每两位代表一个层次)●第二层显示数据是组织机构名称(ZZJGMC)检索数据:组织机构代码(ZZJGDM)数据来源:XTGL_ZZJG检索条件:length(ZZJGDM)=4 and substr(ZZJGDM,0,2)=第一层检索数据(说明每两位代表一个层次)●第三层显示数据是组织机构名称(ZZJGMC)检索数据:组织机构代码(ZZJGDM)数据来源:XTGL_ZZJG检索条件:length(ZZJGDM)=6 and substr(ZZJGDM,0,4)=第二层检索数据(说明每两位代表一个层次)依此类推。
●用户作为部门结点的子结点检索数据:用户编号(YHBH),部门编号(BMBH)数据来源:XTGL_YHXX检索条件:length(YHBH)=length(父结点部门ZZJGDM )+2 andBMBH =父结点部门的ZZJGDM (说明每两位代表一个层次)4.1.1.2 树结构的建立●树的结点在点击树结点时为了在JdbTable中显示对应的用户信息,需要在该结点保存所对应的部门编号、部门名称或用户编号、用户名称,以便数据检索时可以利用这些保存的信息进行检索。