销售管理及信息化管理知识分析(共55页).doc_第1页
销售管理及信息化管理知识分析(共55页).doc_第2页
销售管理及信息化管理知识分析(共55页).doc_第3页
销售管理及信息化管理知识分析(共55页).doc_第4页
销售管理及信息化管理知识分析(共55页).doc_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章 销售管理信息系统PowerBuilder是Sybase公司推出的一套强大的数据库应用系统开发工具,它具有完整的客户/服务器体系结构、面向对象的应用程序开发方法以及可视化的开发环境,因而成为近几年流行的数据库前端开发工具。目前,PowerBuilder已经广泛地应用于银行、电信、医疗保健、保险等行业中,为这些行业的数据库应用提供了强大的开发功能。销售管理信息系统作为信息管理系统的一个分支,已逐渐成为企业信息化建设的重要组成部分。为企业管理分布在全国的销售网点提供了一个功能强大、安装部署方便、使用成本低廉、操作简捷的实时销售管理系统。不仅能够促进销售业务的拓展,提高销售运作的效益,也为最终

2、实现有效的“供应链管理”和更加广泛的“电子商务”奠定了基础。本章将以典型的销售管理信息系统为例,向读者详细讲述如何使用PowerBuilder开发企业销售管理信息系统。 4.1 PowerBuilder对数据库开发的支持PowerBuilder作为专业的数据库开发工具,以其开放的体系结构、简洁高效的集成开发环境、强大的数据窗口技术、良好的数据库访问能力和友好的用户界面,日益成为数据库开发人员的得力助手。PowerBuilder支持各种常见的数据库,提供了多种数据库接口。PowerBuilder与数据库的连接是建立在驱动程序之上的,可以通过ODBC或JDBC接口来存储数据,也可以通过像专用的数据

3、库接口直接连接数据库。数据窗口(DataWindow)是PowerBuilder中一个独特的对象,是Sybase的专利技术,PowerBuilder的成功在很大程度上归功于它。数据窗口的功能非常强大,它可以方便而快速地处理数据。通过数据窗口,无需编写复杂的SQL语句,就可以实现对数据库的读写操作。本节将对PowerBuilder与Access数据库的连接,以及数据窗口技术的相关知识进行 介绍。4.1.1 实现PowerBuilder访问Access数据库PowerBuilder与Access的连接方法可以通过ODBC调用软件来实现。下面将介绍如何实现PowerBuilder访问Access中的

4、“联系人管理”数据库。因为是通过ODBC连接Access数据库,则需要定义ODBC数据源,具体方法可参阅2.8.1节内容,也可以通过PowerBuilder自带的工具定义ODBC数据源。(1) 为“联系人管理”数据库注册ODBC数据源“联系人管理”,但只定义数据源是不够的,还要建立PowerBuilder的数据库配置文件(Profile)。单击PowerBar上的DB Profile工具按钮,打开如图4-1所示的对话框。在树状视图列出的数据库接口驱动程序中选择所要连接的数据库类ODB ODBC,右击,在弹出的快捷菜单中选择New Profile命令。图4-1 Database Porfile对

5、话框(2) 打开Database Profile Setup对话框,这里只有Connection选项卡中的Profile Name和Data Source两项参数是必须要指定的。Profile Name 指定配置文件的名称,这里指定为“联系人管理”;Data Source指定对应的ODBC数据源,这里选择前面定义好的ODBC数据源“联系人管理”;UserId和Password分别用于指定连接数据源的账户名和口令,它们是可选的,如图4-2所示。(3) 选择Preview选项卡,测试连接是否成功。设置完毕后,单击OK按钮,数据库配置文件的参数将存放到Windows的注册表中,同时,配置文件的名称也

6、会出现在数据库类ODB ODBC的目录中。然后右击该配置文件,在弹出的快捷菜单中选择Connection命令,PowerBuilder将完成对“联系人管理”数据库的连接,如图4-3所示。连接成功后,就可以在PowerBuilder的开发环境中访问“联系人管理”数据库了。如果要在应用程序中连接Access数据库,可以直接在程序中编写脚本。同样,可以使用ODBC接口的语法,根据上面所填写的配置参数,在Application的Open事件中加入代码。若使用ODBC接口的语法连接数据库,代码如下:/ Profile 联系人管理SQLCA.DBMS = "ODBC"SQLCA.Aut

7、oCommit = FalseSQLCA.DBParm = "ConnectString='DSN=联系人管理;UID=;PWD='"/连接数据库Connect;If sqlca.sqlcode<>0 then Messagebox('连接数据库失败',sqlca.sqlerrtext) Halt CloseElse Messagebox('提示信息', '连接数据库成功') /其他操作,如打开登录窗口等 /Open(w_login)End if 图4-2 Database Profile Setu

8、p 图4-3 Database Profile4.1.2 PowerBuilder的数据窗口技术数据窗口(DataWindow)是PowerBuilder开发数据库应用程序最强有力的工具。数据窗口对象是PowerBuilder数据窗口技术的核心内容,为检索、表现和操作相关数据库或其他数据源中的数据提供了非常方便的手段。开发人员可以通过定义数据窗口对象来指定数据的显示格式、表现风格以及其他数据属性,提高效率并开发出高质量的应用系统。1. 数据窗口对象PowerBuilder中的数据窗口对象主要完成两个方面的工作:一方面,它处理应用程序所需的底层数据源,使开发人员能够方便地操作各种类型的数据源,而

9、不必关心这些数据源的底层调用,如数据源接口API,甚至较为高级的SQL语句也可以由数据窗口对象自动生成;另一方面,数据窗口对象控制着从数据源得到的结果集的显示,负责和应用程序的用户之间的交互,使开发人员不必再在高水平的图形界面设计上花费精力。下面将使用PowerBuilder的数据窗口创建向导来创建一个简单的数据窗口对象。(1) 选择显示风格由于数据窗口对象显示的是数据库表中的信息,在创建数据窗口前对象,PowerBuider要求连接数据库。假设已经成功连接了数据库“联系人管理”(注意:因为PowerBuiler不支持中文字段,这里在数据库中增添了FriendInfo表,在下面的示例中将使用该

10、表进行演示),接下来为数据窗口对象选择所需的显示风格(Presentation Style)。选择File | New命令,弹出New对话框,选择DataWindow选项卡,如图4-4所示。图4-4 选择数据窗口的显示风格在PowerBuilder中,显示风格决定了以什么样的格式显示数据窗口中的数据。图1-32列出了数据窗口对象可用的11种显示风格:Composite,Crosstab,Freeform,Graph,Grid,Group,Label,N-Up,OLE2.0,Rich Text和Tabular,具体介绍可参阅PowerBuilder用户手册中的相关内容。这里选择Freeform样

11、式(因为这种风格应用最为普遍。它允许设计者在数据窗口画板中自由地调整和移动字段对象和字段标签对象),然后单击OK按钮。值得注意的是,如果没有建立并打开任何一个工作区(Workspace),或者工作区中没有任何容纳该数据窗口的PowerBuilder库,那么该按钮是不可用的。(2) 选择数据源接下来PowerBuilder会弹出Choose Data Source for Freeform DataWindow对话框,其中列出了5种类型的数据源,分别是Quick Select,SQL Select,Query,External,Stored Procedure,如图4-5所示。图4-5 选择数据

12、窗口的数据源选择Quick Select类型的数据源。Quick Select数据源是最简单、也是最常用的数据源,该数据源所对应的SQL Select语句完全是由PowerBuilder自动、快速生成的。Quick Select数据源中的数据可以来自一个数据表,或通过外部关键字关联的多个数据表。如果想在预览数据窗口对象或打开预览视图时,让数据窗口对象自动从数据源中重新获取数据,可以选中Retrieve on Preview复选框。(3) 选择并设计数据库表中的字段选中Quick Select后,单击Next按钮,PowerBuilder会弹出Quick Select对话框,如图4-6所示。在这

13、里,PowerBuilder会指导开发者选择并设计数据库表中的字段。图4-6 选择并设计数据库表中的字段在对话框左上侧的Table列表中,列出了所连接上的数据库“联系人管理”中的表。而右上侧的Columns列表用于显示所选中的数据库表中的字段。这里选中数据表FriendInfo,单击Add All按钮,将表中所有的字段添加到对话框底部的列表中。在该列表中,可以定义字段的排序和选择条件。(4) 设置颜色和边框信息在图4-6中单击OK按钮,打开Select Color and Border Settings对话框,如图4-7所示。图4-7 设置颜色和边框信息在该对话框中,可以选择要创建的数据窗口对

14、象的颜色和边界等信息。 Backgroud Color:用于设置整个数据窗口对象的背景颜色。 Text/Color:用于设置字段数据(即字段值)的标签所使用的颜色。 Text/Border:用于设置字段数据(即字段值)的标签所使用的边框。 Columns/Color:用于设置字段标题(即字段名称)的标签所使用的颜色。 Columns/Border:用于设置字段标题(即字段名称)的标签所使用的边框。 Wrap Height:用于设置细目带的高度,只有Freeform显示风格才有这个选项。 Sava as default:用于将上述设置参数的值保存为默认值。选好了这些信息后,单击Next按钮,会打

15、开Ready to Create Freeform DataWindow对话框。这个对话框显示了在创建数据窗口的过程中从设计者那里获取到的各种信息。确认无误后,单击Finish按钮,完成对一个数据窗口对象的创建。(5) 进入数据窗口面板 接下来PowerBuilder会生成刚才所设计的数据窗口对象。这时,在PowerBuilder的工作区中将弹出数据窗口面板。首先给出数据窗口面板中的Design视图,如图4-8所示。图4-8 所生成的数据窗口对象的Design视图Design视图主要用于对数据库进行设计,它分为若干区域,最常用的有页眉/标题(Header)、数据/细节(Detail)、汇总(S

16、ummary)和页脚(Footer)等4个区域。其中在标识带的标签旁有一个向上的小箭头,说明在标识带上方是相应区域,可以用鼠标拖动标识带来改变相应区域的大小。下面来简单解释一下各个区域的作用。 页眉/标题(Header)区域:用来显示栏目名(默认在建立数据库表时为列定义的标签名或列名)和报表的标题名及其他页眉信息,如日期等。 数据/细节(Detail)区域:是数据窗口的主体,它可以用来显示和操作来自数据源的数据。 汇总(Summary)区域:可以通过数据窗口表达式,在汇总区域对显示在数据/细节(Detail)区域中的数据进行汇总计算,如求合计、平均值等。 页脚(Footer)区域:在数据窗口的

17、底部,通常用来显示一些页脚信息,如页码等。图4-8所示的数据/细节(Detail)区域中共有10个对象,其中左边的4个对象为Text(文本)类型的对象,它们仅仅在数据窗口中显示一段文本;而右边的4个对象则为Column(字段)类型的对象,在程序运行时它们所显示的内容将和数据源中对应的字段相关。我们会经常用到的另一个视图是Preview视图,如图4-9所示。这个视图用来在设计时预览数据窗口对象运行时的效果,并可以通过该窗口完成对数据库的一些操作。Preview窗口在数据窗口面板中默认是打开的,如果在当前面板中看不到Preview窗口,可以选择View | Preview命令,打开Preview窗

18、口。图4-9直观地显示了所设计的数据窗口运行时的结果,这对设计很有帮助。图4-9 所生成的数据窗口对象的Preview视图 (6) 保存数据窗口对象一切设计工作完成后,最后就是保持这个新建的数据窗口对象。选择File | Save命令,打开Save DataWindow对话框,如图4-10所示。图4-10 保存数据窗口对象在该对话框中,输入新建的数据窗口的名字,这里输入dw_friendinfo,然后可以在Comments文本框中为该数据窗口添加注释。确认无误后,单击OK按钮。至此,一个完整的数据窗口对象就创建完毕了。2. 数据窗口控件数据窗口控件是数据窗口技术了另一个重要方面,它是数据窗口对

19、象的容器。数据窗口对象定义好之后,一般要与窗口界面上的数据窗口控件相关联,用户通过数据窗口控件操作数据窗口对象,进而操作数据库。数据窗口功能的强大性不仅表现在数据窗口对象具有丰富的显示样式和灵活的数据源,而且还表现在数据窗口控件具有非常多的事件和函数。下面将介绍在用户操作数据窗口时常用到的一些事件和函数。(1) 检索数据连接完数据库后,需要使用Retrieve()函数将数据从数据库检索到数据窗口中。如果为该函数提供了参数,那么这些参数值将用作数据窗口对象的SQL Select语句的提取参数。Retrieve()函数的语法定义如下:dwcontrol.Retrieve(, argument ,

20、argument )其中,dwcontrol是数据窗口控件名,argument(可选项)是向数据窗口对象的SQL Select语句提供的检索参数。函数执行成功时,被检索到的数据将显示在数据窗口控件中,同时函数的返回值是从数据库中检索到的行数,否则该函数返回1。除了可以一开始从数据库中检索数据外,在操作数据库的过程中,任何时候都可以调用Retrieve()函数重新从数据库中检索数据。(2) 添加和删除数据用户通过数据窗口控件操作数据,可以直接以交互方式修改那些可编辑数据;如果要在数据窗口中插入新的行使用InsertRow()函数;如果要删除数据窗口中的行使用DeleteRow()函数。 Inse

21、rtRow()函数该函数在数据窗口控件指定行前面插入一行。如果数据窗口中某些列定义了默认值,那么在新插入行显示之前,相应数据项的值首先使用默认值进行初始化。InsertRow()函数的语法定义如下:dwcontrol.InsertRow(row)其中,dwcontrol是数据窗口控件名;row指定在哪一行插入新行,如果该参数值为0则在数据窗口尾部追加一新行。 DeleteRow()函数该函数将删除数据窗口控件中指定的数据行。DeleteRow()函数的语法定义如下:dwcontrol. DeleteRow(row)其中,dwcontrol是数据窗口控件名;row指定要删除的行,如果该参数值为0

22、则删除当前行。(3) 更新数据用户交互地对数据窗口进行修改,为数据窗口插入或删除行,但这些都只是发生在数据窗口中,对数据库没有产生影响。Update()函数把数据窗口控件中所有数据修改传送到数据库,从而更新数据库中的数据。Update()函数的语法定义如下:dwcontrol. Update( accept , resetflag )其中,dwcontrol是数据窗口控件名;accept(可选项)指定数据窗口控件在更新数据库之前是否自动执行AcceptText()的功能,把文本框中的内容放置到缓冲区中。resetflag(可选项)指定更新数据库后是否自动复位更新标志。在执行Update()函数

23、之前,必须使用SetTrans()或SetTransObject()函数建立数据窗口与数据库的连接。使用SetTransObject()函数建立连接时,应用程序的运行效率更高些,但应用程序本身需要负责事务的提交(使用SQL COMMIT语句)和回滚(使用SQL ROLLBACK)。执行了Update()后,应该检查该函数的返回值,以判断函数的执行是否成功。若函数执行成功时返回1,发生错误时函数返回1。(4) 数据窗口常用事件当用户在数据窗口上选择或单击某一个位置,或者检索、更新数据,或在开始打印报表,结束打印报表,在打印过程中等,都发生相应的事件。可以为这些事件编写程序,在事件触发时完成某些处

24、理。 单击事件(Clicked) 用户在数据窗口控件的任何位置单击时都会触发Clicked事件,典型应用是单击选择要操作的数据行或数据项。该事件提供的参数及其含义如表4-1所示。表4-1 Clicked事件的参数参 数含 义Xpos表示用鼠标单击的位置与数据窗口控件工作区的左边界的位置Ypos表示用鼠标单击的位置与数据窗口控件工作区的上边界的位置Row表示用户单击行的行号Dwo表示用户单击的数据窗口上的对象该事件的返回值的含义如表4-2所示。表4-2 Clicked事件的返回值返 回 值含 义1为默认返回值,继续处理0停止处理,不改变输入焦点 检索事件(RetrieveStart,Retrie

25、veRow和RetrieveEnd)当执行Retrieve()函数进行检索时,与之相关的事件有RetrieveStart,RetrieveRow和RetrieveEnd。RetrieveStart事件发生在数据库窗口检索数据之前(即执行Retrieve()函数前),使用该事件可以为用户提供一个可视化的检索进度,有时还可以用来控制检索的权限。该事件返回值的含义如表4-3所示。表4-3 RetriveStart事件的返回值返 回 值含 义0为默认返回值,继续进行索引1不执行索引2从数据库中检索数据前不重置行和缓冲区RetrieveRow事件发生在没检索一条记录并送到数据窗口的时候,该事件返回值的含

26、义如表4-4所示。表4-4 RetriveRow事件的返回值返 回 值含 义0为默认返回值,继续进行索引1停止检索RetrieveEnd事件在检索结束后触发,一般可以用于清除在前面的事件中打开的任务。 更新事件(UpdateStart和UpdateEnd)当执行Update()更新数据库时,与之相关的事件有UpdateStart和UpdateEnd。UpdateStart事件在用户调用了Update()后,修改数据库数据之前发生,该事件返回值的含义如表4-5所示。表4-5 UpdateStart事件的返回值返 回 值含 义0为默认返回值,继续进行更新1不执行更新UpdateEnd事件在数据窗口

27、完成更新数据库操作后发生,该事件的参数及其含义如表4-6所示。表4-6 UpdateEnd事件的参数参 数含 义Rowsinserted更新操作中新插入数据库的行数Rowsupdated更新操作中更新的行数Rowdeleted更新操作中被删除的行数 错误处理事件(DBError)当操作数据库出现错误时,系统会触发数据窗口的DBError事件,开发人员可以在此编写一些出错处理程序,从而提供系统的容错性。该事件的参数及其含义如表4-7所示。表4-7 DBError事件的参数参 数含 义Sqldbcode包含由数据库厂商提供的特定出错代码Sqlerrtext数据库厂商提供的错误信息文本Slqsynt

28、ax发送到DBMS的发生错误的SQL语句(续表) 参 数含 义Buffer数据窗口缓冲区,错误发生时数据行所在的缓冲区Row在对数据进行操作时发生错误的数据行号该事件返回值的含义如图4-8所示。表4-8 DBError事件的返回值返 回 值含 义1为默认返回值,系统显示出错信息0系统不显示出错信息如果开发人员没有为DBError事件编写程序,那么当发生数据库错误时将显示系统提示的错误信息。如果开发人员为DBError事件编写了处理错误的程序,然后不希望再显示系统提示的错误信息,则应该使事件处理程序返回1(禁止显示系统错误信息)。此外,在数据窗口控件中用于出错处理的事件还有error事件和ite

29、merror事件。 数据处理事件ItemChangedItemChanged事件在编辑、修改数据项时触发,即在用户对数据项有修改动作后,用Enter键、Tab键或箭头键等方法离开当前编辑的数据项时触发(如果新值与原值一样则不触发)。该事件的参数及其含义如表4-9所示。表4-9 ItemChanged事件的参数参 数含 义Row数据项所在的行号DwodwObject类型,修改的对象,一般是数据列Data以字符串形式表示的修改后的数据该事件返回值的含义如图4-10所示。表4-10 ItemChanged事件的返回值返 回 值含 义0为默认返回值,接受新修改的值1不接收新修改的值且不允许改变输入焦点

30、2不接收新修改的值但允许改变输入焦点在数据窗口控件中与数据处理有关的事件还有ItemFocusChanged事件和RowFocus- Changed事件等。(5) 数据窗口排序尽管在定义数据窗口对象时可以指定数据窗口中的数据按某种方式排序,在应用程序中还可以动态改变数据窗口的排序方式。为了使数据窗口排序,要先使用SetSort()函数设置排序方式,然后再使用Sort()函数实施排序操作。SetSort()函数的语法定义如下:dwcontrol. SetSort(format)其中,dwcontrol是数据窗口控件名;format用字符串指定排序条件表达式,表达式包括列名或列号,使用列号时,必须

31、在列号前加上符号。如果format参数为NULL,PowerBuilder会提示用户输入排序条件。Sort()函数的语法定义如下:dwcontrol. Sort()其中,dwcontrol是数据窗口控件名。Sort()函数执行成功时返回1,发生错误时函数返回1。如果在调用Sort()函数之前没有执行SetSort()函数,那么Sort()函数就使用定义数据窗口对象时排序条件。此后,当执行Retrieve()函数检索数据时,如果函数执行成功,那么PowerBuilder会直接完成排序任务。只有在使用SetSort()函数修改了排序条件,或由于应用程序数据处理,或用户输入改变了数据时,才需要执行S

32、ort()函数重新排序数据。如果在数据窗口对象设置了Retrieve As Needed选项,那么Sort()函数的执行将取消这个选项的效果,也就是说,执行Sort()函数时将检索出所有满足SQL Select检索条件的数据。(6) 数据窗口过滤在设计数据窗口对象时可以定义过滤条件,在应用程序中也可以动态定义和改变数据窗口的过滤条件。和排序类似,数据窗口过滤首先需要用SetFilter()函数指定过滤条件,然后再使用Filter()函数实施过滤操作。SetFilter()函数的语法定义如下:dwcontrol.SetFilter(format)其中,dwcontrol是数据窗口控件名;form

33、at用字符串指定过滤条件表达式,表达式包括列名或列号,使用列号时,必须在列号前加上符号。如果format参数为NULL,PowerBuilder会提示用户输入过滤条件;如果format参数为空字符串,则表示去掉过滤条件。Filter()函数的语法定义如下:dwcontrol. Filter()其中,dwcontrol是数据窗口控件名。如果在调用Filter()函数之前没有执行SetFilter()函数,那么Filter()函数就使用定义数据窗口对象时的过滤条件。此后,当执行Retrieve()函数检索数据时,如果函数执行成功,那么PowerBuilder会直接完成过滤任务。只有在使用SetFi

34、lter()函数修改了过滤条件,或由于应用程序数据处理或用户输入改变了数据需要重新过滤数据时,才需要执行Filter()函数。如果在数据窗口对象设置了Retrieve As Needed选项,那么Filter()函数的执行将取消这个选项的效果。(7) 确定数据窗口当前焦点位置在应用程序中经常需要确定当前焦点所在位置,或者将焦点设置到指定位置。获得焦点的函数是GetRow()和GetColumn(),设置焦点的函数是SetRow()和SetColumn()。 GetRow()函数:用来获得数据窗口中当前行的行号。 GetColumn()函数:用来获得数据窗口中当前列的列号。 SetRow()函数

35、:用来将指定行设置为数据窗口控件的当前行。 SetColumn()函数:用来将指定列设置为数据窗口控件的当前列。(8) 从数据窗口中读数据在应用程序中可以将数据窗口指定单元的数据读到变量中,为了适应读取不同类型的数据,PowerBuilder提供了以下函数。 GetItemDate()函数:用来从指定行、列位置读一Data类型的值。 GetItemDateTime()函数:用来从指定行、列位置读一DateTime类型的值。 GetItemDecimal()函数:用来从指定行、列位置读一Decimal类型的值。 GetItemNumber()函数:用来从指定行、列位置读一数值类型(如Decima

36、l,Double,Integer,Long或Real类型)的值。 GetItemString()函数:用来从指定行、列位置读一String类型的值。 GetItemTime()函数:用来从指定行、列位置读一Time类型的值。(9) 写数据到数据窗口在应用程序中也可以将数据写到数据窗口指定行、列的位置。与读数据不同,PowerBuilder只为写数据提供了一个函数SetItem()。SetItem()函数的语法定义如下:dwcontrol. SetItem(row , column , value)其中,dwcontrol是数据窗口控件名;row指定了数据窗口的行;column指定了数据窗口的列

37、;value是要写到数据窗口的任意类型的值,它的类型应该与指定列的数据类型相一致。以上介绍了一些在数据窗口控件中常用的事件和函数。事实上,PowerBuilder为数据窗口控件提供了大约30多个事件和160多个函数,详细介绍请参见有关使用手册。4.2 概 述销售管理信息系统的主要任务是建立维护客户信息档案,统计汇总产品信息,进行销售订单的录入、维护,实现对企业销售合同的过程管理和成本管理,提供各类统计分析和随机查询。图4-11是一个典型的销售管理信息系统的界面。图4-11 销售管理信息系统界面在不同的企业之间,销售管理信息系统会存在一些差异。通常,销售管理信息系统主要功能包括以下方面。(1)

38、客户信息管理。对客户的基本信息(如客户编号、客户名称、联系电话、公司地址等)进行检索、录入和修改。(2) 客户预订管理。对客户的预订信息(如预订的产品名称、数量、截止日期等)进行检索、录入和修改。(3) 产品信息管理。对产品的基本信息(如产品名称、产品型号、计量单位等)进行检索、录入和修改。(4) 合同信息管理。对合同的基本信息(如客户名称、合同内容、签定日期、截止日期等)进行检索、录入和修改。(5) 合同收支管理。对合同的收支信息(如发票号、凭单号、费用金额、收帐金额、经办人等)进行检索、录入和修改。(6) 销售人员信息管理。对企业销售人员的用户信息(如用户名、密码、联系电话等)的检索、录入

39、和修改。从功能描述的内容来看,本实例可以实现6大功能。根据这些功能设计出系统的功能模块,如图4-12所示。图4-12 销售管理信息系统功能模块示意图用户只要根据本单位的具体情况,补充完善上述功能,就可以应用到实际管理当中去。销售管理信息系统作为当前应用非常广泛的数据库应用系统之一,其开发过程包括需求分析、UML系统建模、数据库分析和设计以及各功能模块的实现。在后面几节中将详细讲述。4.3 需 求 分 析需求分析阶段是销售管理信息系统开发最重要的阶段。开发者首先要了解和弄清用户的需求,然后严格地定义该系统的需求规格说明书。需求分析分为两个过程,一是理解需求,二是分析需求。4.3.1 理解需求理解

40、需求是在问题及其最终解决方案之间架设桥梁的第一步。开发者只有和客户充分理解了需求之后才能开始设计系统,否则,对需求定义的任何改进,设计上都必须大量的返工。下面是经过双方调研后得到的需求规格说明。(1) 系统为销售人员建立人事档案,用户进入系统前需要身份验证,用户名、密码输入正确后方可进入系统。(2) 系统为客户建立客户档案,可按客户编号或名称方便查询档案信息,档案信息主要包括客户编号、客户名称、联系电话、公司地址等。销售人员可根据客户的购买意向在系统中制定或修改销售订单,并可按销售单号查询每一张销售订单,订单中需说明产品名称、数量、截止日期等信息。(3) 在系统中,销售人员可根据客户订单的要求

41、签定或修改合同,但逾期的订单不能再用于签定合同。系统进行合同信息的录入、维护,可按合同编号查询合同信息,并可方便地查看合同中产品的详细信息。(4) 系统可以方便地录入和维护合同的收支信息,包括发票号、凭单号、费用金额、收帐金额、经办人、发生日期等信息。(5) 系统可以准确地记录和查询产品信息,包括产品的名称、型号、计量单位等信息。(6) 系统的客户端在Windows平台下运行,服务器端可在Windows平台或UNIX平台下运行。系统需要有较好的安全性和可扩展性,并提供简洁方便的图形用户界面。4.3.2 分析需求分析需求是从客户的需求中提取出软件系统,能够帮助用户解决业务问题,通过对用户业务问题

42、的分析,规划出系统的功能模块,即定义用例。这个步骤是对理解需求的升华,直接关系到该系统的质量。 经过开发者同客户的需求分析后,确定销售管理信息系统的功能模块(用例)包括客户信息管理、客户预订管理、产品信息管理、合同信息管理、合同收支管理和销售人员信息管理。前面描述了销售管理系统的功能模块划分,但没有给出各模块之间的关系。在本系统中,可以把模块分为3个功能集合来描述。(1) 客户/产品信息管理功能集合。该集合只包括客户信息管理、产品信息管理两个模块。主要用于提供客户/产品的基本信息。(2) 销售订单及合同管理功能集合。该集合包括客户预订管理、合同信息管理、合同收支管理3个模块。客户预订模块根据客

43、户的要求制定销售订单;合同信息管理模块再根据销售订单签定销售合同;合同收支管理然后再对销售合同进行收支统计,如图4-13所示。图4-13 销售订单及合同管理功能集合关系图(3) 用户管理及权限功能集合。该集合包括销售人员信息管理和权限控制两个功能模块,虽然权限控制不是一个独立存在的模块,但它贯穿在整个运行过程中。销售管理信息系统的销售人员管理模块需要经过权限授权才可以使用。权限功能模块确定用户角色由销售经理、销售员工组成。其中: 销售主管享有最高权限,可以对销售员工的信息档案进行录入、维护和删除,还可以使用系统中所有业务功能。 销售员工享有业务权限,可以使用系统中的业务功能,但不能对销售人员的

44、信息档案进行管理,只可以修改自己的登录口令。为便于读者掌握,本章主要针对系统中前两个功能集合的开发实现,用户管理及权限功能集合在实例中没有详细实现,有兴趣的读者可自己完善这些功能。4.4 UML系统建模需求分析完成后,接下来的工作是对系统建模。因为UML适合于对逻辑数据库模式和物理数据库模式建模,所以这里对系统进行UML建模。下面将使用Rational Rose对销售管理信息系统进行UML建模。4.4.1 销售管理信息系统的用例分析系统的用例分析是UML建模的第一步。在需求分析中已经确定了销售管理信息系统的各功能模块(用例),包括客户信息管理、客户预订管理、产品信息管理、合同信息和收支管理以及

45、销售人员信息管理,其用例图如图4-14所示。图4-14 销售管理信息系统用例图该用例图标记了销售管理信息系统的所有用例,并且形象地描述了各用例与用户角色之间的关系。用例图所表示的各用例的作用以及各用户角色的权限请参看需求分析部分。4.4.2 销售管理信息系统的域类分析由于类图用于对系统的静态设计视图建模,支持系统的功能需求,即系统要提供的最终服务,因此可以使用类图来进行域类分析。域类分析是建立在用例分析基础上的,根据用例来确定销售管理信息系统中所要用到的类及类间的关系,从而得到类图,如图4-15所示。图4-15 销售管理信息系统类图在域类分析时,设计该系统的类图应注意以下两点。(1) 对数据对

46、象类的确定确定对象类时需要考虑:结合数据库细节,定义了类的标记值;展开这些类的结构性细节,即属性细节。根据销售管理信息系统的用例分析,确定所用到的类主要包括:客户信息(ClientsInfo)、产品信息(ProductsInfo)、销售人员(SalersInfo)、客户预订(OrderSchedule)、客户合同(ContractOrder)、合同产品(ConProduct)、合同收帐(ConIncome)、合同支出(ConCost)。(2) 对各类间关联的确定观察各类之间的关系,如循环关联、一对一关联和n元关联等,从而确定各类间的关联。销售管理信息系统的各类间的关联可根据系统功能用例来确定,

47、比如客户信息(ClientsInfo)类和客户预订(OrderSchedule)类之间是1: n的关联。关联须谨慎确定,以保证数据的完整性,防止以后频繁的修改,影响系统的开发进度。4.4.3 销售管理信息系统的设计在UML中,对系统动态方面建模的5种图有用例图、活动图、状态图、时序图和协作图。在设计阶段,需要使用状态图来描述类的对象的状态及其行为,显示对象的整个生命周期。在本系统中,有状态图的类有客户预订(OrderSchedule)和客户合同(ContractOrder),将两个类的状态图结合在一起如图4-16所示。图4-16 状态图另外,在多数情况下,为了描述用例的动态行为,还需要用到时序

48、图。时序图可以单独使用,来可视化、详述、构造和文档化一个特定对象群体的动态信息,对一个实例的特定控制流进行建模。下面给出各个用例的时序图,以帮助接下来的设计工作。客户预订管理的时序图如图4-17所示。图4-17 客户预订管理时序图合同信息管理的时序图如图4-18所示。图4-18 合同信息管理时序图 合同收支管理的时序图如图4-19所示。图4-19 合同收支管理的时序图可以根据上述时序图画出其他用例的时序图,考虑到本书篇幅所限,这里就不再赘述,请读者自己完成。至此,经过了需求分析,使用UML建模绘出了各用例的用例图、状态图、时序图之后,对销售管理信息系统的具体功能实现也就有了比较明确的认识。接下

49、来需要对系统进行框架设计和详细设计。在进行构架设计时,将销售管理信息系统设计视图中的类组织成一个标准的三级体系结构,如图4-20所示。用户服务包(User Services)中的元素提供了表现信息和收集的可视化界面;业务服务包(Bussiness Services)中的元素负责维护、访问和修改数据;数据服务包(Data Services)中的元素为另两个包的元素搭桥,并包含了管理用户请求(为了执行业务上的任务)的所有类和其他元素,包括支配数据操纵策略的业务规则。图4-20 销售管理信息系统的体系结构然后,就可以进行详细设计了。至此,UML系统建模完成。4.5 系 统 配 置好的数据库系统必然有

50、一个性能价格比最优的系统配置方案。系统配置要根据用户的实际情况设计,主要依据就是系统的吞吐量和系统对稳定性的要求。此外,用户的维护水平也是一个重要的方面。4.5.1 软件配置软件配置主要包括数据库的选择和操作系统的选择。销售管理信息系统的软件配置要根据用户对系统的稳定性要求、系统的容量以及用户的维护水平来确定。(1) 操作系统的选择可以根据用户量的大小选择不同的操作系统。一般情况下,用户对微软Windows界面比较熟悉,因此,建议客户端都使用Windows 2000或者Windows XP操作系统。服务器端操作系统的选择如表4-11所示。表4-11 销售管理信息系统操作系统的选择用 户(人)每

51、秒数据库并发 数据访问记录数稳定性要求维护水平备选操作系统个体零售企业或中小型批发企业(38)1050低差Windows 2000 Professional,Windows XP小型零售企业或中大型批发企业(820)50500中一般Windows NT,Windows 2000 Server,Windows XP中大型零售企业或批发交易中心(20200)5002000较高较好Windows NT,Windows 2000 Server,Windows XP,Linux,UNIX(续表) 用 户(人)每秒数据库并发 数据访问记录数稳定性要求维护水平备选操作系统大型零售企业(1001000)500

52、2000较高较好UNIX大型仓储型综合性批发 企业(1000以上)2000以上高好UNIX为了便于读者学习,本节选择Windows 2000 Server作为服务器端操作系统。(2) 数据库的选择在本节中选择Access数据库。4.5.2 硬件配置硬件配置主要包括客户端硬件的选择和服务器端硬件的选择。销售管理信息系统的硬件配置要根据用户对系统的稳定性要求、系统的容量、系统的吞吐量,以及用户的维护水平来确定。(1) 客户端硬件的选择可以根据稳定性要求选择不同的客户端。一般情况下,对客户端硬件的要求不高,如表4-13所示。表4-13 销售管理信息系统客户端硬件的选择用 户稳定性要求备选客户端办公室

53、销售员客户端低Pentium CPU/64MB/4GB前台零售客户端中Pentium /256MB/20GB(2) 服务器端硬件的选择可以根据数据量和吞吐量的大小选择不同的服务器硬件。服务器端硬件的选择如表4-14所示。表4-14 销售管理信息系统服务器端硬件的选择用 户(人)每秒数据库并发数据访问记录数稳定性要求维护水平备选服务器个体零售企业或中小型批发企业(38)1050低差Pentium /256MB/20GB个人计 算机小型零售企业或中大型批发企业(820)50500中一般至强(Xeon)双CPU/1GB/RAID5 3×72GB(续表) 用 户(人)每秒数据库并发数据访问记

54、录数稳定性要求维护水平备选服务器中大型零售企业或批发交易中心(20200)50500中一般至强(Xeon)双CPU/1GB/RAID5 3×72GB大型零售企业或(1001000)5002000较高较好小型计算机/双机热备或者至强(Xeon)4CPU/4GB/RAID5 6×72GB大型仓储型综合性批发企业(1000以上)2000以上高好小型计算机/双机热备或者至强(Xeon)4CPU/4GB/RAID5 6×72GB当然,这种配置不是绝对的,这里只给出参考配置的范围,具体的配置需要根据用户的需求精确计算。4.5.3 网络配置销售管理信息系统的网络配置一般有如下几

55、种类型。(1) 单机模式:即服务器和客户端在一台计算机上。(2) 百兆模式:计算机网络的速度为百兆,如图4-21所示。图4-21 销售管理信息系统网络百兆配置(3) 千兆模式:计算机网络的速度为千兆。实际上,没有必要给每个节点都配备千兆网络接口,只需要给服务器端配备千兆接口即可,如图4-22所示。图4-22 销售管理信息系统网络千兆配置用户可以根据情况选择不同的网络配置,如表4-15所示。表4-15 销售管理信息系统网络配置的选择用 户(人)每秒数据库并发 数据访问记录数稳定性要求维护水平备选网络方案个体零售企业或中小型批发企业(38)1050低差单机模式小型零售企业或中大型批发企业(820)50500中一般百兆模式中大型零售企业或批发交易中心(20200)50500中一般百兆模式大型零售企业(1001000)5002000较高较好百兆模式大型仓储型综合性批发企业(1000以上)2000以上高好千兆模式4.6 数据库分析UML系统建模工作完成后,接下来的工作就是数据库分析了。数据库分析是整个数据库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论