《外贸企业业务管理系统的设计和实现—GF2000系统的开发.docx》由会员分享,可在线阅读,更多相关《外贸企业业务管理系统的设计和实现—GF2000系统的开发.docx(44页珍藏版)》请在三一办公上搜索。
1、厦门大学软件学院本科毕业论文本科毕业论文(科研训练、毕业设计)题 目:外贸企业业务管理系统的设计和实现 GF2000系统的开发姓 名:肖凯学 院:软件学院系:专 业:软件工程年 级:2003级复合型学 号:01062044指导教师(校内):苏淑文 职称:助教指导教师(校外): 职称:2005 年 5 月 30 日 外贸企业业务管理系统的设计和实现 GF2000系统的开发摘要 随着信息技术的推广应用与信息资源的开发利用,信息管理也益发普及,企业的信息化管理一直是个热门的话题,虽然有一大部分企业已经实现信息化管理,但是仍然有相当一部分的中小型企业在这方面比较落后,为了提高公司的运营效率,它们迫切希
2、望能改变现状。GF2000系统就是根据恒好外贸公司,业务,数据管理信息化建设的要求而开发的。系统采用B/S体系结构,上层是基于Web浏览器的客户端;中间层是应用服务器,用于处理业务逻辑,与数据库服务器交互数据,使用Asp技术,MVC设计模式进行开发;底层是数据库服务器,用于建立对数据库的数据请求,使用SQL Server 2000数据库。系统基于外贸的业务流程,为公司建立起统一的数据管理平台,对公司的产品,业务,财务进行电子化,网络化管理。本系统有很高的稳定性、较强的安全性以及对于用户使用的一定的方便性,适用于各类中小型外贸公司的使用。关键词存储过程 触发器 设计模式abstract With
3、 the popularization of Information Technology and the exploitation of Information Resources, Information Administration is also developing in a remarkable speed. Information Administration in enterprises is always a hot issue in the IT field. Although Information Administration is already realized i
4、n many enterprises nowadays ,a large number of Small to Medium Enterprises (SME) are still backward in it. In order to improve the operation efficiency, these enterprises are eager to change the present situation. With Good Forever Foreign Trade Companys requirement of Constructing Information Admin
5、istration for its service and data, GF2000 system comes into being. The system uses B/ S system structure, the upper formation is based on the Web browser customer end; The intermediate level applies the server, uses to process the service logic, with the database server interactive data, uses Asp a
6、nd Model-View-Controller design pattern and so on; The first floor is the database server, uses to establish to data requested with the database, uses the SQL Server 2000 database. The system base on the service process of the company establish the uniform data management system for company, advance
7、 the product management, service management, and finance management to networked and incorporated level. This system has the very high stability, a stronger secure as well as regarding the user certain convenience, is suitable to each kind of Small to Medium Foreign Trade Company uses.Keyword stored
8、 Procedure Trigger design pattern 目录第一章 引言11.1 项目背景11.2论文的组织结构2第二章 GF2000需求分析与总体设计32.1业务流程32.2系统目标62.3功能模块分析62.3.1首页62.3.2系统管理72.3.3产品管理72.3.4项目管理72.3.5样品管理72.3.6订单管理82.3.7出货管理82.3.8收汇管理82.4软硬件平台82.4.1系统开发的硬件环境82.4.2系统开发的软件环境92.5 基本技术描述102.5.1 Asp语言及其优点102.5.2 SQL语言112.5.3存储过程122.5.4触发器13第三章 系统基础函数库
9、的开发153.1 MVC设计模式介绍153.2基于MVC模式的库函数的开发16第四章 项目的设计与实现184.1 系统界面184.2 产品管理204.2.1本模块的数据表设计214.2.2 模块各子功能234.2.2.1 产品管理234.2.2.2 配件管理294.3 样品管理344.3.1 本模块的数据表设计344.3.2 模块各子功能374.3.2.1 样品管理374.3.2.2 寄件管理37总结39致谢39第一章 引言1.1 项目背景信息技术的日益普及,不但改变了人们的生活、学习和工作方式,也改变了人们的思维方式,在整个社会信息化进程越来越快的今天,随着信息技术的推广应用与信息资源的开发
10、利用,信息管理也益发普及。管理信息化正在往广度和深度发展,并进入了管理活动与业务活动综合信息化的新阶段。在企业中,基于信息管理所开发出来的管理信息系统是是一个一体化的系统,也就是说管理信息系统进行企业的信息管理是从总体出发,全面考虑,保证各种职能部门共享数据,减少数据的冗余度,保证数据的兼容性和一致性,只有信息的集中统一,信息才能成为企业的资源,才能极大提高企业的运作效率,才能利用信息控制企业的行为,帮助企业实现其规划目标。随着我国进一步加快对外开放的步伐和放宽我国企业对外贸易的经营门槛,我国的所有企业将不可避免地把参与国际贸易作为增强企业竞争能力的重要部分,中国将会有无数的企业和个人关注外贸
11、,开始进入外贸领域,开展多种形式的对外贸易活动,将会掀起一股不可抗拒的中国外贸旋风.无需多说,大家都会关注外贸,大批的外贸公司如雨后春笋般的冒出,其中的许多公司由于在信息化管理上做的不够,许多数据信息的共享只是停留在文件级甚至是手工记录状态上,降低了公司的运作效率,制约了公司的发展,出于公司的利益出发,迫切需要实现公司业务的信息化管理。 GF2000就是为恒好外贸公司开发的业务管理系统,根据恒好公司工作中主要使用电子邮件、Word、Excel,数据多以文件形式存在,是分立、不完整和冗余的,查询慢,效率低还容易引发错误等现状,系统基于外贸的业务流程,建立起统一的数据管理平台,涵盖了外贸企业运营的
12、各关键环节、工作流程和控制点。充分体现了工作流程管理(Work Process Management),整体资源管理(Total Resources Management)和企业质量管理(Total Quality Management)的经营模式,科学的将各部门、人员功能在工作流程中有机的结合起来,最终达到提高外贸企业的核心竞争力和效益的目的。 1.2论文的组织结构第1章 引言,详细介绍GF2000系统的开发背景,并指出了本系统的开发意义。第2章 GF2000需求分析与总体设计,详细介绍了外贸的业务流程,系统的开发目标,对系统各个功能模块进行简要的说明,对系统的开发的软硬件平台进行详细的介绍
13、,重点说明了为何使用B/S体系结构,最后介绍了开发本系统的相关技术,主要从Asp语言和数据库编程两个方面进行说明。 第3章 系统基础函数库的开发,本系统在开发过程采用了MVC设计模式,此处详细介绍了MVC设计模式的概念,特点,同时介绍了一些比较重要的本系统的基础函数库中的函数。第4章 项目的设计的和实现,由于本系统工作量比较大,工作也比较繁琐,此处只介绍了本人所负责的模块,产品管理和样品管理模块的设计和实现。第二章 GF2000需求分析与总体设计2.1业务流程外贸的基本业务流程如图2.1所示: 客户询盘报价获得订单下生产订单业务审批下达生产通知验货制备基本文件租船订仓安排拖柜,委托报关获得运输
14、文件交单图 2.1外贸基本业务流程图详细说明:1. 客户询盘:一般在客户下订单之前,都会有相关的OrderInquiry给业务部,做一些细节上的了解。 2. 报价:业务部及时回复客人查询,确定货物品名,型号,生产厂家,数量,交货期,付 款 方式,包装规格及柜型等,PerformaInvoice给客户做正式报价。 3. 得到订单:经过洽谈,收到客户正式的订单purchaseOrder。4. 业务审批:业务部收到订单后,首先做出业务审核表。按出口合同审核表的项目如实填写,尽可能将各种预计费用都列明。合同审批需附上客人订单传真件,与工厂的收购合同。审核表要由业务员签名,部门经理审批,再交管理部人员审
15、核后才能执行。如金额较大的,或有预付款和佣金等条款的,要经公司总经理审批才行。合同审批之后,制成销售订单,交给部门进程员跟进。5. 下生产订单:得到客人的订单确认后,给工厂下订单,安排生产计划。 6. 下达生产通知:业务部在确定交货期后,满足下列情况可下达生产通知,通知工厂按时生产:6.1:如果是L/C付款的客户,通常是在交货期前1个月确认L/C已经收到,收到L/C后应业务员和单证员分别审查信用证,检查是否存在错误,交货期能否保障,及其他可能的问题,如有问题应立即请客人改证。6.2:如果是T/T付款的客户,要确认定金已经到账。6.3:如果是放帐客户,或通过银行D/A等方式收汇等,需经理确认。7
16、. 验货7.1 在交货期前一周,要通知公司验货员验货。 7.2 如果客人要自己或指定验货人员来验货的,要在交货期一周前,约客户查货并将查货日期告知计划部。7.3 如果客人指定由第三方验货公司或公正行等验货的,要在交货期两周前与验货公司联系,预约验货时间,确保在交货期前安排好时间。确定后将验货时间通知工厂。8. 制备基本文件。工厂提供的装箱资料,制作出口合同,出口商业发票,装箱单等文(应由业务跟单员制作,交给单证员)。(以下是船务流程)9. 租船订仓:9.1 如果跟客人签定的合同是FOBCHINA条款,通常客人会指定运输代理公司或船公司。应尽早与货代联系,告知发货意向,了解将要安排的出口口岸,船
17、期等情况,Q确认工厂的交货能否早于开船期至少一周以前,以及船期能否达到客人要求的交货期。应在交货期两周之前向货运公司发出书面定仓通知(INGORDER),通常在开船一周前可拿到定仓纸。9.2 如果是由卖方支付运费,应尽早向货运公司或船公司咨询船期,运价,开船口岸等。经比较,选择价格优惠,信誉好,船期合适的船公司,并告诉业务员通告给客人。如客人不同意时要另选客人认可的船公司。开船前两周书面定仓,程序同上。9.3 如果货物不够一个小柜,需走散货时,向货代公司定散货仓位。拿到入仓纸时,还要了解截关时间,入仓报关要求,等内容。9.4 向运输公司定仓时,一定要传真书面定仓纸,注明所定船期,柜型及数量,目
18、的港等内容,以避免差错。 10. 安排拖柜:10.1 货物做好并验货通过后,委托拖车公司提柜,装柜。拖车公司应选择安全可靠,价格合理的公司签定协议长期合作,以确保安全及准时。要给拖车公司传真以下资料:定仓确认书/放柜纸,船公司,定仓号,拖柜委托书,注明装柜时间,柜型及数量,装柜地址,报关行,及装船口岸等。如果有验货公司看装柜,要专门声明,不能晚到。并要求回传一份上柜资料,列明柜号、车牌号、司机及联系电话等10.2 传真一份装车资料给工厂,列明上柜时间、柜型、订仓号、订单号、车牌号以及司机联系电话。10.3 要求工厂在货柜离开工厂后尽快传真一份装货通知给业务部,列明货柜离厂时间、实际装货数量等,
19、并记装箱号码和封条号码作为提单的资料。要求工厂装柜后一定要记住上封条。11. 委托报关:在拖柜同时将报关所需资料交给合作报关行,委托出口报关及做商检通关换单。通常要给报关留出两天时间(船截关前)。委托报关时,应提供一份装柜资料,内容包括所装货物及数量,口岸,船公司,定仓号,柜号,船开截关时间,拖车公司,柜型及数量,本公司的联系人和电话等。12. 获得运输文件:12.1 最迟在开船后两天内,要将提单补料内容传真给船运公司或货运代理。补料要按找L/C或客人的要求来做,并给出正确的货物数量,以及一些特殊要求等,包括要求船公司随同提单出的船证明等。12.2 督促船公司尽快出提单样板及运费帐单。仔细核对
20、样本无误后,向船公司书面确认提单内容。如果提单需客人确认的,要先传真提单样板给客人,得到确认后再要求船公司出正本。12.3 及时支付运杂费,付款后通知船公司及时取得提单等运输文件。支付运费应做登记。 13. 交单:13.1 采用L/C收汇的,应在规定的交单时间内,备齐全部单证,并严格审单,确保没有错误,才交银行议付。13.2 采用T/T收汇的,在取得提单后马上传真提单给客人付款,确认受到余款后再将提单正本及其他文件寄给客人。13.3 如果T/T收汇的,要求收全款才能做柜的,要等收款后再安排拖柜。拿到提单后可立即寄正本提单给客人。 14. 业务登记:每单出口业务在完成后要及时做登记,包括电脑登记
21、及书面登记,便于以后查询,统计等。 15. 文件存档:所有的文件、L/C和议付文件必须留存一整套以备查用。16. 单证员平时应注意收集运价变动,船期,航线,等信息,为业务员报价提供帮助2.2系统目标GF2000系统的开发目的就是要基于外贸业务流程这个基础,具体结合恒好外贸公司的实际情况,建立起统一的数据管理平台,实现对恒好外贸公司的产品,业务,财务的电子化,网络化管理,用于解决公司各种数据流转不畅通,客户的需求信息不能快速响应,缺乏科学系统的数据分析等突出弊端,突破制约公司发展的瓶颈,使公司的营运目标具有更强的可操作性,最大限度地实现公司资源的合理利用,以期达到公司效率最高化,公司利润最大化。
22、2.3功能模块分析根据公司的业务特点与业务流程,系统划分为:首页、产品管理、项目管理、样品管理、订单管理、出货管理、收汇管理和系统管理共8个模块。系统管理对应系统管理员的工作,产品管理主要对应产品部门的工作,项目管理主要对应与客户交互的过程,而订单模块则包含下单后的所有工作,是跟单员、QC主管、船务、单证员和财务的工作重点。下面分别就各个模块进一步分析功能:2.3.1首页对公司的实时信息进行维护管理:包括今日动态,公司通知,通讯录。对业务过程中所使用的参考资料进行维护和管理:包括域名对照,国际区号,世界时间,色值对应,单位换算。2.3.2系统管理系统管理是GF2000的框架基础模块,主要对应的
23、是系统管理员的工作,主要包括用户管理和基础数据的维护,功能分解如下图所示。用户管理包括:用户定义、角色定义、用户角色分配、模块角色定义、登陆注销、密码修改、操作日志。基础数据包括:系统信息定义、国家地区定义、数据维护。系统消息管理包含一个在产品、项目、订单模块中通用的信息沟通功能。2.3.3产品管理产品管理是GF2000的核心基础模块,系统所有的业务都将基于它而建立。它对应的是产品部门的工作,主要包括标准产品的管理、配件管理和配件仓库管理,供应商资料的维护。标准产品的管理主要包括:产品目录的维护、产品类别维护、产品资料维护。配件管理包括:配件类别维护、配件信息维护。配件仓库管理包括:配件出库、
24、生产计划单(配件入库单),采购建议。供应商资料维护:包括产品的供应商和配件的供应商。 2.3.4项目管理项目管理是GF2000的基础业务模块,对应的是业务部门的日常工作。它基于产品管理的数据,记录与客户的每一次交互信息,主要包括客户管理、项目跟踪、报价管理。客户管理包括:客户资料维护、客户联系人维护。项目跟踪包括:项目信息维护、项目产品维护、项目阶段更新。报价管理包括:项目产品报价、项目产品箱规。2.3.5样品管理样品管理与项目管理的联系相当密切,样品管理是一个项目的基本组成部分之一,样品管理主要包括样品管理与寄件管理两个部分。样品管理包括:样品信息维护、样品图标信息、样品状态跟踪、出货图片管
25、理。寄件管理包括:寄件信息, 寄件明细。2.3.6订单管理订单管理是GF2000中核心业务模块,主要包括订单信息和单证管理。订单信息包括:订单资料维护、订单产品信息、包装资料维护、出货图片管理、标志图案管理。单证管理包括:形式发票、商业发票、催款单、装箱单信息2.3.7出货管理出货管理是GF2000的基础业务模块,对应的是船务部门的日常工作。它主要用于对货代公司以及对整个出货过程的信息管理,包含货代管理与出货管理。货代管理包括:货代信息。出货管理包括:出货信息,出货柜号,装柜信息。2.3.8收汇管理收汇管理是GF2000的基础业务模块,对应的是财务部门的日常工作,同时需要业务部门的协作。它主要
26、用于对水单的处理,各项费用及收汇差额的分析,对订单的结汇,包含水单管理与结汇管理。水单管理包括:水单信息,水单认领。出货管理包括:各项费用、额外损失、结汇管理。2.4软硬件平台2.4.1系统开发的硬件环境恒好公司现有一个20台机器的局域网,通过网关ADSL上网。网络拓扑如图2.2所示:图 2.2GF2000网络拓扑图机器配置如下: 处理器:Inter Pentium 4 1.6或更高 内存:256MB或更高 硬盘空间:40GB或更高机器性能较好足够应付本系统的运行需求。2.4.2系统开发的软件环境现在的贸易软件多采用客户端/服务器(简称C/S)结构,这种结构的优点是它的界面功能强大,数据的安全
27、性较高,同时可以支持工作流。但它的界面比较复杂,需要经过一段时间的培训熟悉过程,每个客户端均需要安装,造成安装维护的成本较高,同时由于数据的开放性与模块的可扩展性较差,很难在已开发好的系统上增加修改功能。相比之下,基于浏览器/服务器(简称B/S)结构的软件则在界面的易用性、数据的开放性、系统的可扩展性以及维护的低成本上优于C/S结构,但它的缺点在于界面无法实现复杂的功能,并且较难支持工作流的实现。基于公司现有的网络结构,结合业务的实际应用情况,我们认为GF2000需要一种易用、稳定、开放可扩展和易维护的方案。而GF2000并没有特别复杂的界面功能需要实现,一些即时计算的功能完全可以在网页上实现
28、,同时它对工作流的需求可以转为另一种由用户主动查看并操作的列表实现,另外数据的开放性可以通过数据库的安全措施来进行约束,以保证系统的安全性。因此系统采用B/S结构,后台基于SQL Server 2000数据库,前台采用ASP开发,完成后的系统将可在浏览器上完成绝大部分的数据显示与操作,另外涉及到需要输出的文档均以文本文件、邮件、Word文档或Excel文档的形式,方便易用。除去辅助开发所需的一些工具软件外,系统所需的软件如表2.1所示:软件类型软件名称服务器应用平台Windows 2000 Professional数据库软件SQL Server 2000、IIS5.0开发工具UltraEdit
29、客户端应用平台Windows 2000/98应用软件IE、Office系列表 2.1 系统所需的软件列表图 2.5 基本技术描述2.5.1 Asp语言及其优点Microsoft Active Server Pages 即我们所称的 ASP ,其实是一套微软开发的服务器端脚本环境, ASP 内含于 IIS中 , 通过 ASP 我们可以结合 HTML 网页、 ASP 指令和 ActiveX 元件建立动态、交互且高效的 WEB 服务器应用程序。有了 ASP 你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML 中的脚本程序。当程序执行完毕后,
30、服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。 以下罗列了 Active Server Pages 所独具的一些特点:1. 使用 VBScript 、 JScript 等简单易懂的脚本语言,结合 HTML 代码,即可快速地完成网站的应用程序。 2. 无须 compile 编译,容易编写,可在服务器端直接执行。 3. 使用普通的文本编辑器,如 Windows 的记事本,即可进行编辑设计。 4. 与浏览器无关 (Browser Independence), 用户端只要使用可执行 HTML 码的浏览器,即可浏览 Active Server Pages
31、所设计的网页内容。 Active Server Pages 所使用的脚本语言 (VBScript 、Jscript) 均在 WEB 服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。 5.Active Server Pages 能与任何 ActiveX scripting 语言相容。除了可使用 VBScript 或 JScript 语言来设计外,还通过 plug-in 的方式,使用由第三方所提供的其他脚本语言,譬如 REXX 、 Perl 、 Tcl 等。脚本引擎是处理脚本程序的 COM(Component Object Model) 物件。 6.Active Server Pages
32、的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。 7. 可使用服务器端的脚本来产生客户端的脚本。 8. 物件导向( Object-oriented )。 9.ActiveX Server Components(ActiveX 服务器元件 ) 具有无限可扩充性。可以使用 Visual Basic 、 Java 、 Visual C+ 、 COBOL 等编程语言来编写你所需要的 ActiveX Server Component 。2.5.2 SQL语言SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约
33、瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL 语句接
34、受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。 这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。 SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。SQL为许多任务提供了命令,包括: 查询数据 在表中插入、修改和删除记录 建立、修改和删除数据对象 控
35、制对数据和数据对象的存取 保证数据库一致性和完整性 以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。2.5.3存储过程 存储过程是存储在服务器上的一组预编译的Transact-SQL语句,是一种封装重复任务操作的方法,支持用户提供的变量,具有强大的编程功能。它类似于DOS系统中的BAT文件。在BAT文件中,可以包含一组经常执行的命令,这组命令通过BAT文件的执行而被执行。同样的道理,可以把要完成某项任务的许多Tran
36、sact-SQL语句写在一起,组织成存储过程的形式,通过执行该存储过程就可以完成这项任务。存储过程与BAT文件又有差别,即存储过程已经进行了预编译。 在频繁访问数据库的系统中,开发者都乐于使用存储过程,这与存储过程的下列优点是分不开的。 存储过程可以与其他应用程序共享应用程序的逻辑,从而确保一致的数据访问和操纵。 存储过程提供了一种安全机制。如果用户被授予执行存储过程权限,那么即使该用户没有访问在执行该存储过程中所参考的表或视图的权限,该用户也可以完全执行该存储过程而不受到影响。因此,可以创建存储过程来完成所有的增加、删除等操作,并且可以通过编程控制上述操作中对信息的访问权限。 存储过程执行速
37、度快,便于提高系统的性能。由于存储过程在第一次执行之后,其执行规划就驻存在过程高速缓冲存储区中,在以后的操作中,只需从过程高速缓冲存储区中调用编译好的二进制形式存储过程来执行。 使用存储过程可以减少网络传输时间。如果有一千条Transact-SQL语句的命令,一条一条地通过网络在客户机和服务器之间传送,那么这种传输所耗费的时间将很长。但是,如果把这一千条Transact-SQL语句的命令写成一条较为复杂的存储过程命令,这时在客户机和服务器之间网络传输所需的时间就会大大减少。2.5.4触发器触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,
38、而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如UPDATE、 INSERT、 DELETE 这些操作时,SQL Server 就会自动执行触发器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。除此之外,触发器还有其它许多不同的功能:(1) 强化约束(Enforce restriction)触发器能够实现比CHECK 语句更为复杂的约束。 (2) 跟踪变化Auditing changes触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化。(
39、3) 级联运行(Cascaded operation)。触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。例如,某个表上的触发器中包含有对另外一个表的数据操作(如删除,更新,插入)而该操作又导致该表上触发器被触发。 (4) 存储过程的调用(Stored procedure invocation)。为了响应数据库更新触,发器可以调用一个或多个存储过程,甚至可以通过外部过程的调用而在DBMS( 数据库管理系统)本身之外进行操作。由此可见,触发器可以解决高级形式的业务规则或复杂行为限制以及实现定制记录等一些方面的问题。例如,触发器能够找出某一表在数据修改前后状态发生的差异,并根据这
40、种差异执行一定的处理。此外一个表的同一类型(INSERT、 UPDATE、 DELETE)的多个触发器能够对同一种数据操作采取多种不同的处理。第三章 系统基础函数库的开发3.1 MVC设计模式介绍MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。 视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视
41、图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。 模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅
42、仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保(持续化)。比如将一张订单保存到数
43、据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。 控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。MVC设计模型如图3.1所示: 图3.1 MVC设计模型3.2基
44、于MVC模式的库函数的开发开发本系统的过程中我们考虑到如果用Asp语言直接向数据库发送请求并用HTML显示,开发速度会比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性,产品设计弹性力度很小,很难满足用户的变化性需求,于是我们想到了MVC设计模式。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。 首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。 其次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规层则
45、的改变只需改动MVC的模型。 再次,控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。 最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。 下面介绍本系统基于MVC设计模式,而开发的一些基础库函数的实例。GF2000的视图由函数Bill_View(ATableName, ID)实现, 函数Bill_View(ATableName, ID)将模型的数据呈现给用户,参数ATableName为某一数据库表名,ID为该表中某条记录的标识,Bill_
46、View将显示这条记录。GF2000的控制器由函数Bill_Controller(List_Page)实现,主要是一些控制按钮及客户端的验证函数。控制按钮包括:编辑、删除、保存、保存继续等,客户端验证函数主要用来验证用户输入的数据是否合法。 GF2000的模型由函数Bill_Model(DBTableName)实现,根据用户执行的不同操作,如增加、删除、修改、查询,将调用不同的子函数。Bill_Model接收控制器Bill_Controler的请求,根据控制器传递的消息,如ADD_SAVE,EDIT_SAVE,DELETE等调用相应的子函数,Bill_Insert (ATableName),Bill_Update (ATableName)或Bill_Delete(ATableName, ID),最后函数Bill_View将模型的当前数据展现给用户。由于具体的函数实现比较繁琐,这里就不列举代码了。