摘 要
随着科学技术的飞速发展和激烈的市场竞争,销售系统在企业结构中已占据
主导地位,有一个完善的销售管理系统十分必要,所以销售管理系统在各方需要
下应运而生。销售管理系统是触及到企业销售管理的先进理念,它需要一个新的
以销售管理为中心的管理模式,并集成了前台和后台办公系统的一整套应用系统
支持。因此,销售管理系统应有高度的灵活性和良好的交互性,适用于非结构化
支持。
一个现代化的企业,对于资源的关注,已经成为决定企业长久发展的基础。
销售管理系统将整个企业的各种销售和进货、退货信息统一管理,并且及时更新
各种销售信息,以便及时预览,作出相应的销售决策。有了良好的数据管理基础,
即使销售信息变动,样本丢失,电脑数据资料也能够完整保存,而且更新数据及
其方便,摆脱以往手工作业的不完善性。
本系统提供了商品信息管理,公司信息管理,销售等信息管理。实现了销售
管理,对销售进行查询、汇总、统计、输出合同明细表等功能。本管理系统是典
型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端程序的开发
两个方面。对于前者要求建立起数据一致性和完整性强,数据安全性好的库。而
对于后者则要求应用程序功能完备,易使用等特点。
经过如此情况,系统采用 SQLServer2000 来设计数据库,使用 Microsoft 公司
的 VisualStudio2005 开发工具,利用其提供的各种面向对象的开发工具,尤其是数据
窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原
型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行
系统。
论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的
说明了系统设计的重点、设计思想、难点技术和解决方案。
关键词:销售管理;数据库;VisualStudio2005
目 录
摘 要 ..................................................................................................................................................I
目 录.................................................................................................................................................II
引 言 .................................................................................................................................................1
第一章 涉及技术及简介 ...................................................................................................................2
数据库管理系统简介 .............................................................................................................2
开发工具 VisualC#、 和 SQLServer2000 .............................................................2
# ........................................................................................................................2
.......................................................................................................................4
.............................................................................................................4
第二章 系统需求分析 .......................................................................................................................6
需求分析的目的 .....................................................................................................................6
项目背景 .................................................................................................................................6
需求分析 .................................................................................................................................6
问题定义及可行性研究 ..............................................................................................6
销售管理系统具体任务要求和运行过程 ..................................................................7
销售管理现状分析 ......................................................................................................8
功能需求 ......................................................................................................................8
性能需求 ......................................................................................................................8
人员分析 ......................................................................................................................9
经济方面的可行性分析 ..............................................................................................9
结论 .........................................................................................................................................9
第三章 系统设计 .............................................................................................................................10
系统设计目标 .......................................................................................................................10
开发设计思想 .......................................................................................................................10
系统架构 ...............................................................................................................................10
系统设计 ...............................................................................................................................11
数据库设计 ...........................................................................................................................12
数据采集 ...........................................................................................................................一五
应用程序设计 ...................................................................................................................一五
第四章 功能界面的设计 .................................................................................................................17
开发环境配置 .......................................................................................................................17
应用程序主界面的实现 ...................................................................................................一八
创建样式表文件 ....................................................................................................一八
配置 文件................................................................................................19
创建类文件 ................................................................................................................19
页面设计 .......................................................................................................................22
创建 Main 页面(系统主页面) ..............................................................................22
编辑登录()页面....................................................................................23
添加用户模块 ............................................................................................................25
用户管理模块: ........................................................................................................28
基本信息模块 ............................................................................................................30
进货管理模块设计 ....................................................................................................35
销售管理模块 ............................................................................................................38
查询统计模块 ............................................................................................................39
往来管理 ....................................................................................................................41
结 论 ...............................................................................................................................................44
致 谢 ...............................................................................................................................................45
参考文献 .............................................................................................................................................46
引 言
在现代化企业中,信息管理工作将发挥越来越重要的作用。企业信息管理工
作已经渗透到企业日常工作的许多方面,无论是其自身还是所发挥的作用,都为
企业的创新、发展以及经济效益,做出了显著的贡献。
因此,企业必须加强自身的信息基础设施建设,通过企业基础数据的信息化、
企业基本业务流程和事务处理的信息化、企业内部控制及实施控制过程的信息化、
人的行为规范管理等企业基础管理信息化工程,确保企业在规模不断扩大和业务
迅速发展的过程中保持坚实的管理基础和繁殖内核,促进企业的可持续发展。
企业的销售管理是企业发展的关键环节,一个好的销售管理体制将给企业带
来很可观的经济效益。无论是一个销售公司还是一个销售商店,都有很多的销售
数据需要管理。手工管理这些纷繁复杂数据的方式已经不适应时代的潮流,实现
数据规范化、自动化的电脑管理,是一个管理规范、动作高效的企业单位的必然
要求。
本系统是为中小型企业的销售管理系统,专为中小型企业的销售管理系统的
需求而开发。系统具有交易管理、进货及销售统计、预览数据表等功能,界面友
好、操作简便。
开发此项目,能够将所学的理论知识与实际应用相结合,并尝试应用最新流
行的开发工具,以达到掌握新技术、进一步提高程序开发能力的目的。
第一章 涉及技术及简介
数据库管理系统简介
数据管理指的是如何对数据进行分类、组织、存储、检索及维护。要注意,
这里所说的数据,不仅是指数字,还包括文字、图形、图像、声音等。凡是计算
机中用来描述事物的记灵,统称为数据。
数据库技术是计算机应用领域中非常重要的技术,随着计算机应用的不断深
入,数据库的重要性日益被人们所认识,它已成为信息管理、办公自动、计算机
辅助设计等方面的重要手段。
对一个特定的数据库来说,它是集中、统一地保存、管理着某一个单位或某
一领域内所有有用信息的系统,这个系统根据数据间的自然联系结构而成,数据
较少冗余,且具有较高的数据独立性,能为多种应用服务。
因此可以看出,数据库系统是管理数据且为不同应用服务的工具。它所管理
的数据是大量的有关某一方面的信息,需要较长时间的保存;它所提供的数据应
该是正确的、可靠的、高效率的。
数据库管理系统简称 DBMS(databasemanagementsystem)是专门用于建立和
管理数据库的一套软件,介于应用程序和操作系统之间。DBMS 不仅具有最基本
的数据管理功能,还能保证数据的完整性、安全性,提供多用户的并发控制,当
数据库出现故障时对系统进行恢复。
开发工具 VisualC#、 和 SQLServer2000
#
C#语言是一种现代、面向对象的语言,它简化了 C++语言在类、命名空间、
方法重载和异常处理等方面的操作,它摒弃了 C++的复杂性,更易使用,更少出
错。它使用组件编程,和 VB 一样容易使用。C#语法和 C++和 JAVA 语法非常相
似,如果读者用过 C++和 JAVA,学习 C#语言应是比较轻松的。
用 C#语言编写的源程序,必须用 C#语言编译器将 C#源程序编译为中间语言
(MicroSoftIntermediateLanguage,MSIL)代码,形成扩展名为 exe 或 dll 文件。中间语
言代码不是 CPU 可执行的机器码,在程序运行时,必须由通用语言运行环境
(CommonLanguageRuntime,CLR)中的既时编译器(JUSTINTime,JIT)将中间语言
代码翻译为 CPU 可执行的机器码,由 CPU 执行。CLR 为 C#语言中间语言代码运
行提供了一种运行时环境,C#语言的 CLR 和 JAVA 语言的虚拟机类似。这种执行
方法使运行速度变慢,但带来其它一些好处,主要有:
1.通用语言规范(CommonLanguageSpecification,CLS):.NET 系统包括如下语
言:C#、C++、VB、J#,他们都遵守通用语言规范。任何遵守通用语言规范的语
言源程序,都可编译为相同的中间语言代码,由 CLR 负责执行。只要为其它操作
系统编制相应的 CLR,中间语言代码也可在其它系统中运行。
2.自动内存管理:CLR 内建垃圾收集器,当变量实例的生命周期结束时,垃圾
收集器负责收回不被使用的实例占用的内存空间。不必象 C 和 C++语言,用语句
在堆中建立的实例,必须用语句释放实例占用的内存空间。也就是说,CLR 具有
自动内存管理功能。
3.交叉语言处理:由于任何遵守通用语言规范的语言源程序,都可编译为相同
的中间语言代码,不同语言设计的组件,可以互相通用,可以从其它语言定义的
类派生出本语言的新类。由于中间语言代码由 CLR 负责执行,因此异常处理方法
是一致的,这在调试一种语言调用另一种语言的子程序时,显得特别方便。
4.增加安全:C#语言不支持指针,一切对内存的访问都必须通过对象的引用变
量来实现,只允许访问内存中允许访问的部分,这就防止病毒程序使用非法指针
访问私有成员。也避免指针的误操作产生的错误。CLR 执行中间语言代码前,要
对中间语言代码的安全性,完整性进行验证,防止病毒对中间语言代码的修改。
5.版本支持:系统中的组件或动态联接库可能要升级,由于这些组件或动态联
接库都要在注册表中注册,由此可能带来一系列问题,例如,安装新程序时自动
安装新组件替换旧组件,有可能使某些必须使用旧组件才可以运行的程序,使用
新组件运行不了。在.NET 中这些组件或动态联接库不必在注册表中注册,每个程
序都可以使用自带的组件或动态联接库,只要把这些组件或动态联接库放到运行
程序所在文件夹的子文件夹 bin 中,运行程序就自动使用在 bin 文件夹中的组件或
动态联接库。由于不需要在注册表中注册,软件的安装也变得容易了,一般将运
行程序及库文件拷贝到指定文件夹中就可以了。
6.完全面向对象:不象 C++语言,即支持面向过程程序设计,又支持面向对象
程序设计,C#语言是完全面向对象的,在 C#中不再存在全局函数、全区变量,所
有的函数、变量和常量都必须定义在类中,避免了命名冲突。C#语言不支持多重
继承。
不仅仅是 ActiveServerPage(ASP)的下一个版本,而且是一种建立在通
用语言上的程序构架,能被用于一台 Web 服务器来建立强大的 Web 应用程序。
提供许多比现在的 Web 开发模式强大的优势。 是把基于通用语言
的程序在服务器上运行。不像以前的 ASP 即时解释程序,而是将程序在服务器端
首次运行时进行编译,这样的执行效果,当然比一条一条的解释强很多。
构架是可以用 Microsoft(R)公司最新的产品 开发环境进行开发,
WYSIWYG(WhatYouSeeIsWhatYouGet 所见即为所得)的编辑。这些仅是
强大化软件支持的一小部分。
因为 是基于通用语言的编译运行的程序,所以它的强大性和适应性,
可以使它运行在 Web 应用软件开发者的几乎全部的平台上(笔者到现在为止只知
道它只能用在 Windows2000/2003Server 上)。通用语言的基本库,消息机制,数据
接口的处理都能无缝的整合到 的 Web 应用中。 同时也是
language-independent 语言独立化的,所以,你可以选择一种最适合你的语言来编
写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有 C#(C++和
Java 的结合体),VB,Jscript。将来,这样的多种程序语言协同工作的能力保护您
现在的基于 COM+开发的程序,能够完整的移植向 。
SQLServer 是一个关系数据库管理系统,它最初是由 MicrosoftSybase 和
Ashton-Tate 三家公司共同开发的,于 1988 年推出了第一个 OS/2 版本。在
WindowsNT 推出后,Microsoft 与 Sybase 在 SQLServer 的开发上就分道扬镳了。
Microsoft 将 SQLServer 移植到 WindowsNT 系统上,专注于开发推广 SQLServer
的 WindowsNT 版本;Sybase 则较专注于 SQLServer 在 UNIX 操作系统上的应用。
在本书中介绍的是 MicrosoftSQLServer 以后简称为 SQLServer 或 MSSQLServer。(4)
SQLServer2000 是 Microsoft 公司推出的 SQLServer 数据库管理系统的一个版
本。该版本继承了 版本的优点同时又比它增加了许多更先进的功能,
具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行
MicrosoftWindows98 的膝上型电脑到运行 MicrosoftWindows2000 的大型多处理器
的服务器等多种平台使用。(6)
SQLServer2000 的特性 Microsoft®SQLServer?2000 的特性包括:
集成。SQLServer2000 数据库引擎提供完整的 XML 支持。它还具有
构成最大的 Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。
SQLServer2000 程序设计模型与 WindowsDNA 构架集成,用以开发 Web 应用程序,
并且 SQLServer2000 支持 EnglishQuery 和 Microsoft 搜索服务等功能,在 Web 应用
程序中包含了用户友好的查询和强大的搜索功能。
2.可伸缩性和可用性。同一个数据库引擎可以在不同的平台上使用,从运行
MicrosoftWindows®98 的便携式电脑,到运行 MicrosoftWindows2000 数据中心
版的大型多处理器服务器。SQLServer2000 企业版支持联合服务器、索引视图和大
型内存支持等功能,使其得以升级到最大 Web 站点所需的性能级别。
3.企业级数据库功能。SQLServer2000 关系数据库引擎支持当今苛刻的数据处
理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修
改数据库的用户的开销减到最小。SQLServer2000 分布式查询使您得以引用来自不
同数据源的数据,就好象这些数据是 SQLServer2000 数据库的一部分,同时分布
式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个
数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的
脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。
4.易于安装、部署和使用。SQLServer2000 中包括一系列管理和开发工具,这
些工具可改进在多个站点上安装、部署、管理和使用 SQLServer 的过程。
SQLServer2000 是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的
数据管理。SQLServer2000 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功
能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。(10)
SQLServer2000 数据引擎是本企业数据管理解决方案的核心。此外
SQLServer2000 结合了分析、报表、集成和通知功能。这使您的企业可以构建和部
署经济有效的 BI 解决方案,帮助您的团队通过记分卡、Dashboard、Webservices
和移动设备将数据应用推向业务的各个领域
第二章 系统需求分析
需求分析的任务是确定系统必须完成哪些工作,也就是对目标系统提出完整、
准确、清晰、具体的要求。需求分析的结果是系统开发的基础,关系到工程的成
败和软件产品的质量。因此,必须用行之有效的方法对软件需求进行严格的审查
验证。
需求分析的目的
尽早地对软件项目的可行性做出细致而谨慎的评估,以避免在项目开发过程
中浪费大量的人力、物力、财力。
项目背景
随着社会高科技,商品经济化突飞猛进的发展,计算机的应用已经普及到经
济和社会生活的各个领域。为了适应现代社会人们高度强烈的时间观念,产品生
产-销售-客户订单管理系统软件为企业,公司等的销售管理带来了极大的方便。产
品生产-销售-客户订单管理系统能够为用户提供可靠的信息储存和快捷的信息处
理手段。长期以来人们使用传统人工的方式管理销售信息,这种管理方式存在着
许多缺点。随着科学技术的不断提高,计算机日趋成熟,其强大的功能已为人们
深刻认识,它已经进入人类社会的各个领域并发挥着越来越重要的作用。作为计
算机应用的一部分,使用计算机对企业、公司的产品销售信息进行管理,具有手
工管理所无法比拟的优点。例如:检索迅速、可靠性高、存储量大、保密性好、
寿命长、成本低等。这些优点能够极大的提高一个企业、公司销售管理的效率。
因此,开发这样一套管理软机成为很有必要的事情,它能够具体化、合理化的管
理单位的销售信息情况,用结构化的思维方式去了解计算机的工作原理。
需求分析
问题定义及可行性研究
在讨论具体的需求分析之前,我想先对两个问题给予简单的说明。这两个问
题虽然简单,但却是软件开发周期中不可缺少的两个阶段。
1、问题定义
问题定义阶段必须回答的关键问题是“要解决的问题是什么?”。显然,这个问
题解决整个软件开发周期中起着指导性作用。软件开发应该有这样一条鲜明的线
索贯穿始终,否则我们的所有工作都是盲目的。现在我们应该明确问题定义阶段
的主要任务:我们要建立一个销售管理系统,以解决企业销售事务的基本情况,
来摆脱传统的手工记账,实现管理自动化,从而提高工作效率。同时该系统应不
可避免的涉及到库存商品基本信息、供应商信息、公司信息的维护和处理及进货
统计、销售统计等统计及查询处理。
2、可行性研究
这个阶段要解决的关键问题是“对上一阶段所确定的问题有无行得通的解决办
法”。从而导出系统的逻辑模型,然后从系统逻辑模块出发探索若干种可供选择的
系统实现方案。由于实际条件的制约,对可行性研究我们不再多说,但我们必须
明确,现在我们所讨论的问题从各方面来说都行得通。在明确了这两个简单问题
之后,我们的问题应该步入正题了。需求分析阶段是软件定义时期的是后一个阶
段,这一阶段的中心任务是准确的回答“系统必须做什么?”这个问题。其结束的标
准是通过需求分析应该得出有数据流程图、ER 图、数据字典等描绘的精确的系统
逻辑模型。(2)
下面我们就紧紧围绕需求分析阶段的中心任务和目标展开计论。
销售管理系统具体任务要求和运行过程
系统的功能要求即用户对目标系统数据处理功能所提出的要求,主要考虑以
下销售管理需求:
1.添加公司、商品基本信息,以便对公司、商品信息进行查询。
2.添加公司、商品信息管理页面,以便对公司、商品信息进行修改、删除等
操作处理。
3.进货信息管理。进货管理主要实现进货添加、进货退货添加、以及进货信
息和进货退货信息的详细信息。
4.销售信息管理。销售管理主要实现销售信息添加、销售退货信息添加、以
及销售信息和销售退货信息的详细信息。
5.查询统计功能。能够随时查询销售管理的各种信心。比如商品进货信息、
进货退货信息、销售信息、销售退货信息、库存信息、销售排行信息。
6.除了以上一些基本需求外,还有添加一些各商品之间的往来管理,结账信
息。对各种商品的结账情况添加以及查询。
7.最后添加一个后台管理,对用户的添加、删除以及密码修改和退出系统。
销售管理现状分析
销售管理系统主要是为企业销售部门的管理活动提供信息服务。企业的销售
管理是企业发展的关键环节,一个好的销售管理体制将给企业带来很可观的经济
效益。无论是一个销售公司还是一个销售商店,都有很多的销售数据需要管理。
手工管理这些纷繁复杂数据的方式已经不适应时代的潮流,实现数据规范化、自
动化的电脑管理,是一个管理规范、动作高效的企业单位的必然要求。
业务需求
销售管理系统由销售部门和生产部门合作完成。其中,生产部门将现有库存
生产计划等信息录入到基本数据库中;有订单时销售人员可以通过查询以最短时
间了解库存情况方便订货,另外一些辅助信息通过信息员录入方便销售统计时查
看。本系统主要用于各大企业销售管理部门。
功能需求
这是一个企业销售管理系统,设计者的目标是满足公司运营和日常管理的需
要,具有对产品,,客户管理的功能。销售员可以对销售的产品进行登记,并将销
售情况反馈给数据库。企业可以查看销售情况,为管理的方便性和信息传递的快
速性提供了一个很好的平台。系统开发的总体任务是实现信息查询及销售登记自
动化。总之,企业销售管理系统要实现登陆验证、商品和公司基本信息、商品销
售管理、商品进货管理、查询统计、往来管理六大部分。
性能需求
一般的性能需求是包括信息处理的及时性和准确性,系统的开放性和可扩充
性,系统的稳定可靠性,系统的易用和易维护性。系统的标准性及安全性。
本系统是个销售管理系统,要考虑到系统的易用和易维护性。该系统直接面
对使用人员的,而使用人员往往对计算机并不是非常熟悉。这就要求系统能够提
供良好的用户接口,易用的人机交互界面。另外要考虑的性能需求就应该是系统
安全性问题了。在考察系统的每个阶段,均需要考虑彼此间的认证与授权。尤其
要注意认证,简单地说就是确定谁是特定用户,并针对安全源验证该用户的身份。
在处理完识别用户的方法之后,必须利用一种方法以向用户授权,从而能够使用
系统的特定功能。也就是说,需要一种方法来决定允许特定用户进行什么样的操
作。而这些都是在进行系统设计时需要考虑的性能方面内容。
ASP 提供了六个内建对象,供用户直接调用:Application 对象、Session 对象、
Request 对象、Response 对象、Server 对象、ObjectContext 对象
的主要内置组件:
AdRotator 组件、BrowserCapabilities 组件、DatabaseAccess 组件、FileAccess
组件、ContentLinking 组件。此外,还可安装 Myinfo、Counters、ContentRotator、
PageCount 等组件,用户也可自行编制 Actiive 组件,以提高系统的实用性。
人员分析
此系统操作简单,使用人员无需具有专业的计算机操作基础,因此对工作人
员来说应用此系统是不成问题的。
经济方面的可行性分析
本系统开发经费并不是很多。对于规模不很大,经费有限的单位在经济上是
可以接受的,并且本系统实施后可以显著提高效率,很快就可以体现经济效益。
投入:除软件开发成本,一台中等电脑,现价 4000 元左右,完全可以良好的
运行系统,完成硬件平台的要求,而且经济实用。
结论
综上所述,无论是从技术方面还是经济方面看开发此系统均是可行的。
第三章 系统设计
系统设计又称系统物理设计。它根据系统分析报告中的系统逻辑模型综合考
虑各种约束,利用一切可利用的技术手段和方法进行具体设计,确定新系统的实
施方案,解决系统怎么做的问题。该系统的总体任务是实现销售管理信息,基本
信息的系统化,规范化和自动化。在系统调研的基础上,对新系统的功能进行细
致的分析,并建立一个新系统的逻辑模型。
系统设计目标
需求分析之后,就项目内容的要求设计出系统目标包括:
题目内容要求的用户登陆和验证、初始化数据库、基本信息的录入(用户登
录、信息修改、删除)、销售管理(销售进货、销售退货)、基本信息的查询等功
能。
用户界面友好、性能稳定,报表等系统维护策略。
优化数据的逻辑模型设计和物理模型设计,以便提高运行速度、降低存储空
间,且能满足数据一致性要求。充分考虑行为的合理划分,提高软件使用的便利
性。
开发设计思想
销售管理程序实际上是基于录入输出的管理系统,程序采用 Visual2005 语言
编辑,结合 SQLServer2000 数据库,搭配局域网络形成一个完善的销售管理系统。
程序实现过程是先将商品和公司信息的字段通过程序录入到数据库当中,形成一
个内容完整的数据库。然后按要求添加、修改和删除一些相关信息,以方便企业
对商品信息和销售情况进行查询,完成设计内容。
系统架构
系统总体的功能是实现销售管理的系统化、规范化和自动化,是使用者便于
操作,更容易进行管理。企业销售管理系统要实现登陆验证、商品和公司基本信
息、商品销售管理、商品进货管理、查询统计、往来管理六大模块。再从这六大
模块中具体划分小的模块,具体实现销售管理系统的使用。
系统总体框图如下:
图 3-1 系统总体架构图
系统设计
销售管理系统不简单的是一个软件,它覆盖了企业销售管理的职能,是企业
管理事务中关键环节。是一个将销售管理思想以及当今最新计算机技术完美统一
起来,实现科学化、自动化管理的集成应用系统。
.在功能方面,系统面向企业各个层次用户的需求,即企业领导和管理人员以
及保障系统运行的系统管理员。为企业销售管理提供全面、及时、准确的信息和
可靠的依据。
.在通用性设计方面,以标准化为基础,通过信息流程和管理过程的合理模型
化、管理对象的模型化,使得系统具有一定的通用性和规范性。
.在系统开放性方面,按照软件工程开发规范实现系统的开放性,既便于扩充
销
售
管
理
基
本
信
息
进
货
管
理
销
售
管
理
查
询
统
计
往
来
管
理
用
户
管
理
添
加
商
品
信
息
公
司
信
息
管
理
添
加
公
司
信
息
商
品
信
息
管
理
添
加
进
货
信
息
添
加
进
货
退
货
添
加
销
售
信
息
添
加
销
售
退
货
商
品
进
货
查
询
商
品
退
货
查
询
商
品
库
存
查
询
商
品
销
售
排
行
商
品
进
货
结
账
商
品
退
货
结
账
添
加
用
户
修
改
用
户
密
码
删
除
用
户
又便于升级,以适应今后企业管理发展及销售体系改革的需求。
.在系统和数据的安全性方面,系统采用数据库级用户权限和应用程序级运行
权限的双重控制机构,提供了统一的基于角色的用户管理手段,通过数据库系统
的数据安全机制,具有完善的系统和数据安全的保障体系。
.在操作性方面,采用图形用户界面技术,使系统能够以多得图形窗口和丰富
便利的操作界面,通过鼠标或键盘的操作,为用户提供最简洁的使用方法。
数据库设计
上面提到的各种功能的实现都离不开数据库的支持,因此数据库设计作为本
系统设计的一部分不可缺少。数据库设计在整个程序设计过程中占据非常重要的
地位,也是整个程序设计的基础。把数据库从整个程序中分离出来,单独进行,
有很大的好处,即使程序设计分工明确,也方便程序员在详细设计师不必考虑数
据库的结构,只需知道数据名及表名和表中的字段名就能进行编码设计,体现面
向对象设计的思想。其实在需求分析阶段,我们的很大一部分讨论始终都没离开
用户所要求的数据。如果把前面的讨论看成是数据库的逻辑设计,下面的问题将
是数据库的具体物理实现。
我们使用的数据库系统是 SQLServer2000。从上面的功能分析看出本系统需要
建立以下几个数据表:商品信息(tb-Commmodity)表、公司信息
(tb-Commpany)表、查询信息(tb-Reckoning 表)及进货退货信息(tb-Stock)表
和使用用户表(tb-User 表)。
tb-Commmodity 表(商品信息)中包括商品 ID、商品名称、商品简称、商品
产地、商品单位、商品规格、商品批号、批准文号、供应商、备注、操作员、添
加时间、数量等字段。具体设置如表 所示。
字段名称 字段代码 数据类型 是否为空
商品 ID Id Int(4) 否
商品名称 ComdityName Varchar(100) 是
商品简称 ShortName Varchar(50) 是
商品产地 ProductPlace Varchar(100) 是
商品单位 Unit Varchar(20 是
商品规格 Specs Varchar(50) 是
商品批号 PassNumber Varchar(50) 是
批准文号 PassList Varchar(50) 是
供应商 CompanyId Int(4) 否
备注 Remark Varchar(500) 是
操作员 Username Varchar(50) 是
添加时间 AddTime Varchar(50) 是
数量 total Int(4) 是
表 -Commmodity(商品信息)表
一个 tb-Commpany 表(公司信息)中所包含的数据字段如下表所示:包括公
司 ID、公司名称、所属类型、公司简称、公司地址、邮政编码、x、传真、联系人、
E-mail、开户银行、操作员、添加时间等,具体设置如表 所示:
字段名称 字段代码 数据类型 是否为空
公司 ID Id Int(4) 否
公司名称 CompanyName Varchar(50) 是
所属类型 CompanyType varchar(50) 是
公司简称 CompanyShort varchar(50) 是
公司地址 CompanyAddress varchar(50) 是
邮政编码 Postalcode varchar(50) 是
x Tel varchar(50) 是
传真 Fax varchar(50) 是
联系人 Linkman varchar(50) 是
E-mail Email varchar(50) 是
开户银行 Bank varchar(50) 是
银行帐号 BandAccounts varchar(50) 是
操作员 Username varchar(50) 是
添加时间 AddTime varchar(50) 是
表 -Commpany(公司信息)表
一个 tb-Reckoning 表(查询信息)中所包括的信息有 ID、商品 ID、结算、经
手人、日期、操作员、添加时间等字段,具体设置如表 所示:
字段名称 字段代码 数据类型 是否为空
ID Id Int(4) 否
商品 ID CommodityId int(4) 是
结算 Settlement int(4) 是
经手人 ManageMan Varchar(50) 是
日期 datetime Datetime(8) 是
操作员 username Varchar(50) 是
添加时间 Addtime varchar(50) 是
表 -Reckoning(查询信息)表
一个 tb-Stock 表(销售信息)中包括 ID、商品 ID、公司 ID、数量、单价、进
货日期、结算日期、应付金额、实付金额、未付金额、经手人、操作员、添加时
间、客户 ID、类型等字段,具体设置如图 所示:
字段名称 字段代码 数据类型 是否为空
ID id Int(4) 否
商品 ID CommodityId int(4) 是
公司 ID CompanyId int(4) 是
数量 Number int(4) 是
单价 Pirce int(4) 是
进货日期 StockDate Datetime(8) 是
结算方式 SettlementType Varchar(50) 是
应付金额 Payment int(4) 是
实付金额 FactPayment int(4) 是
未付金额 NotPayment int(4) 是
经手人 ManageMan Varchar(20) 是
操作员 Username Varchar(50) 是
添加时间 AddTime Varchar(20) 是
客户 ID ClientId int(4) 是
类型 Type Varchar(10) 是
表 -Stock(销售信息)表
一个 tb-User 表(用户信息)中所包含的数据字段应该有 ID、用户名、用户密
码、添加时间等,具体设置如表 所示:
字段名称 字段代码 数据类型 是否为空
用户 ID Id Int 否
用户名 Username Varchar(50) 是
用户密码 PassWord Varchar(50) 是
添加时间 AddTime Datetime(8) 是
表 -User(用户信息)表
执行以上操作后,SQLServer2005 生成相应的表如下图所示:
图 3-2 数据库生成样式表
数据采集
通过一些特征符合条件的测试数据,录入到数据库中,并在编码调试阶段测
试各个功能模块的实现。
应用程序设计
本系统总体的功能是实现公司销售管理的系统化、规模化和自动化,具体包
括如下功能模块:
(1)系统登录:包括用户登录、修改密码、添加新用户、退出系统等。
(2)基本信息管理:包括添加公司信息、添加商品信息、公司信息管理、商
品信息管理等。(3)进货管理:主要是更新进货信息和进货退货信息。其中每次
进行进货统计都是按进货厂商和进货金额顺序排列的。使用一个表格显示所选时
间段的全部进货数据,包括商品名称、生产厂商、产品型号、单价、数量、总金
额、进货日期、结算方式、应收金额、实收金额、未收金额、经手人、操作员等。
(4)销售管理:主要是更新销售信息和销售退货信息。其中每次进行进货统
计都是按进货厂商和进货金额顺序排列的。使用一个表格显示所选时间段的全部
进货数据,包括商品名称、生产厂商、产品型号、单价、数量、总金额、进货日
期、结算方式、应收金额、实收金额、未收金额、经手人、操作员等。
(5)查询统计:实现各种商品的进货信息、进货退货信息、销售信息、销售
退货信息、库存信息以及销售排行信息查询。用商品名称、进货日期、经手人、
和供应商等字段对进货管理和销售管理进行查询。
(6)往来管理:实现各种进货、进货退货、销售、销售退货等得的结账情况
管理。对企业各种结账有一个全面的统计。
具体设置效果图如下图 3-3 所示:
图 3-3 界面设计图
第四章 功能界面的设计
开发环境配置
配置支持 ASP 技术的 IIS 服务器
IIS 是 InternetInformationServer 的缩写,是微软公司提供的 Internet 服务器软
件,包括 Web,FTP,Mail 等服务器。本文以 Window2000 服务器操作系统为例,介
绍 Web 服务器的安装和设置方法。[9]
目前运行的 IIS 的最理想的平台是 Window2000 服务器版和高级服务器版。
Window9x/Me 里也有 IIS,但只是 PWS(个人 Web 服务器),功能很有限,只支
持 1 个连接。WindowXP 里的 IIS 也只支持 10 个连接。
IIS 是 Windows 操作系统自带的组件。如果在安装操作系统时没有安装 IIS,
则应手动安装。安装的步骤如下:
(1) 打开“控制面版”窗口,双击“添加或删除程序”图标,运行“添加或
删除程序”窗口。
(2) 选择“添加或删除程序”窗口内“添加/删除 Windows 组件”选项,弹
出“Windows 组件向导”对话框。
(3) 选中“Internet 服务器(IIS)”复选框,单击“下一步”按钮,执行操
作。IIS 安装完毕。
接下来,就是要对系统进行新建虚拟目录的操作:
(1) 打开“控制面版”窗口,双击“管理工具”图标,进入“管理工具”窗口。
(2) 双击“Internet 服务器(IIS)”图标,进入“Internet 服务器(IIS)”窗口。
(3) 单击“操作”目录,选择下拉菜单“新建”|“虚拟目录”命令.
(4) 弹出“欢迎”窗口,单击“下一步”按钮。
(5) 在“别名”文本框中输入映射后的名字,如 renli,单击“下一步”按钮。
(6) 在“目录”文本框中输入要映射的目录,如 d:\site\renli,单击“下一步”按
钮,进入设置访问权限窗口.
(7) 在这里选择正确的访问权限,再单击“下一步”按钮,即完成设置。
删除映射的方法:打开“Internet 服务器(IIS)”窗口,在虚拟目录别名上单击鼠标
右键,选择“删除”命令即可。
应用程序主界面的实现
首先建立一个.NET 的 Web 开发项目
打开 VisualStudio2005 创建一个“销售管理系统”网站,语言选择 VisualC#,保存
到相应位置。系统自动生成一个 页面文件。
创建样式表文件
在项目目录下创建一个 images 文件夹,存放该项目中所需要用到的图片。
建立一个适用于本系统项目整个风格的样式表文件。每个网站都有自己独特
的风格,如果要调整网站每一个页面的风格,工作量比较大且比较容易出错,这
是就可以通过预定义一些固定的样式来设置网页中相关部分的风格。这里的样式
类似 Word 中的样式(2)。
1、 右键单击解决方案,新建文件夹,命名为 CSS,在 CSS 文件夹上右键
单击添加新项,添加 CSS 样式表。如下图所示:
图 4-1 添加 CSS 文件(5)
2.然后在空白的样式表文件中右键单击选择“添加样式规则”菜单项,在弹出的
“添加样式规则”对话框中选中“元素”单击按钮,从其下拉列表中选择“A:link”元素,
“>”按钮,将“A:link”添加到“样式规则层次结构”列表中,单击“确定”按钮,系统自
动生成相应的样式元素代码框架。
3.使用同样的方法添加 A:visited、A:active、A:hover 元素。系统自动生成代码框
架。
4.然后为各元素添加相应的代码设置。
.css{font-size:12px;}
.white{color:#FFFFFF;}
a:link{color:#000000;text-decoration:none;}
a:visited{text-decoration:none;color:#000000;}
a:hover{text-decoration:none;color:#000000;}
a:active{text-decoration:none;}
配置 文件
通过对 文件的设置,可指定网站运行相关的属性及调用的相关参
数(3)。
1.新建 Web 配置文件 .
2.设置与应用相关的参数
在<configuration>节中添加如下代码:
<appSettings>
<addkey="strcon"value="server=.;database=db_Sell;uid=sa;pwd=sa;"></add></appSett
ings>
(1)设置 debug 值为 true
设置 compilationdebug=“true”,将调试符号插入已编译的页面中。但由于这一操
作将影响性能,因此只在开发过程中将此值设为 true.
(2)设置自定义错误信息
<customErrorsmode="RemoteOnly"defaultRedirect="">
<errorstatusCode="403"redirect=""/>
<errorstatusCode="404"redirect=""/>
</customErrors>
创建类文件
创建 stockClass 类文件
创建系统应用类文件:进货销售信息类文件,该文件用于保存进货销售相关
得一些方法、属性等,在相关的程序中可以进行调用。
1.添加一个类文件夹 App_Code,把项目需要类文件都放在里面。
创建一个 文件,用于保存为项目编写的基本类文件。鼠标右键单击“解
决方案管理器”中的 App_Code 文件夹,选择“添加新项”菜单项并在模板中选择
“类”,将默认类名改为“”。如下图所示:
图 4-2 添加类文件
2.添加新的命名空间 ;
3.声明一个 SqlCommandscdc 对象和一个 SqlConnectionstrcon 对象
SqlCommand 类用于执行 SQL 语句或存储过程,而 SqlConnection 类用于数据
库的链接,它的一个实例表示一个已建立的链接。
为 stockClass 类声明一个方法 stock,其代码如下:
publicintstock(intcid)
{//计算进货数量
intstockNumber,returnNumber;
SqlConnectionstrcon=newSqlConnection(.
AppSettings["strcon"]);
();
SqlCommandscdc=newSqlCommand();
=strcon;
scdcxmandText="selectsum(Number)fromtb_StockwhereCommodityId="+cid+"andTy
pe='进货信息'";
if(()isDBNull)
{stockNumber=0;}
else
4.{stockNumber=(());//商品进货数量}
scdcxmandText="selectsum(Number)fromtb_StockwhereCommodityId="+cid+"andTy
pe='进货退货'";
if(()isDBNull)
{returnNumber=0;}
else
{returnNumber=(());//进货退货数量}
(stockNumber-returnNumber);}
为 stockClass 类声明一个方法 sell,其代码如下:
publicintsell(intcid)
{
//计算进货数量
intstockNumber,returnNumber;
SqlConnectionstrcon=newSqlConnection(.
AppSettings["strcon"]);
();
SqlCommandscdc=newSqlCommand();
=strcon;
scdcxmandText="selectsum(Number)fromtb_StockwhereCommodityId="+cid+"andTy
pe='销售信息'";
if(()isDBNull)
{stockNumber=0;}
else
{stockNumber=(());}
scdcxmandText="selectsum(Number)fromtb_StockwhereCommodityId="+cid+"andTy
pe='销售退货'";
if(()isDBNull)
{returnNumber=0;}
else
{returnNumber=(());}
(stockNumber-returnNumber);}
为结帐行为添加一个方法,用于结帐信息
publicintnot(stringid)
{
intpayment;
SqlConnectionstrcon=newSqlConnection(.
AppSettings["strcon"]);
();
SqlCommandscd=newSqlCommand("selectNotPaymentfromReckoningwhereid="+id,st
rcon);
intnotpayment=(());
scdxmandText="selectsum(Settlement)aspaymentfromtb_ReckoningwhereCommodityI
d="+id;
if(()isDBNull)
{payment=0;}
else
{payment=(());}
intnot=notpayment-payment;
returnnot;}
页面设计
创建 Main 页面(系统主页面)
Main 页面主要是背景图片的植入,在系统各页面中有 main 页面做底衬。简单
的在源视图中加入图片代码即可。其操作如下所示:
<bodystyle="background-image:url(images/)">
<formid="form1"runat="server">
<divstyle="background-image:url(images/)">
</div>
</form>
</body>
编辑 Default 文件
1.引用样式表文件。在 中引用 文件。
2.插入表格。向 中插入一个三行两列的表格进行布局。
3.将第一行单元格合并,属性值设为宽度 770px 高度为 148px.第二行单元格宽
度 770px 高度为 20px 第三行单元格宽度为 770px.高度为 652px
图 4-3 添加节点示意图
4.在第一行单元格中插入图片 .
5.第二行中的单元格中插入两个标签,分别来显示操作员和当前日期。
6.在第三行中第一个单元格的属性值为一八 3px,第二个单元格为 587px.在第
一个单元格中插入导航中的 TreeView 控件。编辑节点单击添加根节点为“基本信
息”在基本信息中点击添加子节点为“添加公司信息”、“添加商品信息”“公司信息管
理”“商品信息管理”等子节点。一次步骤依次添加进货管理、销售管理、查询统计、
往来管理、系统设置等根节点以及其子节点。如上图所示:
7.编辑 的后台程序。 页面中,添加如下代码:
protectedvoidPage_Load(objectsender,EventArgse)
{if((Session["username"])=="")
{("<scriptlanguage=javascript>alert('请登录
');location=''</script>");}
=(Session["username"]);
=(());}
编辑登录()页面
系统登录模块主要用于验证用户登录系统时输入的用户名、密码和验证码是
否正确,只有合法的用户才可以进入系统,否则将不能进入此系统,系统登录页
面如图所示:
图 4-4 登陆页面设计图
页面的整体布局如图所示,其后台代码如下(1):
if(!IsPostBack)
{
RandomvalidateN=newRandom();
=(9).ToString()+(9).ToString()+validate
(9).ToString()+(9).ToString();
}
当页面首次加载时,标签上所显示的是由数字随机构成的验证码。
当输入用户名、密码和验证码后,用户登录验证程序。双击 ImageButton1 按
钮,打开 代码页,在 ImageButton1_Click 事件中添加如下代码:
protectedvoidImageButton1_Click(objectsender,ImageClickEventArgse)
{
stringusername=Request["username"];
stringuserpwd=Request["userpwd"];
stockClasssc=newstockClass();
if((username))
{
("<script>alert('用户名中不能含有非法字符');()</script>");
return;
}
if((userpwd))
{
("<script>alert('密码中不能含有非法字符');()</script>");
return;
}
if(!=)
{
("<script>alert('验证码错误');()</script>");
return;
}
SqlConnectionstrcon=newSqlConnection(.
AppSettings["strcon"]);
();
SqlCommandscd=newSqlCommand("selectcount(*)asfffromtb_userwhereusername='"+
username+"'anduserpwd='"+userpwd+"'",strcon);
intcount=(());
if(count>0)
{
Session["username"]=username;
("");
}
else
{
("<script>alert('用户名或者密码错误,请重新输入!
');()</script>");
return;
}
}
双击取消则清空用户名和密码中的内容。双击 ImageButton2 按钮,打开
代码页,在 ImageButton2_Click 事件中添加如下代码:
protectedvoidImageButton2_Click(objectsender,EventArgse)
{
="";
Session["username"]="";
Session["userpwd"]="";
}
添加用户模块
在功能导航区中单击“添加用户”按钮,在操作区中会显示添加用户页面。添加
用户页面主要是添加管理用户,使系统可以实现多用户管理。在用户名及密码处
填写用户名及密码,然后单击“添加”按钮,完成添加操作。
1.新建一个 Web 窗体,命名为 ,在其中插入一个 4 行 2 列的表格,
高度为 219px,宽度为 412px.对齐方式为居中。
2.按照如下图所示编辑文字,插入的控件分别为:两个 Text,分别名为 username,
userpwd;两个 Button,分别名为 Button1,Reset1.
图 4-5 添加用户设计样式图
3.编辑后台代码,双击 Button1 按钮,打开 代码页,在
Button1_Click 事件中添加如下代码:
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringusername=Request["username"];
stringuserpwd=Request["userpwd"];
DateTimeAddTime=;
stockClasssc=newstockClass();
if((username))
{
("<script>alert('用户名中不能含有非法字符');()</script>");
return;
}
if((userpwd))
{
("<script>alert('密码中不能含有非法字符');()</script>");
return;
}
SqlConnectionstrcon=newSqlConnection(.
AppSettings["strcon"]);
();
SqlCommandscd=newSqlCommand("selectcount(*)asfffromtb_userwhereusername='"+
username+"'",strcon);
intcount=(());
if(count>0)
{
("<script>alert('用户已经存在,请重新输入!
');()</script>");
return;
}
try
{
scdxmandText="insertintotb_user(username,userpwd,addtime)values(xusername,xuserp
wd,xaddtime)";
SqlParameterpara=newSqlParameter("xusername",,20);
=username;
(para);
para=newSqlParameter("xuserpwd",,20);
=userpwd;
(para);
para=newSqlParameter("xAddTime",);
=AddTime;
(para);
();
("<script>alert('用户添加成功');location=''</script>");
}
catch
{
("<script>alert('操作失败');location=''</script>");
}
();
}
}
在功能导航区中单击“修改密码”按钮,在操作区中会显示修改密码页面此页面
只可以修改当前操作用户的密码,在密码处添加要修改的密码,然后单击“修改”按
钮,完成修改操作。根据用户添加页面编辑用户密码修改页面()页
面,其后台代码如下所示:
其Page_load事件的代码如下所示:
protectedvoidPage_Load(objectsender,EventArgse)
{
if((Session["username"])=="")
{
("<scriptlanguage=javascript>alert('请登录
');location='../'</script>");
}
if(!IsPostBack)
{
=Session["username"].ToString();
}
}
4.编辑后台代码,双击 Button1 按钮,打开 代码页,在
Button1_Click 事件中添加如下代码:
protectedvoidButton1_Click(objectsender,EventArgse)
{
stockClasssc=newstockClass();
if((Request["userpwd"].ToString()))
{
("<script>alert('密码中不能含有非法字符');()</script>");
();
}
SqlConnectionstrcon=newSqlConnection(.
AppSettings["strcon"]);
();
SqlCommandscd=newSqlCommand("updatetb_usersetuserpwd='"+Request["userpwd"]
+"',addtime='"++"'whereusername='"+(Session["usern
ame"])+"'",strcon);
();
();
("<script>alert('密码修改成功');location=''</script>");}
用户管理模块:
在功能导航区中单击“用户管理”按钮,在操作区中会显示用户管理页面,如下图所
示。此页面主要实现修改及删除等功能。
图 4-6 用户管理设计
用户管理页面的操作方法如下:
(1)修改。单击“修改”按钮,进入“用户修改密码”页面。此修改主要用于修
改密码。
(2)删除。单击“删除”按钮,完成删除操作。其页面编辑步骤如下:
图 4-7 数据库配置选项图
新建一个 web 窗体,命名为 ,并在页面中插入一个 GridView
控件。
GridView 中新建一个数据源 SqlDataSource1,然后为数据源添加链接,在链
接中添加列,如下图所示:
完成后,再为 GridView 添加新的列,添加两个 HyperLinkField 字段用来链接
到修改页面对每个用户资料修改、删除,一个设置其表头文字为“修改”,显示文字
为“修改”,另一个一个设置其表头文字为“删除”,显示文字为“删除”。
并在编辑列下面选中启用排序、分页等。
其后台代码如下所示;
publicpartialclassBedrock_Commodity_manage:
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if((Session["username"])=="")
{
("<scriptlanguage=javascript>alert('请登录
');location='../'</script>");
return;}
if(!IsPostBack)
{
();
}
}
publicvoidbind()
{
SqlConnectionstrcon=newSqlConnection(.
AppSettings["strcon"]);
();
SqlDataAdaptersda=newSqlDataAdapter("select*fromtb_Userorderbyiddesc",strcon);
DataSetds=newDataSet();
(ds,"tb_User");
=["tb_User"];
=newstring[]{"id"};
();
}
protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse)
{
=;
();
}
protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse)
{
SqlConnectionstrcon=newSqlConnection(.
AppSettings["strcon"]);
();
stringid=[].();
SqlCommandscd=newSqlCommand("deletefromtb_Userwhereid="+id,strcon);
();
();
}
protectedvoidGridView1_RowEditing(objectsender,GridViewEditEventArgse)
{
stringid=[].();
("<script>('
=250')</script>");
("<script>location='javascript:(-1)'</script>");
}
}
退出登录页面的设计只需在其(user_out)页面中添加一句代码即可,其代码
如下:
protectedvoidPage_Load(objectsender,EventArgse)
{
Session["username"]="";
("../");
}
系统设置主要包括:添加用户、修改密码、用户管理、退出登录。至此,系
统设置模块已经完成。
基本信息模块
在功能导航区中单击“添加公司信息”按钮,在操作区中会显示添加页面。添加
商品信息页面的运行效果如下所示。
添加公司信息()页面
1.新建 页面。在页面中插入一个 11 行 2 列的表格,宽度为
430px,高度为 381px.
2.填写标题等相关信息,如下图所示。并且为 DropDownList 添加相应项目。
3.编写后台代码 .声明属性变量:CommodityName、
ShortName、ProducePlace、Unit、Specs、PassNumber、PassList、CompanyId、
Remark。
其效果图如 4-8 图所示:
4.在 Page_Load 事件中初始化页面,调用 Session 中的 CommodityName 值,相关
代码如下所示:
图 4-8 添加商品信息界面
4.在 Page_Load 事件中初始化页面,调用 Session 中的 CommodityName 值,
相关代码如下所示:
protectedvoidPage_Load(objectsender,EventArgse)
{
if((Session["username"])=="")
{
("<scriptlanguage=javascript>alert('请登录
');location='../'</script>");
return;
}
if(!IsPostBack)
{
SqlConnectionstrcon=newSqlConnection(.
AppSettings["strcon"]);
();
SqlDataAdaptersda=newSqlDataAdapter("select*fromtb_CompanywhereCompanyTyp
e='供应商'orderbyiddesc",strcon);
DataSetds=newDataSet();
(ds,"tb_Company");
=ds;
="id";
="CompanyName";
();
}
}
添加商品信息按钮 Button1 的 Click 事件代码如下:
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringCommodityName=();
stringShortName=();
stringProducePlace=();
stringUnit=();
stringSpecs=();
stringPassNumber=();
stringPassList=();
stringCompanyId=();
stringRemark=();
stringUsername=(Session["username"]);
stringAddTime=();
SqlConnectionstrcon=newSqlConnection(.
AppSettings["strcon"]);
();
SqlCommandscd=newSqlCommand("insertintotb_Commodity(CommodityName,Short
Name,ProducePlace,Unit,Specs,PassNumber,PassList,CompanyId,Remark,Username,A
ddTime)values('"+CommodityName+"','"+ShortName+"','"+ProducePlace+"','"+Unit+"','
"+Specs+"','"+PassNumber+"','"+PassList+"','"+CompanyId+"','"+Remark+"','"+Userna
me+"','"+AddTime+"')",strcon);
();
();
("<scriptlanguage=javascript>alert('您已经添加成功
');location=''</script>");
}
商品信息管理()页面的编辑
创建商品信息管理页面 ,应用样式表文件。在页面中
插入一个 GridView 控件,宽度为 522px.
为 GridView 配置数据源,然后为数据源添加链接,在链接中添加列
Commidityname,shortname,produceplace,user,addtime 等字段,并修改其 HeadText 属
性。然后添加两个 HyperLinkfield 字段,其 HeadText 属性分别为详细信息、删除。
并企业能够分页、排序。其效果如图 4-9 所示:
编写商品信息管理页面的后台代码 文件。引用命名
空间代码如下(8):
;
图 4-9 商品信息管理页面设计
在 Page_Load()事件中添加代码,对操作员的 Session 进行判断,其代码如下
所示:
protectedvoidPage_Load(objectsender,EventArgse)
{
if((Session["username"])=="")
{
("<scriptlanguage=javascript>alert('请登录
');location='../'</script>");
return;
}
if(!IsPostBack)
{
();
}}
在功能导航区中单击“商品信息管理”按钮,在操作区中会显示商品信息的管理
页面。此页面主要实现修改及删除商品信息等功能。其代码如下所示:
publicvoidbind()
{SqlConnectionstrcon=newSqlConnection(
["strcon"]);
();
SqlDataAdaptersda=newSqlDataAdapter("select*fromtb_Commodityorderbyiddesc",str
con);
DataSetds=newDataSet();
(ds,"tb_Commodity");
=["tb_Commodity"];
=newstring[]{"id"};
();
}
protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse)
{
=;
();
}
protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse)
{
SqlConnectionstrcon=newSqlConnection(.
AppSettings["strcon"]);
();
stringid=[].();
SqlCommandscd=newSqlCommand("deletefromtb_Commoditywhereid="+id,strcon);
();
();
}
protectedvoidGridView1_RowEditing(objectsender,GridViewEditEventArgse)
{
stringid=[].();
("<script>('
0,height=450')</script>");
("<script>location='javascript:(-1)'</script>");}}
添加公司信息页面
在功能导航区中单击“添加公司信息”按钮,在操作区会显示添加页面,如下图
所示。此页面主要用于添加供应商及客户信息。在“所属类型”下拉列表中选择公司
的所属类型,单击“添加”按钮,完成添加操作。
其操作步骤与添加商品信息类似。公司信息管理页面的添加也与商品信息管
理页面添加步骤类似,依次类推来完成添加公司信息页面和公司信息管理的添加。
图 4-10 添加公司信息样式图
进货管理模块设计
进货管理主要包括:添加进货信息、添加进货退货。
在功能导航区中单击“添加进货信息”按钮,在操作区中会显示添加进货信息页
面。在“商品名称”下拉列表中选择进货商品名称,“供应商”自动显示该商品的供应
商名称,在其余编辑框中输入完整的进货信息,然后单击“添加”按钮,完成添加操
作。
创建添加进货信息(stock_add)页面,页面布局如图所示:
图 4-11 添加进货信息页面
布局完成后,添加后台代码。在 Page_Load 事件中添加代码,当页面时首次
加载时,回到登录页面,其相关代码如下所示:
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!IsPostBack)
{
=(Session["username"]);
if((Session["username"])=="")
{
("<scriptlanguage=javascript>alert('请登录
');location='../'</script>");
}
SqlConnectionstrcon=newSqlConnection(.
AppSettings["strcon"]);
();
SqlDataAdaptersda=newSqlDataAdapter("select*fromtb_Commodityorderbyiddesc",str
con);
DataSetds=newDataSet();
(ds,"tb_Commodity");
DataRowViewrowview=["tb_Commodity"].DefaultView[0];
intCommodityIds=(rowview["CompanyId"]);
=["tb_Commodity"];
="id";
="CommodityName";();
SqlCommandscdc=newSqlCommand("selectCompanyNamefromtb_Companywhereid=
"+CommodityIds,strcon);
=(());
=();
();
=;
}
}
进货信息输入后,其添加按钮 Button1 按钮的 Click 事件 Button1_Click()中的
代码如下所示(7):
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringCommodityId=();
stringCompanyId=();
intNumber=(());
intPirce=(());
stringStockDate=();
stringSettlementType=();
intPayment=((Request["Payment"]));
intFactPayment=(());
intNotPayment=((Request["NotPayment"]));
stringManageMan=();
stringUsername=(Session["username"]);
stringAddTime=();
stringType="进货信息";
//计算输入的金额是否正确
if(Number*Pirce<Payment)
{
("<script>alert('应付金额填写错误');()</script>");
();
}
SqlConnectionstrcon=newSqlConnection(.
AppSettings["strcon"]);
();
SqlCommandscd=newSqlCommand("insertintotb_Stock(CommodityId,CompanyId,Nu
mber,Pirce,StockDate,SettlementType,Payment,FactPayment,NotPayment,ManageMan,
Username,AddTime,Type)values('"+CommodityId+"','"+CompanyId+"','"+Number+"','
"+Pirce+"','"+StockDate+"','"+SettlementType+"','"+Payment+"','"+FactPayment+"','"+
NotPayment+"','"+ManageMan+"','"+Username+"','"+AddTime+"','"+Type+"')",strcon);
();
();
("<scriptlanguage=javascript>alert('添加成功
');location=''</script>");
}
代码添加后,运行时添加进货信息后,点击添加按钮,出现添加成功对话
框!如图所示(8):
图 4-12 进货信息添加成功图
点击确定后,直接跳转到进货退货页面。
编辑进货退货()页面。新建 web 页面,命名为
()进货退货的设计页面与添加进货信息页面相似,可以仿照添
加进货信息页面对进货退货页面惊醒编辑。
销售管理模块
销售管理主要包括:添加销售信息、添加销售退货。
在功能导航区中单击“添加销售信息”按钮,在操作区中会显示添加商品销售信
息页面。此页面主要是用于添加商品销售的详细信息。在“商品名称”下拉列表中选
择进货商品名称,“供应商”自动显示该商品的供应商名称,在“客户名称”下拉列表
中选择客户名称,在其余编辑框中输入完整的进货信息,然后单击“添加”按钮,完
成添加操作。
创建添加进货信息(sell_add)页面,页面布局如图所示:
图 4-一三添加销售信息页面
布局完成后,添加后台代码。在 Page_Load 事件中添加代码,当页面时首次
加载时,回到登录页面。
编辑销售退货()页面。新建 web 页面,命名为
()进货退货的设计页面与添加进货信息页面相似,可以仿照添加
进货信息页面对进货退货页面惊醒编辑。
查询统计模块
查询统计主要包括:商品进货查询、进货退货查询、商品销售查询、销售退
货查询、商品库存查询、商品销售排行。其中商品进货查询、进货退货查询、商
品销售查询、销售退货查询、商品库存查询的操作方法相同,下面以“商品进货查
询”为例讲解其编辑方法。
商品进货查询主要是对商品进货的详细信息进行查询,可根据供应商、商品
名称、经手人和起止日期进行复合条件查询。此查询支持模糊查询。
在四个查询条件中任选一个或多个条件,分别勾选其复选框,在编辑框中填
写查询条件,单击“查询”按钮,完成查询操作。
单击“详细信息”按钮,可查看该条进货信息。
首先新建一个 web 窗体,命名为 .。然后按照如下图所示对页
面进行布局,添加一个 GridView 控件、四个 CheckBox 控件、5 个文本框
(TextBox)控件,两个 Button 控件(9)。
图 4-14 进货信息查询设计样式图
然后为 GridCView 控件选择数据源 SqlDatacSource1.并添加数据链接,如
图 4-一五所示:
完成后,进入后台代码编写。。在 Page_Load 事件中添加代码,当页面时
首次加载时,回到登录页面,其相关代码如下所示
protectedvoidPage_Load(objectsender,EventArgse)
{
if((Session["username"])=="")
{
("<scriptlanguage=javascript>alert('请登录
');location='../'</script>");
}
if(!IsPostBack)
{
Session["sql"]="";
();
=(());
}
}
图 4-一五数据源配置图
GridView 控件的几个事件属性代码为:
protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse)
{
=;
();
}
protectedvoidGridView1_RowEditing(objectsender,GridViewEditEventArgse)
{
stringid=[].();
("<script>('
ht=450')</script>");
("<script>location='javascript:(-1)'</script>");
}
protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)
{
if(==)
{
[4].Text=(([4].Text)).ToShortDateString()
;
if(([1].Text).Length>6)
{
[1].Text=([1].Text).Substring(0,6)+"…";
}
if(([0].Text).Length>6)
{
[0].Text=([0].Text).Substring(0,6)+"…";
}
}
}
在查询按钮 Button1 控件的 Click 事件 Button1_Click()中添加代码,相关代码
如下:
protectedvoidButton1_Click(objectsender,EventArgse)
{stringSql="";
if()
{Sql=Sql+"andCompanyNamelike'%"++"%'";}
if()
{Sql=Sql+"andCommodityNamelike'%"++"%'";}
if()
{Sql=Sql+"andManageManlike'%"++"%'";}
if()
{Sql=Sql+"andStockDatebetween'"++"'and'"++"'";}
Session["sql"]=Sql;
();}
在返回按钮 Button2 控件的 Click 事件 Button2_Click()中添加代码,相关代码
如下:
protectedvoidButton2_Click(objectsender,EventArgse)
{
Session["sql"]="";
();}
其中商品进货查询、进货退货查询、商品销售查询、销售退货查询、商品库
存查询的编辑方法相同,其页面设计都与“商品进货查询”页面相似,我们可以依照
“商品进货查询页面”来编辑其他查询页面。
往来管理
往来管理主要包括:商品进货结账、进货退货结账、商品销售结账、销售退
货结账。
商品进货结帐(Reckoning)页面
新建一个 Web 窗体,命名为 .。然后在页面中加入 GridView 控
件。然后对 GridView 控件添加、链接数据。然后为 ..cs 页面添加后
台代码(11)。
商品进货结账主要是结算没有结算完的帐目。商品进货结账的操作方法如下:
图 4-16 结账页面设计图
(1)结账。“结账”按钮为不可用状态时,表示该进货信息已结账完毕。为可用
状态的表示还有账目没有结算完,只需单击“结账”按钮,进入“结账单”页面,如图
所示。在“结款”及“经手人”处输入结款金额和经手人,单击“结账”按钮,完成结账
操作。
图 4-17 结账单控件
在结帐按钮 Button1 控件的 Click 事件 Button1_Click()中添加代码,相关代码
如下:
protectedvoidButton1_Click(objectsender,EventArgse)
{stringpayment=;
stringmanageman=;
stringusername=(Session["username"]);
stockClasssc=newstockClass();
if(()>(((Requ
est["id"]))))
{("<script>alert('您填写的结款金额大于实际未付金额
');()</script>");
();}
SqlConnectionstrcon=newSqlConnection(.
AppSettings["strcon"]);
();stringsql="insertintotb_Reckoning(CommodityId,Settlement,ManageMan,u
sername,Addtime,datetime)values("+Request["id"].ToString()+",'"+payment+"','"+man
ageman+"','"+username+"','"+()+"','"+
Time().ToShortDateString()+"')";
SqlCommandscd=newSqlCommand(sql,strcon);();
("<script>alert('成功
');='
>");}
至此为止,商品进货结帐管理页面编辑完成。
在往来管理模块中商品进货结帐、进货退货结帐、商品销售结帐、销售退货
结帐、的编辑方法相同,其页面设计都与“商品进货结帐”页面相似,我们可以依照
“商品进货结帐页面”来编辑其他结帐页面。
至此,销售管理系统各个页面的编辑全部完成。
结 论
在很多时间,很多地点,我们都会听到有人说,诸如:时间飞逝、时间过得
太快了、时间如水等类似的语言,我们会觉得千篇一律。但是,当我们真的需要
做某一件事情,与时间赛跑的时候,我们不得不说,我们跑不过时间,我们只能
争取时间。在大三下半学期,作为计算机软件方向的学生,我们需要在即将毕业
的最后一个学期完成毕业设计,以此来考查我们的学习成果。
经过四个多月的设计与开发,从最初的收集资料,需求分析到概要设计,详
细设计,数据库设计,商品销售管理系统的设计终于完成了,纵观全局,本系统
的功能基本上已经满足了公司的需求。但是由于时间有限,本系统还是有很多不
足之处。比如保存后的数据,如:商品销售出库信息、销售货款信息等未能及时
做出来,这些方面还有待改善。
在这四个多月的毕业设计阶段,我充分认识到了学习的重要性,也深刻体会
到了面临毕业的压力。每周都要根据进度记录表完成本周规定的任务,在设计时
总是出现这样或那样的问题,任何一个小问题都会造成系统无法正常运行,这就
需要我们在工作中时刻保持清醒的头脑,做任何事情都要细致认真,不能有一点
马虎。通过进行毕业设计使我们能够综合运用所学的基础理论、专业知识和基本
技能,这不仅提高了我们分析与解决实际问题的能力,也使我们经历了编程人员
所必需的基本训练,在很大程度上培养了我们综合分析问题和处理问题的能力。
以上这些都是我在书本上学不到的知识,在未来的学习生活中我想我会巧妙
的运用这些一点一滴积累的经验,这些也将成为我人生道路不可多得的财富!
致 谢
这次的毕业设计即将结束,在本次历时四个多月的课程研究过程当中,我得到
了很多人的帮助,在此表示我对他们的衷心感谢!
首先,我要衷心感谢我的老师杨老师,是他给我论文的写作提供了指导和帮助,
在我论文的整个写作过程中,从组织到内容,自始至终指导着我。他耐心、详细、
实际的指导给我了许多计算机方面专业知识,他丰富的学识使我受益匪浅,他对
我的毕业设计给予了很多建议和意见,给了我极大的帮助、鼓励和关怀,在此向
他表示深深的谢意。
同时,我还要感谢所有任课教师,在我的大学学习生涯中,老师们严谨的工作
作风和对我的悉心指导将一直激励着我今后的生活与工作。
通过进行毕业设计使我综合运用所学的基础理论、专业知识和基本技能,提高
分析与解决实际问题的能力,也培养了我的创新精神和实践能力。
我的大学生活即将接近尾声,感谢学校对我这几年的教育,我会永远记住这美
好的大学时光。
最后,再次对关心、帮助我的老师和同学表示衷心地感谢!
参考文献
[1]杨云.典型系统开发详解[M].北京:人民邮电出版社.:1
[2]LanSommerville.软件工程(英文版)[M].北京:北京机械工业出版社.:2
[3]王惠刚.王挺.使用培训教程[M].北京:海洋出版社.2003.07:4
[4]赵致格.数据库系统与应用[M].北京:清华大学出版社.2005.09:31
[5]孙印杰.+SQLSERVER 动态网站设计实例精解[M].北京:北京电子工业出版
社.:27
[6]BrianLarson.MicrosoftSQLServer2005ReportingServices[M].北京:清华大学出版
社.2005.05:12
[7]伊夫杰. 高级编程-(第 4 版)[M].北京:清华大学出版社发行部.:4
[8]王立福.麻志毅.软件工程[M].北京:北京大学出版社.2003.12:45
[9]启明工作室编著. 网络应用系统开发与实例[M].北京:人民邮电出版社.:38
[10]郭瑞军.郭馨君. 数据库开发实例精粹[M].北京:电子工业出版社.:40
[11]王珊.萨师煊.数据库系统概论[M].北京:高等教育出版社.:34
2025 年 10 月 17 日星期五 12:36:02
:3612:36: 时 36 分 12 时 36
分 2 秒 Oct. 17, 2517 October 202512:36:02
PM12:36:02