基于.NET的进销存系统的设计开发

时间:2022-07-08 01:27:52

基于.NET的进销存系统的设计开发

摘要:进销存是指企业管理过程中从采购即进货,到入库即存货,最后销售的一系列动态管理过程。随着科技的不断发展,用户迫切需要一套可以帮助企业进行管理货物流动的软件。一般的进销存系统都是采用C/S架构,针对它难于维护和性能有限的缺陷,该文章采用.NET平台下, Visual C#开发语言、Microsoft SQL Server 2005后台数据库,使用B/S结构的进销存系统的设计开发。该系统具有界面友好,操作方便,管理合理等诸多优点,在试运行后,得到企业好评。

关键词:进销存;.NET;B/S;库存管理

中图分类号:TP311.1文献标识码:A文章编号:1009-3044(2011)14-3338-03

Design Development of Inventory Management System Based on .NET

JIANG Cong-cui

(Liuzhou City Vocational College, Liuzhou 545002, China)

Abstract: Inventory management is a series of dynamic management process of purchase (stock), warehousing (inventory) and sales in the business management process. With the constant development of science and technology, users are in urgent need of a set of software which helps the business to conduct cargo flowing management. The common inventory management system adopts C/S framework. Aiming at its defects of difficult maintenance and limit performance, the paper employs Visual C# developing language, Microsoft SQL Server 2005 background database under NET platform, using design development of inventory management system with B/S structure. The system has many advantages such as friend interface, convenient operation and reasonable management, which receives good reputation from businesses after its commissioning.

Key words: invoicing; .NET; B/S; inventory management

1 概述

随着经济的飞速发展,企业的竞争也越来越激烈,这就迫切要求企业改变以往的经营管理模式,规范流程,提升信用度,加快商品资金周转,更好地满足客户需求,让企业与供应商、企业与需求方的关系变得更加密切和复杂。

进销存管理系统最核心的部分是它的数据库管理系统,是为了满足企业的需求,解决企业库存管理,业务沟通信息反馈不及时,物资信息安全等问题。现阶段的很多销存管理系统是客户机/服务器C/S (Client/Server)架构的,它的特点是基于客户端实现的,这意味着所有的业务逻辑都需要通过客户端来操作,这样就导致了维护难,管理难,关键是对于规模比较大的企业严重受到了并发用户数少的限制,其性能也难以满足企业的需要。随着互联网技术的迅速发展,为有效克服C/S架构的缺点,基于浏览器/服务器 (Browser/Server)架构为越来越多的应用系统所采用,并得到了企业的青睐。B/S架构的主要特点是系统开发人员不需要再单独开发自己的客户端软件,而统一采用浏览器来实现客户端与服务器的交互。另外当需要对系统软件进行升级时,只需对服务器端的应用程序进行升级即可。

本文介绍的进销存管理系统是集采购、销售、库存、系统管理多个环节于一体的信息系统。该系统提供采购申请单、订单、销售、入库单、出库单、盘点单、往来发票、基础信息配置、人员角色管理等的功能,帮助企业处理日常的进销存业务,实时查询,系统重新配置等功能。通过该进销存系统帮助业务人员提高工作效率,并能及时做出准确的业务决策。

2 系统结构设计

本系统采用B/S架构,在Windows Xp Sp3系统上运行,本篇文章采用.NET平台下, Visual C#开发语言、Microsoft SQL Server 2005后台数据库, 进行开发的 Web 应用程序。另外,本系统采用进行数据访问,起源于ADO(ActiveX Data Objects),是用于Microsoft技术中访问数据。正是因为它是在.NET编程环境中使用的数据访问接口所以使用名称。与传统数据访问技术如 OLEDB、ADO的不同的是, 支持数据离散访问的编程接口,可以尽量缩短数据库锁定时间, 使更多的访问客户同时操作数据,减少访问数据库服务器时的潜在竞争,真正体现了网络Web应用的思想。

对于系统的进销存业务逻辑如图1所示:

1) 采购阶段:生产部门根据生产需要制定生产计划提交给采购部门,采购部门依据生产计划给出采购计划并提供给供应商进行采购,这期间需要产生的单据有申请单、计划单、定单和发票单。

2) 库存阶段:供应商把采购的货物入库,进入仓库部门,生产部门就可以从仓库里提货,生产部门生产后就把产品入库,这个阶段产生的单据有:入库单、出库单、领料单。

3) 销售阶段:产品进入仓库一定时间内销售部门需要把产品发给客户,并及时将相关信息返给计划部门,便于计划部门根据销售情况制定下次的生产计划。此阶段产生的单据有:销售订单、销售提货单、销售发票和销售回款单。

4) 盘点阶段:对仓库中的货物进行一次统计,通过盘点可以很容易得到仓库中货物情况。

本文系统设计了以上关键的采购模块、销售模块和库存模块。界面如图2所示。

3 重要模块实现

下面针对库存模块,具体介绍下该模块的结构设计。 库存管理是指企业为了生产、销售等经营管理的需要而对计划存储、流通的有关物品进行相应的管理,如对存储的物品进行接收、发放、存储保管等一系列的管理活动。

系统中具体实现的是单据之间的流转、添加、维护、审核功能。以库存模块为例说明主要实现的功能点如下:

3.1 单据的添加方式

以入库单为例,可以从采购订单导入,也可以从旧入库单导入。实现界面如图3。

设计实现的关键过程如下:

// 判断当前刷新是不是由其他单据导入时引起的,如果是的话,则需要重新引导页面

if (Session["NewDepositingBackBillFromDepositingBill"] != null &&

Session["NewDepositingBackBillFromDepositingBill"].ToString().Length == 32

{ string temp = Session["NewDepositingBackBillFromDepositingBill"].ToString();

Session["NewDepositingBackBillFromDepositingBill"] = "";

Response.Redirect("DepositingBackBillAddAndEdit.aspx?Type=Add&id=" + temp); }

// 权限判断

RightsCheck();

btnInsert.Attributes.Add("onclick", "return CheckHasWarehouseInfo();");

// 判断当前是否允许编辑表单,如果不允许编辑,那么就隐藏保存按钮

if (Request.QueryString["OnlyView"] != null)

{ btnSave.Visible = false;}

else{btnSave.Visible = true;}

if (Request.QueryString["NoGetProButton"] != null)

{liGetPro.Visible = false;

liOld.Visible = false;}

else{

liGetPro.Visible = true;

liOld.Visible = true;}

3.2 单据的日期添加方式

更加方便让客户自由操作,结束手动输入方式。

3.3 单据的整个流转过程

1) 维护:添加后的单据都会统一保存在一张表里,然后可以随时查看,确认无误后可以完成提交,进入下一步审核阶段;也可以删掉;整个单据在流转过程中的历史信息也给了说明,可以随时查看,了解该单据的状态和历史记录。

2) 审核:单据在下级提交后会进入上一级领导的审核表中,上级领导可以查看本单据的具体产品或材料信息,确认是否通过,若通过则成功入库,不通过则返回进如下级的入库表中,继续修改。

3) 查询功能:对于大规模的单据操作,查询功能显得尤为总要,我们设计了查询功能,可以根据单据的编号、单据类型、仓库号、入库人员、单据日期范围和其范围及来源编号来完成查询功能。

4) 权限划分:企业部门和人员的权限对应他们的职责,所以对权限的划分显得尤其重要。本文采用对所有权限进行编码,每个编码对应一定的操作页面,这样对人员可以通过添加角色,角色又对应一定的权限编码来实现对人员权限的划分。

4 系统可配置的管理结构

进销存系统中除了采购管理、销售管理和库存管理外,还需要对整个系统进行可视化的配置管理模块,如图4所示。

通过图4可以看出本系统实现了更多可配置操作,对基础信息的配置和人员的管理具体功能结构如下。

1) 基础信息配置:对系统的字典配置,基本信息,系统参数,结构编码,部门配置,物料类别维护,物料维护,地区字典,市场字典,仓库分类,仓库配置和往来单位。

2) 人员/角色管理:模块的管理,权限管理和角色及人员管理。

5 典型问题的解决

5.1 庞大数据库表的设计

1) 确定行为及设计的信息转化为表格,并确认各表间的关系,并进一步细化各表,比如:表单信息又可以细化为:采购单、入库单、出库单、盘点单等;

2) 确定设计需要的数据并标准化数据;

3) 确定表间的对应关系,一对多,一对一,还是多对多,然后定义主键和外部键。

5.2 权限的设计

所有操作流程都作为某个权限级别指定了编码,在系统中新建用户时候就给他赋予了一定的权限,这样就实现了权责问究制,不同权限的人登陆看到的业务流程也不相同,这样可以方便他们做好自己的本职工作,也从根本上控制了企业人员的权限范围。职责分明,工作效率进而得以提升。

6 结束语

本文设计进销存系统特别注重数据库的设计,要避免数据库的冗余性,表间设计满足数据库设计的第三范式,极大提升了数据操作的速度。对权限的设计使得该系统更能符合大企业的实际需求,在实际运行中也起到了很好的作用。

参考文献:

[1] 姜桂洪. SQL Server 2005数据库应用与开发[M].北京:清华大学出版社,2010.

[2] 蒋长兵,代应. 库存控制模型技术与仿真[M].北京:中国物资出版社,2010.

[3] 徐兰芳,彭冰,吴永英. 数据库设计与实现[M].上海:上海交通大学出版社,2006.

[4] Sceppa D. 2.0技术内幕[M].北京:清华大学出版社,2007.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:任务驱动教学在高职VB程序设计课程中的应用 下一篇:PHS网络的无线侧优化