网站首页 文秘写作 工作范文 文秘知识 条据书信 行政公文 求职离职 名人名言 党团范文 励志 优秀作文 思想汇报 经营营销 汇报总结
  • 入党
  • 誓词
  • 自传
  • 转正
  • 意见
  • 志愿书
  • 入团
  • 入团志愿书
  • 小小文档网 > 党团范文 > 意见 > 网上销售订单管理系统论文

    网上销售订单管理系统论文

    时间:2022-01-20 12:04:53来源:小小文档网本文已影响

    摘 要 随着科学技术的不断提高,其强大的功能已为人们深刻认识,“现代化管理〞的理念随之也成为企业开展的原动力。“现代化管理〞手段具有检索迅速、可靠性高、存储量大、保密性好等优点。这些优点能够极大的提高一个企业、公司销售管理的效率。

    利用网络和数据库技术,基于B/S模式开发了网上销售订单管理系统这一ASP.NET应用程序。本系统开发平台采用Visual Studio 2005,开发语言采用C#,后台数据库采用SQL Server 2005。本系统是一个典型的信息管理系统(MIS),它运用方便,操作简单,效率很高,实现了对销售订单登记、订单确认、货物发送、订单查询及退货结账等功能。它取代了传统的手工对订单管理,从而减少了销售数据误差并实现了数据标准化,能够满足销售单位高效管理要求。

    本文介绍了网上销售订单管理系统的开发工具、开发平台;
    系统需求分析局部主要包括业务流程图、数据流图、功能需求等;
    系统设计局部主要介绍了系统功能设计、数据库设计及代码设计;
    系统实现局部说明了几个主要模块的算法,并附带了一些主要的窗口和程序。

    关键词 销售管理;
    订单管理;
    结账处理 Abstract With the continuous improvement of the science & technology, its great function has been recognized deeply by human, along with that “the modern management〞 also becomes the motility of business development. “The modern management〞 has such advantages like rapid searching, high reliability, large storage level, good confidentiality, and so on. These advantages could increase the efficiency of a business or company’s sales management in a large extent. By use of the skill of network and database, we develop the order control of online marketing which is an ASP.NET application program that base on B/S mode. This system development platform adopts Visual Studio 2005, the development language adopts C#,the background database adopts the SQL Server 2005.This system is a typical Management Information System (MIS) that is very convenient to handle, easy to operate, high efficiency, could carry out the registration of sales order, confirmation of order, delivery of goods, order inquires, goods returned and settle account ,and so on functions. It takes the place of the traditional handwork order control, thus reduces the sales data error and completes the data’s standardization, could satisfy the requirement about high efficiency management of marketing unit. This article introduces the development instrument and development latform of the order control of online marketing; system requirements analysis contains operation flow chart, data flow chart, functional requirements; system design mainly introduces the system functional design, data base design and code design; system implementation explains the algorithm about some major module, and with some main windows and programs. Key words sales management order control  settle account 目 录 摘要 I Abstract II 第1章 绪论 1 1.1 课题背景 1 1.2 课题意义 1 1.3 系统设计思想 2 1.3.1 系统开发模式 2 1.3.2 系统开发平台 3 1.3.3 系统运行环境 4 1.3.4 系统设计原那么 4 1.3.5 系统设计目标 5 第2章 需求分析 7 2.1 需求分析重要性 7 2.2 可行性分析 7 2.2.1 经济可行性 8 2.2.2 技术可行性 8 2.2.3 运行可行性 9 2.3 业务流程图 9 2.4 数据流图 11 2.5 数据字典 13 2.6 本章小结 15 第3章 概要设计 16 3.1 系统功能设计 16 3.2 数据库设计 17 3.2.1 数据库设计的特点 18 3.2.2 数据库设计根本步骤 18 3.2.3 数据库逻辑设计〔E-R图〕 20 3.2.4 数据库表结构 21 3.3 本章小结 23 第4章 详细设计 24 4.1 系统主界面设计 24 4.2 根本信息管理功能设计 24 4.3 商品进货管理功能设计 26 4.4 销售订单管理功能设计 27 4.5 查询统计功能设计 29 4.6 账务管理功能设计 31 4.7 本章小结 32 第5章 系统实现与测试 33 5.1 各个模块功能实现 33 5.1.1 根本信息管理模块实现 33 5.1.2 商品进货管理模块实现 35 5.1.3 销售订单管理模块实现 36 5.1.4 查询统计模块实现 38 5.1.5 账务管理模块实现 39 5.2 软件测试 41 5.2.1 为什么要进行测试 41 5.2.2 测试的根本概念 41 5.2.3 系统测试 42 5.3 本章小结 43 第6章 系统主要功能使用说明 44 6.1 登录系统 44 6.2 根本信息管理 44 6.3 销售订单管理 46 6.4 查询统计 47 6.5 账务管理 48 6.6 本章小结 48 结论 49 致谢 50 参考文献 51 附录1 52 附录2 54 附录3 57 第1章 绪论 1.1 课题背景 随着科学技术与网络技术的迅速开展,“现代化管理〞的理念已成为企业开展的原动力。产品销售管理历来是企业管理中重要的组成局部,一个大型公司每天要完成的销售订单事务十分繁琐复杂,并且业务涉及多个不同的客户,但传统的销售管理是以人员管理为主,这种管理方式存在着许多缺点,因此销售订单管理系统对企业有着十分重要的意义。

    订单管理系统(OMS)是物流管理系统的一局部,通过对客户下达的订单进行管理及跟踪,动态掌握订单的进展和完成情况,提升物流过程中的作业效率,从而节省运作时间和作业本钱,提高物流企业的市场竞争力。订单管理系统的主要功能是通过统一订单提供用户整合的一系列供给链效劳,订单管理以及订单跟踪管理能够使用户的物流效劳得到全程的满足。订单管理系统是物流管理链条中的不可或缺的局部,通过对订单的管理和分配,使仓储管理和运输管理有机的结合,稳定有效地实现物流管理中各个环节充分发挥作用,使仓储、运输、订单成为一个有机整体,满足物流系统信息化的需求。

    销售订单管理是对商户下达的各种指令进行管理、查询、修改等功能,同时将业务部门处理信息反应至商户。销售订单管理系统一般包括:订单登记,订单确认,订单状态管理等。“现代化管理〞手段具有检索迅速、可靠性高、存储量大、保密性好等优点。这些优点能够极大的提高一个企业、公司销售管理的效率。现代市场要求一个企业、公司在瞬息万变的商业领域内及时获取全面具体信息,快速准确的地做出决策,因此对销售订单管理系统的开发与应用是必不可少的。

    1.2 课题意义 借助现代信息技术和管理理论,建立企业、公司管理信息系统是当今社会的重要趋势。在企业、公司管理中,人力资源是企业最珍贵的资源,也是企业的“生命线〞,而产品销售管理又是企业、公司资源管理的重中之重。实行电子化的销售信息管理,可以让销售管理人员从繁重琐碎的案头工作解脱出来,去完成更重要的工作。

    销售订单管理系统它的开发意义在于:首先提高各厂商之间的合作效率,促进联盟的建立,增强企业在市场上的竞争力;
    而且可以使移动办公的销售人员能够及时的远程访问公司发布的应用系统。其次销售管理系统帮助用户监督产品销售的全过程。使用户和销售人员十分清晰的了解到企业内部的各个方面的信息。以销售订单为中心,动态跟踪销售订单的执行情况,以及销售订单的账款情况。通过交期答复功能,销售人员能准确提供交货日期及轻松掌握企业产品的销售情况。通过与库存管理、生产管理、财务管理等系统的无缝衔接,使企业生产的产品符合用户、客户的个性化要求。

    1.3 系统设计思想 1.3.1 系统开发模式 本系统采用B/S结构,即Browser/Server〔浏览器/效劳器〕结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改良的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一局部事务逻辑在前端实现,但是主要事务逻辑在效劳器端实现。B/S 结构,主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种Script语言〔VBScript、JavaScript等〕和ActiveX技术,用通用浏览器实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发本钱,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构。

    内容繁多的使用说明书和花费许多时间的培训,并不能称为“良好的售后效劳〞,真正好的产品的功能越来越复杂的同时应该使产品的使用越来越简单。用浏览器作为软件界面不但容易统一各种应用系统,也非常方便使用。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对效劳器进行,如果是异地只需要把效劳器连接到网即可立即进行维护和升级,这对人力、时间、费用的节省是相当惊人的。使用B/S只需要管理效劳器就行了,所谓的客户端只是浏览器,根本不需要做任何的维护。所以客户机越来越“瘦〞,而效劳器越来越“胖〞是将来软件的主流开展方向,这使得升级和维护越来越容易使用越来越简单。

    根据上面的介绍,用Browser/Server结构来设计网上销售订单管理系统是合理可行的,而且是先进的。

     系统开发平台 本系统开发平台采用ASP.NET,它是微软公司的应用开发平台,是.NET框架中的一个核心局部,是目前流行的动态效劳器主页〔Active Server Page, ASP〕技术的下一代产品。ASP.NET是一个完整的、可扩展的Web 应用程序开发框架,它提出了一种用于创立内容丰富的动态网站、Web应用程序和XML Web效劳的新编程模型。与以往的编程模型相比,这种新编程模型提供了基于组件的架构和开发的范型。

    ASP.NET继承了.NET框架中的编程模型,这种新的应用开发平台可以把C++、Java等面向对象语言的特征与Microsoft Visual Basic语言简易开发的能力相互结合起来。.NET框架的特征是运行期执行环境和在其上层的丰富类库。它对多语言的支持和丰富的自定义控件编制,这些都有利于程序的开发。

    虽然ASP与ASP.NET都用来开发Web应用程序,但ASP.NET运行的方式和ASP差异有天壤之别。当用户发出一个ASPX网页的要求后,ASP.NET引擎〔xspisapi.dll〕会将ASPX的网页转换成源程序代码〔Source Code〕,然后编译成一个DLL文件,接着将网页当成一个类〔Class〕,在内存中建立此对象的实体〔Object Instance〕并进行初始化操作。最后才将执行结果返回到客户端。

    ASP.NET运行过程如图1-1所示。

    图1-1 ASP.NET运行过程 Visual Studio 2005与ASP.NET 2.0相结合增加了许多功能:
    1.ASP.NET 2.0是编译好的公共语言运行库代码,代码运行在效劳器上。它可以利用早期绑定、实时编译、本机优化效劳,相当于在编码前就提高了应用程序性能。

    2.ASP.NET 2.0框架补充了Visual Studio 2005集成开发环境中的大量工具箱和设计器。

    3.ASP.NET 2.0执行常见任务变得容易,并且采用基于文本的分层配置系统,简化了程序的开发过程。

    4.Visual Studio 2005集成了大量的新增控件并且简化了代码的编写,提高了编程效率,可灵活编写用户自定义控件,方便了编程。

    从技术的先进性、成熟性、程序执行效率来讲采用ASP.NET技术都有利于程序开发。

    1.3.3 系统运行环境 1.软件运行平台 本系统设计运行在Windows 2000/NT/XP操作环境下,因为该系统界面友好,易学易用为大多数办公人员所熟悉并且价格适中。

    系统软件: Windows 2000/NT/XP 数据库: SQL Server 2005 IIS: IIS 5.0或IIS 6.0 浏览器: IE 5.0以上版本 2.硬件运行平台 本系统对效劳器硬件的根本标准如下:
    CUP:P4或者更高级别的处理器 内存:512MB以上 硬盘空间:10G以上 显示器:普通彩色显示器 键盘:普通标准键盘 鼠标:机械鼠 1.3.4 系统设计原那么 对于开发一个大型的计算机管理系统,尤其是在企业销售运作中扮演重要角色的销售订单管理系统,必须满足企业销售过程中管理上的要求。本系统考虑了最为普遍的销售订单管理需求,是针对一般销售公司而设计,在考虑系统功能的同时也对操作界面的设计进行了统一规划以使操作界面友好。采用B/S结构,用户端只需要密码登录,不需要安装程序,便于系统维护和保密。本系统的设计按照下述原那么进行:
    1.实用性:系统以用户需求为目标,以方便用户为原那么,同时融入先进的管理经验。系统界面友好,操作简单,企业的工作人员只需掌握一些根本电脑使用方面的知识,要求会打字,这样简单进行培训能够轻松使用本系统,无须企业花费多少财力物力来培训员工。

    2.先进性:本设计将充分应用现有成熟的计算机技术、网络技术、软件开发技术,为用户提供高性能的系统。数据库采用SQL Server 2005,开发平台选用Microsoft Visual Studio 2005。

    3.高可靠性:一个实用的系统同时必须是可靠的,本设计通过合理而先进的网络设计以及软、硬件的优化选型,可保证系统的可靠性与容错性。

    4.高平安性:在设计中,将充分利用网络软、硬件提供的各种平安措施,既可以保证用户共享资源,同时也可保证关键数据的平安性。系统将运用先进的B/S(浏览器/效劳器)结构,为不同用户设定不同权限,便于系统维护和保密。

    5.采用标准技术:本系统的所有设计遵循国际上现行的标准进行,以提高系统的开放性。

    6.可维护性:系统的设计要求方便维护,包括硬件的维护,软件的维护〔更改,升级等〕和网络的维护。

    7.可扩展性及灵活性:系统的设计以方便未来业务的扩展和系统扩充为目标,系统要求能够方便的升级,充分保护系统的投资。

    8.智能性:系统在设计时,充分考虑系统运行的智能性,尽量的使程序智能化,在使用系统一段时间后,系统可以和所处部门的业务相融合。

    1.3.5 系统设计目标 登录系统的主要功能要求:
    1.欢送页面。

    2.功能登陆页面及密码验证。

    网上销售订单的主要功能实现目标:
    1.利用Session对象对用户进行验证工作。

    2.能够对客户、供给商、商品进行添加与相应的管理,并在添加时对相应字段进行格式要求。

    3.能够对订单进行分类登记,假设库存缺乏时提示重新输入值,根据数量与单价自动产生应付款值,根据应付款与已付款产生未付款值。

    4.对于已登记的销售订单转入第二步处理:订单确认。主要分为两种确认方法,分别是发送电子邮件、通知客服。发送电子邮件时,能够根据订单信息显示相应的邮件内容发送给客户进行确认。

    5.确认完的销售订单转入第三步处理:货物发送。这一步主要是对销售订单发货情况进行确认管理。

    6.各类订单可根据订单类型进行相应的付款结账,在结账时显示未付款金额,可通过订单号查看其详细信息,每一次结账细节都可查看其相应的结账明细,支持屡次付款。

    7.可以对库存商品的剩余量,销售量进行查询。可根据不同的条件对各种订单进行查询。

    从上面的分析可以看出:系统设计必须从保证系统的可变更性入手,设计出一个易于理解,易于维护的系统。需要注意以下几个问题:
    1.把系统划分为一些局部,其中每一局部的功能简单明确,内容简明易懂,易于修改,我们把这样的局部称为模块。

    2.系统分成模块的工作按层次进行。首先把整个系统看成一个模块按功能分解成假设干个第一层模块,这些模块相互配合,共同完成整个系统的功能。然后按功能再分解第一层的各个模块。依次下去,直到每一个模块都十分简单。

    3.每一个模块应尽可能独立,即尽可能减少模块间的调用关系和数据交换关系。当然,系统中的模块不可能与其它模块没有联系,只是要求这种联系尽可能少。

    4.模块间的关系要说明,这样在修改时可以追踪和控制,总之一个易于修改的系统应该有一些相对独立、功能单一的模块按照层次结构组成。这些模块之间不必要的联系都已去掉,而且它们的功能及其相互关系都已说明。这就是结构化设计的根本思想。

    第2章 需求分析 2.1 需求分析重要性 所谓管理信息系统〔Management Information System〕系统,是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统,是一门新兴的科学,其主要任务是最大限度的利用现代计算机及网络通讯技术加强企业的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。

    无论采用何种方法开发管理信息系统,系统分析工作都是十分重要的环节。软件的需求分析是软件生存周期中重要的一步,也是最为关键的一步。只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,进而建立软件开发的根底。

    需求分析的任务是分析员通过需求分析提供一种可转化为数据设计、结构设计和过程设计的数据与功能表示,在软件完成后,需求分析阶段研究的对象是软件工程的用户要求。

    软件需求分析工作是软件方案阶段完成之后开始的,其主要目的是:要综合分析用户对系统提出的一组需求〔功能、性能、数据等方面〕的根底上,构造一个从抽象到具体的逻辑模型表达软件将要实现的需求,并以“软件需求规格说明书〞的形式作为本阶段工作的结果,为下一阶段的软件设计提供设计根底。

    软件需求分析阶段,结合所用的开发工具:ASP.NET,SQL Sever对问题进行了分析和深入的了解,建立了实现目标软件逻辑模型与物理模型。

    2.2 可行性分析 可行性分析的目的就是用最小的代价在尽可能短的时间内确定问题是否可解决。可行性研究的目的不是解决问题,而是确定问题是否值得去解决。

    一般来说至少到达以下三个可行性:
    经济可行性:本系统所带来的经济利益能否超过它的开发本钱。

    技术可行性:使用现有的技术能否实现这个系统。

    运行可行性:系统的操作方式是否为用户所接受。

    2.2.1 经济可行性 经济可行性研究主要进行本钱效益分析,包括估计工程的开发本钱,估算开发本钱是否会高于工程预期的全部利润,同时还要看此软件是否能够为用户带来经济效益。

    由于ASP.NET程序设计采用结构化设计思想,且具有语言简单易学、开发快捷等特点,所以用ASP.NET一些可预见的风险可降到最低,如技术问题,人员流失等,从而保证了工程的开发周期,节约了时间本钱,也极大减少了对程序员的培训资金;
    ASP.NET开发的应用程序易于维护,可降低产品后期的维护本钱,提高工程利润点,网上销售订单管理系统开发的目的是为了提高用户工作效率,方便操作与管理而设计。开发此软件并不需要大量的经费,而是个人独立设计,所以从经济角度来讲,所以本系统的开发经济上是完全可行的。

    2.2.2 技术可行性 根据该系统目标来衡量所需的技术是否具备,一般可从硬软件的性能要求、环境条件、操作人员水平和数量等方面去考虑和分析。

    考虑到系统技术可行性,在软件方面选择了如今较流行的ASP.NET 2.0来进行开发管理平台的设计,使用SQL Server 2005数据库存储数据。

    Microsoft的动态效劳器网页ASP.NET技术,语法简单,很容易被程序员所接受,且调试起来也比较容易。从B/S的开发模式, ASP.NET技术的先进性方面考虑,ASP.NET无非是一个最好的技术。微软公司提供了丰富的ASP.NET技术资源库,供程序员及用户查询,同时也有强大的技术效劳中心,使技术风险降到最低,这是任何一门WEB语言在目前形势下不可比较的。

    与ASP.NET 1.X相比,ASP.NET 2.0中参加了更多的新特性,使得开发人员在工作效率、管理、扩展性和性能等方面均有了大幅度的提高。ASP.NET 2.0引入了许多新的效劳器控件,从而能够为数据访问、登录平安、向导导航、菜单、树视图及门户等提供功能强大的声明性支持。因此在软件方面,此系统是可行的。

    在硬件方面,那么选择空间较大,只要是P4系列及以上的计算机,内存在256M以上,硬盘在10G以上,都可以满足系统的开发需要。当然,硬件的配置越高,系统的开发与运行会更流畅。考虑到如今的家用或商用电脑硬件的整体配置水平,系统在硬件方面是完全可行的。

    2.2.3 运行可行性 管理形式的计算机网络化是社会开展的必然趋势,各种智能化的软件层出不穷。本系统直接面向用户,界面设计时充分考虑管理人员的习惯,使得操作简单;
    数据录入迅速、标准、可靠;
    统计准确;
    制表灵活;
    适应力强;
    容易扩充。对于初次使用本系统的用户,不必经过复杂的培训和学习就可以掌握系统的操作流程。由此可见,开发此软件在运行上是可行的。

    利用网络和数据库技术,基于B/S模式开发了网上销售订单管理系统这一ASP.NET应用程序。本系统开发平台采用Visual Studio 2005,开发语言采用C#,后台数据库采用SQL Server 2005。它运用方便,操作简单,效率很高,实现了对销售订单登记、订单确认、货物发送、订单查询及退货结账等功能。它取代了传统的手工对订单管理,从而减少了销售数据误差并实现了数据标准化,能够满足销售单位高效管理要求,本系统具有一定的实际开发价值和使用价值。

    2.3 业务流程图 管理业务流程图是一种描述系统内各单位、人员之间业务关系、作业顺序和管理信息流向的图表,通过它可以帮助分析人员找出业务流程中的不合理的流向。在业务流程图中圆形代表系统中人员,矩形代表系统外实体,箭头代表数据、报表账目的流向。

    本系统主要是对销售订单进行管理,但在销售这一环节的管理上与库存有密切的联系,所以对库存的进货订单也有相应的管理。

    总体业务流程描述如下:
    1.销售订单登记:将每一笔销售信息进行登记,以便财务进行账款上的处理并且也便于对销售统计的查询。

    2.订单确认:根据客户的联系方式将所接受的订单具体信息与其进行确认。使客户及时了解订单处理状态,也便于对订单进行流程化管理。

    3.货物发送:将与客户确认过的订单进行货物上的发送。

    4.账款结算:对于订单账款进行管理,对于每张订单应付款、已付款、未付款及每次付款记录都有详细记载。

    其过程是:订单管理员要对库管部门的进货订单与进货退货订单进行登记,再将订单送财务部门供其账款结算使用,财务部门将订单账款信息送订单管理员,由订单管理员对订单付款信息进行更新。对于客户的退货信息由售后部门做出相关处理制定销售退货单送订单管理员进行登记,再由财务部门对账款进行管理。

    本系统业务流程图如图2-1所示。

    图2-1 系统业务流程图 当接收到客户销售订单时,订单操作人员要根据客户相关信息来确认此订单是否有效,假设订单有效那么要判断库存量是否充足,对于不充足的情况要即时通知库管部门,充足的情况下要通过相应联系方式通知客户其订单已被受理。对于销售出库或销售退货要进行相关的减库存或加库存作业。

    销售订单处理步骤如图2-2所示。

    图2-2 销售订单处理步骤 2.4 数据流图 在详细描述系统功能时,使用数据流图能清晰的描绘数据的流向以及整个系统工作的流程。数据流图是表示系统逻辑模型的常用工具,图中不存在任何具体的物理元素,只表示信息在系统中流动和处理的情况。数据流图是逻辑系统的图形化表示,因此,它是系统分析员与用户进行交流的极好工具。同时也是系统分析员与系统设计人员之间的交流工具。

    在数据流图中矩形代表数据输入的源点和数据的汇点。圆形代表加工,输入数据在此进行变换产生输出数据。箭头代表数据流,被加工的数据与流向。

    对于新客户的销售订单先要向公司信息表中添加此客户的相关根本信息如公司名称、联系方式等。对于所销售的各类商品信息假设没有其相关记录那么要先进行添加如商品名称、供给商、产地等信息。接收到客户的销售订单时,订单操作人员根据用户的相关信息如联系方式、预付款等条件判断是否接受此订单,即确定订单是否有效,对于有效的订单要将其转入订单流程化管理。订单查询支持多条件查询如按照供给商、客户、时间等,同时也将从结账信息表中检索其有关的结账信息。账务管理支持屡次的结账处理,每次结账金额与时间有明确记录。根据以上分析系统数据流图如图2-3所示。

    图2-3 系统数据流图 2.5 数据字典 数据字典是关于数据的信息的集合,也就是对数据流图中的所有元素的定义的集合。

    数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息。它主要是对数据流图中的数据流、处理逻辑、外部实体、数据存储和数据项等方面进行具体的定义。数据流程图配以数据字典,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。

    1.数据项定义:
    对于本系统中所用到的数据项如表2-1所示。

    表2-1 系统数据项定义 编号 名称 别名 类型 长度 I01-01 CompanyName 公司名称 varchar 50字节 I01-02 CompanyType 公司类型 varchar 50字节 I01-03 CompanyShort 公司简称 varchar 50字节 I01-04 CompanyAddress 公司地址 varchar 50字节 I01-05 Postalcode 邮政编码 varchar 50字节 I01-06 Tel 联系 varchar 50字节 I01-07 Fax varchar 50字节 I01-08 Linkman 联系人 varchar 50字节 I01-09 Email 电子邮件 varchar 50字节 I01-10 Bank 开户银行 varchar 50字节 I01-11 BandAccounts 银行账户 varchar 50字节 I01-12 Username 操作人 varchar 50字节 I01-13 AddTime 添加日期 varchar 50字节 I01-14 CommodityName 商品名称 varchar 100字节 I01-15 ShortName 商品简称 varchar 50字节 I01-16 ProducePlace 产地 varchar 100字节 I01-17 Unit 单位 varchar 20字节 I01-18 Specs 规格 varchar 50字节 I01-19 PassNumber 批号 varchar 50字节 I01-20 PassList 批准文号 varchar 50字节 I01-21 CompanyId 供给商ID int 4字节 续表2-1 I01-22 Remark 备注 varchar 500字节 I01-23 total 数量 int 4字节 I01-24 CommodityId 商品ID int 4字节 I01-25 Number 数量 int 4字节 I01-26 Price 单价 decimal 5字节 I01-27 StockDate 日期 datetime 8字节 I01-28 SettlementType 付款方式 varchar 50字节 I01-29 Payment 应付金额 decimal 5 字节 I01-30 FactPayment 实付金额 decimal 5字节 I01-31 NotPayment 未付金额 decmial 5 字节 2.数据流定义:
    系统数据流定义:
    数据流编号:D1-02 数据流名称:商品信息 数据流来源:P1-01 数据流去向:F1-02 简述:公司所销售商品信息 数据流组成:I01-14+I01-15+I01-16+I01-17+I01-18+I01-19+I01-20+I01-21+I01-22+I01-23 数据流编号:D1-06 数据流名称:销售订单详细信息 数据流来源:P1-06 数据流去向:F1-03 简述:有效的销售订单详细信息 数据流组成:I01-24+I01-21+I01-25+I01-26+I01-27+I01-28+I01-29+ I01-30+I01-31+I01-32+I01-13+I01-21 数据流编号:D1-15 数据流名称:订单结账信息 数据流来源:P1-05 数据流去向:F1-04 简述:各类订单账款支付信息 数据流组成:I01-24+I01-35+I01-32+I01-36+I01-12+I01-13 2.6 本章小结 本章主要对网上销售订单管理系统进行了需求分析。需求分析是在可行性研究根底上进行的,同时又描绘了本系统的业务流图,在业务流图的根底上对销售订单处理步骤进行了分析。通过本系统数据字典与数据流图的配合描述了系统逻辑模型。通过对本系统进行需求分析得到了用户所要求实现的功能,也对后面将要进行的概要设计打下了良好的根底。

    第3章 概要设计 问题定义、可行性研究和需求分析构成了了软件分析阶段,在这个阶段确定了需要做什么和系统需求规格。而软件开发阶段的任务是概括地答复系统如何实现的问题。软件开发阶段包括概要设计、详细设计、编码和测试等。

    概要设计从概念上分为结构设计和详细设计两个阶段。结构设计又称为总体设计,其主要的任务是制订系统实现方案和设计标准并合理确定软件系统整体模块结构及接口关系。详细设计,也称为模块设计,其主要任务是详细规定每个模块功能的实现算法。本章将主要对软件总体设计进行了相关描述。

    本软件设计遵循以下几个原那么:
    1.将软件划分成假设干个独立成分的依据。

    2.表示不同的成分内的功能细节和数据结构。

    3.统一衡量软件设计的技术质量。

    3.1 系统功能设计 利用层次方框图来表示系统中各模块之间的关系。层次方框图用树型结构一系列多层次的矩形框描述数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素。

    随着结构化的精细化,层次方框图对数据结构也描绘得越来越细,这种模式非常适合于需求分析阶段的需要。

    本系统一共分为五个模块,每个模块之间虽然在外表上是相互独立的,但是在对数据库的访问上是紧密相连的,各个模块访问的是同一个数据库,只是所访问的表不同而已。每个模块的功能都是按照在调研中搜集的资料进行编排制作的。

    依据上述功能的分析,系统中模块分别为:根本信息管理、商品进货管理、销售订单管理、查询统计、账务管理。

    各功能模块的具体功能如下:
    1.根本信息管理:主要是对供给商、客户、商品进行添加与管理。

    2.商品进货管理:针对各类商品的进货单进行登记,并对商品进货中进货退货进行处理。

    3.销售订单管理:针对销售订单进行订单登记、订单确认、货物发送及销售退货进行登记与处理,完成订单一系列流程化的处理过程。

    4.查询统计:可选择不同的查询条件,输入不同的查询值,主要是对商品库存量及各类订单信息进行查询。

    5.账务管理:主要是对各类订单进行货款上的结算,可支持屡次付款结算,并可进行付款详细信息查看。

    系统功能结构图如图3-1所示。

    图3-1 系统功能结构图 3.2 数据库设计 数据库设计是建立在数据库及其应用系统的技术,是信息系统开发和建设中的核心技术,具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用环境,使之能够有效地存储数据,满足各种用户的应用需求〔信息要求和处理要求〕。

    大型数据库的开发是一项庞大的工程,其开发周期长,耗资多、涉及到多科学的综合性技术。对于从事数据库设计的人员来讲应具备以下几点:
    1.数据库的根本知识和数据库设计论述。

    2.计算机科学的根底知识和程序设计的方法和技术。

    3.软件工程的原理和方法。

    4.应用领域的知识。

    3.2.1 数据库设计的特点 数据库技术是应数据管理任务的需要而产生的。早期的数据库设计中数据不具备独立性而且不能共享,而且数据需要由应用程序自己管理,没有相应的软件系统负责数据的管理工作。早期人工管理阶段,程序与数据之间是一对一的关系。

    传统的软件工程无视对应用程序中数据语义的分析和抽象。数据模式是各应用程序共享的结构,是稳定的,永久的,不像以文件系统为根底的应用系统,文件是某一应用程序私用的。数据库设计的成功与否直接影响着系统中个处理过程的性能和质量。

    在进入数据库系统阶段时,数据具有了结构化、独立性高的特点。在此阶段数据与程序的独立,把数据的定义从程序中别离出去,加上数据的存取又由DBMS负责,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。考虑应用环境要求与数据库结构的关系,因此结构设计与行为设计是别离的。

     数据库设计根本步骤 由于信息结构复杂,应用环境多样,在相当长的一段时间内数据库设计主要采用手工凑法。由于这种方法受到设计人员经验和水平的影响,数据库的设计成为了一种技艺而不是工程技术,缺乏科学理论和工程方法的支持,工程的质量难以保证,常常是数据库运行一段时间后出现不同程度问题,增加了系统维护的代价。所以人们提出了各种数据库设计方法、设计准那么和规程。

    按照标准设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下六个阶:
    1.需求分析阶段 进行数据库设计首先必须准确了解与分析用户需求〔包括数据与处理〕。需求分析是整个设计过程的根底,是最困难、最耗时间的一步。作为根底的需求分析是否做得充分与准确,决定了在其上构建数据库大厦的速度与质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。

    2.概念结构设计阶段 概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。

    3.逻辑结构设计阶段 逻辑结构设计阶段是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。

    4.数据库物理设计阶段 数据库的物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构〔包括存储结构和存取方法〕。

    5.数据库实施阶段 数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。

    6.数据库运行和维护阶段 数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。

    设计一个完善的数据库应用系统是不可能一蹴而就的,它往往是上述六个阶段的不断反复。需要指出的是,这个设计步骤既是数据库设计的过程,也包括了数据库应用系统的设计过程。在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来,将这两方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计。事实上,如果不了解应用环境对数据的处理要求,或者没有考虑如何去实现这些处理要求,是不可能设计一个良好的数据库结构的。因此本系统的数据库设计严格按以上步骤进行,以确保数据库设计的合理性与完善性。

    3.2.3 数据库逻辑设计〔E-R图〕 实体联系模型反映的是现实世界中的事物及其相互关系。是一种用来在数据库设计过程中表示数据库系统结构的方法,它的主导思想是用实体,实体的属性以及实体之间的关系来表示数据库系统的结构。

    “实体〞指现实世界中存在的对象或事物。“属性〞指实体具有的某种特性。为了简化E-R图的处置,现实世界的事物能作为属性的对待的,尽量作为属性对待。但实体与属性之间并没有形式上可以截然划分的界限,所以对属性的划分遵循以下两个原那么:
    1.作为“属性〞,不能再具有需要描述的性质。“属性〞必须是不可分的数据项,不能包含其他的属性。

    2.“属性〞不能与其他实体具有联系,即E-R图中所表示的联系是实体之间的联系。

    每张订单只能由一个管理员进行管理所以是一对一关系;
    每张订单中商品有唯一的记录与之对应所以是一对一关系;
    一个公司有多张订单,多张订单可属于同一公司所以是多对多关系;
    每张订单有屡次支付记录所以是一对多关系。根据以上分析本系统的E-R图如图3-2所示。

    图3-2 数据库E-R图 3.2.4 数据库表结构 根据本系统根本功能和所涉及人员对数据库建立了假设干表,其具体表结构如下所示。

    AdminInfo表用于存放系统管理员信息,其结构如表3-1所示。

    表3-1 AdminInfo表结构 字段名称 数据类型 说明 AdminName varchar(50) 管理员ID(PK) AdminPwd varchar(20) 密码 TypeName varchar(50) 昵称 Flag varchar(50) 级别标志 Company表用于存放公司信息,其结构如表3-2所示。

    表3-2 Company表结构 字段名称 数据类型 说明 id int(4) 公司ID(PK) CompanyName varchar(50) 公司名称 CompanyType varchar(50) 公司类型 CompanyShort varchar(50) 公司简称 CompanyAddress varchar(50) 公司地址 Postalcode varchar(50) 邮政编码 Tel varchar(50) 联系 Fax varchar(50) Linkman varchar(50) 联系人 Email varchar(50) 电子邮件 Bank varchar(50) 开户银行 BandAccounts varchar(50) 银行账户 Username varchar(50) 操作人 AddTime varchar(50) 添加日期 Commodity表用于存放所销售商品信息,其结构如表3-3所示。

    表3-3 Commodity表结构 字段名称 数据类型 说明 id Int(4) 商品ID(PK) CommodityName varchar(100) 商品名称 ShortName varchar(50) 商品简称 ProducePlace varchar(100) 产地 Unit varchar(20) 单位 续表3-3 Specs varchar(50) 规格 PassNumber varchar(50) 批号 PassList varchar(50) 批准文号 CompanyId int(4) 供给商ID Remark varchar(500) 备注 Usrname varchar(50) 操作人 AddTime varchar(50) 添加日期 Total int(4) 数量 Stock表用于存放各种订单信息,其结构如表3-4所示。

    表3-4 Stock表结构 字段名称 字段类型 说明 Id int(4) 订单ID(PK) CommodityId int(4) 商品ID CompanyId int(4) 公司ID Number int(4) 数量 Price decimal(5) 单价 StockDate datetime(8) 日期 SettlementType varchar(50) 付款方式 Payment decimal(5) 应付金额 FactPayment decimal(5) 实付金额 NotPayment decimal(5) 未付金额 ManageMan varchar(5) 经手人 Username varchar(50) 操作人 AddTime varchar(20) 添加日期 ClientId int(4) 客户ID Type varchar(10) 订单类型 SendMail int(4) 电子邮件标志 Reckoning表用于存放订单所付款信息,其结构如表3-5所示。

    表3-5 Reckoning表结构 字段名称 字段类型 说明 Id int(4) 单据ID CommodityId int(4) 商品ID Settlement int(4) 付款金额 ManageMan varchar(50) 经手人 Datetime datetime(8) 结账日期 Username varchar(50) 操作人 Addtime varchar(50) 添加日期 3.3 本章小结 本章主要对概要计中涉及到的知识进行了分析,包括层次方框图、数据库E-R图及表关系。同时对数据库设计的特点进行了描述,本系统数据库的设计严格按照数据库设计标准的六个步骤来完成,以便更好的实现系统功能。由于数据库在设计中有非常重要的作用,所以在开发过程中,在考虑数据库上的时间较多。

    第4章 详细设计 4.1 系统主界面设计 本系统的主界面整体结构为上左右结构,上面局部显示当前登录用户名以及系统当前时间,左面局部采用了树型层次结构罗列了系统的全部功能,右面局部为客户区,显示当前操作的使用窗口。系统主界面如图4-1所示。

    图4-1 系统主界面 1.实现目标:
    中选择相应的菜单项时能够正确的进入相应的界面,对于“返回首页〞与“注销登录〞可成功转到相应界面。

    2.实现过程:
    其主要功能是通过自定义控件实现,对控件中菜单层的展开、弹回及相应链接页面进行了相应功能编码。

    4.2 根本信息管理功能设计 1.实现目标:
    对于输入的各种根本信息数据系统要对其进行验证如格式、类型、长度。同时对于修改后的值要对数据库进行更新。这样输出的数据将是标准化的,记录都是最即时的。此模块的界面如图4-2所示。

    图4-2 根本信息管理 2.实现过程:
    窗体名:Add_UserInfo.aspx Add_Product.aspx Master_UserInfo.aspx Master_Product.aspx 对于根本信息管理页面中所用到各控件及其主要属性设置如表4-1所示。

    表4-1 根本信息管理主要控件信息列表 控件名称 主要属性设置 作用 Table border=1 显示边框 cellspacing=0 单元格的距离为0 Requirefieldvalidator1 controltovalidator=CommodityName 验证的文本框名称 errormessage=商品名称不能为空 显示的错误信息 forecolor=red 字体颜色为红色 display=Static 静态显示 Text1 TextMode=SingleLine 单行文本框 Button1 Click=Button1_Click( ) 编写单击事件 对于一家公司来说供给商与客户都是工作时所要面对的对象,因此在记录这些数据时使用一张表来记录,只用字段Type来区分类型。对于供给商与客户的添加使用同一界面样式,为了区别是何种对象的添加,在程序设计中使设计的用户自定义控件所链接的页面地址添加了标志Flag,利用标志赋予不同的值区分是何种公司的添加。在CS文件中获得当前页面Flag值来确定记录存入库中时Type的值。利用Return_Title 函数让页面标题显示相应文字。

    4.3 商品进货管理功能设计 1.实现目标:
    通过下拉列表框选择商品名称,在供给商文本框中自动显示出其供给商,根据输入的数量与单价自动生成应付金额,并且能够根据已付金额自动生成未付金额。操作人员是当前系统登录者姓名。结款方式有两种分别是现金与支票,可通过下拉列表框进行选择。各数据的格式错误时都有相应的提示信息,当订单的添加成功时有相应的提示框弹出。

    此模块界面如图4-3所示。

    图4-3 商品进货管理 2.实现过程:
    窗体名:Add_Stock.aspx Back_Stock.aspx 对于商品进货管理页面中所用到各控件及其主要属性设置如表4-2所示。

    表4-2 商品进货管理主要控件信息列表 控件名称 主要属性设置 作用 Table border=1 显示边框 cellspacing=0 单元格的距离为0 Requirefieldvalidator1 controltovalidator=CommodityName 验证的文本框名称 errormessage=商品名称不能为空 显示的错误信息 forecolor=red 字体颜色为红色 display=Static 静态显示 CompareValidator1 controltovalidator=Price 验证的文本框名称 forecolor=red 字体颜色为红色 errormessage=单价格式添写错误 显示的错误信息 display=Dynamic 动态显示 Text1 TextMode=SingleLine 单行文本框 Button1 Click=Button1_Click( ) 编写单击事件 对于各数据的值采用验证控件进行格式控制,例如数量只能输入为整数,当输入为其他范围的值系统都会提示错误。“添加〞按钮单击事件主要是对文件框中数据的读取,再通过SQL语句对数据库进行相应操作,此操作的成功与否主要是通过SqlDataBase.cs类来实现。

    4.4 销售订单管理功能设计 1.实现目标:
    对于输入的销售订单信息进行验证如应付款、未付款、已付款进行格式上与数值上的验证,然后将销售订单转入一系列流程化的处理。包括对订单确实认,通知客户我公司已接收并同意订单生意,发货将订单转入下一个阶段,等待对方的账款信息。输出的数据将以标准化格式显示,并且在每一阶段只显示相应完成阶段的订单。

    销售订单管理模块如图4-4所示。

    图4-4 销售订单管理 2.实现过程:
    窗体名:Add_Sell.aspx Send_Sell.aspx Send_Goods.aspx     Back_Sell.aspx 对于销售订单管理页面中所用到各控件及其主要属性设置如表4-3所示。

    表4-3 销售订单管理主要控件信息列表 控件名称 主要属性设置 作用 Table border=1 显示边框 cellspacing=0 单元格的距离为0 Requirefieldvalidator1 controltovalidator=CommodityName 验证的文本框名称 errormessage=商品名称不能为空 显示的错误信息 forecolor=red 字体颜色为红色 display=Static 静态显示 CompareValidator1 controltovalidator=Price 验证的文本框名称 forecolor=red 字体颜色为红色 errormessage=单价格式添写错误 显示的错误信息 display=Dynamic 动态显示 Text1 TextMode=SingleLine 单行文本框 Button1 Click=Button1_Click( ) 编写单击事件 SqlDataSource1 Select语句编写 GridView显示满足条件记录 在订单登记时需要添写的项有商品名称、客户名称、单价、数量、应付金额等。其中各数据的格式与不能为空的限制都用ASP.NET验证控件来进行限制。对于商品名称与客户的添写都使用下拉列表框进行选择,中选择商品时自动显示其供给商。操作人员的值是通过使用函数获取当前操作人员名称并将其值赋给文本标签,在将文本标签的值写到库中。

    销售订单的登记完成后将转入下一个步骤订单确认。这一步显示了相关订单信息,对于记录的选择通过SqlDataSource中Select语句检索出所有Mail 值为“1〞的即“未被确认〞的订单。对于订单确实认方法有两种,一种是发送邮件确认另一种是人工通知确认。对于邮件确实认相关代码编写在类中与相应的CS文件中。当点击发送邮件确认时让Panel_SendMail控件处于可见状态。通过类中函数QueryString.Get_Id、QueryString.Get_Flag、与相应sql语句检索出要发送邮件订单的具体信息,并将这些信息显示在邮件控件上,作为邮件内容发送,邮件的发送主要是通过组件实现的。两个组件分别是Interop.ADODB.dll与Interop.CDO.dll。对于组件相应调用代码及根本变量设计都在SendMail.cs中进行了设置。对于发送邮件成功完成确认的订单通过函数将其在数据库中Mail值更新。

    发送货物一经确认过的销售订单的状态也将被更新。由于销售出的货物存在着不同原因上的销售退货情况,因此也设定了销售退货登记这一处理。

    4.5 查询统计功能设计 1.实现目标:
    在查询模块中各查询界面根本功能相同,只是各查询条件的选择不同而已,但根本操作一致。当进入查询页面后先对查询条件进行选择,查询条件的选择只需在相应复选框前打对号即可,再输入相应查询条件的值,对于相应值的输入也进行了验证。对于各类信息的检索都用CS中的代码来实现,输出正确的显示结果。

    查询统计界面如图4-5所示。

    图4-5 查询统计 2.实现过程:
    窗体名:Stock_Search.aspx Sell_Search.aspx Stockpile_Search.aspx 对于查询统计页面中所用到各控件及其主要属性设置如表4-4所示。

    表4-4 查询统计主要控件信息列表 控件名称 主要属性设置 作用 Table border=1 显示边框 cellspacing=0 单元格的距离为0 CompareValidator1 controltovalidator=Price 验证的文本框名称 forecolor=red 字体颜色为红色 errormessage=开始时间格式添写错误 显示的错误信息 display=Dynamic 动态显示 CheckBox1 Check=false 初始化时为未选中状态 Text1 TextMode=SingleLine 单行文本框 Button1 Click=Button1_Click( ) 编写单击事件 查询主要分为:商品库存查询、商品进货查询、进货退货查询、商品销售查询、销售退货查询。其中商品进货查询与进货退货查询采用同一aspx界面,商品销售查询与销售退货查询采用同一aspx界面。对于相应何种查询确实定采用在链接页后面加type,根据赋予type不同的值来确定是何种信息的查询。用户可选择不同的查询条件,如供给商、经手人、商品名称、起止日期进行查询。对于查询条件的选择采用复选框的形式,用户只需要复选框前打上对号后再输入相应条件的值点击“查询〞按钮即可显示出满足条件的所有订单记录。并且可通过GridView中“详细信息〞这一链接字段查看订单的详细内容。对于起止日期采用了ASP.NET中的验证控件:CompareValidator、ValidationSummary进行格式上的限制与提示。

    4.6 账务管理功能设计 1.实现目标:
    选择相应的订单,点击其结账按钮弹出对应结账窗口。在窗口中输入此订单相应的结账金额信息,对于本次结账的金额要进行其未付款金额上的更新处理,同时对于该订单付款记录将进行更新。输出的将是订单更新后准确的结账信息。此模块的界面如图4-6所示。

    图4-6 账务管理 2.实现过程:
    窗体名:Recokoning.aspx 主要运用控件 GridView,对其各列所要显示的字段进行编码,并对具有链接功能的列进行了设置,通过代码与控件属性相结合实现。

    对于所有的结账页面都采用同一个Reckonig.aspx页面。根据获取不同结账类型值来使标题显示相应的结账类型。可点击单据编号查看订单详细信息并且可显示其相应的付款细节如第几次付款、付款金额、付款时间等。当点击GridView中的“结账〞按钮将调用Jscript.cs类中OpenWebFormSize函数使结账窗口按适当大小弹出。在结账窗口中自动显示未付金额,假设付款大于未付款将给出提示“结款金额输入错误〞。同时各种数据的输入与格式此页面也用验证控件进行控制。

    4.7 本章小结 本章从模块具体功能上设计了网上销售订单管理系统。主要的模块即根本信息管理、销售订单管理、查询统计、账务管理等模块。在详细设计中分析了各模块的功能并对各模块做了编程思路的阐述。可以将系统分解成几个功能模块来分别设计,以模块的设计和框架结构的思想来贯穿整个系统开发过程。本系统的设计完全按照以上的设计来进行,相信能够完成功能上的需求。

    第5章 系统实现与测试 5.1 各个模块功能实现 在程序设计时考虑到有许多代码是需要重复编写的,并且有些函数被屡次调用,考虑到程序代码的编辑量与程序的运行速度,决定对于重复编写的代码与屡次被调用的函数都用类的形势封装。

    其中HeaderTextInfo.cs类主要功能是运行程序时窗口标题信息文字的显示与相关函数的编写。Jscript.cs主要是对程序运行中各类小的窗口,及转向到相应URL地址的代码编写。PersonInfo.cs主要是对管理员登录与管理管理员操作进行代码与相关函数的编写,包括添加新管理员判断其用户ID是否已存在与登录时自动显示其昵称函数。QueryString.cs主要是对一些程序中用到的信息如Flag、Cid获取函数的编写。SendMail.cs主要功能是当订单确认时发送电子邮件所需代码编写。SqlDataBase.cs主要是对数据库各种操作其相应代码的编写,如DataSet表,DataView数据视图代码。stock.cs用于对库存商品数量一些操作代码的编写,如计算进货数量,计算销售数量,计算当前库存量函数。StringUtil.cs是对输入的数据进行过滤如去掉其空格、按要求长度显示代码的编制。为了到达界面美观统一,程序采用了样式表、自定义控件与母版技术。

    5.1.1 根本信息管理模块实现 首先对于输入的根本信息数据程序要进行格式、类型、长度等的验证,对于不正确的要重新输入,正确时要读取各数据的值存入相应的表中,对于存入时显示失败的数据要进行重新的读取。

    根本信息管理模块程序流程如图5-1所示。

    图5-1 根本信息管理程序流程图 本模块中各界面主要用到了文件框控件、验证控件、按钮控件及表格。其中取出各文本框所输入的值并存到数据库中表的代码如下:
    protected void Button1_Click(object sender, EventArgs e) { //取出对应的文本框 string CompanyType = Return_Title(); string CompanyName = this.CompanyName.Text.ToString(); string CompanyShort = this.CompanyShort.Text.ToString(); string CompanyAddress = this.CompanyAddress.Text.ToString(); string Postalcode = this.Postalcode.Text.ToString(); string Tel = this.Tel.Text.ToString(); string Fax = this.Fax.Text.ToString(); string Linkman = this.Linkman.Text.ToString(); string Email = this.Email.Text.ToString(); bool YesNo = new SqlDataBase().RunSql_Return_Bool(CmdTxt);//判断添加后返回结果,如果正确那么返回的是1 if (YesNo) { JScript.AlertAndRedirect(“添加成功!“, “Add_UserInfo.aspx?Flag=“ + QueryString.Get_Flag + ““); } else { JScript.GoHistory(“添加失败“, -1); } } 5.1.2 商品进货管理模块实现 首先输入订单数据,当验证其格式等为正确时那么要读取所输入的数据值,当保存成功时程序结束,否那么程序重新读取所输入的值。

    商品进货管理模块程序流程图如图5-2所示。

     图5-2 商品进货管理程序流程图 本模块的界面主要用到验证控件、文本框控件、日历控件、按钮等。其主要代码如下:
    //计算输入的金额是否正确 if (Number * Pirce < Payment) { Response.Write(“<script>alert('应付金额填写错误');history.back()</script>“); Response.End(); } string CmdTxt = “insert into Stock (CommodityId,CompanyId,Number,Pirce,StockDate,SettlementType,Payment,FactPayment,NotPayment,ManageMan,Username,AddTime,Type)values('“ + CommodityId + “','“ + CompanyId + “','“ + Number + “','“ + Pirce + “','“ + StockDate + “','“ + SettlementType + “','“ + Payment + “','“ + FactPayment + “','“ + NotPayment + “','“ + ManageMan + “','“ + Username + “','“ + AddTime + “','“ + Type + “')“; bool YesNo = new SqlDataBase().RunSql_Return_Bool(CmdTxt);//判断添加后返回结果,如果正确那么返回的是1 if (YesNo) { JScript.AlertAndRedirect(“添加成功!“, “Add_Stock.aspx“); } else { JScript.GoHistory(“添加失败“, -1); } 5.1.3 销售订单管理模块实现 程序首先从订单表中读取相应的销售订单数据,然后再从公司信息表中读取客户信息,根据客户联系方式发送电子邮件进行确认,对于发送完邮件确认的订单进行货物上发送处理并及时更新订单状态。

    销售订单管理模块程序流程如图5-3所示。

    图5-3 销售订单管理程序流程图 本模块的界面主要用到了SqlDataSource控件、GridView控件、文本框控件,在电子邮件的发送上调用了组件Interop.ADODB.dll与Interop.CDO.dll。主要实现代码如下:
    public void IsPage_Bind() { if (QueryString.Get_Id != null&&QueryString.Get_Flag!=null) { if (QueryString.Get_Flag.ToString() == “1“) { Panel_SendMail.Visible = true; string CmdTxt = “SELECT CommodityName, Number, Pirce, StockDate, SettlementType, Payment, FactPayment, NotPayment, Email FROM sell Where id=“ + QueryString.Get_Id + ““; SqlDataReader sdr = new SqlDataBase().GetDataReader(CmdTxt); if (sdr.Read()) { txt_Title.Text = “关于贵公司购置我司““ + sdr[“CommodityName“].ToString() + “〞确实认通知“; txt_Email.Text = sdr[“Email“].ToString(); txt_Body.Text = “贵方于“ + sdr[“StockDate“].ToString() + “,采购我司““ + sdr[“CommodityName“].ToString() + “〞,付款方式:“ + sdr[“SettlementType“].ToString() + “,数量“ + sdr[“Number“].ToString() + “,单价:“ + sdr[“Pirce“].ToString() + “,应付:“ + sdr[“Payment“].ToString() + “,已支付:“ + sdr[“FactPayment“].ToString() + “,未支付:“ + sdr[“NotPayment“].ToString() + “。\n请贵公司核对!\n恭祝商祺!“; } sdr.Close(); sdr.Dispose(); } else { new SendMail().Update_Stock_Email(QueryString.Get_Id);//更新订单状态 } } } public void ToSend() { SendMail SM = new SendMail(); SM.To = txt_Title.Text.Trim(); SM.Subject = txt_Title.Text.Trim(); SM.Body = txt_Body.Text.Trim().Replace(“\n“, “<br />“); SM.Id = QueryString.Get_Id; SM.GoSend(SM); } protected void btnAdd_Click(object sender, EventArgs e) { ToSend(); } 5.1.4 查询统计模块实现 输入查询条件,当查询条件值输入正确时那么输出所有满足条件记录。查询统计模块程序流程如图5-4所示。

    图5-4 查询统计程序流程图 查询统计界面设计主要用到了复选框控件、文本框控件及SqlDataSourcet等控件。其主要实现代码如下:
    public void bind() { string strsql, type; if (Request[“type“] == “se“) { type = “销售信息“; } else { type = “销售退货“; } Label1.Text = type; strsql = “select * from sell where type='“ + type + “' “ + Session[“sql“] + “ order by id desc“; SqlConnection strcon = new SqlConnection(ConfigurationManager.ConnectionStrings[“SellOrder_ConnectionString“].ConnectionString); strcon.Open(); SqlDataAdapter sda = new SqlDataAdapter(strsql, strcon); DataSet ds = new DataSet(); sda.Fill(ds, “search“); GridView1.DataSource = ds.Tables[“search“]; GridView1.DataKeyNames = new string[] { “id“ }; GridView1.DataBind(); } 5.1.5 账务管理模块实现 从订单表中读取相应订单记录,再对其结款信息进行输入,最后进行账款上的更新。账务管理模块程序流程如图5-5所示。

    图5-5 账务管理程序流程图 此模块界面主要用了GridView控件,在其各单元显示相应单据编号及结账按钮的代码如下:
    string id = e.Row.Cells[3].Text.ToString(); stockClass sc = new stockClass(); int not = sc.not(id); if (not == 0) { e.Row.Cells[3].Text = “<font color=red>已结款</font>“; ((Button)(e.Row.Cells[6].Controls[0])).Enabled = false; } else { e.Row.Cells[3].Text = Convert.ToString(not); } //单据编号 string month = Convert.ToDateTime(((HyperLink)(e.Row.Cells[5].Controls[0])).Text).Month.ToString(); if (month.Length < 2) { month = “0“ + month; } string day = Convert.ToDateTime(((HyperLink)(e.Row.Cells[5].Controls[0])).Text).Day.ToString(); if (day.Length < 2) { day = “0“ + day; } string zero = ““; for (int i = 1; i < (10 - id.Length); i++) { zero = zero + “0“; } string uid = zero + id; 5.2 软件测试 5.2.1 为什么要进行测试 经过需求分析、设计和编码等阶段的开发后,得到了源程序,开始进入到软件测试阶段。然而,在测试之前的各阶段中都可能在软件产品中遗留下许多错误和缺陷,如果不及时找出这些错误和缺陷,并将其改正,这个软件产品就不能正常使用,甚至会导致巨大的损失。目前,程序的正确性证明尚未得到根本的解决,因此软件测试仍是发现软件中错误和缺陷的主要手段。

    测试是一项很艰苦的工作,其工作量约占软件开发总工作量的40%以上,特别对一些关系到人的生命平安的软件。

     测试的根本概念 软件工程师力图从抽象的概念出发,逐步设计出具体的软件系统,直到用一种适当的程序设计语言写出可执行的程序代码。但是,在测试阶段测试人员努力设计出一系列测试方案,目的却是为了“破坏〞已经建造好的软件系统,竭力证明程序中有错误不能按照预定要求正确工作。目的是为了发现问题之后来解决问题。

    测试分为两种:
    1.黑盒测试:如果已经知道了产品应该具有的功能,可以通过测试来验证是否每个功能都能正常使用;

    2.白盒测试:如果知道了产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行;

    白盒测试是功能上的测试,主要面向的是用户;
    黑盒测试面向的是开发人员。黑盒测试技术并不能取代白盒测试技术,它是与白盒测试互补的测试方法,它很可能发现白盒测试不易发现的其他类型的错误。

    5.2.3 系统测试 本系统主要进行了以下测试:
    1.对于输入的值为整型,可划分出正整数,零和负整数三个有效类分别输入三个范围内的值进行测试。例在进货登记中数量正常的输入为正整数,当输入为正的小数时提示窗口显示“数量添写错误〞,当输入为负整数时由于对应付款有限制,所以提示“应付款添写错误〞。

    2.对于应付款、已付款、未付款输入的值调用了相应的计算函数computation进行数据上的验证。当输入错误时自动选择所输入的记录并弹出提示窗口。对于本测试输入的数据都能够正确的得到计算结果。

    3.对于一些字段如电子邮件、 号码、 格式及长度都做了相关测试。当输入的电子邮件为abc@abc时系统会给出提示“电子邮件添写错误〞。对于 当输入的长度超出固定长度时系统会提示“ 输入错误〞。

    4.对于各种管理模块的管理功能进行了记录更新上的测试。比方对客户资料的管理,对客户根本信息进行了如名称、联系方式、 等字段的修改,都能够正确即时更新记录。

    5.对于界面中各控件如GridView中所编写的链接页面及“返回〞、“重置〞按钮等进行了相关测试。测试中对于无法正确链接的页面重新编写了链接地址,按钮能够正确到达执行效果。

    6.对于订单确认功能测试时由于相应邮件效劳器设置不正确,发送邮件失败,但将密码修改正确后能够发送成功。对于向自已邮箱发送邮件显示失败属正常现象。

    软件测试是一个重要环节,每一个细节上的问题都要面面具到。这样才能保证开发出的软件到达用户功能使用上的要求。

    5.3 本章小结 本章主要对各模块具体功能上的实现做了相关代码上的编写,同时也对用到的主要控件进行了说明。对测试及本程序测试主要方法进行了相关阐述。程序的测试对于软件是至关重要的,因为软件的目的就是为了实现功能方便用户使用,在测试方面每个模块无论是使用功能还是代码编写都进行了详细测试,相信能够完善的实现功能。

    第6章 系统主要功能使用说明 6.1 登录系统 步骤一:翻开浏览器,在地址栏中输入相应地址。

    步骤二:系统自动弹出“没有登录或登录超时!〞窗口,点击确定输入相应的用户名、密码、验证码。如图6-1所示。

    图6-1 系统登录界面 步骤三:点击“用户登录〞按钮进行登陆验证,如果输入的账号信息正确,那么会出现程序主界面,说明成功登陆系统,并在界面的上方正确地显示当前登陆的操作员姓名以及当前的时间,如果输入的账号不存在或密码错误,那么会给出错误提示信息。

    6.2 根本信息管理 步骤一:用鼠标点击左侧菜单“根本信息管理〞菜单。

    步骤二:在弹出的下拉选项中选择“供给商添加〞一项。

    步骤三:在弹出的页面中输入供给商信息如公司名称、公司简称、地址等点击“添加〞按钮即可完成对供给商的添加。客户添加与供给商添加根本操作一致。窗口如图6-2所示。

    图6-2 根本信息管理界面 步骤四:点击“添加商品〞菜单项选择项,在商品添加页面中添加相应的商品名称、商品简称等并在下拉列表框中选择其相应的供给商。点击“添加〞按钮完成商品信息的添加。

    步骤五:对于各种信息的管理只需选择其相应的菜单项选择项便可进入相应的管理页面。管理操作根本一致,只需选择“修改〞链接字段便可弹出相应记录的修改窗口。以商品修改为例其图如图6-3所示。

    图6-3 修改商品界面 6.3 销售订单管理 步骤一:选择销售订单管理菜单下的“订单登记〞选项。

    步骤二:在订单登记页面中输入订单各数据的值,其中对于金额上的添写只需添写实付金额,未付金额系统会自动计算并显示在相应文件框中。点击“添加〞按钮完成订单登记。其图如图6-4所示。

    图6-4 销售订单登记界面 步骤三:选择销售订单管理菜单下的“订单确认〞选项。

    步骤四:在记录中选择要发信通知或人工通知确认的订单记录。对于选择发信确认的记录会自动将其订单细节内容作为信件内容发送到客户的邮箱中。点击“确认发送〞按钮,信件将成功发送,系统并将该订单转入下一流程处理。其窗口如图6-5所示。

    步骤五:点击“货物发送〞进入货物发送页面,在记录中选择要发送货物的订单记录,在弹出的窗口单击“确定〞,即完成了订单处理第三步。

    步骤六:点击“销售退货登记〞进入退货登记页面,这一页面与订单登记根本一致,主要是对销售后退货记录进行添写。

    图6-5 订单确认界面 6.4 查询统计 选择“查询统计〞菜单下的“商品库存查询〞,在页面中选择查询条件在其后面文本框中输入条件值即可检索出相应商品记录。对于各类订单查询操作根本一致不做详细描述,只是在订单查询时,可同时查看订单详细信息。其图如图6-6所示。

    图6-6 查询统计界面 6.5 账务管理 各类订单的账款管理界面根本相同,只需选择相应的菜单项即可进入相应类型订单结账处理。单击“单据编号〞即可查看订单的详细信息及付款的详细记录。单击“结账〞按钮即可翻开结账窗口进行结款处理。其图如图6-7所示。

    图6-7 账务管理界面 6.6 本章小结 本章主要对网上销售订单管理系统主要功能使用进行了说明,无论从窗口界面美观还是功能使用都为使用者所容易接受。在实现功能的根底上操作简单,每一步都有相应的提示。相信本系统能够满足用户需求,使企业管理效率提高。

    结 论 本系统实现了对销售订单的一系列流程化管理。从订单登记、订单确认到相应订单结账能够方便用户使用。对输入的信息都进行了标准化,实现了电子邮件通知客户功能,支持屡次订单账款的支付。对企业销售过程中进货订单的进货退货及销售订单的销售退货都进行了管理。能够实现本系统开发的目的,提高企业工作效率,加强企业商场竟争力。

    由于时间问题系统没有将开题阶段的设计组成局部客户在线注册并下订单实现,对于销售订单的管理是十分复杂与繁琐的,需要多个部门与多科知识的结合,在本系统的开发过程中我只将根本功能与处理流程实现。对于订单信息生成各种报表及发票上具体细节处理并没有做详细设计。

    实际上一个完整的销售管理系统是十分庞大复杂的,它的开发需要相当大的人力、物力。开发人员要对其具体业务进行实地考查与仔细分析,对其业务流程做出细节性处理。只有更好的了解用户是怎样工作的,才能更好的设计我们的软件,以让其真正的为人类所效劳,到达客户满意。

    在本次毕业设计的全过程中,我对大学四年来所学的知识有了一个比较全面的认识和理解。涉及到了各方面的知识,有些知识是我在课本上没有学到的但通过这个时机我的知识面有了扩展,同时也学会了如何将所学的知识运用到实际中解决问题。

    在设计中我也发现了我目前所掌握的知识是远远不够的,而且将理论知识运用到实际中时,总出现这样或那样的技术性问题,这使我深刻感学到将理论与实践结合起来的重要性。知识不是知道了或了解了它就成为我们的,而是要让它在现实生活在中得到充分的应用,从而解决一些问题,这才是学习的根本目的。而知识的学习又不应该是单一的,尤其在当今学科与学科互相联系,计算机又是一门非常复杂的且庞大的学科,只有广泛学习才能更好的掌握计算机科学这门技术。

    致 谢 在老师和同学的支持与帮助之下,我顺利地完成了本次毕业设计。在毕业设计的这段日子里,我所获得的知识将是大学期间最珍贵的。

    本次毕业设计是在姚万生老师的精心指导下完成的,他无论在理论上还是在实践中,都给予我很大的帮助。从论文的选题到最后的审稿,始终得到了姚老师的关心和支持。姚老师渊博的知识、严谨的治学态度给我留下了深刻印象并深深影响着我,鼓励我在今后的学习和工作中更加努力地进取。在论文即将完成之际,谨向尊敬的姚老师致以我最诚挚的感谢。同时也感谢其他老师在此期间的关心和帮助,以及学院为我提供良好的毕业设计环境。最后感谢在毕业设计中为我提供帮助的众多益友和同学,以及在百忙之中抽出时间审阅论文和参加辩论的各位老师表示我由衷的感谢。

    再次感谢在本次毕业设计中帮助过我的各界人士! 参考文献 1 〔美〕额尔曼,〔美〕威多姆.数据库系统根底教程.吴华.清华大学出版社,1999:24-50 2 张海潘.软件工程导论.清华大学出版社,1998:95-134 3 邝孔武,王晓敏.信息系统分析与设计.清华大学出版社,1999:54-89 4 郑阿奇.SQL实用教程.清华大学出版社,2002:65-90 5 Pratt.SQL指南.吴敏.人民邮政出版社, 2005:45-98 6 Kurt Maly.SQL指导.王明.铁道出版社,2003:45-67 7 Russell Dyer,O'Reilly. MySQL in a Nutshell.人民邮政出版社,2005:78-129 8 Greg Buczek.ASP Developer’s Guide. McGraw-Hill Companies,2000:89-93 9 陈惠贞.ASP.NET程序设计.人民邮政出版社,2002:34-67 10 石志国.ASP.NET实用案例教程.清华大学出版社,2003:45-62 11 桂恩强.ASP.NET与数据库程序设计.清华大学出版社,2002:45-78 12 邓春妮.ASP.NET信息化系统建设案例.人民邮电出版社,2006:95-196 13 罗斌.ASP.NET 2.0管理系统开发经典案例.中国水利水电出版社, 2007:342-446 14 闪四清.SQL Server实用简明教程.清华大学出版社,2005:136-170 15 Thiru Thangarathinam.Professional ASP.NET 2.0 Databases.Willey Publishing, 2007:45-167 16 Bill Evjien.ASP.NET 2.0 Beta Preview.Wiley Publishing,2007:11-59 17 Fritz Onion.ASP.NET根本教程.施诺.清华大学出版社,2003:85-145 18 孙艳华.ASP.NET网络开发入门与实践.人民邮电出版社,2006:95-147 19 罗斌.ASP.NET 2.0/Visual C# 2005编程技巧.中国水利水电出版社,2007:165-172 20 Richard Leinecker.ASP.NET实用全书.张力.电子工业出版社,2003:59-169 附录1 ASP.NET简介 ASP.NET是创立动态Web页面的一项功能强大的新技术。它集成了Microsoft的两种主要技术;
    Active Server Pages(ASP)和.NET。ASP在Web计算技术上的历史相对久远,5年多来它已经为创立动态Web页面提供了强健、快捷且行之有效的方法。.NET是新事务,它是由Microsoft设计的一整套技术,将给未来的编程方式以及公司的商务运作方式带来前所未有的革命。因此,作为ASP和.NET相结合的产物,ASP.NET是利用.NET提供的新功能来创立动态Web页面的一种方法。

    首先要注意的是,您不需要对ASP有任何的了解就可以学习ASP.NET,只需了解一些创立Web页面的HTML知识就可以了。了解ASP技术在某些方面还是一种缺乏,因为可能需要忘记以前的一些规那么。ASP.NET技术比其个版本更强大,它不仅可以生成动态Web页面,而且能够对它们进行调整以适应所使用的浏览器。更妙的是,它提供了大量的、可复用的预定义控件,您可以在自己的ASP.NET工程中使用这些控件,减少要编写的代码,从而能够节省时间并且提高效率。

    用ASP.NET能够做些什么?要列出它不能做什么可能会更快些。ASP.NET是引人注目的改良之一是创立应用程序的方法。您可以用基于.NET的任何编程语言〔例如VB.NET、Jscript.NET或C#等创立Web应用程序。在这些应用程序中,ASP.NET允许为特殊用户定制页面;
    允许当用户浏览Web站点时跟踪用户信息,将他们的信息存储在数据加或自描述XML文档中,使用可视化的IDE就可以改变页面的布局,而不必在代码中定位,甚至在机器上修改文件的内容〔如果有相应的权限〕。您也无需下载整个应用程序就可以使用其他应用程序的代码块。例如,不必下载整个应用程序,就可以访问由另一个网站提供的邮政编码验证程序;
    或给用户留下已退出站点的印象。根本上,可以创立ASP.NET应用程序仅局限于您的想象力。

    静态Web页面概述: 如果您浏览Internet,就会看到其上有许多静态Web页面。静态Web页面的含义是什么呢?从本质上说,静态Web页面就是其内容是由一些HTML代码组成的页面,且这些代码可以直接输入到文本编辑器中,并保存.htm或.html文件。因此,在您访问Web页面之前,Web页面的创立者已用HTML代码完全确定了页面的具体内容。

    静态Web页面通常非常容易识别,有时在众多Web页面中只要看一眼页面的内容就能够将它们识别出来。静态Web页面的内容〔文本、图像、超链接等〕和外观总是保持不变-它并不考虑谁在访问页面、何时访问页面、如何进入页面以及其他因素。

    Web效劳器是一个软件,用于管理Web页面,并使这些页面通过本地网络Internet供客户浏览使用。在使用Internet的情况下,Web效劳器和浏览器通常位于两台不同的机器上,也许它们之间相数英里。然而,在本地情况下,也许是用一台机器运行Web效劳器软件,再在同一台机器上通过浏览它的Web页面。访问远程Web效劳器〔即Web效劳器与浏览器应用程序位于不同的机器〕与本地效劳器〔Web效劳器和浏览器位于同一机器〕之间没有什么差异,因为不管处于何种情况,Web效劳器的功能〔即生成可用的Web页面〕保持不变。如果您是惟一在自己的计算机上访问Web效劳器的人,那么其操作与您在自己的计算机上运行Web效劳器的操作是不同的。无是何种情况,其工作原理都是不变的。

    IIS是能够运行ASP.NET的惟一效劳器。安装Windows 2000和Windows XP时,IIS效劳器是作为安装内容的一局部被安装的。IIS 5.0可以通过安装Windows 2000得到,而IIS 5.0那么可以通过安装Windows XP得到。IIS 5.0与IIS 5.1之间有微小的差异。

    附录2 ASP.NET brief introduction ASP.NET is a powerful and flexible technology for creating dynamic Web pages.It’s a comvergence of two major Microsoft technologies,Active Server Pages (ASP) and the .NET Framework.Active Server Pages,or ASP (or classic ASP as it’s offen referred to),is a relative old-timer on the Web computing circuit and has provided a sturdy,powerful,and dffective way of building dynamic Web pages for seven years or so now.The .NET Framework,on thd other hand,is a whole suite of technologies designed by Microsoft with the aim of revolutionizing the way in which all program development takes place and the way companies carry out business.ASP.NET is a way of creating dynamic Web pages while making use the innovations present in the .NET Framework. The first important thing to know about ASP.NET is that you don’t need any ASP skills to learn it.All you need is a little HTML knowledge for building Web pages.In fact,knowing ASP could be a disadvantage in some ways because you may have to unlearn some of the principles you followed earlier.ASP.NET allows you to learn some of the principles you follwed whatever browser you’re using.It also comes with a great set of reusable,predefined,and ready to use controls for your ASP.NET projects.These reduce the amount of code you have to write,so you can be more productive while programming. So what can you do with ASP.NET? It may be easier to list what you can’t, as that is arguably shorter! One of the most eye-catching things about ASP.NET is the way you can use any programming language based on the .NET Framework, such as C#, Jscript.NET, or VB.NET to create your Web applications.Within these application, ASP.NET allows you to customize pages for a particular user and makes it simpler to keep track of a particular user’s details as they move around. ASP.NET makes storing information to database of self –describing XML document faster and easier.You can alter the layout of the page using a free Web page editor-Web Matrix-designed to be used with ASP.NET, rather than positioning everything manually within code, and even alter the contents of files on your machine, if you have the correct permissions. In addition, you can use bits and pieces of other applications without downloading the whole application.For example, you can access a zip code verifier that is part of another Web site’s features without having to download the whole application or even giving your users the impression that thery’ve left your site(Chapter 16 will cover Web services as well as accessing specific features of your applicaton via the Web).With ASP.NET,the applications that you create are only limited by your imagination. What is Static Web Page? If you surf the Web, you’ll see many static Web pages.Essentially, this type of Web pages consists of some HTML code typed directly into a text or Web page editor and saved as an .htm or .html file.Thus, the author of the page has already determined the exact content of the page in HTML at some time before any user visits the page. Static Web pages are often easy to spot, sometimes you pick them out by just looking at the content of the pages.The content (text, images, hyperlinks, and so on)and appearance of static Web pages is always the same-regardless of who visits the page,or how and when they arrive at the page,or any other factor. What is Web Server? Web servers are software that manage Web page and make them available to client browsers-via a local network or over the Internet.In the case of the Internet, the Web server and browser are usually on two different machines, possibly many miles apart.However, in a local situation you can set up a machine that runs the Web server software, and the use a browser on same machine to look at its Web pages. It makes no difference whether you access a remote Web server (a Web server on a different machine from your browser) or a local one (Web sever and browser on the same machine), since the Web server’s function-to make Web pages available to all-remain unchanged.It may be that you are the only preson with access to your own machine nevertheless the principles remain the same. IIS Web server comes bundled with Windows 2000, Windows XP Professional, and Windows 2003 Server.IIS version 5.0 comes with Windows 2000, IIS version 5.1 with Windows XP Professional, and IIS version 6.0 with Windows 2003.However, these is a little to distinguish between the different version of IIS, so we shall treat them as same product. 附录3 生成销售订单核心代码:
    public void IsPage_Bind() { this.Label1.Text = QueryString.Get_SessionPerson; SqlConnection strcon = new SqlConnection(ConfigurationManager.ConnectionStrings[“SellOrder_ConnectionString“].ConnectionString); strcon.Open(); SqlDataAdapter sda = new SqlDataAdapter(“select * from Commodity order by id desc“, strcon); DataSet ds = new DataSet(); sda.Fill(ds, “tb_Commodity“); DataRowView rowview = ds.Tables[“tb_Commodity“].DefaultView[0]; int CommodityIds = Convert.ToInt32(rowview[“CompanyId“]); this.CommodityId.DataSource = ds.Tables[“tb_Commodity“]; this.CommodityId.DataValueField = “id“; this.CommodityId.DataTextField = “CommodityName“; this.CommodityId.DataBind(); SqlCommand scdc = new SqlCommand(“select CompanyName from Company where id=“ + CommodityIds + ““, strcon); this.CId.Text = Convert.ToString(scdc.ExecuteScalar()); this.CompanyId.Value = CommodityIds.ToString(); //显示客户 SqlDataAdapter sdac = new SqlDataAdapter(“select * from Company where CompanyType='客户' order by id desc“, strcon); sdac.Fill(ds, “tb_Company“); this.ClientId.DataSource = ds.Tables[“tb_Company“]; this.ClientId.DataValueField = “id“; this.ClientId.DataTextField = “CompanyName“; this.ClientId.DataBind(); //计算剩余商品数量 stockClass ss = new stockClass(); string Snum = Convert.ToString(ss.stock(Convert.ToInt32(rowview[“id“])) - ss.sell(Convert.ToInt32(rowview[“id“]))); Session[“snum“] = Snum; this.Number.Text = Snum;//保存剩余数量 this.StockDate.SelectedDate = DateTime.Now; } //中选择商品变动时内容变动时执行 protected void CommodityId_TextChanged(object sender, EventArgs e) { SqlConnection strcon = new SqlConnection(ConfigurationManager.ConnectionStrings[“SellOrder_ConnectionString“].ConnectionString); strcon.Open(); SqlDataAdapter sda = new SqlDataAdapter(“select * from Commodity where id=“ + this.CommodityId.SelectedValue + ““, strcon); DataSet ds = new DataSet(); sda.Fill(ds, “tb_Commodity“); DataRowView rowview = ds.Tables[“tb_Commodity“].DefaultView[0]; string CommodityIds = Convert.ToString(rowview[“CompanyId“]); SqlCommand scdc = new SqlCommand(“select CompanyName from Company where id=“ + CommodityIds + ““, strcon); this.CId.Text = Convert.ToString(scdc.ExecuteScalar()); this.CompanyId.Value = CommodityIds; stockClass ss = new stockClass(); Session[“snum“] = ss.stock(Convert.ToInt32(rowview[“id“])) - ss.sell(Convert.ToInt32(rowview[“id“])); this.Number.Text = Convert.ToString(ss.stock(Convert.ToInt32(rowview[“id“])) - ss.sell(Convert.ToInt32(rowview[“id“]))); } protected void Button1_Click(object sender, EventArgs e) { if (Convert.ToInt32(Session[“snum“]) < Convert.ToInt32(this.Number.Text.Trim())) { Response.Write(“<script>alert('没有更多的库存,请重新填写');history.back()</script>“);//history.back()直接退回括号内可填写整数 Response.End(); } string CommodityId = this.CommodityId.Text.ToString(); string CompanyId = this.CompanyId.Value.ToString(); int ClientId = Convert.ToInt32(this.ClientId.SelectedValue); int Number = Math.Abs(Convert.ToInt32(this.Number.Text));//数量 decimal Pirce = Decimal.Round(Convert.ToDecimal(this.Pirce.Text.Trim()), 2);//单价,保存2位小数 string StockDate = this.StockDate.SelectedDate.ToShortDateString(); string SettlementType = this.SettlementType.Text.ToString(); decimal Payment = Decimal.Round(Convert.ToDecimal(this.Payment.Text.Trim()), 2);//应付金额,保存2位小数 decimal FactPayment = Decimal.Round(Convert.ToDecimal(this.FactPayment.Text.Trim()), 2);//实付金额,保存2位小数 decimal NotPayment = Decimal.Round(Convert.ToDecimal(this.NotPayment.Text.Trim()), 2);//未付金额,保存2位小数 string ManageMan = this.ManageMan.Text.ToString(); string Username = QueryString.Get_SessionPerson; string AddTime = Convert.ToString(DateTime.Now); string Type = “销售信息“; //计算输入的金额是否正确 if (Number * Pirce < Payment) { Response.Write(“<script>alert('应付金额填写错误');history.back()</script>“); Response.End(); } string CmdTxt = “insert into Stock (CommodityId,CompanyId,Number,Pirce,StockDate,SettlementType,Payment,FactPayment,NotPayment,ManageMan,Username,AddTime,Type,ClientId)values('“ + CommodityId + “','“ + CompanyId + “','“ + Number + “','“ + Pirce + “','“ + StockDate + “','“ + SettlementType + “','“ + Payment + “','“ + FactPayment + “','“ + NotPayment + “','“ + ManageMan + “','“ + Username + “','“ + AddTime + “','“ + Type + “','“ + ClientId + “')“; bool YesNo = new SqlDataBase().RunSql_Return_Bool(CmdTxt);//判断添加后返回结果,如果正确那么返回的是1 if (YesNo) { JScript.AlertAndRedirect(“添加成功!“, “Add_Sell.aspx“); } else { JScript.GoHistory(“添加失败“, -1); } }

    推荐访问:网上销售 订单管理 论文 网上销售订单管理系统论文 超市订单管理系统项目 订单管理系统的发展

    • 文秘
    • 范文
    • 文秘知识
    • 书信条据
    • 行政
    • 求职离职
    • 名人名言

    推荐访问