合同管理系统范例.docx
《合同管理系统范例.docx》由会员分享,可在线阅读,更多相关《合同管理系统范例.docx(40页珍藏版)》请在冰豆网上搜索。
合同管理系统范例
合同管理
学院
专业
班级
学号
姓名
指导教师
教师职称
年
月
日
摘要
【摘要】
合同是合同当事人之间确定相互权利和义务关系的行为方式,对双方当事人都具有法律约束力,以此确保双方按照合同规定的条款履行各自的权力和义务,保证ERP建设的顺利实现。
合同的确立以书面签字的形式体现,要确保合同有效,双方的签字必须是法人或者委托代理人。
合同内容就是谈判讨论确定的内容。
签订合同是谈判的结果,谈判的目的就是签订双方满意的合同。
【关键词】ERP合同
目录
摘要1
0引言1
1系统分析2
1.1需求分析2
1.2可行性分析2
2总体设计2
2.1项目规划2
2.2系统功能架构图3
3系统设计3
3.1设计目标3
3.2开发及运行环境3
3.3数据库设计3
4主要功能模块设计4
4.1公共模块设计4
4.2主窗体设计8
4.3系统登录设计14
4.4新建合同16
4.5合同审阅18
附录A参考文献31
附录B数据表32
附录C文件架构图34
0引言
合同管理是企业经营管理中不可缺少的组成部分,无论是企业内部人员管理,还是企业业务往来管理,都离不开合同。
由于合同形式的多样性,履行过程的多变性,同时合同执行周期长,信息量大,查找起来非常困难,许多企业对合同管理一直没有好的办法。
如果采用计算机管理合同,不但能对企业合同的起草、修改、审阅、签订和查询等一系列工作进行有效管理。
并可以为企业管理者提供科学的操作工具,为决策者提供及时、完整的决策参考资料,提升企业的管理水平和竞争能力。
1系统分析
1.1需求分析
通过调查,要求系统需要有以下功能:
❑能对合同进行全面管理。
只要将已订立的合同及时输入系统,系统将可帮助用户完成合同的合同起草、修改、查询、合同签订等一系列工作。
❑服务器端具备数据管理功能,客户端只能查看文档,不能修改或复制。
可防止企业商业秘密泄露。
❑建立数据库备份恢复机制,并提供数据灾难恢复功能。
❑支持合同分类查找和模糊查询。
❑打开指定路径下的合同文档(Word文档)。
❑可实现文档与数据库管理合同。
❑批量导入和导出合同。
❑实现界面更换。
❑系统退出。
1.2可行性分析
传统的合同管理方法存在诸多缺点,如:
效率低、保密性差、时间一长就会产生大量的文件和数据积压,这对于查找和变更带来了不少的困难。
使用计算机管理系统,可以有效管理合同,同时也能帮助企业更方便、快捷的查找合同,可以促进企业工作效率和经营管理能力的提高。
合同管理系统使用Delphi7.0开发,人力资源管理系统前台使用Delphi7.0开发,它是当月前最为流行的可视化快速应用程序开发环境,对数据库有强大的支持,使开发数据库简单、高效。
根据数据量分析,使用SQLServer2000数据库,以保证数据的安全和执行高效。
2总体设计
2.1项目规划
合同管理系统是一个通过计算机有效管理合同的数据库系统,程序由启动窗体、登录窗体、系统主界面、系统设置模块、合同录入模块、合同变更模块、合同管理模块、合同查询模块等组成,特规划功能模块如下:
❑系统设置模块
该模块的主要功能是:
单位信息、操作员管理、数据备份、数据还原、日志管理、界面设置、路径设置。
❑合同录入模块
该模块主要功能是:
合同起草、合同审阅、合同修改、合同签订。
❑合同变更模块
该模块主要功能是:
合同作废。
❑合同管理模块
该模块主要功能是:
删除无效合同、合同类型管理、导入合同、合同打印。
❑合同查询模块
该模块主要功能是:
合同查询、作废合同查询。
2.2系统功能架构图
图1合同管理系统系统功能结构图
3系统设计
3.1设计目标
根据企业的需要和合同管理系统的特点,该系统实施后,应达到以下目标:
❑通过打开事先建立的合同样本起草合同,可节省合同书写的时间。
❑将合同保存到数据库中,以利用查阅和管理。
❑合同编辑方式灵活,支持合同批量导入功能。
❑操作界面美观、标准、专业、统一,实施方法简单、方便。
❑通过数据备份及恢复功能,减少数据不必要的损失。
3.2开发及运行环境
系统开发平台:
Delphi7.0。
数据库管理系统软件:
SQLServer2000。
运行平台:
Windowsxp/Windows2000/Windows2003。
分辨率:
最佳效果800*600像素。
3.3数据库设计
本系统采用SQLServer2000数据库,系统数据库名为pact,数据库pact中包括7个数据表。
关于数据库中的数据表请参见附录B
4主要功能模块设计
4.1公共模块设计
为了节省系统资源,实现代码重用,可以在系统中新建一个单元文件,用来存放一些全局变量和会被多次使用的函数。
选择“File”/“New”/“Unit”菜单,新建一个单元文件,命名单元文件为U_Public,在单元文件中添加以下代码:
unitU_Public;
interface
usesSysUtils,Classes,DB,ADODB,Dialogs,Controls,IniFiles,Forms,ComCtrls,
ExtCtrls,StdCtrls,Graphics,windows,Mask,DBGrids,DBCtrls,Word2000,
Grids,OleServer,Excel2000,Variants;
procedureexec_sql(P_Str_lj:
String);
procedureRz_Gl(czy,czsj,sj:
string);
procedurext_path;
procedureopen_data(p_str_lj:
string);
ProcedureSkinload();
procedureclose_data;
procedureOpenWordFile(State,Path:
String;WordApplication1:
TwordApplication;worddocument:
Tworddocument);
procedurewordRead(State,Path:
String;WordApplication:
TwordApplication;worddocument:
Tworddocument);
var
sb_path:
string;
gg:
string;
czy:
string;
yb_path,cg_path,sy_path,xg_path,qd_path,hsz_path:
string;
g_str_skinname:
string;
g_str_skinpath:
string;
implementation
usesU_Data;
procedurext_path;
begin
withdata1.ADOQuery1do
begin
close;
sql.Clear;
sql.Add('select*from系统路径');
open;
end;
cg_path:
=data1.ADOQuery1.fieldbyname('cglj').Value;
sy_path:
=data1.ADOQuery1.fieldbyname('sylj').Value;
xg_path:
=data1.ADOQuery1.fieldbyname('xglj').Value;
qd_path:
=data1.ADOQuery1.fieldbyname('qdlj').Value;
hsz_path:
=data1.ADOQuery1.fieldbyname('hsz').Value;
end;
procedureopen_data(p_str_lj:
string);
begin
data1.AC.Open();
data1.skin.SQL.Clear;
data1.skin.SQL.Add(p_str_lj);
data1.skin.ExecSQL;
data1.skin.Open;
end;
ProcedureSkinload();
var
AppPath:
String;//程序路径
begin
GetDir(0,AppPath);
open_data('select*fromskin');
ifnotdata1.skin.Eofthen
begin
g_str_skinname:
=trim(data1.skin.FieldValues['mc']);
g_str_skinpath:
=apppath+'\skin\'+g_str_skinname+'\';
end;
close_data;
ifg_str_skinname<>''then
begin
if(strtoint(g_str_skinname)<1)and(strtoint(g_str_skinname)>4)then
begin
g_str_skinname:
='';
g_str_skinpath:
='';
end;
end;
ifg_str_skinname=''then
begin
g_str_skinname:
='';
g_str_skinpath:
='';
end;
end;
procedureRz_Gl(czy,czsj,sj:
string);//日志管理
varNN:
string;
begin
NN:
='insertinto日志(czy,czsj,sj)values(';
NN:
=NN+quotedstr(czy)+',';
NN:
=NN+quotedstr(czsj)+',';
NN:
=NN+quotedstr(sj)+')';
exec_sql(nn);
end;
procedureExec_Sql(P_Str_lj:
String);
begin
data1.AC.Open();
data1.Rz_Gl.SQL.Clear;
data1.Rz_Gl.SQL.Add(p_str_lj);
data1.Rz_Gl.ExecSQL;
close_data;
end;
procedureclose_data;
begin
data1.Rz_Gl.Close;
data1.AC.Close;
end;
procedureOpenWordFile(State,Path:
String;WordApplication1:
TwordApplication;worddocument:
Tworddocument);//打开Word函数过程
var
itemindex:
olevariant;
filename,confirmconversions,readonly,addtorecentfiles,
passworddocument,passwordtemplate,revert,
writepassworddocument,writepasswordtemplate,format,Encoding,Visible:
olevariant;
begin
WordApplication1.Connect;//建立连接
wordApplication1.Visible:
=True;
filename:
=path;//文档名(包含路径)
confirmconversions:
=false;//是否显示文件转换对话框
ifstate='false'thenreadonly:
=false
else
readonly:
=false;//是否以只读方式打开文档
addtorecentfiles:
=false;//是否将文件添加到"文件"菜单底部的最近使用文件列表中
passworddocument:
='';//打开此文档时所需要的密码
passwordtemplate:
='';//打开此模板时所需要的密码
revert:
=true;//如果文档已经,是否重新打开文档
writepassworddocument:
='';//保存对文档更改时所需要的密码
writepasswordtemplate:
='';//保存对模板进行更改时所需要的密码
format:
=wdopenformatdocument;//打开文档时所需使用的文件转换器
Encoding:
='';//所使用的文档代码页
Visible:
=1;//打开文档的窗口是否可见
wordapplication1.documents.open(filename,confirmconversions,readonly,addtorecentfiles,
passworddocument,passwordtemplate,revert,writepassworddocument,writepasswordtemplate,
format,Encoding,Visible);
itemindex:
=1;
ifstate='True'then
begin
WordApplication1.CommandBars.ActiveMenuBar.Set_Enabled(False);//整个菜单工具兰隐藏
end
else
begin
WordApplication1.CommandBars.ActiveMenuBar.Set_Enabled(True);
end;
WordApplication1.Disconnect;//断开连接
end;
procedurewordRead(State,Path:
String;WordApplication:
TwordApplication;worddocument:
Tworddocument);
//读取Word文档的内容函数过程
var
itemindex:
olevariant;
filename,confirmconversions,readonly,addtorecentfiles,
passworddocument,passwordtemplate,revert,
writepassworddocument,writepasswordtemplate,format,Encoding,Visible:
olevariant;
begin
WordApplication.Connect;
wordApplication.Visible:
=false;
filename:
=Path;//文档名(包含路径)
confirmconversions:
=false;//是否显示文件转换对话框
ifstate='false'thenreadonly:
=false
else
readonly:
=true;//是否以只读方式打开文档
addtorecentfiles:
=false;//是否将文件添加到"文件"菜单底部的最近使用文件列表中
passworddocument:
='';//打开此文档时所需要的密码
passwordtemplate:
='';//打开此模板时所需要的密码
revert:
=true;//如果文档已经,是否重新打开文档
writepassworddocument:
='';//保存对文档更改时所需要的密码
writepasswordtemplate:
='';//保存对模板进行更改时所需要的密码
format:
=wdopenformatdocument;//打开文档时所需使用的文件转换器
Encoding:
='';//所使用的文档代码页
Visible:
=1;//打开文档的窗口是否可见
wordapplication.documents.open(filename,confirmconversions,readonly,addtorecentfiles,
passworddocument,passwordtemplate,revert,writepassworddocument,writepasswordtemplate,
format,Encoding,Visible);
itemindex:
=1;
worddocument.connectto(wordapplication.documents.item(itemindex));
gg:
=worddocument.Range.Text;//读取文档内容
worddocument.Disconnect;
WordApplication.Disconnect;
end;
end.
procedurewordPrint(State,Path:
String;WordApplication:
TwordApplication;worddocument:
Tworddocument);
var
itemindex:
olevariant;
filename,confirmconversions,readonly,addtorecentfiles,
passworddocument,passwordtemplate,revert,
writepassworddocument,writepasswordtemplate,format,Encoding,Visible:
olevariant;
begin
WordApplication.Connect;
wordApplication.Visible:
=false;
filename:
=Path;//文档名(包含路径)
confirmconversions:
=false;//是否显示文件转换对话框
ifstate='false'thenreadonly:
=false
else
readonly:
=false;//是否以只读方式打开文档
addtorecentfiles:
=false;//是否将文件添加到"文件"菜单底部的最近使用文件列表中
passworddocument:
='';//打开此文档时所需要的密码
passwordtemplate:
='';//打开此模板时所需要的密码
revert:
=true;//如果文档已经,是否重新打开文档
writepassworddocument:
='';//保存对文档更改时所需要的密码
writepasswordtemplate:
='';//保存对模板进行更改时所需要的密码
format:
=wdopenformatdocument;//打开文档时所需使用的文件转换器
Encoding:
='';//所使用的文档代码页
Visible:
=1;//打开文档的窗口是否可见
wordapplication.documents.open(filename,confirmconversions,readonly,addtorecentfiles,passworddocument,
passwordtemplate,revert,writepassworddocument,writepasswordtemplate,format,Encoding,Visible);
itemindex:
=1;
worddocument.connectto(wordapplication.documents.item(itemindex));
worddocument.PrintOut;//PrintOut方法用于打印指定的文档
worddocument.Disconnect;
WordApplication.Disconnect;
end;
4.2主窗体设计
主窗体中主要是通过菜单和工具栏按钮来调用子窗体,合同管理系统主窗体运行结果如图3所示。
图3合同管理系统主界面
1.窗体设计步骤
(1)运行Delphi会自动创建一个窗体,设置该窗体为程序主窗体,命名该窗体为“frm_main”,设置窗体的Caption属性为“合同管理系统”;WindowsStyle属性为“wsMaximized”。
(2)在“Standard”组件页中点选“TMainMenu”组件,添加到窗体上,双击该组件进行菜单添加,如图4所示。
图4主菜单设计
(3)在“Standard”组件页中点选“TPanel”组件,在窗体上添加2个TPanel组件,命名为“Panel1”和“Panel3”,设置Bevellnner属性为“bvSpace”;BevelOuter属性为“bvLowered”。
设置Panel1组件的Align属性为“alTop”,设置Panel2组件的Align属性为“alClient”。
(4)在“Additional”组件页中点选“TImage”组件,添加到Panel1组件上,设置Align属性为“alTop”,在Picture属性添加图片。
(5)在“Additional”组件页中点选“TSpeedButton”组件,在TImage1组件上添加9个TSpeedButton组件,默认命名,设置Flat属性为“Tree”
(6)在“Additional”组件页中点选“TImage”组件,添加到Panel3组件上,设置Align属性分别为“alLeft”和“alClient”,在Picture属性中添加图片。
(7)在“Win32”组件页中点选“TTreeView”、“TListView”组件、“TRichEdit”组件,添加到窗体上,设置ReadOnly属性为“True”。
(8)在“Win3.1”组件页中点选“TFileListView”组件,添加到窗体上,设置Visible属性为“False”;设置Mask属性为“*.doc”。
(9)在“Standard”组件页中点选“TPopupMenu”组件,添加到窗体上,双击展开面板添加菜单,如图5所示。
图5弹出菜单设计
(10)在“Win32”组件页中点选“TImagelist”组件,添加到窗体上,双击为其添加图片。
(11)在“Dialog”组件页中点选“TOpenDialog”组件和“TSaveDialog”组件,添加到窗体上。
(12)在“Severs”组件页中点选“TWordApplication”组件和“TWordDoucment”组件,添加到窗体上。
(13)在“Win32”组件页中点选“TStatusBar”组件,添加到窗体上,双击展开面板,单击【AddNew(Ins)】按钮添加项,并设置Text如图6所示。
图6任务栏设计
2.程序相关代码
在主窗