订单管理系统-文档Word文件下载.doc
《订单管理系统-文档Word文件下载.doc》由会员分享,可在线阅读,更多相关《订单管理系统-文档Word文件下载.doc(26页珍藏版)》请在冰豆网上搜索。
5.客户信息浏览,浏览系统中所有的客户信息,可以使用制定的关键字来查询相应的客户,并且可以使用报表的形式将查询结果输出。
6产品信息浏览,浏览系统中所有的产品信息,可以使用制定的关键字查询相应的产品,并且可以使用报表的形式将查询结果输出。
7.用户权限管理,本系统中是吸纳了简单的用户权限管理,普通用户仅能修改密码,而管理员则可以添加、修改、删除用户。
(二)系统功能模块划分
根据上述的系统功能分析,可以得出如图1-1所示的系统功能模块图
订单管理系统
信息管理模块
用户管理模块
信息浏览模块
产品信息管理
客户信息管理
订单信息管理
添加用户
修改用户
修改密码
删除用户
用户登录
产品信息浏览
客户浏览
三、系统分析与设计
(一)数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏直接对应用系统的效率,以及实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
设计数据库系统时应该充分了解用户各个方面的需要,包括现有的及将来可能增加的需求。
数据库设计一般包括如下几个步骤。
l数据库需求分析
l数据库概念结构设计
l数据库逻辑结构设计
(二)数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询,这要求数据库结构能充分满足各种信息的输出和输入。
收集基本数据、数据结构,以及数据处理的流程,组成一份详尽的数据字典,为后面的设计打下基础。
通过上述系统功能分析,正对一般客户管理信息系统的需求,总结出如下的需求信息。
l订单信息涉及产品信息和客户信息。
l产品信息和客户信息中需要存在唯一字段。
l产品信息和客户信息可以按几种常用的信息查询。
l产品信息、客户信息、订单信息应该可以增加、修改、删除和打印输出。
l用户信息中的用户名必须是唯一的。
l用户信息中必须包含权限信息。
经过上述系统功能分析和需求总结,我们考虑到将来功能上的扩展,涉及如下面所示的数据项和数据结构。
n产品信息,包含编号、品名、单位、单价、类别、产地以及说明等。
n客户信息,包含编号、名称、联系人、电话、地址、邮编等。
n订单信息,包含订单编号、产品编号、产品数量、客户编号、联系人、联系电话、送货地址、下单日期以及说明等。
n用户信息,包含账号、密码、姓名、部门以及管理等。
(三)数据库概念结构设计
得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础,这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
本次课程设计中,根据上面的设计规划处的实体有:
订单信息实体、客户信息实体、产品信息实体,以及用户信息实体,各实体具体的描述E-R图如下。
“订单信息”、“客户信息”和“产品信息”实体之间的E-R图如图1-2
客户信息
订购
产品信息
订单信息
“订单信息”实体的E-R图如图1-3所示
订单编号
订单总额
下单日期
客户编号
产品编号
“产品信息”实体的E-R图如图1-4所示
编号
品名
单位
单价
“客户信息”实体的E-R图如图1-5所示
名称
联系人
地址
“用户信息”实体的E-R图如图1.6所示
用户信息
账号
密码
姓名
部门
权限
(四)数据库逻辑结构设计
数据库的概念结构设计完毕后,就可以将上面的数据库概念结构转化为实际数据模型,也就是数据库的逻辑结构。
使用VisualFoxPro开发直接使用其自带的数据库,订单管理系统中使用的各个数据表的字段设置如下。
用户信息表(UserInfo)的字段设置如表1-1所示。
产品信息表(ProductInfo)的字段设置如表1-2所示
客户信息表(ClientInfo)的字段设置如表1-3所示
订单信息表(OrderInfo)的字段设置如表1-4所示
(五)创建订单管理信息系统项目
在VisualFoxPro项目主窗口中选择【文件】中新建命令,选择新建项目OFA。
项目创建后即可打开项目管理器,如表单1-1所示。
四、程序设计
(一)创建可视化类
信息管理模块中所使用的表单中都使用到了移动记录工具栏和命令按钮工具栏,若分别添加,其属性和代码将是一件很繁琐的事,因此在本次课程设计中将首先创建可视类,然后在表单中添加创建的可视化类,就减少了工作量,又保证了组员间风格的一致。
在本次试验中共需创建“移动记录工具栏”类和“命令按钮工具栏”这两个类。
1、创建“移动记录工具栏”类
(1)创建可视类
打开项目管理器,切换到“类”选项卡,单击该选项卡的新建,在“新建类”对话框的“类名”文本框中输入可视化类的名称“MOVERECORD”,在“派生于”下拉列表框中选择要新建的基类“COMMANDGROUP”,单击“存储于”文本框右侧的按钮,打开“另存为”对话框,选择存储位置,以及可视类库的名称,并将可视类库命名为“ADMINBUTTON”设置完毕后,单击“确定”就完成了可视类的创建,打开了类设计器。
在可视化类中设置类的“BUTTONCOUNT属性值为4,并修改类及类中按钮的属性如表1-5所示。
“移动记录工具栏”类的属性设置
控件名称
属性
属性取值
moverecord
button
4
height
40
width
320
按钮
Frontbold
.T.
Forecolor
0,0,255
Height
30
65
cmdtop
Caption
首记录
tooltiptext
到第一条记录
cmdpre
上一个
到上一条记录
Cmdnxt
下一个
到下一条记录
cmdbtm
末记录
到最后一条记录
可视化类“移动记录工具栏”及其中的控件后,可视类的效果如下图1-7
(2)添加代码
在本次实例中当鼠标移动到按钮上方时鼠标指针变为自定义形状,这需要在按钮的“MOUSEMOVE”事件中添加代码来指定鼠标的指针形状,代码如程1.1所示
LPARAMETERSnButton,nShift,nXCoord,nYCoord
This.MousePointer=99 &
&
鼠标指针为自定义形状
This.MouseIcon=SYS(5)+"
h_point.cur"
&
指定鼠标的指针
“首记录”按钮的click代码
GOTOP &
到首记录
THISFORM.REFRESH &
刷新表单
“移动记录工具栏”类中的“上一个”按钮的click代码如程1.2所示
*如果到了数据表首部
IFBOF().OR.RECNO()=1
MessageBox("
已到首记录"
48,"
移动记录"
)
ELSE
*如果数据指针不位于数据表首部
SKIP-1
ENDIF
*刷新表单
THISFORM.REFRESH
“移动记录工具栏”类中的“下一个”按钮的click代码如程1.3所示
*如果记录指针位于数据表末尾
IFEOF()orRecNO()=RecCount()
已到末记录"
*如果记录指针不位于数据表末尾
ELSE&
记录指针下移
SKIP
THISFORM.REFRESH()
“末记录”按钮的click代码如程1.4所示
GOBUTTOM &
到数据末尾
THISFORM.REFRESH &
“移动记录工具栏”类中的4个按钮设定是,根据表单中数据记录指针的位置不同,禁用或者启用不同的按钮,所以需将判断及操作代码添加到“移动记录工具栏”类的“refresh”事件中,具体代码如程1.5所示
*如果数据表为空或者只有一条记录
IFBOF().AND.EOF().OR.RECCOUNT()=1
THIS.Cmdtop.ENABLED=.F.
THIS.Cmdpre.ENABLED=.F.
THIS.Cmdnxt.ENABLED=.F.
THIS.Cmdbtm.ENABLED=.F.
*如果在记录指针在数据表的末尾
IFRECNO()=RECCOUNT().OR.EOF()
THIS.Cmdtop.ENABLED=.T.
THIS.Cmdpre.ENABLED=.T.
*如果记录指针在数据表的首部
IFRECNO()=1.OR.BOF()
THIS.Cmdtop.ENABLED=.F.
THIS.Cmdpre.ENABLED=.F.
THIS.Cmdn