基于ASP.NET+SQL Server实现(Web)企业进销存管理系统

企业进销存管理系统的设计和实现

一、摘要

进销存管理是现代企业生产经营中的重要环节,是完成企业资源配置的重要管理工作,对企业生产经营效率的最大化发挥着重要作用。本文以我国中小企业的进销存管理为研究对象,描述了企业进销存管理系统从需求分析、系统设计、系统实现到系统测试的全周期。在本次设计确定了进销存系统的基础功能需求,深入剖析了企业进销存的业务流程,完成了基础设置模块、客户管理模块、产品管理模块、进销存管理模块和系统管理模块的功能设计。分析部分对系统的概念、特点、运行环境及数据库设计进行了分析描述;设计部分根据系统的总体描述、模块及结构图提出了系统的总体设计方案内容;实现部分介绍了系统中各个模块的实现方法,做到客观实际,具有通用性。

关键词:进销存管理系统;.NET;B/S 模式;SQL

二、绪论

2.1 课题背景

随着现代企业管理理论的发展,以及在新形势下信息化技术在现代企业管理的不断应用,许多中小企业在激烈的市场竞争中也开始注意到企业信息化管理的重要性,部署了贴合自身业务的小型管理系统。但当前许多中小企业实现的管理信息系统都是非常独立的系统,采购、销售、库存管理都有独立的系统。大量的系统不利于数据共享和综合的统计分析。因此,中小企业迫切需要部署一个综合的进销存管理系统以实现数据的统一管理。进销存管理系统以库存管理为基础,主要完成企业的采购管理、销售管理、库存管理、客户管理和产品管理等工作,通过对销货进货、库存变更等操作过程的管理,为管理者提供详细企业运营状况,帮助企业打到采购、库存、销售的平衡,降低企业成本。

2.2 国内外现状

美日韩等发达国家因工业水平和计算机技术起步较早走在了世界的前列。自 20 世纪 60 年代起发展了许多实现企业全面管理的 ERP系统。这些 ERP 系统中均有进销存管理相关的模块[1]。但中小企业由于规模与资金限制,只在部分业务普及了信息化。这些软件系统中均具有进销存管理的相关业务模块,例如 COPICS、BPCS、NTT 系统,业务模块具有较高的集中度,同时也易于扩展,全世界许多企业使用这些管理系统来完成企业的进销存管理工作。美国的一份数据统计表明采用利用软件对企业进销存管理,可减少40%的积压库存,12%的企业生产力增[2]。

在经济化浪潮下国内也涌现出一批优秀的进销存系统,如用友软件、金蝶公司、浪潮等的 ERP 系统,都在国内得到了广应用。但当前我国进销存管理系统存在的主要缺陷:①软件功能复杂。许多进销存管理系统包括从物流、生产到财务等多个领域,但许多功能并不适用于中小企业;②进销存信息单一,且缺乏对数据的分析功能。无法对进销存信息进行实时分析;③系统网络化程度低。许多传统的进销存管理系统只支持在局域网中进行使用,更无法满足当前网络经济时代的要求。国内进销存管理系统的研究已经从点到面,又向细节逐步深入的阶段,在各方面细节上不断完善系统,为企业进销存管理打造一个坚实的根基[3]。

2.3 课题的目的和意义

本课题的目的是研究设计实现企业进销存管理系统,并通过该系统实现以下目标:

  1. 界面简洁明了,模块分布明确,方便用户操作。
  2. 合理分配权限,优化管理。
  3. 实现中小企业进销存管理的持续使用。

本课题的意义如下:

  1. 实时下订单。
  2. 实时查询库存数量。
  3. 为企业管理者提供科学的决策数据

2.4 本文组织结构

第一章为绪论,大致介绍本课题的研究背景以及国内外进销存管理系统的现状,以及应用进销存管理系统的主要意义。

第二章为开发进销存管理系统的相关技术,本章主要介绍了开发系统时使用的技术、语言、数据库技术和软件架构等方面。

第三章为进销存管理系统的分析与设计,本章主要说明了该系统的需求、系统的模块规划,以及系统数据库的设计及相应的截图。

第四章为进销存管理系统的实现,本章主要说明了系统的开发环境,介绍了系统各个模块所实现的功能。

第五章为总结与展望,本章主要总结了本系统的开发工作,并指出系统存在的不足,有待改进。

三、相关技术介绍

3.1 ASP.NET技术

ASP.NET技术是用微软开发并推行的,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,可用于在服务器上生成功能强大的Web应用程序,是ASP技术的升级版。ASP.NET支持多种类型语言的编程开发,其中包括常用的Visual Basic .NET、C#、Perl等语言。因为ASP .NET是基于通用语言的编译运行的程序,其实现完全依赖于虚拟机,所以它拥有跨平台性,ASP .NET构建的应用程序可以运行在几乎全部的平台上[4]。同时,ASP.NET还有许多功能强大的组件,例如DataList、DetailList和Gridview等,可以实现快速简便地与数据库进行连接,并且它本身还自带了服务器空间,简单好用[5]。

3.2 C#语言

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。它是由C和衍生出来的,同时又综合了简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向编程的支持成为开发的首选语言。

3.3 SQL Server数据库

SQL Server数据库是一个关系数据库管理系统,是一个可扩展、高性能、为分布式客户机/服务器计算所设计的数据库管理系统。它实现了与Windows NT的有机结合,提供了基于事务的企业级信息管理系统方案[6]。SQL Server数据库具有如下特点:

  1. 高性能的设计。SQL Server数据库可以充分利用Windows NT的优势。
  2. 系统管理的先进性。它支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
  3. 强大的事务处理功能。SQL Server数据库采用了多种方法,以保证数据的完整性。
  4. 支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。SQL Server数据库以其内置的数据复制功能和强大的管理工具,以及其与Internet的紧密集成和开放的系统结构,为广大用户、开发人员和系统集成商提供了一个出众的数据库平台。

3.4 B/S结构

B/S结构(即浏览器/服务器结构)是WEB兴起后的一种网络结构模式,其主要是利用日渐成熟的WWW浏览技术,结合VBScript和JavaScript等Script语言,再加上ActiveX技术,将系统功能实现的核心部分转移到了服务器上,简化了系统的开发,是一种全新的软件系统构造技术[7]。用户通过自己电脑的浏览器就可以在家访问数据库,不需要特别安装软件,使得系统的拓展十分便利。

3.5 AJAX

Ajax是一种创建交互式网页的web开发技术。它并不是一种单一的、新的技术,而是由Javascript、CSS、Dom、XMLHttpRequest这四中技术集合而成的。它由JavaScript语言写成,使用CSS控制页面的样式,通过DOM使用模型,通过XMLHttpRequest向后台发送数据。Ajax技术很多时候被用于实现页面的局部刷新,大大提高了用户体验感。

3.6 Android

Android是一种基于的自由及开放源代码的,主要使用于,如和,由公司和领导及开发。一个Android 应用是由多个Activity 组成的。这多个Activity 之间可以进行相互跳转,例如,按下一个按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity 之间的跳转有可能返回值,例如,从Activity A 跳转到Activity B,那么当Activity B 运行结束的时候,有可能会给Activity A 一个返回值。这样做在很多时候是相当方便的。

3.7 本章小结

本章主要介绍了在进销存管理系统中使用的相关技术,例如C#和SQL Server数据库的相关介绍,B/S结构的简单阐述以及AJAX的原理。

四、系统分析与设计

4.1 系统需求分析

进销存管理系统的开发过程中包括了前期准备,市场调研、系统分析、系统设计以及系统实现、测试、评价等步骤。由于调研对象主要集中在中小企业,所以其中的一些功能只做了一些简单的设计。根据系统开发的大小、规模以及应用范围的不同,各个步骤的要求和内容可能不尽相同。

4.1.1 业务流程分析

为了使用户能够更加直观地了解整个系统的业务关系、工作顺序以及相应的管理信息的流向,在此给出了本系统的业务流程图,如图3-1所示。本系统是进销存管理系统,主要实现企业库存的信息管理,设定价表、入货出货和实时查询企业库存[8]。其中,订单模块是本系统的重点。

如图3-1所示,在本系统中,管理员拥有系统全部基础功能。如新增客户,新增产品和销售区域,新增业务代表等基础信息维护;设定价盘表,可按照不同销售区域对产品进行差异化定价;调整并审核销售单、退货单、收预收款等业务操作。管理员新增业务代表并审核通过后可由业务代表帮助客户下预售单,预售单在管理员审批通过后可由库管发货,审核期间可组合选择付款方式(预收款付款,先进结款等)。

业务代表在本系统中扮演了重要角色,承担了企业与客户沟通的桥梁,在线下跑订单,下预售订单等都由业务代表完成。业务代表是可以关联车辆的,企业的每一辆运货车可以由一个司机加一个业务代表组合负责。司机负责货运,业务代表负责在手机APP为客户下订单,可下订单包括销售单,预售单,退货单,在手机端业务代表可任意组合自己的付款方式,灵活完成客户订单需求。

产品价表是本系统的重点,管理员可针对不同渠道不同区域的不同产品差异化定价,尽可能符合当前区域的经济需求。管理员亦可对产品设定活动,活动包括买赠和减免,对于同一客户的下单可直接给业务代表赠送的权利,简化买赠活动为免费赠送单。灵活的定价方式可满足不同区域的消费需求。

图3-1业务流程图

4.1.2 数据流程分析

从业务流程图中,我们可以比较直观地了解到整个系统中各个实体以及各个模块之间的业务关系,以及作用顺序,但是对于各类信息的具体处理、存储及流向方面,则不是十分详细。而为了更加清晰地了解一个系统中的数据信息流向和处理存储过程,本文中给出了数据流程图。如图3-2所示,是本系统的数据流程图,从下图我们可以比较明确地知道整个系统的数据走向。

图3-2数据流程图

4.1.3 功能性需求分析

进销存管理系统的角色分为系统管理员、业务代表、司机、客户。

系统管理员可以由系统使用方指定对象担任,人数由使用方决定,系统管理员不需要注册。系统管理员主要管理整个系统中基础信息的调整和订单审核,包括新增业务代表、新增产品、设定产品价表等。具体功能要求如下:

  1. 管理授权:注册其他角色时需要在管理员授权。
  2. 修改权限:系统管理员可以根据需求修改系统人员和商品的信息的权限。
  3. 业务权限:系统管理员可以对订单进行审核发货和取消。
  4. 信息维护:系统管理员可以对整个系统中的信息进行维护。
  5. 审核功能:根据新增基础信息需求,审核信息。

业务代表是由管理员添加并审核通过的注册者,在系统中具有下预售单和车销单的权限。具体功能如下:

  1. 客户管理:具有新增客户、修改已存在客户资料等功能。
  2. 车销管理:下车销订单。
  3. 预售管理:下预售订单。
  4. 库存管理:可申请移库,由主仓库移动至车仓库或由车仓库退货。
  5. 退货管理:可以查看有关自己的留言,回复他人对自己的提问。
  6. 其他信息:订单查询等。

司机是由管理员添加并审核通过的注册者,在系统中具有库存调拨的权限。具体功能如下:

  1. 调拨管理:车销移库或退库。
  2. 订单管理:在车销订单中收款。

4.1.4 非功能性需求分析

非功能性需求,指的是除了用户所需的功能要求以外,还应该满足的一些其他方面的要求。本系统以下几个方面进行分析:

  • 系统安全性:防止无权限人员进入系统修改相关信息[14]。若操作系统能给数据库用户分配角色,则安全性管理者必须要有修改操作系统用户安全性区域的操作系统权限[15]。
  • 性能需求:用户在软件响应速度、结果精度、运行时资源消耗量等方面的要求。如对计算机系统的要求,对工作频率、容量、存储量等方面的要求。
  • 易操作需求:界面简单明了,命名明确易懂。如一些系统管理员不太熟悉电脑操作,系统界面必须一目了然、简单易懂、容易上手[16]。
  • 适应性:当外部条件有所改变的时候,系统根据外界因素改变。如时间变化,系统根据当前时间删除发布招募信息时过时时间的选项。

4.2 系统模块划分

根据以上分析,可以将库存管理信息管理系统分为基础信息管理、采购管理、销售管理、库存管理、财务管理、报表平台等几个模块。系统管理员主要有信息的维护、审核、权限管理等功能具体,业务代表具有订单权限和新增客户权限,如图3-3所示:

图3-3系统模块划分

4.3 系统数据库设计

在一个系统的开发过程中,数据库设计可谓是至关重要,一个数据库的设计成功与否,直接关系到整个系统的开发,甚至会影响到整个系统的成败。

4.3.1 概念设计

概念设计是由分析用户需求到生成概念产品的一系列有序的、可组织的、有目标的设计活动,它表现为一个由粗到精、由模糊到清晰、由抽象到具体的不断进化的过程。现在常用的概念模型是E-R模型。在本系统中,各实体直接的关系如图3-4所示:

图3-4实体关系E-R图

4.3.2 逻辑设计

逻辑设计是将概念结构转变为某个DBMS支持的数据模型,也可称为优化。将本系统转换后就得到如下关系模型:

商业客户基本信息表(ID,客户编号,全称,简称,行政城市,邮政编码,客户地址,送货地址,联系人姓名,电话号码,手机号码,传真,Email,企业网址,首要联系人,客户开门时间,客户打烊时间,营业执照号,组织机构代码证号,税务登记证号,客户类型,所有权属性,所有权人,备注,审核标志,新增日期,新增人,更新日期,更新人);

供货商合作关系表(ID,客户ID,供货商,客户自编码,业务人员,客户合作状态,开始合作日期,截止合作日期,供货价盘表,渠道,区域,销售路线,拜访顺序,拜访模板,备注,审核标志,新增日期,新增人,更新日期,更新人);

员工信息资料表(ID,姓名,性别,员工编号,身份证号,出生日期,行政城市,地址,邮编,电话号码,手机号码,电子邮件,开始工作日期,截止工作日期,管理片区,职务,在职状态,所有权属性,所有权人,备注,审核流程,审核标志,新增日期,新增人,更新日期,更新人);

商品基本资料表(ID,产品名称,产品简称,商品编码(平台级编码),规格,整件单位,零售单位,包装系数,整件商品条码,零售商品条码,商品种类,商品品牌,商品类别,段位,整件重量,整件体积,厂家名称,生产厂商,厂家商品码,厂家商品ID,标准经销价,标准分销价,建议零售价,成本价,状态,保质期,所有权属性,所有权人,备注,审核标志,新增日期,新增人,更新日期,更新人);

订货单信息(ID,订单号,供货商,订购商,业务员,供货价盘表,类别,状态,折扣金额,优惠金额,实际订货金额,要求送达时间,要求送达仓库,提交时间,确认时间,关联拜访记录,备注,审核标志,新增日期,新增人,更新日期,更新人);

发货单信息(ID,单号,发货商,收货商,发货商仓库,收货商仓库,业务员,送货人,类别,制单模式,状态,供货价盘表,关联订货单,折扣金额,优惠金额,实际销售金额,送货车辆,预计送达时间,装车配货时间,发车时间,实际到达时间,关联拜访记录,备注,审核标志,新增日期,新增人,更新日期,更新人);

实时库存表(ID,仓库,商品,批号,生产日期,数量,价格,最后更新时间,新增日期,备注);

4.3.3 物理设计

物理设计指的是根据数据库的逻辑结构来选定RDBMS,并设计和实施数据库的存储结构、存取方式等。本系统采用SQL Server数据库,根据以上的分析选取了主要的几张表展示,表之间的关系如图3-5所示

图3-5数据库表关系图

4.4 本章小结

本章节作为全文比较重要的一个章节,具体介绍了进销存管理系统的需求分析,其中包括了功能性需求分析和非功能性需求分析,分别从概念、逻辑、物理这三方面进行了说明。

五、系统实现

5.1 系统开发环境的选择

本系统的开发是基于.NET平台,以VS2012为开发环境,将C#作为主要开发语言,SQL SERVER为数据库软件。

5.2 系统通用方法的实现

本系统是进销存管理系统,系统重心在下单及库存判断上,但是作为一个应用型系统,其他功能模块也是必不可少的。系统实现过程中运用了大量的ASP.NET控件,例如AJAX、GridView、DataList等。在本节中将介绍通用模块的实现方法。

5.2.1 连接数据库

在一个系统中,数据库的连接可以说是核心部分,至关重要。在本系统中,通过web.config文件增加数据库连接字符串[9],主要代码如下:

<connectionStrings><addname="VolunteerConnection"connectionString="Data Source=UGYRPLW5EAMIHEB;Initial Catalog=Volunteer;Persist Security Info=True;User ID=sa;Password=123456"providerName="System.Data.SqlClient"/></connectionStrings>

并在App_Code文件夹中添加数据库连接方法connet(),在后续的系统功能程序编写中,全部通过调用该方法来实现数据库的连接,主要代码如下:

privatestaticstring connectString = ConfigurationManager.ConnectionStrings["VolunteerConnection"].ConnectionString;
publicstaticSqlConnection Connect()
{SqlConnection con = newSqlConnection(connectString);return con;}

5.2.2 数据的绑定显示

作为一个数据管理系统,需要将系统中的部分数据展示出来,因此,数据的显示操作也是十分重要的[10]。在本系统中,数据的显示主要使用了DataList和GridView控件,控件类型的不同导致了这两种控件在使用方法上的差异。在DataList控件中,本文主要采用了DataSet方法来填充数据,该方法处理脱机数据,在多层应用程序中很有用,并且可以在任何时候查看DataSet中任意行的内容,允许修改查询结果的方法,还可以处理分级数据。在本系统中,该方法被用于每一个信息展示页面,例如订单列表页面,采购单列表页面,产品列表页面等,主要代码如下:

SqlDataAdapter sqlda = newSqlDataAdapter(sqlstr, sqlconn);
DataSet ds = newDataSet();
sqlda.Fill(ds, "dtxx");

GridView控件主要使用在系统管理员模块中,通过该控件自带的分页排序功能,可以使得管理员的操作更加简便快捷。GridView控件主要是通过使用SqlDataSource数据源控件来连接数据库的,所以在此不再累赘。

5.2.3 分页栏

DataList控件本身并不带有分页功能,为实现在使用DataList控件时也能方便分页,本系统使用了PagedDataSource数据源方法来绑定DataList控件,使其也能像GridView控件一样实现分页[11]。该方法主要通过PagedDataSource和DataSet方法相结合使用,主要代码如下:

DataSet ds = newDataSet();
sqlda.Fill(ds, "dtxx");
PagedDataSource pds = newPagedDataSource();
pds.DataSource = ds.Tables["dtxx"].DefaultView;
this.DataList1.DataSource = pds;
this.DataList1.DataBind();

5.2.4 页面局部刷新和跳转

在本系统中,因为牵涉到大量数据的分页方法,势必会造成在页面刷新过程中的卡顿和不流畅现象,为解决这一问题,本系统还使用了AJAX控件,来实现页面的局部刷新方法[12]。因为AJAX是开发环境中自带的一款封装的控件,所以在使用上也是非常方便的,主要代码如下:

<asp:ScriptManagerID="ScriptManager1"runat="server">
</asp:ScriptManager>
<asp:UpdatePanelID="UpdatePanel1"runat="server">
<ContentTemplate>……
</ContentTemplate>
</asp:UpdatePanel>

在AJAX控件中,无法使用Response.Write("")方法进行页面信息框的弹出提示已经页面的跳转,所以AJAX也有自己自身的一种提示方法,主要代码如下:

ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "click", "alert('已完成下单!');location.replace('dygl.aspx');", true) [13];

5.3 系统主要功能的实现

如上节所述,本系统是进销存管理系统,订单模块是本系统的主要模块,该模块实现了下单和查询功能,以及后续的一些统计功能[14]。

本系统实现的功能主要由两部分组成,即订单和库存这两个模块的功能。进入本系统时需要登录,进入系统会自动根据身份出现可浏览模块。界面如图4-1和4-2所示:

图4-1系统主页

图4-2 订单模块

5.3.1 系统管理员功能

系统管理员是由系统开发者或者系统购买者直接指定的,不需要注册,系统管理员的信息直接由开发人员写进数据库中。但是要注意的是,系统管理员的选择应该慎重[15]。在本项目中系统管理员除了可以修改自己的个人信息之外,还有以下众多主要功能:

基础资料管理:企业员工注册客户成功之后就无法自行修改,如果注册时用户信息填写错误,用户可以向管理员线下提起申请,管理员通过用户信息管理界面进行用户信息的修改。系统管理员也可以在该功能模块进行用户权限的修改。该页面主要使用GridView控件实现,在一定程度上节省了开发难度和开发时间,同时使用代码和textbox控件,可以通过关键字搜索用户信息,方便管理员对用户信息的维护。基础资料页面都提供对各类信息的检索方式,如客户界面的关键字会在后台自动匹配客户的名称,编码,简称等属性,而新增日期的时间段则会自动筛选所有符合录入时间的客户,合作状态可选取一种状态,也可选择所有状态下的客户。界面如图4-3所示:

图4-3 基础资料管理

商品信息管理:本系统提供了商品管理这一模块,具有商品操作权限的用户可以自行为企业添加商品,并为产品设定不同类别。每个产品都可以归属于一个类别,可通过类别对产品进行筛选。界面如图4-4所示:

图4-4 商品信息管理

采购管理:企业作为盈利组织,势必要投入一部分成本,而成本的一个重要组成部分便是销售产品的采购。本系统提供企业对产品的采购功能,采购数据会纳入企业进销存体系,作为库存盘点的数据来源。录入采购单据时刻选择企业自身录入的供货商,选择企业的一个仓库作为入库仓库,已完成的采购单管理员可在后台予以确认,采购单据页面会自动罗列出所有的采购商品和采购的总金额,界面如图4-5所示:

图4-5 采购管理

订单管理:企业要实现盈利就必须有销量,在实际业务过程中业务代表承担了销售的大部分责任。对于小规模客户业务代表可跟车进行车销现款现货交易,对于大客户业务代表则可通过拜访客户下预售订单的模式销货,预售单在管理员审核通过后可进行派单。订单页面与采购单页面相似,不同的是企业自身已作为供应商,而订购上则是企业客户。订单页面会显示下单的业务员和销售类型及各类采购产品明细,界面如图4-6所示:

图4-6 动态信息审核

库存管理:系统管理员可以在该模块中查看现有个库存中各产品的数量,也可在各仓库之间进行调拨操作并按期对仓库进行盘点。界面图如图4-7所示:

图4-7库存界面

库存盘点是系统的一个重点功能,用户可在新增盘点单的界面选择需要盘点的仓库,此时界面会以GridView的形式罗列出所有在售产品的现有库存量,并提供一个下拉列表选择盘盈或者盘亏并以文本框形式输入数量。对于每一个产品的库存,对应于后台PBM_DeliveryDetail数据表中的一行数据,在保存时循环GridView的每一行在PBM_DeliveryDetail中插入数据。

价表管理:价表是进销存管理系统的基础,决定了系统的复杂程度。本系统允许多张报表同时存在,默认设置第一张价表为主价表。管理员可新增自定义价表关联渠道或客户类型,也可同时与渠道和客户类型绑定。价表界面图如4-8所示:

图4-8 价表管理界面

在价表管理页面用户可看到当前价表关联的区域和取到以及是否为默认价表。用户可根据商品分类或关键字查找在价表中或不在价表中的商品,以审核的价表,对于不需要再出现在价表中的产品允许用户进行批量删除,同时不在价表中的产品也可添加到价表并自定义价格。

5.3.2 业务代表功能

图4-9 业务代表流程图

如图4-9所示,为业务代表操作流程图。业务代表由管理员注册并分配账号后方可登陆系统,主要进行下车销单和预售订单操作。具体操作在手机端完成。用户具体功能如图4-10所示:

图4-10 业务代表功能界面

1.客户信息管理:客户信息管理又分为以下几个功能

客户信息新增——业务代表可根据实际新增自己管辖范围内的新客户,如果需要修改某些自己无权修改的信息时,可以向管理员申请修改。该模块通过手机APP的形式展现。如图4-11所示:

客户拜访管理——业务代表在自己管辖的片区内可按照预定线路拜访客户,为提高拜访真实性系统提供对客户门头拍照功能。如图4-12所示:

图4-11客户信息新增

图4-12拜访拍照

2.订单管理:业务代表对自己线路下的客户有下单权限,具体功能如下:

车销订单—业务代表在随车拜访客户时可帮助客户下车销单。该模块位于手机APP上,如图4-13所示:

预售订单—业务代表在自己管辖区域内拜访大客户时可帮助客户下预售单。该模块位于手机APP上,界面如图4-14所示:

图4-13车销订单

图4-14预售订单

订单查询——业务代表在APP下单后可在PC端对自己的下单详情查看。界面如图4-15所示:

图4-14订单查询

5.4 本章小结

本章主要描述了本系统的各个模块的功能实现,通过文字叙述和截图的方式展现了本系统的功能模块,分别从系统管理员和业务代表的角度介绍了本系统的功能。

6、总结与展望

6.1 总结

在信息化建设日益普遍的今天,信息系统的使用以及愈加广泛,为了优化进销存的管理,本文在了解了各种进销存管理系统之后,开发设计了进销存管理系统,并做出如下介绍。

本文的第一章着重介绍了进销存管理系统这一课题的背景和意义,以及它的研究目的,同时也介绍了本文的内容结构。第二章着重介绍了本系统的一些相关的技术概念,比如ASP.NET技术,SQL数据库等。第三章是本文的一个重点,主要内容是需求分析以及数据库的设计等。第四章详细介绍了本系统的一些功能的实现。

本系统的重点在于管理员对商品的管理,业务代表下单和库存管理等;难点是针对不同区域和渠道设定不同的产品价格,创新点有系统权限的分配,对财务管理的纳入等。

经过这段时间的学习和实践,我对课堂掌握的知识有了一个更好地巩固,对不理解和不熟练的一些方面也有了一个更清晰的概念,比如C#语言的应用,SQL Server数据库的应用,以及DIV+CSS的网页布局等方面。

6.2 展望

当然,由于技术方面的因素,本系统的许多方面还存在不足,比如:

  1. 前期的数据库设计问题,导致在系统开发过程中需要不断修改数据库设计,使得数据库的设计不是十分规范。
  2. 目前本系统只采用了B/S架构进行开发,并没有结合C/S架构。
  3. 由于技术和设备问题,本系统无法自动提示用户相关的信息动态,只能是让用户经常登录自己进行查询。
  4. 除此之外,由于目前手机应用日益发达,开发手机APP势在必行,但由于时间和技术问题APP开发暂时只能落于纸上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/diannao/91285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(LeetCode 面试经典 150 题 ) 15. 三数之和 (排序+双指针)

题目&#xff1a;15. 三数之和 思路&#xff1a;排序双指针&#xff0c;时间复杂度0(n^2nlogn)。 先将数组nums升序排序&#xff0c;方便去重和使用双指针。第一层for循环来枚举第一位数&#xff0c;后面使用双指针来找到第二个、第三个数即可&#xff0c;细节看注释。 C版本…

easy-springdoc

介绍 简化springdoc的使用&#xff08;可以搭配knife4j-openapi3-jakarta-spring-boot-starter一起使用&#xff09; maven引用 <dependency><groupId>io.github.xiaoyudeguang</groupId><artifactId>easy-springdoc</artifactId><version>…

配置nodejs,若依

1.配置node.js环境 Node.js — Download Node.js 1.下载好一路下一步&#xff0c;可以安装到d盘 装完之后执行 npm -v 显示版本号即安装成功 2.安装好后新建两个文件夹&#xff0c;node_cache和node_global 3.配置环境变量 新建变量 在path里编辑变量 4.配置用户变量 5.…

Python学习之路(十二)-开发和优化处理大数据量接口

文章目录一、接口设计原则二、性能优化策略1. 数据库优化2. 缓存机制3. 并发模型三、内存管理技巧1. 内存优化实践2. 避免内存泄漏四、接口测试与监控1. 性能测试2. 日志与监控3. 错误处理与限流五、代码示例&#xff08;Flask 流式处理&#xff09;六、部署建议一、接口设计原…

【实时Linux实战系列】实时数据流的网络传输

在实时系统中&#xff0c;数据流的实时传输是许多应用场景的核心需求之一。无论是工业自动化中的传感器数据、金融交易中的高频数据&#xff0c;还是多媒体应用中的视频流&#xff0c;都需要在严格的时间约束内完成数据的传输。实时数据流的传输不仅要求高吞吐量&#xff0c;还…

C#数组(一维数组、多维数组、交错数组、参数数组)

在 C# 中&#xff0c;数组是一种用于存储固定大小的相同类型元素的集合。数组可以包含值类型、引用类型或对象类型的元素&#xff0c;并且在内存中是连续存储的。以下是关于 C# 数组的详细介绍&#xff1a;1. 一维数组声明与初始化// 声明数组 int[] numbers; // 声…

Dify离线安装包-集成全部插件、模板和依赖组件,方便安可内网使用

项目介绍 Dify一键离线安装包&#xff0c;集成安装了全部插件、模板&#xff0c;并集成了dify全部插件所需的依赖组件。方便你在内网、安可环境等离线状态下使用。 Dify是一个开源的LLM应用开发平台。其直观的界面结合了AI工作流、RAG管道、Agent、模型管理、可观测性功能等&…

面试150 翻转二叉树

思路 采用先序遍历&#xff0c;可以通过新建根节点node&#xff0c;将原来root的右子树连到去node的左子树中&#xff0c;root的左子树连到去node的右子树中。 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): …

C++-linux系统编程 3.gcc编译工具

GCC编译工具链完全指南 GCC&#xff08;GNU Compiler Collection&#xff09;是Linux系统下最常用的编译器套件&#xff0c;支持C、C、Objective-C等多种编程语言。本章将深入讲解GCC的编译流程、常用选项及项目实战技巧。 一、GCC编译的四个核心阶段 GCC编译一个程序需要经过四…

uView UI 组件大全

uView UI 是一个基于 uni-app 的高质量 UI 组件库&#xff0c;提供丰富的跨平台组件&#xff08;支持 H5、小程序、App 等&#xff09;。以下是其核心组件的分类大全及功能说明&#xff0c;结合最新版本&#xff08;1.2.10&#xff09;整理&#xff1a; &#x1f4e6; 一、基础…

QWidget 和 QML 的本质和使用上的区别

QWidget 和 QML 是 Qt 框架中两种不同的 UI 开发技术&#xff0c;它们在底层实现、设计理念和使用场景上有显著区别。以下是它们的本质和主要差异&#xff1a;1. 本质区别特性QWidgetQML (Qt Modeling Language)技术基础基于 C 的面向对象控件库基于声明式语言&#xff08;类似…

中转模型服务的风险

最近发现一些 AI 相关帖子下&#xff0c;存在低质 claude code 中转的小广告。 其中转的基本原理就是 claude code 允许自己提供 API endpoint 和 key&#xff0c;可以使用任意一个 OpenAI API 兼容的供应商&#xff0c;就这么简单。 进一点 claude token&#xff0c;再混入一点…

前端Vue.js面试题(3)

✨✨✨目录 1.v-model的原理是什么样的&#xff1f; 2.Vue的生命周期&#xff1f; 3.Vue子组件和父组件执行顺序&#xff1f; 4.created和mounted的区别&#xff1f; 5.vue中&#xff0c;推荐在哪个生命周期发起请求&#xff1f; 6.keep-alive中的生命周期有哪些&#xf…

leetcode:HJ18 识别有效的IP地址和掩码并进行分类统计[华为机考][字符串]

学习要点 bitset<8>ostringstreamstoistring.findstring.substr 题目链接 识别有效的IP地址和掩码并进行分类统计_牛客题霸_牛客网 题目描述 解法 #include <iostream> #include <bits/stdc.h> #include <sstream> #include <string> #inclu…

JavaEE Tomcat

企业开发介绍 JavaEE 规范 JavaEE规范是J2EE规范的新名称,早期被称为 J2EE 规范,其全称是 Java 2 Platform Enterprise Edition,是由 SUN 公司领导、各厂家共同制定并得到广泛认可的工业标准(JCP 组织成员)。 其中,JCP 组织(官网)的全称是 Java Community Process,…

什么是神经网络,常用的神经网络,如何训练一个神经网络

神经网络&#xff1a;是深度学习的核心技术。模仿生物神经元工作方式的计算模型&#xff0c;由大量互相连接是神经元组成&#xff0c;通过数据学习复杂的模式和关系。1、神经网络基本组成&#xff1a;神经元、层、连接神经元神经网络的最小单元。每个神经元接受输入&#xff0c…

BigFoot Decursive 2.7.28 2025.07.11

插件显示为独立插件&#xff0c;之前是团队框架自带 BigFoot Decursive lua-CSDN博客 /decursive 命令打开插件 /DCRSHOW 打开设置列表 然后优先列表里面再点【p】添加&#xff0c;你要驱散得优先职业 一键驱散lua插件下载&#xff1a; https://download.csdn.net/downloa…

可穿戴智能硬件在国家安全领域的应用

可穿戴智能硬件在国家安全领域具有广泛应用&#xff0c;涵盖军事作战、安防监控、边境巡逻等多个方面&#xff0c;以下是具体介绍&#xff1a;军事作战与训练&#xff1a;战场态势感知&#xff1a;士兵佩戴集成多种传感器的智能头盔、智能背心等&#xff0c;可实时获取战场环境…

后端接口通用返回格式与异常处理实现

前言 目前大部分系统都是前后端分离架构&#xff0c;后端提供接口并返回 JSON 数据&#xff0c;前端接收数据后进行处理展示。为了提高前后端协作效率&#xff0c;后端接口返回值采用固定格式十分必要。 后端接口返回值通用格式 通用返回值通常包含 4 个核心字段&#xff0c…

【yolo】模型训练参数解读

在YOLO&#xff08;You Only Look Once&#xff09;目标检测模型的训练过程中&#xff0c;数据增强是一项至关重要且极具“艺术性”的技术。它通过对训练图像进行一系列随机变换&#xff0c;人为地创造出更多样化的训练样本&#xff0c;从而有效提升模型的泛化能力、鲁棒性&…