




免费预览已结束,剩余49页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业论文(科研训练、毕业设计)题 目:唯信机械MIS系统分析和设计商品资料设置模块与库存管理模块姓 名:学 院:软件学院系:专 业:软件工程年 级: 学 号:指导教师(校内): 职称: 指导教师(校外): 职称:年 月 日唯信机械MIS系统分析和设计商品资料设置模块与库存管理模块摘要随着21 世纪信息时代的到来,全球经济一体化进程加快,市场竞争日趋激烈,可以说,企业竞争力的高低已经完全取决于企业对信息的获取和处理能力。企业的生存和发展必须依靠正确的决策,而决策的基础就是信息。企业要准确、快速地获取和处理信息,信息化是必然的选择。针对中小机械销售行业以单据为基础的运营方式的特点,我们设计小组通过对市场的充分调查后,力求设计开发出这套唯信机械MIS系统,通过对其进货、销售、存货的业务处理,管理机械行业的日常流程,以期帮助该行业实现信息化。本文共分四个章节,首先是引言;第一章介绍了系统的总的方案设计,描述了设计要素及设计方法,并对系统的总体规划进行了介绍;第二章介绍了项目开发流程(项目总体设计);第三章是项目的详细设计,主要介绍我负责的四个模块的设计方案;第四章介绍开发中的难点以及解决方案;最后是结束语,总结了我在开发过程中的心得与体会。关键词 三层 应用服务器 客户端Planning and Designing of WININFO Mechanical MIS System Product Infomation Management and Storage Management ModulesAbstract With the arrival of the information age of 21st century, the process of integration of global economy is accelerated, have fiercer market competitions becoming , we can say level , enterprise of competitiveness depend on enterprise obtaining and processing ability to message totally already. The existence and development of enterprises must depend on correct decision , and the foundation of decision is the information. Enterprises should obtain and deal with information accurately , fast, the informationization is the inevitable choice.Sell the trade characteristic taking document as foundation operation way to medium and small machinery , we design group pass abundant investigation in market , is it is it develop these suit mechanical MIS system which name is WININFO to design to make every effort, through stocking up to it , sale , business treatment of the stock , manage the daily procedure of the mechanical trade, in the hope of helping this trade to realize the informationization.This text divides four chapters altogether, first is the foreword ; Chapter one introduced the systems total programming that the grosss project design, described the design main factor and design method, and introduced the systems total programing;Chapter two introduced the relevant technology of the project and introduction to the software; Chapter three recommended the project to develop the procedure; Chapter four introduce the difficult point and solution while developing ; And last, as a conclusion,it summarized my gains and experience in the course of developing .Keyword Three-tier application server client1目录目录1引言1第一章方案设计21.1 设计原则21.1.1 整体性保障原则:21.1.2 合适性原则:21.1.3 界面设计人性化原则21.1.4 模块化设计原则21.1.5 权限细分原则21.2 运行架构21.2.1 系统的开发环境31.3 相关技术和运行架构介绍31.3.1 Borland Delphi 7.0介绍31.3.2 Microsoft SQL Server 2000简介41.3.3 三层应用体系结构介绍25第二章 系统总体规划72.1需求概述72.2系统功能72.2.1功能模块概述72.2.2功能描述72.3流程图82.3.1登录流程82.3.2进入各个模块的流程9第三章模块的具体实现103.1应用服务器的搭建103.1.1界面效果103.1.2应用服务器的设计流程113.1.3应用服务器的详细设计133.2客户端架构的搭建153.2.1界面效果163.2.2客户端的设计流程183.2.3客户端的详细设计203.3商品资料设置223.3.1商品类别设置233.3.2计量单位设置273.3.3库存单位换算设置283.3.4商品库存设置303.4库存管理323.4.1库存明细查询333.4.2进货入库34第四章技术难点、解决方案444.1客户端与应用服务器的通信问题444.2关于使用临时表的问题454.3单据自动编号的问题45结论46致谢语47参考文献481唯信机械MIS系统分析和设计商品资料设置模块与库存管理模块引言面临21世纪的机遇和挑战,如何高效运作获取新的经济增长点已成为企业关注的焦点。实现信息化是企业由“传统企业”转变为“现代化企业”的根本途径。而要实现上述变革,就需要依靠高效率的、强有力的信息系统。企业只有实现了经营决策层、管理调度层、命令执行层的信息有机集成,才能及时调整管理策略,最大限度地满足市场需求,达到企业现代化集成管理的目的。唯信机械行业MIS系统将机械企业供应链(进、销、存)溶为一体,以提升企业管理水平、减少运营成本、简化业务流程并实现企业效益最大化为目的,将物流、资金流与信息流以及人力资源结合在一起,从而对企业进行统一系统的管理,实现资源的优化配置。系统将管理与软件有机的结合起来,以简捷的操作、规范的流程、实用的功能、稳定的性能、鲜明的行业特点,帮助企业实现管理信息化。第一章方案设计1.1 设计原则1.1.1 整体性保障原则:系统的开发采取“总体规划、分步实施”的开发策略。即在开发之初,小组先进行总体的规划(即总体分析与总体设计),然后在总体规划的指导与约束下分组分步开发。1.1.2 合适性原则:高水平的设计师高就高在设计出恰好满足客户需求的软件,并且使开发方和客户方获取最大的利益,而不是不惜代价设计出最先进的软件。11.1.3 界面设计人性化原则人性化的界面设计,简单明了的操作方式,使一般用户无需培训即可使用。1.1.4 模块化设计原则系统采用模块化的设计模式,使功能结构具有很好的伸缩性,设计人员还可根据实际情况扩展模块。1.1.5 权限细分原则系统采用独特的权限管理设计,将现实中的组织结构与网络教学中的角色定义有机地统一起来,将权限设置直接应用于平台权限管理之中,对应的权限与关系自动建立。1.2 运行架构1.2.1 系统的开发环境技术平台基于MIDAS的多层数据库应用结构系统架构三层C/S架构开发工具Borland Delphi 7.0数据库SQL Server 2000 SP3服务器操作系统开发过各采用WindowXP Professional 操作系统,系统实施后可采用系统运行架构如图所示1-1所示表1-1系统开发环境图1-1系统运行架构图1.3 相关技术和运行架构介绍1.3.1 Borland Delphi 7.0介绍Delphi是windows平台上最好的RAD(Rapid Application Development,快速应用开发)工具之一。它提供了一个完全可视化的开发环境,以直观的界面、简洁的语言、强大的功能和开放的系统为特色。它的出现,使得开发软件成为了一种乐趣。在RAD开发工具当中,Delphi的能力恐怕是最为全面的。用Borland的话来说,它具有开发任何Windows程序的能力。由于其开放而优秀的控件体系,Delphi任何能力方面的不足都可以由其控件来增强。在Delphi中,与数据库相关的控件大致可分为三类:1. 数据存取控件,用于从数据库中取得数据和修改数据库中的数据2. 数据控制控件,将数据存取控件的功能以可视的方式提供给用户使用3. 报表控件,提供数据库中的报表打印、预览等功能可贵的是每一类控件都有多种实现。使用Delphi,程序员能够方便地利用BDE、ODBC和ADO等数据引擎,能够利用dbExpress或SQL Link访问多种商业数据库管理系统。尽管能够处理如此多种多样的数据连接,但是程序员使用它们的方式都是类似的。这要归功于Delphi面向对象的开发方式,在大多数时候,Delphi程序员可以忽略各数据库的细微不同之处,并采用相同的数据控制控件来使用它们。1.3.2 Microsoft SQL Server 2000简介 Microsoft SQL Server 2000的体系结构Microsoft SQL Server 2000是基于客户端/服务器模式的新一代大型关系型数据库管理系统(DBMS),它在电子商务、数据仓库和数据库解决方案等应用中起着重要的核心作用,可为企业的数据管理提供强大的支持,对数据库中的数据提供有效的管理,并采用有效的措施实现数据的完整性及数据的安全性。Microsoft SQL Server 2000是一个基于C/S模式的关系数据库管理系统,如图1-2所示。图1-2 SQL Server 2000 C/S模式结构示意图Microsoft SQL Server 2000采用C/S体系结构把所有的工作负荷分解为服务器上的任务和客户端任务。客户端应用程序负责商业逻辑和向用户提供数据,服务器负责对数据库的数据进行操作和管理。客户端(又称前台)应用程序包含显示与用户交互的界面,而对数据库中的数据进行处理描述成Transact-SQL语句(简称T-SQL语句),并将T-SQL语句送至服务器端(又称后台),后台的SQL Server执行该T-SQL语句后,产生查询结果,并将结果返回给客户端的应用程序。T-SQL是SQL Server使用的一种数据库查询和编程语言,它除了包含标准的SQL语句外,还增加了一些非标准的SQL语句,使其功能更强大。使用T-SQL语言可建立、修改、查询和管理关系数据库。 存储过程在SQL Server中,可以定义子程序存放在数据库中,这样的子程序称为存储过程,存储过程是数据库对象之一。使用存储过程的优点如下:1.存储过程在服务器端运行,执行速度快。2.存储过程执行一次后,其执行规划就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。3.确保数据库的安全。使用存储过程可以完成所有的数据库操作,并可通过编程方式控制上述操作对数据库信息访问的权限。自动完成需要预先执行的任务。存储过程可以在系统启动时候自动执行,而不必在系统启动后再进行手工操作,大大方便了用户的使用,可以自动完成一些需要预先执行的任务。用户存储过程只能定义在当前数据库中,可以使用SQL命令语句或SQL Server的企业管理器创建存储过程1.3.3 三层应用体系结构介绍2面对不断增长的应用和信息服务需求,传统的软件设计模式C/S(Client/Server) 变得越来越不适应这种增长,三层应用体系结构的产生,就是为了解决越来越庞大和复杂的客户端使得网络通信和软件的维护变得非常困难和昂贵所带来的问题。在三层应用体系结构中,整个系统是由三个部分组成: 客户机、应用服务器和数据库服务器。客户机上只需安装应用程序,它负责处理与用户的交互和与应用服务器的交互。应用服务器负责处理应用逻辑,具体地说就是接受客户机方应用程序的请求,然后根据应用逻辑将这个请求转化为数据库请求后与数据库服务器交互,并将与数据库服务器交互的结果传送给客户机方的应用程序。数据库服务器软件根据应用服务器发送的请求进行数据库操作,并将操作的结果传送给应用服务器。由于上述三层在逻辑上是相互独立的,因此,在某一层内所进行的变更,对于其他的两层而言是透明的,所以这种结构可以很好地适应复杂而又频繁变化的商业应用系统。通过了解用户对系统的实际需求,软件的规模以及实现效果,选择三层分布式应用体系结构,最终目的是为用户提供一套较完整和实用可靠的行业管理软件。三层应用软件体系结构如图13所示。 图1-3三层应用软件体系结构图多层分布式系统主要的优点有:1、业务规则集中在传统的客户/服务器系统中,因为数据处理工作在每个客户端,所以每个客户应用程序都要知道业务处理规则。这不仅增加了客户端的大小,使之不是“瘦”客户;而且还增加了软件开发人员进行软件改进的难度。当客户端的程序进行更新时,如果客户端太多的话,很难保证每个客户端的程序及时更新,从而使他们不能执行一致的业务规则,结果会导致数据的逻辑错误。把业务规则放在应用服务器上,则只需要创建和维护一个业务规则的副本,每个使用该应用服务器的用户都执行相同的业务规则。2、瘦客户端传统的客户/服务器系统因为对数据的处理大部分放在客户端,所以一般都加重了自身的负担。这样不仅增长了可执行文件,而且使客户机的负担增长,对它的工作性能有很大的影响。以一个访问SQL Server数据库的Delphi应用程序为例,客户需要安装访问数据库所需的BDE、SQL Links或ODBC,以及访问SQL Sever所需的动态链接库,安装完这些文件后,还要进行正确的配置,这使安装过程变得非常复杂,客户机对这么多的任务也很难承受。如果使用Midas,数据访问由应用服务器来完成,与用户的交互则由客户端应用程序来完成。这意味着只需要发布客户应用程序和一个用来访问服务器的接口就可以了,而且客户端的一部分任务分给了应用服务器,很大程度上减轻了客户端的负荷,使它可以更好地为用户服务,这就是瘦客户体系结构。3、错误处理如果由于不可预料的环境导致服务器不能使用,那么就可以动态切换到备份服务器而不需要重新编译客户或服务器端的应用程序,保证系统的正常运行。这种功能正趋向于成为分布式系统不可缺少的一部分功能,多层分布式系统已经初步具有这种能力了。4、均衡负载采用分布式数据处理过程,将一个应用程序要处理的任务分在几台机器上进行处理,从而提高了程序执行的性能。当多个客户端应用程序访问服务器时,显然要大量占用服务器资源。有两种平衡服务器的方法,静态负载平衡和动态负载平衡。对于静态负载平衡,需要增加另一台服务器,让一半用户使用服务器A,另一半使用服务器B。但是,如果使用服务器A的用户比使用服务器B的用户产生的压力大时怎么办呢?使用动态负载平衡,可以解决这个问题,服务器A检测到它的压力比较大时,就把一部分任务交给服务器B,有许多动态负载平衡的算法可以用来进行服务器的负担检测。5、提高了数据的安全性将不同的数据功能封装成一定的中间层,并且授予不同的访问权限,这样就能保证对数据的访问限制。使用Delphi中的MTS或者COBRA技术可以支持这项功能。基于以上开发工具的优点以及软件性能的考虑,本系统前台使用Borland Delphi7.0,后台数据库采用Microsoft SQL Server 2000 sp3,数据库的连接技术则使用ADO,并采用三层分布式的体系架构进行设计。鉴于Delphi有着强大的第三方控件的支持,同时本着用户交互界面友好,界面统一、清晰的原则,我们开发小组使用了一些第三方控件,具体如下: 1、VCLSkin 3.02 换肤控件,可以支持多种皮肤,并能将官方可视化控件进行换肤,不需要编写一条语句 2、ScrollText_V1.03 字幕滚动控件,可以轻松实现字幕的左右或是上下的滚动,使用它,可以轻松实现公告消息的滚动效果 3、MxOutlookBar 2.13 滑动工具条控件,可以实现OUTLOOK风格和QQ风格的菜单,该控件功能强大,操作简单,能为系统友好界面增色不少。4、EhLib 类似于delphi中Data Control组件栏的各种控件,能够弥补官方数据感知控件的不足5、SncCurrency 货币编辑控件,使用它嵌入到DBGrid中能够实现财务凭证货币栏的效果6、货币转换大写控件 该组件由国人开发,能够将编辑框里面的数字转成金额的大写效果,方便国人的习惯第二章 系统总体规划2.1需求概述唯信机械MIS系统是一个信息传递的过程,通过网络技术,使每一位业务处理的参与者能有效的了解、掌握进、销、存对应环节的动态信息并及时地传递出自己的信息,有利于业务的链式处理,并实现企业的初步信息化。2.2系统功能2.2.1功能模块概述唯信机械MIS系统由以下若干模块组成:资料管理、业务管理、财务管理、员工管理、系统维护等。主要模块均具有自动安装、用户自由定制、模块自动升级等能力。模块可以根据实际用户需求进行功能组合,适应不同用户的需求,并由管理员进行集中的使用权限管理。整个系统具有很强的扩展能力和灵活性,符合当前计算机技术的发展方向。所有模块都具有很灵活的接口,为系统管理员提供了修改、配置的能力,满足用户的要求。(基本模块设置如图2-1所示)图2-1功能模块图2.2.2功能描述资料管理包括本单位资料、往来公司资料、商品资料三个模块。本单位资料包括员工资料设置、仓库资料设置、部门信息设置以及职称信息设置。往来公司资料包括行业类型设置、地区资料设置、客户信用度设置和公司基本资料设置。商品资料设置包括商品类别设置、计量单位设置、库存单位换算设置和商品库存设置。用户成功登陆之后可以在资料管理的各个具体模块中对本系统的基本信息进行详细的设置,可以进行增加、删除、修改、查找等操作,以便为该MIS系统提供基本的数据基础。业务处理这是本系统的核心模块,具体包括进货管理、销售管理和库存管理。进货管理包括进货询价、进货报价、进货单、进货退货四个模块。销售管理包括销售报价、销售单和销售退货。进货和销售都离不开库存的管理,因此库存管理模块包括进货入库、进货退货出库、销售出库、销售退货入库以及库存明细查询五个模块。通过进、销、存这三个模块,实现商品流通过程各个环节中的实时数据采集、实时数据监测和调整,并根据需要即时进行信息分析,从而帮助企业实现信息化,提高竞争力。财务处理财务管理模块主要用于对资金进行帐务管理,并对公司的业务处理进行统计分析,内容涉及公司的费用、收入、资产等。系统能够进行业务处理应收应付款管理、现金费用和一般费用处理以及统计分析等一系列实用的功能。财务处理使成本核算清晰明了,大大减少手工的工作量,保证数据的统一性,减轻工作人员的劳动强度和手工核算工作量。员工管理用来记录员工的日常工作和相关活动,包括员工合同、员工考勤和员工出差报告等功能。系统可以通过增加、删除或查询,制定员工合同,记录员工考勤和员工出差报告,管理员工的日常工作。系统维护系统管理是整个系统可靠安全运行的重要保证,不仅提供对其他子系统或模块的管理功能,而且为整个系统提供一个好的运行环境,以保证各个子系统能有效、协调和安全地工作。该模块主要供系统管理人员使用,具体包括账户管理、消息管理以及系统维护三个模块。在账户管理中,管理人员可以对用户账号、用户密码进行增、删、改等基本的设置,还能够查询用户历史在线信息、管理用户实时在线等操作,同时还能够对用户进行各项权限的设置。消息管理包括公告消息管理和个人消息管理,管理人员可以发布,修改公告消息,管理自己的个人消息。系统维护包括系统备份和系统恢复两项功能,从而保证数据的安全性和完整性。2.3流程图2.3.1登录流程图2-2登录流程图用户进入本系统前,首先要经过登录页面进行登录,用户输入用户名和对应的密码,系统进行身份验证,不通过时,给出错误信息,并禁止用户进入系统。当验证通过进入系统,显示系统主框架页面,读取本系统包括的模块信息,提供模块接口。2.3.2进入各个模块的流程图2-3进入各个模块流程图登录到各个功能模块之前进,根据用户的登陆名进行该功能模块权限的验证。有权限才可能进入,无此权限就跳转到无此权限的页面对用户进行提示说明。用户进入该模块后,做每一个操作都进行权限判断,禁止任何越权操作,有效地保护系统数据的安全性。第三章模块的具体实现在本系统中,我负责的模块主要有:应用服务器的搭建、客户端架构的搭建以及主界面的设计、资料管理中的商品资料设置模块以及业务管理中的库存管理模块。3.1应用服务器的搭建三层分布式体系结构的应用服务器,其基础是一个远程数据模块(Remote Data Module),它能够支持IAppServer接口。 客户端正是使用IAppServer接口与应用服务器上的供应器(TDatasetProvider)通信,从而进行各种数据操作。作为应用服务器,起到的功能是客户端与数据库服务器之间的衔接作用。用户可以通过输入IP动态连接数据库服务器,连接成功之后,可以实时查看客户端的连接情况。3.1.1界面效果如下图所示,为了体现机械行业的特色,我们使用了VCLSkin换肤控件,并选择了一款具有金属特色的皮肤,同时我们提供了菜单和按钮两种操作方式,整体界面简单、直观。图3-1应用服务器连接前的效果图3-2应用服务器连接后的效果图3-3查看在线用户图3-4最小化后缩小到任务栏的图标3.1.2应用服务器的设计流程应用程序服务器的数据库连接模式流程如图3-5所示。图3-5 应用服务器设计流程输入:数据库IP,数据库名,用户名,密码处理:1、应用服务器Logo界面启动后,出现应用服务器的连接配置界面2、从菜单栏的选择设置-连接,系统自动从当前目录下的DB.ini配置文件中读取上次服务器成功配置后的信息,并写入对应的编辑框中,以方便用户,当然,用户也可以自己手动填写配置信息3、填写配置信息,用户可以点击测试连接或者确定按钮,系统将根据用户的选择进行对应的处理4、若连接成功,将成功配置的各项信息写入DB.ini文件,状态栏出现数据库服务器以及应用服务器IP和主机的名称,并开始计时,测试连接按钮变成了断开连接,若连接失败,则给出提示5、连接成功之后,用户可以选择菜单查看-在线用户,查看客户端用户的登陆情况,并能够实时刷新。可以点击断开连接按钮,重新配置数据库服务器。同时,可以将应用服务器最小化,则系统栏将出现应用服务器的图标,可以右击鼠标进行相关操作输出:配置成功之后的应用服务器3.1.3应用服务器的详细设计服务器端程序实际上是个COM 工程,它本身连接数据源,再通过接口与客户端联系,这个COM 工程必须注册在服务器上。建立一个应用服务器的关键是动态连接数据库服务器以及使用一个远程数据模块,此外的工作和通常的数据库应用很类似。动态连接数据库服务器的实现首先用Delphi新建一个应用程序(Application),系统会自动生成一个页面form,在窗体中添置一个ADO组件栏的ADOConnection控件(如图3-6)图3-6 添加ADOConnection组件并进行一些必要的窗体设置后,窗体如图3-7所示:图3-7 应用服务器的设计窗体在这个应用服务器配置窗体中,需要输入数据库服务器主机名(或者IP地址)、数据库名、数据库用户名以及密码,这些配置信息将用来连接数据库服务器。如果连接成功,输入的配置信息将被写入到当前目录的DB.ini文件中,下次程序启动时,可以通过连接按钮读取该文件的配置信息,就可以方便地连接应用服务器程序了。远程模块的创建Delphi共有四种远程数据模块,分别是远程数据模块(TRemoteDataModule)、事务数据模块(TMTSDataModule)、Corba数据模块(TCorbaDataModule)以及SOAP数据模块,TMTSDataModule用于建立MTS/COM+的应用服务器,Corba主要面向Corba客户端,SOAP主要支持于Web Service,由于本系统基于C/S架构,因此我们选用了最为普遍的TRemoteDataModule远程数据模块。从Delphi的菜单中选择FileNewOther,出现New Items的对话框,单击Multitier页面,选择Remote Data Module选项,这样就选择了一个TRemoteDataModule远程数据模块,如图3-8所示:图3-8 选择远程模块接下来是它的向导配置界面,需要指定Coclass名字、实例类型、线程模型,如图3-9所示:图3-9远程模块向导在Coclass Name指定类名,程序将建立一个新的单元,它是TRemoteDataModule的派生,在此我们输入Engine。Instancing是指定实例的类型,我们选择默认的Multiple Instance,这样每个远程数据模块是单个客户端连接专有的,但他们都共享同一进程空间。在Threading Model中,选择Apartment能够确保远程数据模块的任何实例在同一时间内只服务于一个请求,这样能够避免线程冲突。到此,应用服务器大体搭建完毕,运行程序,应用服务器将完成注册,此时系统将提供一个唯一的GUID值(如图3-10),供客户端连接验证。图3-10 应用服务器的GUID值在线用户的查看 为方便管理员查看在线用户,应用服务器提供查看在线用户的功能,实现这项功能很简单,只需在数据库中建一个表user_online_search_table(表3-1),客户端一旦登陆,便在该表上增加一条记录,登记用户的账户名,用户的IP,主机名和登陆时间,用户退出时,根据传递过来的账户名删去这条信息。在应用服务器断只要查询这个表就能够查看实时在线的用户了,同时还能够阻止用同一个账号重复登陆。字段名类型长度精度小数位数默认值允许空主键说明user_online_search_idnvarchar50用户登陆账号user_online_search_ipnvarchar50用户在线IPuser_online_search_hostnvarchar50用户在线主机名称user_online_search_logintimenvarchar50用户登陆时间表3-1 用户在线信息表user_online_search_table3.2客户端架构的搭建3.2.1界面效果图3-11 客户端主界面图3-12 客户端选择应用服务器界面图3-13 客户端列举网络资源图3-14用户登陆界面图3-15选择用户列表3.2.2客户端的设计流程客户端的流程图大致如下:图3-16客户端流程图输入:应用服务器IP,端口号,账号名称,密码处理:1、客户端Logo界面启动后,系统自动读取注册表(HKEY_LOCAL_MACHINESOFTWARE唯信机械MIS系统),如果里面存在相关信息,系统会自动连接应用服务器,如果连接成功,会出现账户登录界面,否则,系统会显示连接应用服务器的配置界面,用户必须手动输入应用服务器IP(或主机名),以及端口号(默认211),当然,用户可以点击右边的刷新网络资源选择应用服务器主机名进行选择,然后点击确定,尝试连接2、若连接成功,系统会将此次配置成功的信息写入注册表中,以便下次连接时使用,同时系统显示用户账户登录界面,用户可以点击右边的按钮,在用户列表的窗口中进行选择,也可以手动输入账号、密码,进行连接3、连接成功之后,出现客户端主界面,界面底部状态栏显示系统时间和用户名称,右边上部窗口显示公告信息,而下面则是用户的个人信息,它们都可以实时刷新。用户可以选择左边的MXOutlook组件提供滑动工具条进入功能模块,进行相关的业务处理,也可以通过顶部的主菜单进行操作,他们的效果是一样的输出:连接成功之后,显示客户端主界面3.2.3客户端的详细设计对于最终用户来说,三层体系结构的客户端和两层结构的没有太大的区别。在结构上,客户端应用程序看起来就像平面单层的应用程序一样,也是使用标准的数据显示组件从客户端数据集中获取数据并和用户进行交互。但和两层结构不同的是,三层体系结构中的客户端应用程序是通过应用服务器提供的接口来和Provider通信,并获取数据以及向应用服务器申请提交更新数据的。在通常情况下,这个接口就是IAppServer接口。连接方式的选择在Two-Tier模式中,客户端程序是直接和数据库服务器的数据源相连的,而Multi-Tier模式,多个客户端连接的是应用程序服务器,它们之间是通过IAppServer接口进行通信的,而客户端则是通过一个连接组件得到这个接口。在Delphi中,存在着多种连接组件,它们对应着不同的通信协议,对应于应用服务器上的不同种类的远程数据模块,客户端也需要不同的种类的连接组件,如下图所示:组件协议可以连接到的远程数据模块TDCOMConnectionDCOMRemoteDataModule或者MTSDataModuleTSocketConnectionWindows Socket (TCP/IP)RemoteDataModule或者MTSDataModuleTWebConnectionHTTPRemoteDataModule或者MTSDataModuleTSoapConnectionSOAP (HTTP和XML)SoapDataModuleTCorbaConnectionCORBA(IIOP)CorbaDataModule图3-17客户端的连接方式由于应用服务器所选用的远程数据模块是RemoteDataModule,并且系统基于C/S架构,因此所选用的连接组件将是TDCOMConnection或TSocketConnection。TDCOMConnection 提供了核心的NTLM的安全性和验证机制。在COM/DCOM里面我们可以很轻松地使用早联编(early-binding)、 回调机制(callback)和连结点机制(ConnectionPoints)。 但是它的不利因素就是配置客户端的DCOM和让DCOM透过防火墙(FireWall)相当麻烦而相对于TDCOMConnection,TSocketConnection虽然不支持早联编(early-binding),但它无疑是最容易配置的连接方式,而且TSocketConnection只使用一个端口(默认211)来进行通讯,这样如果在拥有防火墙的系统中,管理员会更乐意接受。在安装中间层的机器上,只要运行SCKTSRVR.EXE(如图3-18)就可以和客户端建立Socket的连接了。图3-18 SCKTSRVR.EXE搭建客户端和应用服务器的连接使用File菜单下的New Application建立一个新应用程序。将新建的form命名为e_main.pas,并在其中放置一个连接组件SocketConnection (TsocketConnection组件),如图3-19,其IP属性中本应指定应用程序服务器的IP地址,但由于要实现动态连接应用服务器,而且我们开发客户端程序的时候必须注册应用服务器,所以为了开发方便,使用的是同一台,因此这里的IP地址选择本机。这样在ServerName属性中设置应用程序服务器(在这里,应用程序服务器就是上面创建的名为server.Engine的远程数据模块),就可以定位应用服务器和IAppServer接口。同时在Port属性中取默认值211与SCKTSRVR.EXE对应,如图3-20。这样客户端的架构就大体搭建完了。 图3-19选择SocketConnection组件 图3-20 SocketConnetion1的属性动态连接应用服务器客户端程序在运行时,需要连接应用服务器程序以取得服务。但是,在系统实际应用的时候,运行应用服务器程序的计算机是经常改变的,因此在客户端程序启动时,应该先找到运行应用服务器程序的计算机的设置。我们将这个配置信息存储在windows系统的注册表中,(分支:HKEY_LOCAL_MACHINESOFTWARE唯信机械MIS系统),客户端启动时如果能够找到配置信息,便进行尝试连接,连接成功则进入用户账号登陆界面,如果连接失败,则弹出应用服务器配置界面重新配置。为了适应这些界面的逻辑调度,我们决定把e_main.pas作为工程主页面(客户端一运行即在后台启动,但不显示),然后调用函数(ConnectAppServ)读取注册表进行连接,连接成功则显示账户的页面,连接失败则出现客户端配置界面,动态连接应用服务器的流程类似于上面提到的动态数据库服务器连接,在此不作赘述,具体请参看源代码。成功登陆之后,将出现客户端主界面,如图所示,在客户端主界面的设计中,我们在左边窗体中放置了一个MxOutlookBar滑动工具条控件,在中间页面中使用了pagecontrol控件,这样用户可以通过操作类似outlook标签风格的工具条选择不同的功能模块进行操作。在右边的窗体中则是公告信息和个人信息。公告信息子窗体使用的是第三方控件ScrollText,它能够按时间先后顺序读取表info_table里面记录的前10条并进行滚动显示。个人信息使用两张基本相同的gif图片,区别是一张跳动,一张静止,当用户登录之后,如果表tip_table中有关于这位用户的记录,则装入跳动的gif的那张图片,否则装入静止那一张。3.3商品资料设置根据需求,商品资料设置包括商品类别设置、计量单位设置、库存单位换算设置和商品库存设置,用户可以点击左边滑动工具菜单:资料管理商品资料,进入商品资料设置主界面:图3-21商品资料设置主界面然后,用户可以根据业务流程,用鼠标点击图片进入相应的功能设置页面。3.3.1商品类别设置数据库设计根据需求,商品有大类小类之分,每种商品都隶属于某个大类的商品之中,(例如深沟球轴承和调心球轴承隶属于轴承类,YSH-A型混合机属于混合机类) ,因此商品类别设置主要是管理商品的这些分类信息。字段名类型长度精度小数位数默认值允许空主键说明product_big_idnvarchar50商品大类IDproduct_big_namenvarchar50商品大类名称product_big_marknvarchar300备注表3-2 商品的大类信息表product_big_table字段名类型长度精度小数位数默认值允许空主键说明product_small_idnvarchar50商品IDproduct_small_namenvarchar50商品名称product_small_brandnvarchar50商品品牌product_small_big_idnvarchar50 隶属商品大类IDproduct_small_areanvarchar50商品产地product_small_simplenamenvarchar50商品简称product_small_marknvarchar300备注表3-3 商品的小类信息表product_small_table为保持数据的完整性,设置上述两个表的数据关系(product_big_id与product_small_big_id),这样对product_big_table进行修改,product_small_table中涉及到的相关记录也会做出相应的改变图3-22 product_big_id与product_small_big_id关系图由于本系统采用三层结构,对数据的查询、增加、修改等均采用存储过程来操作。对于数据库运算处理频繁或数据运算量较大的任务,用存储过程实现,可以提高系统整体的运行效率;此外,存储过程在数据库服务器端执行,只将执行结果返回到客户端。在商品资料设置这个模块中,涉及到的存储过程有:得到商品小类信息get_product_small_info,商品大类信息的增加或修改update_product_big_info,商品小类信息的增加或修改update_product_small_info,查找商品信息find_product_info。详细设计图3-23 商品资料详细信息设计页面首先新建一个窗体命名e_product.pas,在窗体里添加一个clientdataset组件,clientdataset1设置RemoteServer属性值为main.SocketConnection1,这样就通过应用服务器连接上数据库,设置ProviderName属性值为get_product_big_name_dsp,指明其数据集供应器来自于应用程序服务器远程数据模块的TDataSetProvider的名称,这是多层数据库应用程序设计中最为关键的属性设置。然后,在服务端的远程数据模块上设置好get_product_big_name_dsp的相关属性,主要是Dataset属性,它指向一个数据集组件,可以是TADOQuery(SQL查询器),TADOTable(表),ADOStoreProc(存储过程)等,这里我们添加一个TADOQuery组件命名为get_product_big_name_aq,将其SQL属性设置为“select * from product_big_table”,然后将get_product_big_name_dsp的dataset属性指向get_product_big_name_aq,这样配合一个Treeview控件,便可以实现程序启动时就能看到商品大类信息的所有记录。同理,配置好clie
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高温天气化工厂安全生产防范措施
- 医疗器械消毒感染管理计划
- 建筑施工环境保护管理制度及措施
- 校本课程开发的教学质量措施
- 抖音短视频技术支持职责
- Xx美术培训中心学生眼健康管理计划
- 医疗行业信息技术应用能力提升工程心得体会
- 信托公司不良清收处置计划
- 机场跑道施工文明施工措施
- 2025年法律法规考试卷及答案【综合题】
- 在家劳动教育实践报告
- 《项目的变更管理》课件
- 人教板七年级至九年级英语单词表
- 2025-2030年中国化学纤维市场发展格局及投资前景规划研究报告
- 维护保养及售后服务说明
- 大学启示录:如何读大学(上海交通大学)学习通测试及答案
- 《静脉输液指南》课件
- AI技术赋能体育课堂教学评价
- 耳穴压豆课件完整版
- DBJ41T 256-2021 河南省海绵城市设计标准 河南省工程建设标准(住建厅版)
- 独家授权合同模板
评论
0/150
提交评论