版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要随着信息化时代的到来,生活中各种信息趋向数字化、清晰化,应用于各行业的信息管理系统应运而生。进销存管理系统就是在这样的一个环境中诞生的。本文论述一种适合于企业的信息管理系统的设计与实现。该系统采用MicrosoftVisualStudio2008作为开发工具,SQLServer2005作为数据库管理系统。在对货运管理系统作可行性分析的基础上,提出系统研究目标及功能需求,研究其实现的关键技术,据此进行深入讨论。然后分析了企业的营运流程,整合企业管理过程中的所有信息资源,完成数据库设计、总体设计,着重论述了系统的登录设计、界面设计和帮助信息的实现,并完成系统的集成、调试和测试信息,最后对课题设
2、计作出客观的评价和总结。关键词:货运管理数据库ASP.NETADOABSTRACTNowadays,variouskindsofinformationmanagementsystemscomeupinthetrendofinformationtimewheneverykindofinformationisbecomingdigitizedandclarified.managementsystemisdesignedinsuchenvironment.Thisessaydiscussesthedesignandimplementationsuitableforenterprisesoftrans
3、portations.ThesystemusesMicrosoftVisualStudio2008asdevelopmenttoolandSQLServer2005asdatabase.Thisarticledeeplydiscussesthekeytorealizingthesystemintherequisiteoffeasibilitiesoftransportationsystemandthenanalysestheprocedureofoperating,completesthewholedesign.incorporatingalltheinformationandresource
4、sanddemonstratesthedesignofloginandinterfaceandhelpinformationwiththeintegration,testdebugofthesystemandfinallymakesobjectivecommentsandsummaries.Keywords:managementsystems,Database,ASP.NET, 第一章引言进销存管理系统研究的背景在当今高速发展的信息社会,现代商行业突飞猛进发展,伴随着我国国民经济连续多年的高速增长,为现代商业的发展创造了良好的条件。进销存管理系统的特点是从企业管理的角度出发,用集中的数据库将几
5、乎所有与货运物品相关的数据统一管理起来,形成了集成的信息源。友好的用户界面,强有力的报表生成工具、分析工具和信息的共享使得货运运输管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑商业物品规划和政策。研究目的及意义进销存管理系统是为中小型商业企业量身定制的一款物流管理平台,随着商品经济的发展,商业运作模式日趋多样化,该软件在分析设计上充分考虑了中小商业企业业务流程的可变性和业务种类的多样性,能够高效地管理进货、销售、调拨和存货业务。实现进销存业务的一体化管理,最大限度的整合库存结构、减少滞销库存、刺激商品销售。在管理模式上变被动管理为主动管理,自动化程度高,决策支持全面,能够准确及时地
6、为决策者提供第一手信息,是企业长期信息化投资的理想产品。本课题研究的国内外现状经济全球化对我国中小型企业的发展提出了全方位的挑战。在积极建立商业现代商业管理机制的今天,仅仅靠原始的手工管理或简单的单机管理,货运物品部门面对大量的信息,无法有效率地将其中的重要部分提取出来,并做出相应的判断和处理。公司管理者的决策只能依据报表数据,在浪费大量人力、物力的同时无法做到实时监控,难以保证数据的准确性和及时性。因此,先进的管理思想在商业中实现就成为了一个可望而不可及的目标。公司集团非常急需一套既有先进管理思想又适合国内中小型企业的进销存管理系统,作为实现目标和提高现有水平的一种重要手段!系统研究所需要涉
7、及的主要问题对中小型企业的营运流程进行分析,整合中小型企业管理过程中的所有信息资源,实现计算机全面管理。完成数据库设计、界面设计、系统的集成。要求用户界面简捷、合理、美观,数据库及软件结构设计合理。程序设计代码规范,系统功能齐全,并且运行通过。第二章系统分析可行性分析2.1.1系统研究的方向软件的设计立足于可读性、适用性、易操作性、可维护性和可扩充性。为此,我们使用ASP.NEt语言,采用面向对象的程序设计思想进行程序设计,同时各模块相互独立,避免了一个模块无法使用而导致整个系统瘫痪的可能,使得程序易于扩充和维护;在软件设计上,采用了操作相关牵制的设计思想,即有的项目如果没有进行测试,则相应的
8、功能是无法进行的,避免了误操作;2.1.2设计系统的必要性与可行性本系统是企业的医药管理系统,经过分析可知该系统应该具有如下可行性:技术可行性本系统规模较大,涉及过程较为复杂。因此适合采用数据库管理,而且该系统在硬件方面要求不是很高。很容易达到要求;软件方面:进销存管理的信息数据流量较大,所以我们可以在WindowsXP以上的操作系统,以SQL作为后台数据库,ASP.NET为前台进行开发。经济可行性价格易于接受,实用性好。与人工处理相比,会节省许多人力物力,而且准确性高,从长远角度考虑经济上较为合算。操作可行性由于系统有非常友好的界面,使用者无须具备很多计算机知识,只需对原有的人员进行短期培训
9、即可熟练掌握本系统,直接进行上网操作。2.1.2系统的设计分析客户信息:对有业务往来的货品供应/销售客户详细信息进行维护根据客户编号确定客户的唯一性;根据客户属性区分是供应商还是销售客户;根据客户分类区分是大客户还是小客户或其他;根据客户性质区分是个人还是公司;根据客户分区归属是哪个部门或哪个业务人员;货品信息:对购进货品种类型号等基本信息进行维护;设置参考进价(最低价)和参考售价(建议价),采购时高于参考进价给予提示,销售时低于参考售价给予提示;设置最高库存和最低警戒库存,如果超过最高库存或低于警戒库存则进行提示。字典信息:对计量单位,货物分类,客户分类,客户性质,客户分区等基本信息进行维护
10、。生成采购单分为手工录入采购单和自动生成采购单;自动生成采购单方案一:库存数量低于对应货品信息表中该货品的最低库存警戒数的货品;自动生成采购单方案二:货品采购数根据当前库存数、月平均销售数、客户的需求信息、已经在途的数据,以及货品标准库中的最高库存、最低库存警戒线;还有货品标准库中的订货周期等因素自动生成,其基本的计算公式为:应订数=月均销售数*订货周期+客户需求-在途-当前库存;手工录入采购单可以对上面自动生成的采购单进行添加、修改和删除。采购单审核采购单的审核一般由熟悉业务的经理进行审核;对采购单进行添加、修改和删除等操作;采购单必须进行审核后才能进行货品采购。入库单分为手工录入入库单和从
11、采购订单中直接导入;入库单审核确认后才生成库存,在库存商品账中体现。采购退货处理如果查不到退货商品的采购信息,退货商品采用累计加权平均法指定退货单价;米购退货确认后冲减库存,在库存商品帐中体现;退货货品的数量不能超过库存中同型号货品的总数量。8系统仓库设置对公司设立的逻辑仓库进行维护;不能删除、修改有存货的仓库;不能添加重名的仓库。9调拔单将货品进行逻辑的仓库调换;调换后原仓库该货品的数量减少;目标仓库货品的数量增加;调拔不在库存商品帐上体现。库存统计按货品的型号对库存货品进行分级汇总;生成库存盘点表;当生成的盘点表与实际库存表货品数量不一致时生成盘盈盘亏信息。销售单生成销售单时如果库存不足,
12、则给予信息提示,不能生成销售信生成销售信息后冲减库存,在库存商品帐中体现。销售退货处理如果查不到指定的销售信息,退货单价采用该客户最后一次购货的价格;如果还是找不到采用该货品最后一次销售的单价;增加库存,在库存商品帐中体现。2.1.3关键技术本软件采用多文档界面,能满足中小型商业货运运输管理的基本需要。开发中用到的工具和技术简单介绍如下:1应用LINQ实现多表间的复杂查询在应用LINQ查询单个表时,其查询条件相对比较简单,而要在多个表之间进行复杂的查询时应用LINQ,那么相对地LINQ查询表达式就要比较复杂,此时需要在LINQ查询表达式中使用join子句联接相关多个相关的表。以该通用进销存系统
13、中的采购订单管理页面(PurchaselndentList.aspx)为例,在页面进行初始化时需要将采购信息如采购人名称、供应商名称等绑定到GridView控件中,并且绑定的信息涉及到员工表、客户表等多表间查询。该页运行效果如图2.1所示。图2.1应用LINQ实现多表间查询将货品采购信息显示在GridView控件中2ASP.NETAJAX无刷新技术应用AJAX是AsynchronousJavaScriptandXML(异步JavaScript和XML技术)的缩写,它是由JavaScript脚本语言、CSS样式表、XMLHttpRequest数据交换对象和DOM文档对象(或XMLDOM文档对象)
14、等多种技术组成的。微软在ASP.NET框架基础上,创建了ASP.NETAJAX技术,能够实现AJAX功能。ASP.NETAJAX技术被整合在ASP.NET2.0及以上版本中,是ASP.NET的一种扩展技术。AJAX的三大核心控件分别为:ScriptManager控件(脚本管理员)、UpdatePanel控件(局部更新面板)和Timer控件(计时器)。在该进销存系统实现采购计划录入页面(PurchasePlanlnput.aspx)中应用了AJAX无刷新技术,对页面的任何操作都不会使用页面产生闪动效果,运行效果如图2.2所示。51-匚:&已匕理怎匚衿层芒呼?:H.e.?-捞巳土口門平K|三却?,
15、、-芹工弓昱日坐、皿-y*.采购计划营哩采妁计划推订甲干亍吕:11IJ-.H-HJ供应商生售喜户1輕I羟亦人至=I愴徉Im埠”:十严港灯胡可显示M审记录。傑存廷回卢:匸期23Z-IMI叩叶Ih2010aSu恥TiVeThPr阳35293J311Z*56TB3IEL3】lISLB18192D|2TjEE232SEE2723E930Tc(tev:抑也2010D72fl图2.2采购计划录入页面中应用了AJAX无刷新技术2.2需求分析2.2.1系统目标本系统属于中小型进销存管理系统,可以对中小型商业企业进行有效的物流管理。通过本系统可以达到以下目标有良好的人机交互功能:用户界面直观、友好、数据录入灵活
16、、简便。支持多角度多维度的查询统计功能,对进、销、存进行综合分析能够根据货品销售情况及库存数量自动生成采购计划及自动转订单、入库考虑到中小型商业企业在信息化方面不同的投资程度,系统的硬件配置要求不能过高各种单据的最终确认,需要具有审核权限的人员进行审核操作。对用户输入的数据,进行严格的数据检验,尽可能避免人为错误。实现企业内部物流的一体化管理:只采购最需要的商品,优化存货结构、消除库存积压、加速资金周转、提高工作效率、降低经营风险、增加利润2.2.2系统的功能需求分析货运管理系统从运输行业的实际需求出发,参照先进的物流理念和多家领先的货运公司实际的运营流程开发而成,系统从完善的基础信息设置到货
17、物的库存管理、在线跟踪,信息查询、到最后各种报表的生成,清晰的业务流程,使操作人员能够按照流程清晰的进行实际的操作,保证运作有序而高效的进行。2.2.3开发及运行环境网站开发环境:MicrosoftVisualStudio2008集成开发环境网站开发语言:ASP.NET3.5+C#网站后台数据库:SQLServer2005开发架构:ASP.NET3.5+AJAX+LINQ+XML+JavaScript+水晶报表+分布式事务等浏览器:InternetExplorer7.0分辨率:最佳效果1024X768像素3.1系统业务第三章系统设计系统业务主流程如图3.1所示:3.3数据库设计3.3.1数据库
18、结构的实现通过数据模型图可以了解数据关系、数据的流向,以下是表结构的详细信息。1.调拨单主表(AdjustContent)记录调拨单主要信息如调拨单号、调拨人、调拨仓库等,AuditFlag为真时表示已打印该调拨单同时更新库存表由于货品调拨引起的变化。表结构如表3.1所示。表3.1调拨单主表(AdjustContent字段名称数据类型长度描述IDint4自增序列号AdjustBillCodevarchar20调拨单编号AdjustManvarchar20调拨人AdjustDatedatetime8调拨日期SourceWareHousevarchar20源仓库TargetWareHousevar
19、char20目标仓库Memovarchar200备注Operatorvarchar20操作员OperateDatedatetime8操作日期AuditFlagbit1是否已打印调拨单2.货品信息表(ProductInfo)记录进销存业务涉及的货品信息(如货品名称、规格、产地等),各个单据凡涉及到货品信息的都与此表货品编号字段关联。表结构如表3.2所示。表3.2货品信息表ProductInfo字段名称数据类型长度描述IDint4ProductCodevarchar20货品编码HelpCodevarchar20助记码ShortNamevarchar20货品简称ProductNameSpecsPro
20、ductTypeYieldlyUnitWareHousevarchar100varcharvarchar5020varchar100varcharvarchar1P20MaxStoreMinStoreintintIsStopRetailPriceTradePriceMinimumPricebitfloatfloatfloat1888AdrisePriceCurMarketingPriceOperatorOperateDatefloatfloatvarchar8820datetime8货品名称规格型号货品分类货品产地单位参考仓位最咼库存最低库存停止订货零售价批发价最低价建议价当前市场价操作操作日
21、期3.入库单主表(PurchaseContent)记录入库单主要信息如入库单号、经办人、供应商、入库仓库等,入库单可能是手工录入的,也可能是采购订单确认后转过来的(这种情况下入库单号与采购订单号相同,AuditFlag为真时表示入库单生效同时更新库存表由于货品入库引起的变化。表结构如表3.3所示。表3.3入库单主表PurchaseContent字段名称一口ntrf数据类型长度描述IDint4编号PurchaseBillCodevarchar20米购入库单编号CheckManvarchar20经办人PurchaseDatedatetime8采购日期Providervarchar20供应商Ware
22、Housevarchar20仓库代码PayModevarchar20付款方式InvoiceTypevarchar20发票类型InvoiceCodevarchar20发票号Operatorvarchar20操作OperateDatedatetime8操作日期AuditFlagbit1入库审核标志4.采购订单主表(PurchaselndentContent)记录了采购订单的主要信息,采购订单可能是手工录入的,也可能是采购计划确认后转过来的(这种情况下订单号与计划单号相同),采购订单确认时将审核标志设为真,同时将该订单信息插入到入库单表。表结构如表3.4所示。表3.4采购订单主表PurchaseIn
23、dentContent字段名称数据类型长度描述IDint4PurchaseBillCodevarchar20采购订单号PurchaseManvarchar20采购人PurchaseDatedatetime8采购日期Providervarchar20供应商WareHousevarchar20仓库代码PayModevarchar20付款方式InvoiceTypevarchar20支票类型InvoiceCodevarchar20支票号AuditFlagbit1审核标志:是否生效OperateDatedatetime8Operatorvarchar205.销售单主表(SaleContent)记录销售单
24、主要信息如销售单号、销售员、购货客户、出货仓库等,打印销售单时将AuditFlag设为真,同时更新库存表由于销售货品出库引起的变化。表结构如表3.5所示。表3.5销售单主表SaleContent字段名称数据类型长度描述IDint4SaleBillCodevarchar20销售单编号SaleManvarchar20销售员SaleDatedatetime8销售日期ClientCodevarchar20客户WareHousevarchar20仓库代码PayModevarchar20付款方式InvoiceTypeInvoiceCodeMemoOperatorOperateDateAuditFlagva
25、rchar20varcharvarcharvarchardatetimebit2010020发票类型发票号备注是否已打印销售单6.仓库信息表(Warehouseinfo)记录了存放货品的仓库信息,在进销存业务中凡涉及到仓库的都与此表的仓库代码关联。表结构如表3.6所示。表3.6仓库信息表Warehouseinfo字段名称数据类型长度描述IDint4WareHouseCodevarchar20仓库代码HelpCodevarchar20助记码ShortNamevarchar20仓库简称WareHouseNamevarchar50仓库名称Locationvarchar50位置Areafloat8面积
26、Memovarchar200备注3.3.5数据库管理与维护说明定期查看数据库任务的运行结果日志和数据库可用空间最大值。对数据库进行大批量的增、删、改操作后,建议对表进行一致性检查和索引的重建。对业务数据库定期进行数据清理,清理前必须完成备份操作。使用合法的病毒防治软件,定期扫描病毒,定期更新病毒库。每日由系统管理员对数据库进行运行状况和日志的检查。第四章系统模块的设计模块设计模块独立的概念是模块化,抽象,信息隐藏和局部化概念的直接结果,开发具有独立功能而且和其他模块之间没有过多相互作用的模块,就可以做到模块独立。通常程序中的一个模块完成一个适当的子功能。在分析系统的总体功能后,为实现总体功能,
27、设计时应采用模块化设计的思想,即按照系统的总体功能,采用分而治之的方法,把完成不同功能的各个部分划分为多个子模块,将各个子模块组织成良好的层次结构,通过各模块之间的调用,实现系统的各项功能,从而实现系统的总体功能。4.1.1系统模块的功能分析通用进销存管理系统主要是应用于中小型商业企业的物流管理平台。由基本信息、进货管理、库存管理、销售管理、查询统计和系统设置六个子系统组成。规划系统功能模块如下:基本信息:对进销存涉及的客户信息(包括供应商和购货客户)、货品信息、员工信息及存货的仓库信息进行维护;进货管理:对采购计划、采购订单、入库单及入库退货进行管理;库存管理:对库存信息、库存盘点、库存调拨
28、进行管理;销售管理:对销售信息、销售退货进行管理;查询统计:对采购信息、销售及毛利信息、库存及预警信息进行统计;系统设置:设置用户权限、修改密码及设置用户字典(如货品类别、计量单位等)。4.1.2系统功能层次图了解了系统的业务流程之后,根据系统的业务流程及总体规划设计的功能结构图如下。主模块功能结构,如图4.1所示。適用进钳存软件六丈王模块设计耳本讲货库存销售音询系统管理管理管理IruQUfeJZL图24.1通用进销存软件六大主要模块系统设置、库存管理和销售管理三大模块功能结构,如图4.2所示。库存首理箱售菅理用户管理角色管理修改密码字典管理调拨电录入调拨里管理库存盘点表销售里录入销售里管理销
29、售退货单录人销售退货管理图4.2系统设置、库存管理和销售管理三大模块功能结构客户及货品、仓库的基本信息的功能结构如图4.3所示。基本信息仓库信息W理嗤立仓库信M员工言息菅理员工信息录人货曷信息菅理货品信息录入容户信息菅理客户信息录入图4.3客户及货品、仓库基本信息的功能结构采购计划单、采购订单、入库单及采购退货单的进货管理功能结构如图4.4所示。采陶退货确认采购退货单管理采购退货单录人人库单确认入库单管理入库单录入采购订单R入库采购订单菅理采购订单录人采陶计划特订单采购计划菅理采购计划录入采购计划单、入库单及采购退货单的进货管理图4.4在进销存软件中查询统计功能有着举足轻重的地位,其功能结构如
30、图4.5所示。査询统计调拨单查询销售退货查询销售卑查询采腐退货查询入库单查谊进销软件的查询统计功能结构图-6采回订单沓询一22图采IA计划查询第五章详细设计与实现详细设计阶段主要确定每个模块的具体执行过程,它的关键任务是确定怎样具体的实现所要求的目标系统,也就是要设计出程序的“蓝图”,除了应保证程序的可靠性之外,使将来编写出来的程序可读性好,容易理解,容易修改,维护是详细设计阶段最重要的目标,结构化程序设计是实现这一目标的基本保证,是进行详细设计的逻辑基础。在软件的生存周期中,设计测试方案,诊断程序错误,修改和改进程序等等都必须首先读懂程序,实际上对于长期使用的软件程序而言,人读程序的时间可能
31、要比写程序的时间还要长很多。公用类的设计开发项目中以类的形式来组织、封装一些常用的方法和事件,不仅可以提高代码的重用率,也大大方便了代码的管理。该通用进销存软件公共类的设计非常庞大且健壮,这里只是列出了三个比较典型的公共类设计,以此体现面向对象程序开发中的主要思想。更换网页皮肤主题类BasePageBasePage类是所有网页代码文件类的基类(或称超类),在通用进销存系统的所有网页代码文件类都继承自该类,它主要实现的功能是更换网页皮肤主题,具体代码如下:publicclassBasePage:System.Web.UI.Page/Ill覆盖基类StyleSheetTheme方法,重新实现网页皮
32、肤主题更换功能lllpublicoverridestringStyleSheetThemegetstringstyleSheetTheme=Blue;设置默认主题为蓝色trystringxmlFilePath=Server.MapPath(/Themes/Xml/CustomConfig.xml);XElementxe=XElement.Load(xmlFilePath);/将xml文件导入到操作xml元素的类IEnumerablevXElementelements=fromeinxe.Descendants(ThemeName)selecte;/LINQtoXML表达式讦(elements.
33、Count()0)如果查询到的元素数大于0XElementfirst=elements.First();取查询到第一个元素styleSheetTheme=first.Value;catchreturnstyleSheetTheme;/返回StyleSheetTheme属性自定义GridView数据绑定控件类通用进销存系统中所有应用到的GridView都不是ASP.NET自带的GridView,而是在ASP.NET的GridView类基础上封装的自定义GridView控件,其主要优势在于该自定义GridView控件在绑定数据源中的数据为空时既可显示空数据的说明文字也显示其表头信息,而ASP.NE
34、T自带的GridView在绑定数据源中的数据为空时只显示一行说明文字,人性化的界面效果不好,应用自定义GridView控件显示空记录时的运行效果如图5.1所示。釆购退赏管理手工懑加采购退货单采鶴退质单号退煲人退煲日期最燹单仓库代码最炎确认最輩记录*fS在绑走数据为空时显示”没有可显示的数据记录信息并显示表.头信息如退货人等图5.1自定义GridView数据绑定控件在无记录信息时的样式该自定义控件重写了基类的Render方法,判断当传入的数据源数据为空时自定义创建一个表格,在表格中添加两行:表头行和内容行,表头行根据GridView的字段列HeaderText设置行的单元格内容;内容行显示Gri
35、dView数据为空的提示文本。当然表格及行的样式都是根据GridView设置的。其核心代码如下:protectedvirtualvoidRenderEmptyContent(HtmlTextWriterwriter)Tablet=newTable();的Tablet.GridLines=this.GridLines;t.BorderStyle=this.BorderStyle;创建一个HTML/设置Table的线/设置边界风格与型与GridView相同GridView相同t.BorderWidth=0;t.CellPadding=1;t.CellSpacing=1;t.HorizontalAl
36、ign=this.HorizontalAlign;t.Width=this.Width;与GridView相同t.CopyBaseAttributes(this);t.BorderColor=this.BorderColor;GridView相同t.EnableTheming=this.EnableTheming;效与GridView相同t.ForeColor=this.ForeColor;GridView相同t.SkinID=this.SkinID;GridView相同t.ToolTip=this.ToolTip;与GridView相同t.Visible=this.Visible;GridV
37、iew相同t.Font.CopyFrom(this.Font);GridView相同/设置Table宽度/设置边界颜色与/设置主题是否生/设置前景色与/设置皮肤样式与/设置提示信息/设置是否可见与/设置字体对象与t.CssClass=this.EmptyDataTableCssClass!=?this.EmptyDataTableCssClass:this.CssClass;TableRowrow=newTableRow();/新建一个行row.CssClass=this.EmptyDataTitleRowCssClass;/设置行的与层叠样式表row.Height=25;t.Rows.Add
38、(row);foreach(DataControlFieldfieldinthis.Columns)/根据GridView中的字段创建Table行的单元格if(field.Visible)/如果/创建单元格/将单元格添加GridView中的该字段可见TableCellcell=newTableCell();cell.Text=field.HeaderText;row.Cells.Add(cell);到行中TableRowrow2=newTableRow();/新建第二行row2.CssClass=this.EmptyDataContentRowCssClass;/设置行的与层叠样式表t.Row
39、s.Add(row2);TableCellmsgCell=newTableCell();if(this.EmptyDataTemplate!=null)/如果GridView中设置了空模板this.EmptyDataTemplate.InstantiateIn(msgCell);elsemsgCell.Text=this.EmptyDataText;/设置单元格文本为空数据提示msgCell.HorizontalAlign=HorizontalAlign.Center;msgCell.ColumnSpan=this.Columns.Count;/设置 单元格的列合并row2.Cells.Add
40、(msgCell);t.RenderControl(writer);自定义OurPager数据分页控件类只要用到GridView就需要分页,虽然GridView有自带的分页功能,但其功能相对简单且扩展性差,最主要的是它不能实现真正意义上的分页(即每次从数据库只读取当前页的数据),而第三方的分页组件又会涉及一些版权等问题。基于以上原因在通用进销存的表格分页方案中选择了自行开发分页控件OurPager,其最大意义在于真正意义上实现了数据的分页功能。自定义分页控件实际运行效果可如图5.2所示。采吨订单查询订单号来购人采购日期供应商赏品代码200911170941557032009111眠區走义分页控
41、件OutPmg或物业2009U18063&12578主g2010-03-31民生物业2009111709415&703唾亟10m第E页/共E页首页上页1E图5.2自定义分页控件分页控件只需输入两个行为属性:RecordCount和PageSize即可自动计算分页信息并绘制控件呈现,分页控件还提供了一个PageChanged事件,只需实现该事件即可在单击分页控件任意按钮时触发该事件。自定义分页控件事件执行的核心代码如下:privatevoidDoPageChanged(PageChangedTypety,stringcmdArgs)intcurrentPageldx=CurrentPagelnd
42、ex;intpageCnt=PageCount;intNewPageIndex=CurrentPageIndex;switch(ty)casePageChangedType.atFirst:NewPageIndex=1;/新页索引设为1break;casePageChangedType.atPrior:if(currentPageIdx1)NewPageIndex=CurrentPageIndex-1;break;casePageChangedType.atNext:if(currentPageIdx=1&idx1)NumericPageIndex-;/页码按钮页索引减1/根据页码按钮索引设置
43、页索引NewPageIndex=NumericPageIndex*NumericButtonCount;elseif(cmdArgs=front)/如果触发向前翻页码按钮事件if(NumericPageIndex=1&tmpArgs();infoList=ProductInfoService.Instance.GetAllInfo();ListvDictionaryInfodictList=DictionaryInfoService.Instance.GetAllInfo();取所有的字典信息列表varquery=frominfoininfoListjoindictProductTypeind
44、ictListoninfo.ProductTypeequalsdictProductType.ValueCodewheredictProductType.TypeCode=ProductTypejoindictUnitindictListoninfo.UnitequalsdictUnit.ValueCodewheredictUnit.TypeCode=UnitselectnewID=info.ID, ProductCode=info.ProductCode,HelpCode=info.HelpCode,ShortName=info.ShortName,Specs=info.Specs,Prod
45、uctType=dictProductType.ValueName,Yieldly=info.Yieldly,Unit=dictUnit.ValueName,IsStop=info.IsStop;TOC o 1-5 h zdgvInfo.DataKeyNames=newstringID;/设置GridView数据主键dgvInfo.DataSource=query.ToList();/设置GridView数据源dgvInfo.DataBind();/绑定GridView数据源单击货品信息表格中的“详细信息”按钮可以实现货品信息的修改操作,这里主要是触发GridView控件的RowCommand
46、事件,在该事件中通过获取设置的CommandName属性值来判断是执行货品信息的添加还是修改操作,具体代码如下:protectedvoiddgvInfo_RowCommand(objectsender,GridViewCommandEventArgse)if(!string.IsNullOrEmpty(e.CommandName)if(e.CommandName=Edi)intindex=Convert.ToInt32(e.CommandArgument);/取GridView行索引GridViewgrid=(GridView)e.CommandSource;/取当前操作的GridViewin
47、tid=Convert.ToInt32(grid.DataKeysindex.Value);/取GridView主键值Response.Redirect(/BaseInfo/ProductInfoInput.aspx?ID=+id.ToString();LoadData();TOC o 1-5 h zelseif(e.CommandName=Del)/如果触发的是删除按钮事件intindex=Convert.ToInt32(e.CommandArgument);/取GridView行索引GridViewgrid=(GridView)e.CommandSource;/取当前操作的GridView
48、intid=Convert.ToInt32(grid.DataKeysindex.Value);/取GridView主键值ProductInfoService.Instance.DeleteInfo(id);LoadData();elseif(e.CommandName=Page)LoadData();5.3入库单管理入库单管理对入库单进行浏览、查看、修改、删除和添加操作。其中入库单的录入用于记录入库单据信息和待入库的货品信息,经主管领导审批确认后将货品转入库存表。货品入库单管理实际运行效果如图5.4所示。帚d姬直芹IfflulLiLIrhLiL-sfcwia畑誣1耳话工催口口国.i-i匝丽附
49、扎WsfWB陶卄琳订犖5RJ1IMA卜询理恤L.IWfiAS二週虬-CT.AgC轻4人却日期筋裔住店代码忖哉空璃奏al堆痹号人袜鲁*扎氏葷号ittKuuM&MEiLBTaiffliQ/3/31RtffilUSltBSJSSiifiJ5iiJSHmi4iJt七MIQ/S/Si底业司一是迂畤U頁黑EtilOTKIJKtRWi欢皿谥玳1匕阳E号迂時WE去耶Li.ttiA.jiaeZSTA-:”11八址:|无厶5ffi:Eft?诵环区HIW15ft墟片曰闍2D1IHM迈lMS5SS1EV3E5-SEE6匸IU万#0當品若标理斗单也Mtt单忻世越iffj率広离品代玛込.i;iITOSTGi.制单k财沁。
50、AKxncd!图5.4货品入库单管理:入库单的添加、修改和删除等操作5.3.1窗体界面设计新建一个Web窗体,将其命名为PurchaseStockList.aspx作为入库单管理页,在该页面中添加一个Table表格、一个GirdView控件和两个Button按钮,分别用来页面布局、显示入库单管理信息和执行入库单的录入。该页面中应用的主要控件如表5.2所示。表5.2PurchaseStockList.aspx页用到的主要控件控件类型控件名称主要属性设置用途|Table均为默认值均为默认值分别对整个页面、GridView部分、按钮部分布局1GridViewdgvInfo将AutoGenerateC
51、olumns浏览、修改、删除入设为假(去掉自动生成的列)DataKeyNames等于”ID”旨定数据主键是ID字段)将AllowPaging设为真(允许GridView自动分页)库单匡ButtonbtnAdd单击事件btnAdd_Click手工添加入库单5.3.2代码设计在采购计划管理界面规则层设计中,首先引入三个命名空间分别如下:MRErp.ServiceProvider.Service引入业务规则层MRErp.ServiceProvider.Model引入业务实体层System.Collections.Generic引入泛型集合在该页面进行初始化时通过调用一个自定义LoadData()方法
52、来实现入库单管理信息绑定到GridView控件中,在该自定义方法中分别调用业务规则层方法取未确认的入库单列表、员工信息列表、仓库信息列表、客户信息列表和字典信息列表信息,具体代码如下:privatevoidLoadData()ListvPurchaseContentinfoList=newListvPurchaseContent();infoList=PurchaseService.Instance.GetAllInfo();TOC o 1-5 h zListvEmployeeInfoempList=EmployeeInfoService.Instance.GetAllInfo();Listv
53、WarehouselnfohouseList=WarehouseInfoService.Instance.GetAllInfo();ListvClientInfoclientList=ClientInfoService.Instance.GetAllInfo();ListvDictionaryInfodictList=DictionaryInfoService.Instance.GetAllInfo();varquery=frominfoininfoListwhereinfo.AuditFlag=nullIIinfo.AuditFlag=falsejoinempinempListoninfo.
54、CheckManequalsemp.EmployeeCodejoinhouseinhouseListoninfo.WareHouseequalshouse.WareHouseCodejoinclientinclientListoninfo.Providerequalsclient.ClientCodejoindictPayModeindictListoninfo.PayModeequalsdictPayMode.ValueCodewheredictPayMode.TypeCode=PayModejoindictInvoiceTypeindictListoninfo.InvoiceTypeequ
55、alsdictlnvoiceType.ValueCodewheredictlnvoiceType.TypeCode=InvoiceTypeselectnewid=info.ID,PurchaseBillCode=info.PurchaseBillCode,PurchaseMan=emp.Name,PurchaseDate=info.PurchaseDate,Provider=client.ShortName,WareHouse=house.ShortName,PayMode=dictPayMode.ValueName,InvoiceType=dictInvoiceType.ValueName,
56、InvoiceCode=info.InvoiceCode,AuditFlag=info.AuditFlag;dgvInfo.DataKeyNames=newstringID;/设置GridView数据主键dgvInfo.DataSource=query.ToList();/设置GridView数据源dgvInfo.DataBind();在界面层中设计的“自动生成采购计划”这个功能就是在该采购计划服务类中设计的GeneralPurchasePlan()方法实现,具体代码如下:publicboolAuditPurchase(intid,boolisAudit,stringoperatorCode)
57、using(TransactionScopets=newTransactionScope()TPurchasetPur=dao.GetPurchase(id);PurchaseContentcontent=tPur.Content;if(content.AuditFlag=true)/如果入库单已审核thrownewException(该单据已经审核+content.PurchaseBillCode);foreach(TPurchaseDetailtPurDetailintPur.Detail)StorestoreParam=newStore();storeParam.Warehouse=tP
58、ur.Content.WareHouse;storeParam.ProductCode=tPurDetail.DetDetail.ProductCode;Storesto=null;sto=daoStore.GetStore(storeParam);if(sto=null)/库存中没有该货品sto=newStore();/创建库存表实例sto.Warehouse=tPur.Content.WareHouse;sto.ProductCode=tPurDetail.DetDetail.ProductCode;sto.Quantity=tPurDetail.DetDetail.Quantity;st
59、o.Price=tPurDetail.DetDetail.Price;sto.Amount=sto.Quantity*sto.Price;daoStore.InsertInfo(sto);sto.Memo=;else/库存中有该货品sto.Quantity+=tPurDetail.DetDetail.Quantity;sto.Amount+=tPurDetail.DetDetail.Quantity*tPurDetail.DetDetail.Price;if(sto.Quantity0)sto.Price=sto.Amount/sto.Quantity;daoStore.UpdateInfo(
60、sto);/更新库存表content.AuditFlag=isAudit;/入库审核标志content.Operator=operatorCode;content.OperateDate=DateTime.Now;dao.Updatelnfo(content);/更新入库单的审核标ts.Complete();returntrue;5.4货品进销存统计提交事务货品进销存统计是根据日期、仓库等条件对货品进、销、存信息进行综合统计及汇总。货品进销存统计实际运行效果如图5.5所示。图5.5货品进销存统计一览5.4.1窗体设计新建一个Web窗体,将其命名为ProductStockTotal.aspx,在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房地产行业业务员工作总结
- 运动品牌的市场推广计划
- 【八年级下册历史】第16课 独立自主的和平外交 同步练习
- 金属行业行政后勤运营总结
- 2023年高考语文试卷(上海)(春考)(空白卷)
- 2024年美术教案集锦5篇
- 2024年煤矿应急预案
- 红光十字线激光器行业市场发展及发展趋势与投资战略研究报告
- 2025保险合同协议书大全
- 2024年度天津市公共营养师之二级营养师综合练习试卷B卷附答案
- 2024年纪检监察综合业务知识题库及答案(新)
- 师德师风考核实施方案
- 【真题】2023年南京市中考语文试卷(含答案解析)
- 膀胱憩室护理查
- 2024年河南省水务规划设计研究有限公司人才招聘笔试参考题库附带答案详解
- 工程制图知识要点
- 2024山东能源集团中级人才库选拔高频考题难、易错点模拟试题(共500题)附带答案详解
- 视频后期剪辑述职报告
- 个人就业能力展示
- 银行对公业务课件
- 水吧管理方案
评论
0/150
提交评论