合同管理系统的设计与实现.docx
《合同管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《合同管理系统的设计与实现.docx(44页珍藏版)》请在冰豆网上搜索。
![合同管理系统的设计与实现.docx](https://file1.bdocx.com/fileroot1/2022-11/29/8b338659-4c86-43f0-ab77-ad347dd32cc4/8b338659-4c86-43f0-ab77-ad347dd32cc41.gif)
合同管理系统的设计与实现
摘要
长期以来,由于在合同管理中实行手工作业,合同审批流程不明确,存在各部门之间合同流转时间长而且特别容易出错等问题。
合同管理系统就是针对当前的合同管理业务特点所定制的一套管理系统,该套系统本着进一步完善企业内部合同管理制度,规范合同管理机制的目的,更加及时、准确、全面地反映合同信息,辅助企业管理决策,从而实现该企业合同管理智能化,降低管理成本,提高内部管理水准,为企业决策层及时了解合同管理业务层的工作情况提供第一手资料。
该系统采用了VisualStudio2005结合MSSQL2000的开发环境,应用VisualStudio2005提供的C#数据库控件等等,完成了系统管理、客户管理、合同管理和系统帮助这四个模块的功能。
关键字:
合同管理C#MSSQL2000SQL
第一章引言
1.1研究背景
采用手工管理合同,由于涉及的部门众多,需要管理的合同要素也各不相同,因此造成信息不集中,实时性不强,导致各部门协作,业务流程组建,监控制度执行方面效率不高,费时费力等问题,具体表现在如下方面:
1)文档管理困难:
传统纸质合同与电子版合同共存,但对于不同的人员想阅读参考合同时,存在查找不方便的问题。
尤其是领导需要了解合同文本时需要耗费很多时间。
2)进度控制困难:
由于合同数目多,参与人员多,合同进度的控制基本靠手工和普通word、excel管理已很难满足公司发展需要,并且当领导想全局或全程了解合同情况时存在很大障碍。
财务人员的付款依据也与进度密切相关,但同样存在障碍。
3)信息汇总困难:
采用手工或EXCEL管理时,由于不同部门的数据格式不统一,采集也不能够及时继续,汇总工作需要耗费大量时间还不一定准确。
对于领导的决策时间有一定的影响。
4)缺少预警机制:
缺少对合同进度、结款等关键节点的预警,不能准确地预测近期可能的收支项目,不能帮助公司进行财务规划,掌控现金流,更好地发挥资金运作。
1.2研究意义
业务管理是合同管理的核心需求,合同管理软件必须解决实际业务管理中的问题,专注于合同管理的动态化、智能化、网络化,为企业提供合理的流程和业务约束以及全方位的合同管理功能,包括合同起草、合同审批、文本管理、履约监督、结算安排,、智能提醒合同收付款、项目管理、合同结款情况统计分析、报表输出和决策支持等。
合同管理系统可以为企业管理带来如下价值.规范基础数据管理。
合同管理系统采用集中的数据管理,可以有效地改变企业信息分布比较散乱的现状。
同时,系统提供自定义字段功能,可以为企业实现完整、规范的数据管理提供一个良好的平台支撑。
总之,通过合同管理系统的应用和实施,可以为合同管理信息化和合同管理能力提升提供一个最佳的结合点,切实打造企业核心竞争力。
1.3研究的主要内容
(1)合同管理系统客户信息:
主要对客户号、单位名称、单位地址。
联系人、联系、开户行、银行账号、税号、电子邮件等的确认。
进行编辑。
(2)客户信息维护:
主要是在合同管理客户信息里的信息进行修改以及删除。
(3)合同信息:
主要是对新合同的添加、客户名称、项目名称、合同生效时间及结束时间、成交金额及合同的内容。
以及修改。
(4)合同的执行控制:
对客户信息、合同信息、项目信息、合同执行、控制以及操作的详细内容进行完善。
(5)合同管理的统计:
根据客户名称、项目名称、合同状态等条件进行统计。
第二章合同管理系统需求分析
2.1现有业务分析
合同管理系统的主要功能有系统管理、客户管理、合同管理和系统帮助。
各部门签定好合同后,合同管理员将合同信息输入系统,交由合同管理系统统一管理。
如果在合同履行过程中碰到不可克服的困难而需要变更合同时,就上交一份合同变更申请,由公司主管领导进行审核,若审核通过,则开始进行合同变更,若审核不通过,则退回申请。
如果在合同履行过程中对方未履行合同所规定的义务,就上交一份合同索赔申请,由公司主管领导进行审核,若审核通过,则开始进行合同索赔,若审核不通过,则退回申请。
如果合同到期,则删除该合同。
其中合同管理的流程如下图2.1所示:
图2.1合同管理业务流程图
具体功能项:
合同起草:
提供合同示范文本库,起草人选择对应的合同范本,填写合同要素,合同示范文本只允许起草人填空,不允许修改固定条款格式。
合同审批:
根据企业的业务流程自定义软件中合同审批流程,保存所有的审批意见,帮助评审人员参考,最后打印出合同审批单。
合同文件:
管理所有与合同有关的文件,包括合同原稿、变更文件、附图等内容,将任意格式的电子版文档可以直接导入系统中。
结算管理:
解决企业的资金管理,为合同细化了何时应该结算账款,无论是对收款还是付款均有重要意义,可以及时安排资金调度及收回款项,既保证按时守信,又合理充分利用资金,降低执行风险。
实际进度:
明确记录合同进度,并与计划情况进行对比,方便领导随时了解合同动态执行的情况,到底完成到何种程度,完成的百分比是多少,方便领导调整进度,安排下一步的工作。
商品管理:
采用合同商品清单、询价、报价表单管理对应标的物型号、规格等明细,可以按商品类型、交货期等信息统计合同商品数量和金额,为公司市场策略、财务规划、招投标管理等提供依据。
合同变更:
记录合同变更的原因、影响,并将变更依据作为附件导入系统,从而兼顾了变更过程管理的严谨和自动性,关联结果,有据可查,权责明晰。
报表:
从不同角度对系统数据进行统计分析,辅助经营决策,多样化的统计方式,自定义统计条件,并将统计结果输出图形。
2.2效益分析
1.规范了合同管理的业务流程,增强了合同业务处理过程的透明度。
系统通过设置用户权限,定义了不同组别的用户在系统中的功能,从而规范了合同管理过程中各个岗位的职能,避免了业务处理时责任不明确的现象,使得每个岗位(即用户)能够各司其责,杜绝了人为干预的现象。
系统中工作流的定义,使得合同管理的业务流程更加合理、科学。
去掉了原有手工合同管理流程中不必要的审批环节,增加了审批过程中不可缺少的业务处理环节。
2.对合同的执行情况做到了动态控制。
系统存储了与合同相关的所有数据,通过各种提醒等功能的设置从合同的签定开始,系统便对合同执行了"监控",可以对合同的执行情况进行具有实用价值的监督。
例如:
随时查看已生效和即将结束的合同,提醒用户下一步的操作,并可以检查合同执行过程中是否有因出现了某些问题而无法完成的合同,既而采取必要的解决办法,最大限度的减少企业的损失。
3.提高了工作效率,降低了管理成本。
通过系统的实施,业务人员可方便地进行业务操作、资料查阅、相关业务进展查询、接收业务指令等各种日常业务处理;领导人员可方便地进行各种业务查询、事务审批等。
使各级人员摆脱了原有手工操作的束缚,大大地提高了工作效率,使得将更多的时间和精力钻研业务成为可能。
总之系统实现了合同管理的信息化,从而减少了公司的人力、物力,进一步降低了公司的管理成本。
第三章合同管理系统总体设计
3.1系统功能分析
合同管理涉及合同的多个方面,如工程信息、合同信息、合同变更信息、合同索赔信息等等。
根据这些信息完成合同管理的日常业务。
本系统需要完成的功能主要有:
●合同信息和具体内容的建立。
●合同变更、索赔等方面信息的输入。
●工程信息和客户信息的输入与查询。
●对各种信息的查询、添加、删除和编辑。
●系统管理员对不同组别的用户权限的配置。
●系统日志的建立。
在系统功能分析的基础上,得到如图3.1.所示的功能模块图。
图3.1功能模块图
3.2.数据库设计(库表设计)
用户信息表主要是为了显示用户的ID、用户的密码、用户权限、用户性别、姓名、地址、等的数据以及字符段。
用以在系统中能展现出来。
具体如下(表3.2用户信息表)。
表3.2用户信息表Users:
编号
字段名称
数据结构
说明
1
UID
varchar(12)
用户的ID
2
UPassword
varchar(50)
密码
3
UPower
int
权限
4
USex
bit
性别
5
UName
varchar(50)
姓名
6
UAddress
varchar(50)
地址
7
UTel
varchar(50)
工程信息表是说明该合同的编号、项目名称、类型、管理者、以及成交价、以及对该工程的详情描述。
以及在此系统中的显示条目如下(表3.3工程信息表)。
表3.3工程信息表Projects:
编号
字段名称
数据结构
说明
1
PID
varchar(50)
编号
2
PName
varchar(50)
项目名
3
PCharacter
varchar(50)
类型
4
PManager
varchar(50)
管理者
PSumOfMoney
varchar(50)
总价
PDescribe
varchar(500)
描述
合同进程信息表是对合同的编号。
该合同的已收金额。
收付时间、和收付过程作相应的描述。
如下(表3.4合同进程信息表)
表3.4合同进程信息表ContractProgressInfor:
编号
字段名称
数据结构
说明
1
IID
int
编号
2
ITID
varchar(50)
合同编号
3
IPay
money
支付的钱
4
IDate
datetime
时间
5
IDescribe
Varchar(500)
描述
合同信息表主要是对合同的编号、客户编号、工程编号、总价、预备价、合同开始时间、结束时间以及合同的签订状态的数据录入及体现。
如下(表3.5合同信息表)。
表3.5合同信息表Contract:
编号
字段名称
数据结构
说明
1
TID
varchar(50)
合同编号
2
TCID
varchar(50)
客户编号
3
TPID
varchar(50)
工程编号
4
TTotalMoney
money
总价格
5
TReadyMoney
money
预备价格
6
TBeginDate
datetime
开始时间
7
TEndDate
datetime
结束时间
8
TState
int
状态
客户信息表是对客户编号、客户姓名、客户地址、合同合作人、客户、银行、银行账号、电子邮箱、以及等的联系方式作出相应的说明。
如下(表3.6客户信息表)。
表3.6客户信息表Clients:
编号
字段名称
数据结构
说明
1
CID
varchar(50)
客户编号
2
CName
varchar(50)
客户姓名
3
CAddress
varchar(50)
客户地址
4
CContractPerson
Varchar(50)
合同人
5
CTel
Varchar(50)
6
CBank
Varchar(50)
银行
7
CAccount
Varchar(50)
银行帐号
8
CEmail
Varchar(50)
电子信箱
9
CTax
Varchar(50)
第四章合同管理系统的详细设计及实现
登录程序的设计是整个程序的主要部分,如图4.1
图4.1登录程序的设计
程序安全性的体现:
protectedvoidbtn_login_Click(objectsender,System.EventArgse)
{
//构造SQL语句,该语句在Users表中检查用户名和密码是否正确
SqlConnectioncn=Util.GetSqlConnection();
stringmysql="select*fromUserswhereUid='"+tbx_uid.Text+"'andUPassword='"+tbx_upassword.Text+"'";
//创建Command对象
SqlCommandcm=newSqlCommand(mysql,cn);
//执行ExecuteReader()方法
SqlDataReaderdr=cm.ExecuteReader();
if(dr.Read())
{
lbl_message.Text="";
//保存当前用户名及用户权限
Session["uid"]=dr["uid"].ToString();
Session["upower"]=dr["upower"].ToString();
if(Session["upower"].ToString()=="1")
{//经理身份登入界面
Response.Redirect("contractcount.aspx");
}
elseif(Session["upower"].ToString()=="2")
{//合同管理员登入界面
Response.Redirect("contractlist.aspx");
}
}
else
{
lbl_message.Text="对不起,您的用户名/密码不正确,请重新输入";
}
//关闭连接
cn.Close();
}
4.2合同执行控制
合同执行界面如下:
(图4.2)
图4.2合同执行界面
合同执行是整个合同管理程序的核心业务,对于它的实现,还是采用的odbc进行数据库的读取,然后进行合同业务的实现:
publicvoidBindGrid()
{
//连接本地计算机的TMS数据库
SqlConnectioncn=Util.GetSqlConnection();
//创建SqlDataAdapter对象,调用存储过程
SqlDataAdapterda=newSqlDataAdapter("contractlist",cn);
//创建并填充DataSet
DataSetds=newDataSet();
da.Fill(ds);
dgd_contractlist.DataSource=ds;
dgd_contractlist.DataBind();
cn.Close();
}
4.3合同执行控制高级查找合同
合同查询界面如下:
(图4.3)
图4.3合同查询界面
对于任何一个管理程序,查询都是必须实现的功能,本合同管理程序当然也不例外,同样,也是通过odbc进行数据库的读取,然后再进行的数据的查询:
protectedvoidPage_Load(objectsender,System.EventArgse)
{
if(!
IsPostBack)
{
SqlConnectioncn0=Util.GetSqlConnection();
stringmysql="select*fromClients";
SqlCommandcm=newSqlCommand(mysql,cn0);
SqlDataReaderdr=cm.ExecuteReader();
while(dr.Read())
{
ddl_tcid.Items.Add(newListItem(dr["cname"].ToString(),dr["cid"].ToString()));
}
cn0.Close();
//项目信息下拉列表框绑定
cn0.Open();
stringmysql1="select*fromProjects";
SqlCommandcm1=newSqlCommand(mysql1,cn0);
SqlDataReaderdr1=cm1.ExecuteReader();
while(dr1.Read())
{
ddl_tpid.Items.Add(newListItem(dr1["pname"].ToString(),dr1["pid"].ToString()));
}
cn0.Close();
//绑定列表框
BindGrid();
}
}
publicvoidDataGrid_Page(Objectsender,DataGridPageChangedEventArgsE)
{
dgd_contractlist.CurrentPageIndex=E.NewPageIndex;
BindGrid();
}
publicvoidBindGrid()
{//从文件Web.config中读取连接字符串
//stringstrconn=ConfigurationSettings.AppSettings["dsn"];
//连接本地计算机的TMS数据库
//SqlConnectioncn=newSqlConnection(strconn);
//创建带筛子的SQL语句
SqlConnectioncn=Util.GetSqlConnection();
stringmysql="SELECT*FROMProjects,Clients,ContractWHERETCID=CIDANDTPID=PID";
//对控建进行筛选
if(ddl_tcid.SelectedItem.Value.ToString()!
="0"||ddl_tpid.SelectedItem.Value.ToString()!
="0")//如果“客户信息”或“项目信息”有输入,0为未选
{
mysql=mysql+"andtcid='"+ddl_tcid.SelectedItem.Value.ToString()+"'";
mysql=mysql+"andtpid='"+ddl_tpid.SelectedItem.Value.ToString()+"'";
}
if(ddl_tstate.SelectedItem.Value.ToString()!
="0")//如果“当前状态”有输入,0为未选
{
mysql=mysql+"andtstate='"+ddl_tstate.SelectedItem.Value.ToString()+"'";
}
mysql=mysql+"ORDERBYTState,TEndDate";//增加排序
//创建SqlDataAdapter对象,调用视图
SqlDataAdapterda=newSqlDataAdapter(mysql,cn);
//创建并填充DataSet
DataSetds=newDataSet();
da.Fill(ds);
dgd_contractlist.DataSource=ds;
dgd_contractlist.DataBind();
cn.Close();
}
4.4员工信息维护
员工信息维护界面如下:
(图4.4)
图4.4员工信息维护
合同管理程序的一个主要的功能是对员工信息的维护,包括员工信息的查询,添加,编辑以及删除,同以前的功能一样,也是通过odbc进行数据库的读写:
protectedvoidPage_Load(objectsender,System.EventArgse)
{//判断用户是否为合法用户
try
{
if(Session["UPower"].ToString()=="1");
}
catch
{
Response.Write("您不是合法用户,请登入后再操作,返回");
Response.End();
}
if(!
IsPostBack)BindGrid();
}
publicvoidBindGrid()
{
//连接本地计算机的TMS数据库
SqlConnectioncn=Util.GetSqlConnection();
//创建SqlDataAdapter对象,调用存储过程
SqlDataAdapterda=newSqlDataAdapter("userslist",cn);
//创建并填充DataSet
DataSetds=newDataSet();
da.Fill(ds);
dgd_usermanage.DataSource=ds;
dgd_usermanage.DataBind();
cn.Close();
}
publicvoidDataGrid_Delete(Objectsender,DataGridCommandEventArgsE)
{
//连接本地计算机的TMS数据库
SqlConnectioncn=Util.GetSqlConnection();
SqlCommandcm=newSqlCommand("usersdelete",cn);
cmmandType=CommandType.StoredProcedure;
cm.Parameters.Add("@UID",SqlDbType.VarChar);
cm.ExecuteNonQuery();
dgd_usermanage.EditItemIndex=-1;
BindGrid();
}
4.5客户信息维护
客户信息维护界面如下:
(图4.5)
图4.5客户信息维护
客户信息维护也是合同管理程序的组成部分:
protectedvoidPage_Load(objectsender,System.EventArgse)
{
if(!
IsPostBack)BindGrid();
}
publicvoidBindGrid()
{
//连接本地计算机的TMS数据库
SqlConnectioncn=Util.GetSqlConnection();
//创建SqlDataAdapter对象,调用存储过程
SqlDataAdapterda=newSqlDataAdapter("clientslist",cn);
DataSetds=newDataSet();
da.Fill(ds);
dgd_clientsm