目 录
第一章引言
1.1项目背景
1.2 管理信息系统概述
1.3系统开发的意义
第二章系统分析
1、组织结构分析
2、系统功能分析
3、发文管理业务流程分析
4、收文管理业务流程
5、会议管理业务流程
第三章 系统设计
3.1 项目规划
3.2 功能框图
3.3数据库设计
第四章 系统实施
4.1 关键技术
4.2主窗体设计
4.3库存管理模块设计
4.4 进货模块设计
第五章 总结
致 谢
参考文献
第一章引言
1.1项目背景
随着我国经济的高速发展,中小企业在社会经济中扮演的角色越来越重要,已成为最多元化和最具创新精神的部分。但是随着企业的发展,客户的增多,企业账目混乱,库存不准,信息反馈不及时等问题也接踵而至。这些问题已成为制约中小企业发展的瓶颈,严重制约了中小企业的发展壮大。越来越多的企业经营者认识到:单纯靠对商品的占有,靠个人经验,已经很难把握市场,很难在激烈的竞争中取胜。如何借助IT手段、如何通过信息化,加强核心竞争力,实现持续发展已成为中小企业亟待解决的关键问题。
1.2 管理信息系统概述
管理信息系统(MIS)的概念是1961年美国人J.D.GALLAGHER首先提出来的,是一门新兴的、集管理科学、信息科学、系统科学及计算机科学为一体的综合性学科,研究的是企业中信息管理活动的全过程,以便有效的管理信息,提供各类管理决策信息,辅助企业进行现代化管理。
管理信息系统是企业的信息系统,它具备数据处理、计划、控制、预测和辅助决策功能,具体作用如下:
(1) 用统一标准处理和提供信息,排除使用前后矛盾的不完整的数据。
(2) 完整、及时提供在管理及决策中需要的数据。
(3) 利用指定的数据关系式分析数据,客观预测未来。
(4) 向各级管理机构提供不同详细程度的报告,缩短分析和解释时间。
(5) 用最低的费用最短的时间提供尽可能精确、可靠的信息,以便使决策者选择最佳的实施方案,以提高企业的经济效益。
1.3系统开发的意义
信息已成为继劳动力、土地、资本之后的又一大资源。谁控制的信息越多,谁利用信息资源的效率越高,谁就会在各方面的竞争中占有一席之地,谁就会有更多的优势。
我国中小企业有70%是零售企业,企业经营涉及进、销、存多个环节,涉及商品种类繁多,业务量大,库存管理复杂,使用手工管理已无法胜任。如何采用先进的计算机系统管理进货、库存、销售等诸多环节也已成为趋势及必然。
第二章系统分析
1、组织结构分析
某学院现行的组织结构如下:
某大学为一个组织(Organisation 简称O),某学院为该大学下面的一个组织单元(Organisation Unit1简称OU1 ),而系统的服务器则放在一个为Servers的服务器组里,服务器的名字为RWServer.某学院下的每一个单位,都为某学院下的一个组织单元OU2,系统的注册的时候再生成相应原OU下注册相应原用户。用这样的结构目的为了系统的层次更明显,在分配权限的时候有条不紊。
2、系统功能分析
通过调查,要求系统需要有以下功能:
(1)要有良好的人机界面,并提供换肤功能。
(2)支持多人操作,要求有较好的权限分配功能。
(3)在进货、退货时存在一对多的关系,要求支持多行录入功能。
(4)为了方便用户查询,要求支持多条件查询。
(5)对于每种商品要求编号惟一,编号需要自动生成。
(6)支持多种报表打印。
(7)支持账目的详细内容浏览。
3、发文管理业务流程分析
4、收文管理业务流程
5、会议管理业务流程
第三章 系统设计
3.1 项目规划
进销存管理系统是一个典型的数据库应用程序,由登录模块、主界面、基本信息模块、进货管理和销售管理模块、钱流管理模块、库存管理模块、查账模块、统计与分析模块、系统维护模块等组成。特规划功能模块如下:
1.基本信息模块
基本信息模块的主要实现库存商品、内部职员、往来单位、费用类型信息等管理。
2.进货管理模块
进货管理模块主要管理企业商品进货及退货信息,支持多行录入。
3.销售管理模块
销售管理模块主要管理企业商品销售及退货信息,支持多行录入。
4.钱流管理模块
钱流管理模块主要实现往来账目的录入和账目的详细信息浏览等功能。
5.库存管理模块
库存管理模块主要实现库存货品浏览、库存盘点、库存报警等功能。
6.统计分析模块
统计分析模块主要实现进货统计分析、销售统计分析和成本分析等功能。
7.查账模块
查账模块主要实现与供应商、代理商对账、费用管理、应收应付等功能。
8.系统维护模块
系统维护模块的主要实现本单位管理、操作员设置、数据的备份和还原等功能。
3.2 功能框图
3.3数据库设计
(1)职员信息表(tb_employ)
职员信息表用来保存职员信息。职员信息表的结构如表B.1所示。
进货主表用来保存进货中主要和相同的信息。进货主表的结构如表B.2所示。
(3)进货明细表(tb_warehouse_detailed)
进货明细表用来保存进货中商品的详细信息。进货明细表结构如表B.3所示。
(4)用户权限表(tb_power)
用户权限表用来保存用户权限设置信息。用户权限表结构如表B.4所示。
第四章 系统实施
4.14.1 关键技术
1、报名点管理、用户管理、考点管理
用户管理、考点管理、报名点管理的功能类似,实现相应信息的增加、删除、修改、打印(预览)功能,只是界面设计上有所区别。限于篇幅,以报名点管理窗体大致说明这三个模块功能的实现。
报名点管理是针对报名点信息的管理,包括报名点的添加、修改、删除、打印功能。报名点管理窗体如下图所示:
2、准考证号的生成
准考证生成是本系统的一大难点。由于准考证号是考前准备的最主要部分,也是考后数据处理中惟一对考生进行标识和管理的重要依据。因此,准考证号的生成必须是随机的、唯一的。
准考证号的编码设计
考虑实际管理工作需要和准考证打印工作的有效进行,准考证号需要反应出每一个考生的信息:报考级别、报考专业、报名点(即可知道考生的考点)、考场、座位号。
报考级别代码和报考专业代码为试卷的发放提供便利,为各种统计报表的生成提供重要参数。
报名点代码确定了考生的考点,例如保证了成都市考生不会被安排到攀枝花市的考场等,同时为准考证打印、分发提供便利。而考场代码和座位号在准考证中是必须存在的,保证考生参加考试时有序的进入各自考场,找到各自座位。
准考证号每位数字的具体含义举例如下:
准考证号:1 01 0106 02 22
其中:
1……为报考级别代码(A级);
01 ……为报考专业代码(英综合);
0106 … 为报名点代码(成都市金牛区,也意味着考生在该区的考点进行考试);
02 ……为考场号(第02考场);
22 ……为考生在考场中的座位号。
准考证号的生成设计
准考证号主要是根据考生的报名信息,前7位代码在考生报名时就已经可以确定,使用Tquery组件的sql查询语句从各个表中读出。为了减小同时报名的考生被安排在同一个考场,甚至前后座位的概率,考试中心要求准考证号的分配必须随机。为了达到随机的目的,我们首先用Ramdon函数为该报名点的每位考生随机生成一个随机数,然后根据随机数的大小进行考场分配和座位分配。其设计思路如下:
为各个报名点的考生分配随机数。
如:A:99 B:53 C:142
排序:B,A,C
根据②中排序的结果为考生分配考场号和座位号。
A:0101 B:0102 C:0103
当01考场座位号分配完后,考场号加1,依此类推,从而为每位考生随机安排唯一的准考证号。
由于准考证号分配工作的完成需要一定的时间,为了方便管理人员估计进程运行时间,我们还选用了ProgressBar组件设计了大致显示进程进度的进度条。
4.2主窗体设计
主窗体是程序的控制中心,其他模块都是通过主窗体来调用,所以主窗体的界面要设计的美观易操作。进销存管理系统主窗体运行结果如图4所示。
设计要点有:
1.子窗体的显示
在窗体右侧的功能按钮单击事件处理过程中,动态创建相应的功能窗体。动态创建“库存状况窗体”代码如下:
procedure TF_zct.SpeedButton9Click(Sender: TObject);
begin
Application.CreateForm(TF_kczk, F_kczk); //创建窗体
F_kczk.ShowModal; //显示窗体
F_kczk.Free; //释放窗体
end;
4.3库存管理模块设计
库存管理的操作流程图如下:
库存商品模块主要实现浏览、添加、修改、删除、查询、打印商品信息等功能。库存商品模块运行结果如图所示。
设计要点
1、数据的显示
在窗体的OnShow事件处理过程中打开库存商品表。代码如下:
procedure TF_kcsp.FormShow(Sender: TObject);
begin
inherited; //由于窗体是继承自基窗体该代码自动生成。意为调用父类的同名方法。
change:=False;
with adoquery1 do
begin
Close;
SQL.Clear;
SQL.Add(‘Select * from tb_stock order by tradecode asc’); //排序
Open;
end;
end;
2、查询的实现
在【查询】按钮的单击事件处理过程中动态设置查询条件。代码如下:
procedure TF_kcsp.SpeedButton1Click(Sender: TObject);
var
searchwhat:string;
begin
inherited; //调用父类的同名方法
Panel1.Visible:=not(Panel1.Visible);
if Panel1.Visible=False then
begin
searchwhat:='';
case combobox1.ItemIndex of //设置要查找的字段
0: searchwhat:='tradecode';
1: searchwhat:='fullnamed';
2: searchwhat:='name';
3: searchwhat:='shortcode';
end;
try
with ADoquery1 do
begin
Close;
SQL.Clear;
SQL.Add(‘select * from tb_stock ’); //写SQL语句
SQL.Add(‘where '+''+searchwhat+''+' like :a order by tradecode’);
parameters.ParamByName(‘a’)。Value:='%'+Trim(Edit1.Text)+'%';
open;
end;
if Application.MessageBox(‘是否刷新表?',’提示‘,mb_yesno)=Id_yes then
with ADoquery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from tb_stock order by tradecode’); //刷新
open;
end;
except
Application.MessageBox(‘请正确输入条件',’提示‘,mb_ok);
end;
end;
end;
其他的库存报警,库存盘点,库存变化也一一介绍。
4.4 进货模块设计
入库单的操作流图程如下:
进货单录入窗体主要功能是录入进货的相关信息,在该模块中支持多行录入,可以调用其他信息提示窗体。进货单录入模块运行结果如图19所示。
第五章 总结
通过这次的毕业设计,我对前面学过的许多课程有了更为深刻的理解。如果在开发之前对整个开发工作做出全方位的规划和系统的分析,开发过程就会事半功倍,否则就会遇到许多意想不到的问题,延缓开发进度。在这方面,老师给予我们提出了宝贵的意见,让我们利用一个星期的时间熟悉该系统,然后进行系统规划,确定系统的管理职能,做好业务流程图,数据流流程图。
所遇到的问题及解决方法
1.
2.
3.
但是总体上说,这次的毕业设计对我来说是非常难得的一次在校外锻炼机会。这次毕业设计使得我对三年来所学的专业课有了更为深刻的认识,使知识得到了融会贯通,得到了比以往学习任何一门课都大的提高和进步,对于我来说,这不仅仅是一次毕业设计 ,更重要的是在学习的过程中,所有的问题大家互相讨论,要想尽各种办法解决,克服困难,在解决这些困难的过程中提高了我的学习能力,解决问题的能力和实际工作的能力,学到了许多书本以外的知识。另外,在这期间我们也得到了我们的指导老师和某某公司的帮助,在此,我向他们表示衷心的感谢。
致 谢
我通过开发这个管理信息系统,巩固了以前所学的知识,提高了应用能力;借此机会,深深地感谢我的指导老师-董老师及支持、帮助过我的老师们。谢谢!
感谢所有曾经热情帮助过我的人们。在此特致以殷切谢意!
参考文献
[1] 期赛奎春 陈紫鸿 宋坤 编着, Delphi 数据库开发关键技术与技术实例应用, 人民邮电出版社 2002
[2] 王晟 万科 编着 , Delphi 数据库开发 经典案例解析, 清华大学出版社2005.2
[3] 《Delphi7.0企业级解决方案及应用剖析》,刘艺,机械工艺出版社,2000
[4] 《实例解析Delphi7.0应用编程》,李林,张亮,北京希望电子出版社,2000
附录
参考文献
[1] 期赛奎春 陈紫鸿 宋坤 编着, Delphi 数据库开发关键技术与技术实例应用, 人民邮电出版社 2002
[2] 王晟 万科 编着 , Delphi 数据库开发 经典案例解析, 清华大学出版社2005.2
[3] 《Delphi7.0企业级解决方案及应用剖析》,刘艺,机械工艺出版社,2000
[4] 《实例解析Delphi7.0应用编程》,李林,张亮,北京希望电子出版社,2000