管理信息系统课程设计

             

管理信息系统课程设计

姓名:          学号:104040xxxx        指导老师:任南

课程名称:管理信息系统课程设计

英文名称:Course Design of Management Information System

总学时:1周

适用班级:1040408xxx

第一章  概述

一.项目背景

企业的仓库物资管理往往是很复杂、很繁琐的。由于所掌握的物资种类众多,订货、管理、发放的渠道各有差异,各个企业之间的管理体制不尽相同,各类统计报表繁多,因此仓库的仓库管理必须编制一套仓库管理信息系统,实现计算机化操作,而且必须根据企业的具体情况制定相应的方案。

根据当前的企业管理体制,一般的仓库管理系统,总是根据所掌握的物资类别,相应分成几个科室来进行物资的计划,订货,核销托收,验收入库,根据企业各个部门的需求来发送物资设备,并随时按期进行仓库盘点,作台帐,根据企业领导和自身管理的需要按月、季度、年度进行统计分析,产生相应报表。为了加强关键物资、设备的管理,要定期掌握其储备,消耗情况,根据计划定额和实际纤毫定额的比较,进行定额管理,使得资金使用合理,物资设备的储备最佳。

仓库的仓库管理是整个物资供应管理系统的核心。因此有必要开发一套独立的仓库管理系统来提高企业工作效率,而所使用的这套仓库管理系统是企业生产经营管理活动中的核心,此系统必须可以用来控制合理的仓库费用、适时适量的仓库数量,使企业生产活动效率最大化。通过对这些情况的仔细调查,开发了下面的仓库管理系统。

二.编写的目的与意义

项目开发目的:仓库管理的主要目标就是通过对仓库所有入出库活动的管理和控制及对仓库数据有效的统计和分析,以保证企业生产中畅通的物流,使决策人员及早发现问题,采取相应措施,调整仓库结构,缩短储备周期,加速资金周转,最大限度地降低仓库占用,同时,通过周期性的仓库盘点,及时补救管理中的漏洞,使仓库管理系统实时地反映企业中各个仓库的现时情况,为各类管理人员从不同侧面提供所需信息,以便协调企业经营收到更大效益,仓库管理系统是协调企业生产经营的基础,其数据的准确性、方便的查询、有效的分析是整个计算机管理系统顺利运行的关键。

项目开发意义:仓库管理系统的开发,能够给企业带来经济上的长远利益。首先,仓库管理系统的开发及使用,给企业节约了人力、财力、物力,有效的控制了企业仓库的运转,加速了资金的周转。其次,仓库管理系统的开发有力的推动了企业的现代化进程,提高了企业的管理水平和现代化水平。使企业在经济蓬勃发展的今天更能灵活的应付各种生产任务和信息资源的开发。对企业利用信息进行生产活动、经营活动提供了有效的帮助。是企业实现现代化的必经之路,是企业实现发展目标的重要手段。

第二章.需求分析

一、问题陈述

随着科学技术的发展,社会进步,计算机迅速的发展,仓库管理的方法也日新月异,以前全是由人管理的方法现存在很多的缺点:管理效率低,劳动强度大,信息处理速度低而且准确率也不够令人满意。为了提高仓库管理效率,减轻劳动强度提高,信息处理速度和准确性;为仓库管理员提供更方便、科学的服务项目。为仓库管理员提供的一种更先进、科学的服务系统。于是我们便选择了由计算机来设计一个仓库管理系统的方案。让计算机对仓库进行自动管理,仓库管理员可以直接在计算机上实现仓库的信息管理,并能在一定程度上实现自动化。我们在现行系统初步调查的基础上提出了新系统目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。

本软件的主要功能就是对仓库进行有效的管理,使之形成完善的应用系统。数据库中要合理设置库存信息表格,用来实现库存信息的录入,查询,更新,统计等功能,使得企业人有较为详细的数据统计和分析。

、功能需求

1、能输入入库单、出库单,在输入过程中,能自动显示其名称、规格、单价,并自算金额,有出错提示。

2、屏幕可显示物品明细台帐。

3、能输出物品的超储或欠储报警

三、系统流图

整个系统的过程是先生成订货报告,然后将采购的货物作入库处理,对入库货物信息加工,将信息整合到仓库信息管理系统中。系统对出库的货物要做出出库信息处理,并生成购货商需求表和出库信息表。利用仓库信息系统生成库存报告,并随之做出库存报表和供货商出入库表。之外,还可以通过查询操作和储存操作对仓库管理信息系统进行有效管理。

四、数据流图

1、  数据分析 数据流程图

库存管理信息系统顶层数据流图

库存管理总图

这张顶层数据流图,反应了财务科检验入库单,并移交给库存管理;领料员将领料单移交给库存管理;保管员将储存清单移交库存管理,凸显了库存管理的重要性。

2、库存管理第二层数据流程图

                            库存管理第二层DFD

第一层数据流图是对顶层数据流图的库存管理进一步细分,使之具体化。在检验员提交检验的入库单后,及时作出入库处理,录入入库账目,汇总到库存帐目;保管员提交了储存物资清单后,作出储存处理并汇总到库存帐目;领料员提交领料单后,及时作出出库管理,并录入出库帐目中,汇总到库存帐目。

第三层数据流图

库存管理第三层DFD

该层是对入库处理的细分,其DFD逻辑已经非常清楚,输入输出数据也是基本数据。详尽地展示了入库处理的过程,步骤。

五、系统设计

1、信息管理系统功能结构图

采用类似于结构化分析的“由大到小”、“自顶向下,逐层分解”的基本思想描述(分解)系统。结构化设计方法,首先以数据流图为基础导出系统模块(功能)结构图。在导出系统模块(功能)结构图的过程中,以独立性、低耦合性、高内聚性、公共模块作为模块划分的原则。先将系统数据流图中的加工转换成模块,再将各大模块继续划分为较小的模块,直到每一模块都是功能单一的模块。

3、  代码设计

(1)数字顺序编码

仓库编号:将仓库编号。例如:01为仓库1、02为仓库2

(2)数字分组顺序编码

编号仓库账本:将仓库和账本顺序编号。例如:01001为仓库1的第一本帐,01002为仓库1的第2本帐,02001为仓库2的第一本帐

唯一性标识:前四位表示年份,后四位表示当年单子形成序列。例如:20130001为20##年接到的第一份订单。

(3)字符编码

仓库类型:名称的首字母。例如:WJ五金库,HG化工库,GJ工具库,BJ备件库

(4)组合编码

账本编号:例如WJ001为五金库的第一本帐,WJ002为五金库的第2本帐,HG001为化工库的第1本帐

客户编号:前2位使用助记码表示市级以上地名,第3、4用分组码位表示主要购买产品类型,最后两位表示序列。例如:zj1001表示镇江地区主要购买10号产品的客户中的第1家。

料单编号:第一位表示料单类别,2、3位表示仓库号,后4位表示时间,最后两位表示形成序列。例如:L01110703表示20##年7月01仓库的 第3个领料单

物资编号:前3位为分组码表示物资用途,3细分类,4位表示规格,例如:5010010008,501表示连接件,001表示螺栓,0008表示螺栓型号为M8

人员编号:前4位表示部门编号,第5、6位为入社年份的后两位数,7、8位用分组码表示职能,最后两位使用序列码,按当年入社顺序排列。例如:cg011103表示采购部门第一小组11年第3个入社的员工

部门编号:第1、2位数采用助记码,表示部门的大的分类,第3、4位数用分组码表示小的分类。例如:cg01表示采购部门第一小组

3、E-R图

这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以

及它们之间的关系,为后面的逻辑结构设计打下基础。根据上面的设计规划出的实体

有采购订单、采购订单明细、采购收货单、采购收货单明细、采购入库单、入库单明

细、销售出库单、出库单明细、供应商、商品库存表、商品、仓库。各个实体的 E-R

图及其关系描述如下:

系统E-R

六、数据库设计

按照课程设计任务书相关数据库表建立数据库并建立关系如下:

七、输入输出设计     

(1)登陆界面

(2)入库单

(3)出库单

(4)明细台账

(5)购进入库单

八、系统安全性设计

系统数据库中包含多个二维表,所以在系统与数据库的连接上,并没有把数据库和系统的

连接直接写入代码,而是通过对服务器端进行系统设置,使数据库名及路径不可见,并通过

ACCESS的数据库安全设置,保证了数据库的安全性。系统根据用户身份不同赋予不同权限,

用户用密码登陆,同样也保证了系统数据的安全性。

第三章、系统的实施

系统实施

完成系统中的主要功能模块。要求应用程序功能架构齐全,并调试成功。

其中,要求实现的系统功能包括:

(1)商品信息录入:输入所需录入的信息的全部内容,点击确定按钮即可将记录添加到

数据库

(2)商品信息查询:登录后再组合框中选择要查询的字段,则文本框中输入如要查询的

内容,点击查询,根基ODBC绑定的数据库,显示数据库中相应表对应的数据信息

(3)商品信息更新:定位要更新的记录,在相应的文本框中输入要更新的信息,点击确

定后,变可以将记录添加到数据库中。

(4)商品信息删除:定位要删除的信息,点击按钮即可删除数据库库中的相应的记录

(5)库存盘点

软件系统周期性的自动检查仓库中商品的种类并记录商品的数量,同时产生表格给管理

员,对于超过最大限度和最小限度的商品分别给予报警,有管理员确认信息无误后,由系统

产生采购哦计划表

(6)库存查询

用户登录系统后,根据需要的的商品的种类输入关键字检索,可以查询不同的仓库的商

品,也可以查询商品在不同的仓库中的库存和价格等。

(7)入库登记:主要对入库信息进行录入操作,即第一大模块的基础。点击添加,输入所有要录入的信息,输入完毕后,将记录添加到数据库

(8)入库查询:主要讲入库表中的所有数据信息查处并显示,这样用户便可以查看显存的货物信息,并以此为据进行货物的采集,及采购表和采购单明细表的录入和更新

(9)出库登记:主要对出库信息进行录入操作,输入出库信息后将记录添加到出库数据库中,及销售输出表和销售出库明细表的有关内容的录入和更新

(10)出库查询:主要讲出库表中的所有数据信息查出兵显示,这样用户便可以查看所有的出货信息

参考资料

[1]<<信息系统课程设计>>  张骏 鄢丹   著  科学出版社

[2]<<MIS管理信息系统>>  林杰斌 刘明德 著  清华大学出版社

管理信息系统课程设计个人总结

姓名:缪晨    学号:1040408115

为期一周的课程设计接近尾声,其中过程很是艰辛。以前没做过软件开发,只在书本上看到过,所以对软件的开发只有一个模糊的概念。通过这一次实训让我们对软件开发有了切身的体会,它是一个相对固定的模式和流程,我们首先做的是通过我们的思路先把流程描绘出来,然后按照流程做,就可以比较规范的完成一个软件的制作。

此次课程设计我知道了光是纸上谈兵是没有用的,唯有理论联系实际,才能更好的把这个系统完成。在这过程中我学会了数据库的创建,修改,删除;了解了运用VFP向数据库添加、删除、更新和查询数据操作。;还有VFP是一门可视化编程中的入门语言,通过学习VFP可以很轻松的学习到可视化编程的知识,而数据库是用来做后台数据的管理,是VFP强有力的后盾,只有两个相辅相成才可以做成一个满意的系统。

在实际设计过程中也碰到了很多难题,首先是VFP已经淡忘,再次复习的过程还是挺艰难的。其次就是VFP各个表单之间的索引联系分的不太清楚,定义数据库的完整性有些疑问,在查阅了很多资料之后才得以解决。还有数据流图、E-R图等的绘制也是相当简单粗糙,但还是感谢学校,老师给我这个锻炼的机会,让我对仓库管理(出库、入库管理等)有了更加深刻的理解,为迎接未来的挑战作出一些准备。

我们把理论应用到实践中去,另一方面积累了更多的操作实战经验。更重要的是我们在思想上有了一次飞跃,面对以后企业的职业要求我们完全有信心去适应,去遵守,更加有信心去作好我们人生道路上的每一件事情。

 

第二篇:小型超市管理信息系统课程设计

小型超市管理系统

1

小型超市管理系统

摘要:小型超市管理系统在现代社会中的应用十分广泛,它是用delphi开发的基于windows的小型数据库管理软件。后台数据库的设计采用SQL server 2000,这些流行软件的应用也使系统更容易维护。该系统使用结构化方法,按照系统调查、系统分析、系统设计、系统实施的步骤,采用结构化的编程方法而完成的。在设计中,对系统总体方案的设计,采用了“自上而下”的方法,而对于信息系统具体业务采用了“自下而上”的方法。尤其是数据窗口这一方便而简洁操纵数据库的智能化对象,从而建立一套完善科学的管理信息系统,对超市进行进货、销售发货、库存等实现全面、动态、及时的管理。因此,该设计的方案基本上满足了系统的业务需求,具有一定的可用性。

关键词: 数据表;SQL server 2000;控件绑定ODBC数据源

1、 需求分析

1.1应用背景

最初的超市资料管理,都是靠人力来完成的。但近几年我国超市经营规模日趋扩大,销售额和门店数量大幅度增加,而且许多超市正在突破以食品为主的传统格局,向品种多样化发展。小型超市在业务上需要处理大量的库存信息,还要时刻更新产品的销售信息,不断添加商品信息,并对商品各种信息进行统计分析。因此,在超市管理中引进现代化的办公软件,实现超市庞大商品的控制和传输,从而方便销售行业的管理和决策,为超市和超市管理人员解除后顾之忧。

1.2设计目标

开发这个系统的目的就是帮助超市管理部门提高工作效率。通过本管理系统软件,能帮助超市工作人员利用计算机,极为方便的对超市的有关数据进行管理、输入、输出、查找等有关操作,使杂乱的超市数据能够具体化、直观化、合理化等。

2、总体方案设计

2.1系统的目标

小型超市管理系统能减少很多不必要的资源,不用象以前那样用冗余的纸张式管理。大大节省了 2

管理人员的工作量,并且计算机的存储与系统快速查询功能大大提高了,提高管理人员的效率。

方便快捷的操作界面,提高工作效率。

2.2系统处理流程

1.启动系统,激活登陆口令界面;

2.通过验证后,对系统进行初始化;

3. 进入系统,通过事件驱动机制激活相应的功能模块,并执行相应的功能;

4.通过关闭系统事件,激活关闭系统模块,退出系统。

系统处理流程如图2.2所示:

小型超市管理信息系统课程设计

图2.2系统处理流程图

2.3系统功能模块设计

通过对上面有关小型超市管理系统的功能需求分析以后,可知小型超市管理系统的功能有:系统管理,商品管理,销售管理。系统功能菜单按以下方法进行设计。

小型超市管理系统

系统管理

用户管理

备份管理

------------

退出系统

3

商品管理 商品管理 商品报表 销售管理

销售商品 销售报表 销售历史 ------------ 今日盘点

系统功能模块设计如图2.3所示:

小型超市管理信息系统课程设计

图2.3 系统功能模块设计层次图

2.4系统设计分析

用户管理:添加用户账号,密码,类型等信息。 备份管理:数据库的备份,数据库还原。

商品管理:商品的信息录入,包括商品的编号、名称、单价、单位等。 销售管理:商品的销售信息,销售金额等。 销售历史:商品的销售时间,销售数量等。 今日盘点:商品的当日销售总额。 3、数据库设计

作为Windows数据库家族中出类拔萃的成员,SQL Server2000这种关系型数据库管理系统能够满足各种类型的企业客户和独立软件供应商构建商业应用程序的需要。SQL的主要功能之一是实现数据库

4

查询。你使用查询来取得满足特定条件的信息。在逻辑查询中,你可以包括特殊的运算符如AND、OR和NOT,你使用这些运算符来选择特定的记录。例如,你可以用AND来限制查询结果。SQL的另一主要功能是数据更新,它通过INSERT、DELETE、UPDATE等语句实现。另外,利用SQL Server我们可以很轻松地进行建表、维护等数据库操作。[2]

3.1 系统数据流程图描述

系统数据流程图分别由图3.1所示。

3.2数据字典:

是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明。

下面是超市管理系统几个数据元素的字典卡片与具体数据卡片的含义:

名称:商品信息表

描述:商品的基本信息

定义:编号+名称+单价+单位+货架号+库存+销售

名称: 商品销售报表

描述:商品销售情况

定义:商品编号+商品名称+价格+数量+销售时间

3.3系统设计具体实现

目的:设计系统结构,根据需求分析给出的功能得出系统体系结构。如划分模块。

目标:通过本系统软件,能帮助超市管理人员利用计算机,快速方便的对商品信息管理进行维护、

小型超市管理信息系统课程设计

输入、输出、查找的所需操作。

运行环境

操作系统:Windows2000/XP或更高的版本。

支持环境:Borland Delphi7。

3.4模块具体分析

商品信息数据录入模块:主要用于商品基本信息的录入与初始化。实体E-R图

5

如下:

小型超市管理信息系统课程设计

小型超市管理信息系统课程设计

3.4 商品信息数据E-R图

3.5出错处理设计

本系统采用了典型的人-机对话模式,若操作失败则弹出对话框(如:出错信息等)。 出错处理对策:用户可以根据弹出的对话框的提示信息进行相应的处理。

安全保密设计:本系统设计了密码验证登陆窗口,具有权限控制。

3.6 程序逻辑

模块功能实现的算法流程图(数据录入)。

图3.6数据录入模块流程图

4.1功能模块简介

6

4.1.1 系统功能维护模块

用户管理:设定本系统的系统操作员,可以一个也可以多个管理员。

口令管理:在不退出系统的情况下,凭借原来的密码,可以修改管理员密码。

退出系统:在使用完系统之后,可以退出系统。

4.1.2 基本资料管理模块

商品资料管理:商品资料的添加、删除、编辑。

资料管理:新增、删除和编辑。

初期建帐:对采集到的数据在后台进行数据库管理。

4.1.3 商品流通管理模块

进货管理:当超市进货的时候,分为以下几个步骤:商品编号录入后台数据库 在价格定义模块中使商品编号码和价格相对应,即使商品编号码一个码一个价格,保存之后,后台数据库中库存自动更新。

库存管理:当进货时,库存自动增加,当销售时,库存自动减少。

库存报警:设定库存的上限和下限值之后,当库存不符合要求的时候,系统报警。

盘点管理:系统自动产生盘点信息。

4.1.4 销售实时控制模块

由于超市要实时交易,所以对交易有一个界面实时控制商品的流出,当操作员扫描一个物品的条形码之后,输入数量,再扫描下一个物品,输入数量,直到客户需要的物品输入完之后,点击一个按钮,系统自动产生每个货物应付款,总应收款,实收款和找零信息,并控制打印机打印一张热敏纸收据。此时,在系统的后台数据库中自动减少相应库存。

4.1.5 报表生成模块

报表生成模块将担当起智能化的报表生成的任务。此模块将利用SQL server 2000和数据库功能,一步一步地完成所要求的动态统计结果。可以完成商品基本信息报表、销售报表等不同条件下任意组合而成的报表,能够以快速、准确等优点取代人工操作,提高了管理工作效率。

4.1.6 查询模块

可以根据某个条件进行查询,如:日期\产品等,查询日销售量\产品销售量等。

4.1.7本软件可以实现的功能如下:

用户管理,包括用户的添加、删除、密码和权限的修改;

商品管理,商品的添加、删除、修改、销量统计和分类查询;商品报表;

销售商品:通过输入货物编号和数量实现商品销售,并提供库存判断、找零计算等功能;销售报表和销售历史;

今日盘点,告诉用户当天的销售额是多少;

5、系统运行与调试

7

5.1数据复制

数据复制实际上是为了提高查询处理的本地性,对同一数据复制多个副本,根据需要将副本存放在不同的电脑中.

数据信息包括商品名、库存量、销售量、商品单价、生产日期、生产厂家等.通过事务提交的方式保证避免由于其它一些电脑故障造成的在数据库更新过程中数据的不一致.

5.2.数据库备份

对数据库进行备份是一项很重要的工作,本系统采用在启动数据上传模块的同时自动备份数据库的方法,从而既提高了数据库的可靠性和安全性,同时也减轻了数据库管理员的工作,降低了备份的复杂性.当数据库中的数据遭到破坏需要恢复时,可以从自动备份中恢复.

本系统利用SQL DMO(DatabaseManagement Object)实现数据库备份.SQLDistributed Management Framework

(SQL—DMF,即SQL分布式管理框架)是一组集成API 和服务, 用与管理SQLServer.SQL_DMO是SQL_DMF中的一个组件.本系统实现数据库备份程序示例如下:

Dim mySvr As New SQLDMO.SQLServer

Dim myDB As SQLDMO.Database

DimmyBKAs New SQLDMO.Backup

Dim myDv As New

SQLDMO.BaekupDevice

Set mySvr=New SQLDMO.SQLServer

mySvr.Connect”DAQING”,”8a”,”1111”

生成SQLSerwr对象,传递服务器名、用户名和口令

Set myDB=mySw.Databases(”DAQING”)

MyDv Type=SQLDMODevice_DiskDump备份设备的类型

myDv.Name = ”ZxDB_ baekup”

myDv.Physical.location=”D:\中心数据库备份\ZxDB—back.Up”’ 备份设备的逻辑位置 On ErrorResume Next

mySvr.BackupDevices.Add myDv

On Error GoTo 0

myBK.Database=”DAQING”

myBK.Devices = “ZxDB_backup”

myBK.Initialize = True

8

myBK.SQLBackup mySvr

mySvr.

BackupDcwices.Remove ”DB_backup”

mySw.DisConnect

5.3 系统测试

5.3.1 测试的意义

在开发软件系统的过程中,面对错综复杂的问题,人的主观认识不可能完全符合客观现象,与工程密切相关的各类人员之间的通讯和配合也不可能完美无缺,因此,在软件生命周期的每个阶段都不可避免地会产生错误。在每个阶段结束之前通严格的技术审查,尽可能早的发现所有差错。此外,在编码过程中还会不可避免地引入新的错误。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。

5.3.2 本系统的测试结果

登录界面测试

运行本软件后,首先出现登录界面,后台连接数据库成功后,进入登录界面。测试时,先输入错误的用户名或密码,此时系统给用户提示小相应的错误信息,然后输入不同的正确用户名和密码,系统根据不同的用户给予不同的使用权限,这在进入程序主界面后,从菜单中可以看出使用权限的不同。无操作权限的菜单暗色显示,不可操作。因此测试成功,功能基本实现。[3]

各子系统的测试

进入主界面后,对不同的子系统进行操作。先正确输入各项信息,点击运行按钮后,发现系统运行正常,结果显示正确;然后错误输入某些信息,或者进行某些错误操作,发现有的能够给出错误提示,并返回让用户重新操作,有的则直接显示错误信息,而后自动退出系统。这说明软件的某些地方容错性不够完善,影响了它的易操作性。于是着手进行修改。后重新进行测试,结果显示软件的容错性基本达到了用户要求。经过对各个子系统全部功能项的不同测试,结果显示以基本达到设计要求。

6.结束语

经过1个多月的调查与研究,小型超市管理系统基本完成。它的特点是实时性强,能够帮助超市管理人员及时方便地管理超市信息。但由于开发者水平有限,仍存在系统功能不够完善,设计步骤欠完整等不足,这些需要在今后的设计中加以改进。

参考文献

[1]许志清,赵博.精通SQL SERVER 2005 数据库系统管理. [M].北京:北京电子工业出版社,2006

[2] 王晟, 马里杰 SQL Server数据库开发经典案例解 [M].北京:清华大学出版社,2006

9

[3]常利,肖立洪 Delphi 6 编程--数据库篇 [M].中国电力出版社,2002

附 录:主要程序清单

用户登陆

unit UnitLogin;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ADODB, jpeg, DB;

type

TForm1 = class(TForm)

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Image2: TImage;

Image3: TImage;

Image4: TImage;

Image5: TImage;

ADOQuery1: TADOQuery;

procedure FormCreate(Sender: TObject);

procedure Image5MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

procedure Image4Click(Sender: TObject);

procedure Edit2KeyPress(Sender: TObject; var Key: Char);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure Image2Click(Sender: TObject);

procedure Image3Click(Sender: TObject);

private

10

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

LogTimes: Integer;

UserType: String;

ExeRoot: String;

DataFile: String;

UserName: String;

implementation

uses UnitMain;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

LogTimes := 0;

end;

procedure TForm1.Image5MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

application.Terminate;

end;

procedure TForm1.Image4Click(Sender: TObject);

var

ADOQuery1: TADOQuery;

begin

if (edit1.Text<>'') and (edit2.Text<>'') then

begin

ChDir(ExtractFilePath(Application.ExeName));

ChDir('..');

ExeRoot := GetCurrentDir;

11

DataFile := GetCurrentDir+'\Data\dzyv1.mdb';

ADOQuery1:= TADOQuery.Create(self);

ADOQuery1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DataFile+';Persist Security Info=False;';

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from t_user where user_name="'+edit2.Text+'" and user_pass="'+edit1.Text+'" ');

ADOQuery1.Open;

if ADOQuery1.Eof then

begin

LogTimes := LogTimes+1;

if messagebox(handle,'您填写的用户或密码有错误!是否重新输入?','出错提示',mb_iconinformation+mb_okcancel)=IDcancel then application.Terminate;

if LogTimes>=3 then

begin

messagebox(handle,'对不起,登录次数超过3次,程序自动关闭!','非法登录',MB_ICONWARNING+mb_ok);

application.Terminate;

end;

end

else

begin

UserType := ADOQuery1.FieldByName('user_type').AsString;

UserName := ADOQuery1.FieldByName('user_name').AsString;

LogTimes := 0;

ADOQuery1.Free;

Form1.Hide;

form2.ShowModal;

end;

end

else

messagebox(handle,'您没有填写用户和密码!','出错提示',mb_iconinformation+mb_ok) 12

end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

if key=#13 then Edit1.SetFocus;

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if key=#13 then Image4Click(self);

end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

begin

if (ssleft in shift) then

begin

releasecapture;

perform(wm_syscommand, $f012, 0);

end;

end;

procedure TForm1.Image2Click(Sender: TObject);

begin

application.Terminate;

end;

procedure TForm1.Image3Click(Sender: TObject);

begin

application.Minimize;

end;

end.

数据库还原,备份

unit UnitDbBuckup;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 13

Dialogs, ComCtrls, Gauges, ExtCtrls, StdCtrls;

type

TFrameDbBuckup = class(TFrame)

Image1: TImage;

GroupBox1: TGroupBox;

Image2: TImage;

Image3: TImage;

SaveDialog1: TSaveDialog;

Gauge1: TGauge;

OpenDialog1: TOpenDialog;

procedure Image2Click(Sender: TObject);

procedure Image3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

implementation

uses UnitLogin;

{$R *.dfm}

procedure TFrameDbBuckup.Image2Click(Sender: TObject);

var

i: integer;

begin

try

if not savedialog1.Execute then exit;

if FileExists(savedialog1.FileName+'.mdb') then

begin

if Messagebox(handle,'存在数据库重名,是否覆盖?',mb_iconquestion+mb_yesno)=IDNo then Exit;

end

else

14 ','存盘选项

begin

for i:=Gauge1.MinValue to Gauge1.MaxValue do

Gauge1.Progress := i;

CopyFile(PChar(DataFile),PChar(SaveDialog1.FileName+'.mdb'),True);

Messagebox(handle,'数据库备份成功!','备份数据',mb_iconinformation+mb_ok); end;

except

Messagebox(handle,'警告:数据库备份失败!','存盘错误',mb_iconwarning+mb_ok); end;

end;

procedure TFrameDbBuckup.Image3Click(Sender: TObject);

var

i: integer;

begin

try

if not opendialog1.Execute then exit;

if Messagebox(handle,'警告:现有数据有可能丢失,确定还原?','确定还原',mb_iconquestion+mb_yesno)=IDNo then Exit;

for i:=Gauge1.MinValue to Gauge1.MaxValue do

Gauge1.Progress := i;

Messagebox(handle,'数据库还原成功!','还原数据',mb_iconinformation+mb_ok); except

Messagebox(handle,'警告:数据库还原失败!','读取错误',mb_iconwarning+mb_ok); end;

end;

end.

商品信息

unit UnitProdList;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, ExtCtrls, StdCtrls, Mask, DBCtrls;

15

type

TFrameProdList = class(TFrame)

Image1: TImage;

ADOQuery1: TADOQuery;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

GroupBox1: TGroupBox;

Image2: TImage;

Image3: TImage;

Image4: TImage;

Label1: TLabel;

DBEdit1: TDBEdit;

Label2: TLabel;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

Label3: TLabel;

DBEdit4: TDBEdit;

Label4: TLabel;

DBEdit5: TDBEdit;

Label5: TLabel;

Image5: TImage;

Image6: TImage;

GroupBox2: TGroupBox;

Label6: TLabel;

Edit1: TEdit;

Image7: TImage;

Label7: TLabel;

procedure Image2Click(Sender: TObject); procedure Image5Click(Sender: TObject); procedure Image3Click(Sender: TObject); procedure Image4Click(Sender: TObject); procedure Image6Click(Sender: TObject); 16

procedure Image7Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char); function IsAllNum(s:string):bool;

procedure Label7Click(Sender: TObject);

procedure DBEdit1KeyPress(Sender: TObject; var Key: Char); procedure DBEdit2KeyPress(Sender: TObject; var Key: Char); procedure DBEdit3KeyPress(Sender: TObject; var Key: Char); procedure DBEdit4KeyPress(Sender: TObject; var Key: Char); procedure DBEdit5KeyPress(Sender: TObject; var Key: Char); private

{ Private declarations }

public

{ Public declarations }

end;

implementation

{$R *.dfm}

procedure TFrameProdList.Image2Click(Sender: TObject); begin

{添加商品}

Image2.Enabled := False;

Image3.Enabled := False;

Image4.Enabled := False;

DBEdit1.Color := clWhite;

DBEdit2.Color := clWhite;

DBEdit3.Color := clWhite;

DBEdit4.Color := clWhite;

DBEdit5.Color := clWhite;

DBEdit1.Enabled := True;

DBEdit2.Enabled := True;

DBEdit3.Enabled := True;

DBEdit4.Enabled := True;

DBEdit5.Enabled := True;

17

Image5.Visible := True;

Image6.Visible := True;

DBEdit1.SetFocus;

ADOQuery1.Append;

end;

procedure TFrameProdList.Image5Click(Sender: TObject);

begin

{提交数据}

if (DBEdit1.Text<>'') and (DBEdit2.Text<>'') and (DBEdit3.Text<>'') and (DBEdit4.Text<>'') and (DBEdit5.Text<>'') then

ADOQuery1.Post

else

if messagebox(handle,'您的输入不正确(空值),放弃输入?','检查输入',mb_iconquestion+mb_yesno)=IDyes then

ADOQuery1.Cancel

else

exit;

Image2.Enabled := True;

Image3.Enabled := True;

Image4.Enabled := True;

DBEdit1.Color := $00FFF0DC;

DBEdit2.Color := $00FFF0DC;

DBEdit3.Color := $00FFF0DC;

DBEdit4.Color := $00FFF0DC;

DBEdit5.Color := $00FFF0DC;

DBEdit1.Enabled := False;

DBEdit2.Enabled := False;

DBEdit3.Enabled := False;

DBEdit4.Enabled := False;

DBEdit5.Enabled := False;

Image5.Visible := False;

Image6.Visible := False;

18

end;

procedure TFrameProdList.Image3Click(Sender: TObject);

begin

if messagebox(handle,'删除的商品不能被恢复,是否删除?','确认删除',mb_iconquestion+mb_yesno)=IDyes then ADOQuery1.Delete;

end;

procedure TFrameProdList.Image4Click(Sender: TObject);

begin

{修改用户}

Image2.Enabled := False;

Image3.Enabled := False;

Image4.Enabled := False;

DBEdit1.Color := clWhite;

DBEdit2.Color := clWhite;

DBEdit3.Color := clWhite;

DBEdit4.Color := clWhite;

DBEdit5.Color := clWhite;

DBEdit1.Enabled := True;

DBEdit2.Enabled := True;

DBEdit3.Enabled := True;

DBEdit4.Enabled := True;

DBEdit5.Enabled := True;

Image5.Visible := True;

Image6.Visible := True;

DBEdit1.SetFocus;

ADOQuery1.Edit;

end;

procedure TFrameProdList.Image6Click(Sender: TObject);

begin

{放弃提交}

ADOQuery1.Cancel;

Image2.Enabled := True;

19

Image3.Enabled := True;

Image4.Enabled := True;

DBEdit1.Color := $00FFF0DC;

DBEdit2.Color := $00FFF0DC;

DBEdit3.Color := $00FFF0DC;

DBEdit4.Color := $00FFF0DC;

DBEdit5.Color := $00FFF0DC;

DBEdit1.Enabled := False;

DBEdit2.Enabled := False;

DBEdit3.Enabled := False;

DBEdit4.Enabled := False;

DBEdit5.Enabled := False;

Image5.Visible := False;

Image6.Visible := False;

end;

procedure TFrameProdList.Image7Click(Sender: TObject);

var

sqlstr:string;

begin

if Edit1.Text<>'' then

begin

sqlstr := 'select * from t_prod where prod_name like "%' + Edit1.Text + '%"'; if IsAllNum(Edit1.Text) then sqlstr := sqlstr + ' or prod_id=' + Edit1.Text; ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add(sqlstr);

ADOQuery1.Open;

end

else

messagebox(handle,'请输入查询条件!','检查输入',mb_iconwarning+mb_ok) end;

procedure TFrameProdList.Edit1KeyPress(Sender: TObject; var Key: Char);

20

begin

if key=#13 then Image7Click(self);

end;

function TFrameProdList.IsAllNum(s:string):bool;

var

i:integer;

begin

for i := 1 To Length(s) do

if (s[i] < '0') or (s[i] > '9') then

begin

IsAllNum := False;

Exit;

end;

IsAllNum := True;

end;

procedure TFrameProdList.Label7Click(Sender: TObject);

var

sqlstr: string;

begin

sqlstr := 'select * from t_prod';

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add(sqlstr);

ADOQuery1.Open;

end;

procedure TFrameProdList.DBEdit1KeyPress(Sender: TObject; var Key: Char); begin

if key=#13 then DBEdit2.SetFocus;

end;

procedure TFrameProdList.DBEdit2KeyPress(Sender: TObject; var Key: Char); begin

if key=#13 then DBEdit3.SetFocus;

21

end;

procedure TFrameProdList.DBEdit3KeyPress(Sender: TObject; var Key: Char); begin

if key=#13 then DBEdit4.SetFocus;

end;

procedure TFrameProdList.DBEdit4KeyPress(Sender: TObject; var Key: Char); begin

if key=#13 then DBEdit5.SetFocus;

end;

procedure TFrameProdList.DBEdit5KeyPress(Sender: TObject; var Key: Char); begin

if key=#13 then Image5Click(Self);

end;

end.

22

相关推荐