服装进销存系统毕业设计报告

更新时间:2024-06-08 18:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

引言

服装进销存管理系统

1. 引言

1.1 选题背景

电子商务发展和市场竞争的加剧将企业推上了风口浪尖,中小企业除了积极迎接挑战别无选择。从某种意义上讲,这些变化为中小企业创造了同大企业,同国外企业平等竞争的机会和有利条件。然而,管理水平的差异会弱化这种平等的实际意义。具体而言,中小企业在进销存等环节的管理上都存在着一定程度的不足,而这些不足无疑将使其在市场竞争中陷入举步维艰的艰难境地。显然进行有效的进销存管理已经成为中小企业存身立业的头等大事。而且自从商品市场开放以来,服装销售商家每日的货物进销存就成为了繁重的工作。目前在一些个体户使用的是独立的表格来记录商品的进销存,到清算的时候往往要借助计算器等软件进行人工操作,使得账目在大量变动的情况下容易出错,从而增加成本的消耗;而在已经拥有了服装进销存管理系统的商家,投入使用的大部分商家进销存设计方案中实体模型中的各实体比较分散和孤立,没有一条主线将其串联起来,同时系统分析和设计中对服装进销存的业务分析不够透彻[1]。为了使此系统普及应用的推广,必须能够很好的处理各种商家不同的收费需求,对新业务能够方便的进行扩充。

1.2 应解决的主要问题及应达到的技术要求

服装进销存管理系统主要是本着方便用户,简化每日的服装进销存的记录,以及及时的数据统计,严格进销存的各个环节,提供高效、安全、智能化的数据管理,从而提高供销部门的整体管理水平[2]。

(1) 通过对服装进销存业务全面和透彻地分析,构建服装进销存管理系统平台的核心业务实体模型, 开发出具有良好的先进性、适应性、安全可靠性、易重用性、可移植性好的软件系统。

(2) 根据服装进销存的相关信息的数据特点,设计出能处理批量事务、大量数据

第 1 页 共 41 页

服装进销存管理系统

和良好的并发性、高性能的服务端。

(3) 设计出布局美观合理、易操作、易使用、响应速度快,良好的交互功能的客户端软件。

1.3 该系统在国内外的研究历史、现状

\科学技术是第一生产力\,为了有效的提高生产效率,许多商家开始引进科学化管理,于是服装鞋帽行业出现了进销存管理系统。目前,在服装行业人们一直使用传统的人工方式管理企业,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着企业的经营规模不断扩大,进销存的数量急剧增加,有关服装进销存的各种信息也成倍增长。这就要求有一个好的信息支持平台。面对庞大的信息量,有必要开发进销存信息管理系统来提高销售管理工作的效率。今天我们使用计算机对服装进销存信息进行管理,具有手工管理所无法比拟的优点。通过这样的系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量,有效地提高进销存的工作效率。

因为服务行业的现状以及行业特点和需求要求我们必须要科学管理。有些细心的服装企业管理人员会发现这么一个困惑的问题,在服装行业中有一小部分的企业绩效表现非常突出但是使用IT技术却是非常的少,与此相对应的是绝大部分的企业绩效不怎么样,但是IT投入却不少。为什么会产生这样的现象呢?答案就在于那一小部分企业从他们的投入中得到的价值远大于成本[3]。

第 2 页 共 41 页

理论基础

2 理论基础

2.1 Microsoft Visual Studio 简介

Visual Studio 是微软公司推出的开发环境。是目前最流行的 Windows平台应用程序开发环境。目前已经开发到 9.0 版本,也就是 Visual Studio 2008。Visual Studio可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。Visual Studio 97 是最早的 Visual Studio 版本。包含有面向 Windows 开发使用的 Visual Basic 5.0、Visual C++ 5.0,面向 Java开发的 Visual J++ 和面向数据库开发的 Visual FoxPro,还包含有创建 DHTML (Dynamic HTML) 所需要的 Visual InterDev。其中,Visual Basic 和 Visual FoxPro 使用单独的开发环境,其他的开发语言使用统一的开发环境。1998 年,微软公司发布了 Visual Studio 6.0。所有开发语言的开发环境版本均升至 6.0。这也是 Visual Basic 最后一次发布,从下一个版本 (7.0) 开始,Microsoft Basic 进化成了一种新的面向对象的语言:Microsoft Basic.NET。由于微软公司对于 Sun 公司 Java 语言扩充导致与 Java 虚拟机不兼容而 Sun 被告上法庭,微软在后续的 Visual Studio 中不再包括面向 Java 虚拟机的开发环境。2002 年,随着 .NET 口号的提出与 Windows XP / Office XP 的发布,微软发布了 Visual Studio .NET(内部版本号为 7.0)。在这个版本的 Visual Studio 中,微软剥离了 Visual FoxPro 作为一个单独的开发环境以 Visual FoxPro 7.0 单独销售,同时取消了 Visual InterDev。与此同时,微软引入了建立在 .NET 框架上(版本1.0)的托管代码机制以及一门新的语言C#(读作 C Sharp,意为 C++++)。C# 是一门建立在C++和 Java 基础上的现代语言,是编写 .NET 框架的语言。.NET 的通用语言框架机制(Common Language Runtime, CLR),其目的是在同一个项目中支持不同的语言所开发的组件。所有 CLR 支持的代码都会被解释成为 CLR 可执行的机器代码然后运行。Visual Basic、Visual C++ 都被扩展为支持托管代码机制的开发环境,且 Visual Basic .NET更是从 Visual Basic 脱胎换骨,彻底支持面向对象的编程机制。而 Visual J++ 也变为 Visual J#。后者仅语法同 Java 相同,但是面向的不是 Java 虚拟机,而是 .NET Framework。2003 年,微软对 Visual Studio 2002 进行了部分修订,以 Visual Studio 2003 的名义发布(内部版本号为 7.1)。Visio 作为使用统一建模语言(UML)架构应用程序框架的程序被

第 3 页 共 41 页

服装进销存管理系统

引入,同时被引入的还包括移动设备支持和企业模版。.NET 框架也升级到了 1.1。2005 年,微软发布了 Visual Studio 2005。.NET 字眼从各种语言的名字中被抹去,但是这个版本的 Visual Studio 仍然还是面向 .NET 框架的(版本2.0)。这个版本的 Visual Studio 包含有众多版本,分别面向不同的开发角色。同时还永久提供免费的 Visual Studio Express 版本。[4]

2.2 SQL Server 2000简介

SQL Server 是一个关系数据库管理系统它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的于1988 年推出了第一个OS/2 版本在Windows NT 推出后Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了Microsoft 将SQL Server 移植到Windows NT。系统上专注于开发推广SQL Server 的Windows NT 版本Sybase 则较专注于SQL Server在UNIX 操作系统上的应用在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。SQL Server 2000共有4个版本,分别是个人版,标准版,企业版和开发版。sql server 2008是微软出的SQL系列最新版本。[5]

2.3 进销存现状

在市场经济中,销售是企业运作的重要环节,为了更好的推动销售,不少企业建立了分公司或实行代理机制,通过分公司或代理商把产品推向最终用户。这些分公司或代理商大部分分布在全国各地,甚至海外,远距离频繁的业务信息交流构成了这些企业业务活动的主要特点。在传统方式上,公司之间通常采用电传,电报,电话,E-mail等方式传递订货,发货,到货,压货,换货,退货等信息,总公司的商务部门在接到分公司或代理商上传来的订单和银行汇款单据传真后,开具产品出库,然后在把相关的进,销,存信息手工存档,在对这些信息进行统计分析,才能了解到整个公司的生产,销售和库存的情况。

第 4 页 共 41 页

理论基础

这种信息传递,管理方式不仅效率低,其可靠性,安全性和保密性都无法满足要求,而且数据统计时间严重滞后,往往是当领导了解到企业的“进,销,存”出现问题时,就已经远离了问题出现的时间和地点。即便是使用传统手工方式管理也存在同样的问题。通过进销存管理系统,可以及时发现问题,结局问题,更好的把握机会。

第 5 页 共 41 页

服装进销存管理系统

3 需求分析

3.1 各功能模块需求分析

系统分为4个主要的功能模块:基本管理模块、进货管理模块、销售管理模块、库存管理模块。

基本管理模块需求分析如下:企业经营的基础资料是一个服装企业最基本也是最重要的的信息,脱离了基础资料,例如,服装商品资料、供货商资料、客户资料等,服装进销存系统就无法进行,“基本管理”功能模块就用于维护这些资料。

“服装信息”用于维护(增加、修改、删除、查询)企业所经营的服装的基本信息,内容包括:商品编号、商品名称、 商品单位、数量、单价、库存量。其中商品名称是服装名称的简称,目的是在程序中可以通过简称查询到所需要的服装。

“进货单信息”用于维护企业供货商的基本信息,内容包括供货商号、简称、地址、类型、电话、开户行帐号、税号、单位等。

“销售信息”用于维护企业客户的基本信息,内容包括客户名称、简称、联系人、地址、电话、开户行帐号、税号、单位等。

“管理员信息”用户管理企业各部门的管理员的权限更改。

进货管理模块主要实现的功能是进货单的操作,进货单用于录入企业的进货订单,主表“进货单”内容包括商品编号、商品名称、类型、型号、库存总量等,销售管理模块主要实现的功能是销售单的操作。销售单用于录入企业的销售订单,主表“销售单”内容包括商品编号、商品名称、类型、型号、库存总量、单价等。

库存管理模块主要实现的功能是库存的查询,包含库存信息这个表单,其属性有:商品号、商品名、、类型、型号。

3.2 进销存管理系统关系图[8]

第 6 页 共 41 页

需求分析

关系模型如下:

供货商信息(商品编号、商品名称、地址、类型、型号、开户行帐号、税号、联系人及电话。)

客户信息(商品编号、商品名称、类型、型号、联系人、地址、电话、开户行帐号、税号等。)

商品清单(商品编号、商品名称、类型、型号、进货价、产地。) 进货单(商品编号、商品名称、型号、规格、库存数量、盘点数量。)

销售单(商品编号、商品名称、型号、规格、客户编号、客户名称、税号、单位电话、联系人、单位地址)

库存(商品编号、商品名称、库存数量、盘点数量)

第 7 页 共 41 页

服装进销存管理系统

4 系统结构

4.1 系统流程图

该服装进销存管理系统的系统流程为:管理员登录,如果输入正确的帐号和密码就能登录此系统,否则就会退出系统。登陆成功后就可以根据不同的权限来操作相应的功能模块,具体的流程如图1所示:

管理员登录 登录用户为 管理员 否 系统退出 是 库 存 管 理 基 本 管 理 进 货 管 理 销 售 管 理

图1 系统流程图

4.2 功能模块图

基本管理的功能模块有四个子功能模块,分别是:服装信息管理、供货商信息管理、客户信息管理以及管理员信息管理。不同的子功能必须使用相应的权限才能操作。如图2所示:

第 8 页 共 41 页

系统结构

基本管理

图2 基本管理模块图

服装 信 息 供货 商 信息 客户信息 管理员信息 进货管理的功能模块有2个子功能模块:进货信息管理、进货单打印。其中进货单打印嵌入到进货单信息里面,在实行查询、删除、增加、修改的同时还能实现打印的功能,如图3所示:

图3 进货管理模块图

进货 信 息 进货 单打印 进货管理 销售管理的功能模块有2个子功能模块:销售信息管理、销售单打印。其中销售单打印嵌入到销售单信息里面,在实行查询、删除、增加、修改的同时还能实现打印的功能,如图4所示:

第 9 页 共 41 页

服装进销存管理系统

图4 销售管理模块图 销售管理 销售 信 息 销售单打印 库存管理的功能模实现的是及时查询库存信息的情况。在实际的实现过程中,为了要加快查询的速度和精度,我们设计了3种查询的方法。库存管理功能模块图如图5所示:

库存管理 库存信 息查询 图5 库存管理功能模块图

4.3 系统数据表及其用途

1.供货商清单:用于保存企业供货商的基本信息,供货单位编号为主键。其字段如表1所示。

第 10 页 共 41 页

系统结构

表1 供货商清单

列名 供货单位编号 供货单位名称 税号 单位电话 联系人 单位地址 开户行及账号 数据类型 Varchar Varchar Varchar Varchar Varchar Char Varchar 长度 5 30 30 20 10 60 80 允许空否 否 是 是 是 是 是 是 是否主键 是 否 否 否 否 否 否 2.客户信息:用于保存企业客户的基本信息,客户编号为主键。其字段如表2所示。

表2 客户信息

列名 客户编号 客户名称 联系人 客户地址 客户电话 开户行及账号 税号 数据类型 Char Varchar Varchar Varchar Varchar Varchar Varchar 长度 10 30 30 60 20 80 30 允许空否 否 是 是 是 是 是 是 是否主键 是 否 否 否 否 否 否 3.商品清单:用于保存企业所经营的服装的基本信息,商品编号为主键。其字段如表3所示.

第 11 页 共 41 页

服装进销存管理系统

表3 商品清单

列名 商品编号 商品名称 型号 规格 单位 产地 库存数量 数据类型 Varchar Varchar Varchar Varchar Varchar Varchar Float 长度 5 20 10 10 10 20 8 允许空否 否 是 否 是 是 是 是 是否主键 是 否 否 否 否 否 否 4. 进货单:进货单用于录入企业的进货订单,商品编号为主键。其字段如表4所示。

表4 进货单 列名 商品编号 商品名称 型号 规格 单位 产地 库存数量 进货数量 进货金额 数据类型 Varchar Varchar Varchar Varchar Varchar Varchar Float Float Float 长度 5 20 10 10 10 20 8 8 8 允许空否 否 是 否 是 是 是 是 是 是 是否主键 是 否 否 否 否 否 否 否 否

第 12 页 共 41 页

系统结构

5.销售单:进货单用于录入企业的进货订单,商品编号为主键。其字段如表5:

表5 销售单 列名 商品编号 商品名称 型号 规格 单位 产地 库存数量 销售数量 销售金额 数据类型 Varchar Varchar Varchar Varchar Varchar Varchar Float Float Float 长度 5 20 10 10 10 20 8 8 8 允许空否 否 是 否 是 是 是 是 是 是 是否主键 是 否 否 否 否 否 否 否 否 6.库存:库存表用来保存商品在仓库中的信息。其字段如表8所示。

表6 库存 列名 商品编号 商品名称 库存数量 成本均价 库存总价 数据类型 Varchar Varchar Float Decimal Decimal 长度 5 20 8 13 13 允许空否 否 是 是 是 是 是否主键 是 否 否 否 否

第 13 页 共 41 页

服装进销存管理系统

5 系统实现

5.1 基本管理模块的实现

基本管理模块有四个功能:商品信息维护、供货商信息维护、客户信息维护、管理员信息维护。这个四个子功能是互相独立的,在后面的功能中需要分别调用。对于基本的信息维护,一般要做到查询、添加、修改和删除四个功能。

5.2 管理模块的实现

5.2.1 系统登陆界面图 如图6所示

图6 系统登录界面图

用户输入个人的姓名和密码来进入系统进行相关的操作,用户身份不对者将不能进入系统进行操作,用户名或密码错误则自动清空文本框,要求重新输入,用户登陆之前所有功能都被屏蔽,只能退出系统,登陆成功以后才可以进行系统共操作。实现代码如下:

namespace EMS {

public partial class frmLogin : Form {

BaseClass.BaseInfo baseinfo = new EMS.BaseClass.BaseInfo(); BaseClass.cPopedom popedom = new EMS.BaseClass.cPopedom(); public frmLogin()

第 14 页 共 41 页

系统实现

{

InitializeComponent(); }

private void btnLogin_Click(object sender, EventArgs e) {

if (txtUserName.Text == string.Empty) {

MessageBox.Show(\用户名称不能为空!\错误提示\MessageBoxButtons.OK, MessageBoxIcon.Error);

return; }

DataSet ds = null;

popedom.SysUser = txtUserName.Text; popedom.Password = txtUserPwd.Text; ds=baseinfo.Login(popedom); if (ds.Tables[0].Rows.Count > 0) {

frmMain frm_main = new frmMain(); frm_main.Show();

if (Convert.ToBoolean(ds.Tables[0].Rows[0][\frm_main.tlmBuy.Enabled = true;

if (Convert.ToBoolean(ds.Tables[0].Rows[0][\frm_main.tlmSale.Enabled = true;

if (Convert.ToBoolean(ds.Tables[0].Rows[0][\frm_main.tlmStock.Enabled = true;

if (Convert.ToBoolean(ds.Tables[0].Rows[0][\frm_main.tlmSystem.Enabled = true;

if (Convert.ToBoolean(ds.Tables[0].Rows[0][\frm_main.tlmBase.Enabled = true;

this.Visible = false; } else {

MessageBox.Show(\用户名称或密码不正确!\错误提示\

} }

private void txtUserName_KeyUp(object sender, KeyEventArgs e) {

if (e.KeyValue == 13) txtUserPwd.Focus(); }

private void txtUserPwd_KeyUp(object sender, KeyEventArgs e) {

if (e.KeyValue == 13) btnLogin.Focus();

第 15 页 共 41 页

服装进销存管理系统

}

private void btnExit_Click(object sender, EventArgs e) {

this.Close(); }

private void frmLogin_Load(object sender, EventArgs e) {

} } }

5.2.2主框体界面

主框体实现的是商品信息在库存中的主要功能,包括进货单、销售单、往来单位、员工信息、管理员信息以及基本在各个模块上实现的增、删、改功能。在设计查询方法的时候参照了前面的商品编号查询,以便加快查询的精度。其中商品编号查询采用的是模糊查询。

其中主框体界面如图7:

第 16 页 共 41 页

系统实现

图7 主框体界面图

用户登陆成功后,进入主界面,可以使用系统的多种功能,如查询进货单,销售单,往来客户,员工信息及管理员信息等。实现代码如下:

namespace EMS {

public partial class frmMain : Form {

public frmMain() {

InitializeComponent(); }

private void fileUnits_Click(object sender, EventArgs e) {

BaseInfo.frmUnits frm_units = new EMS.BaseInfo.frmUnits(); frm_units.Show(); }

private void fileStore_Click(object sender, EventArgs e) {

new EMS.BaseInfo.frmStock().Show(); }

private void fileEmployee_Click(object sender, EventArgs e) {

new EMS.BaseInfo.frmEmployee().Show(); }

private void fileBuyStock_Click(object sender, EventArgs e) {

new EMS.BuyStock.frmBuyStock().Show(); }

private void fileResellStock_Click(object sender, EventArgs e) {

new EMS.SaleStock.frmResellStock().Show(); }

private void fileRebuyStock_Click(object sender, EventArgs e) {

new EMS.BuyStock.frmRebuyStock().Show(); }

第 17 页 共 41 页

服装进销存管理系统

private void fileSellStock_Click(object sender, EventArgs e) {

new EMS.SaleStock.frmSellStock().Show(); }

private void fileBuyStockAnalyse_Click(object sender, EventArgs e) {

new EMS.BuyStock.frmBuyStockAnalyse().Show(); }

private void fileBuyStockSum_Click(object sender, EventArgs e) {

new EMS.BuyStock.frmBuyStockSum().Show(); }

private void fileSellStockSum_Click(object sender, EventArgs e) {

new EMS.SaleStock.frmSellStockSum().Show(); }

private void fileSellStockStatus_Click(object sender, EventArgs e) {

new EMS.SaleStock.frmSellStockStatus().Show(); }

private void fileSellStockOrderBy_Click(object sender, EventArgs e) {

new EMS.SelectDataDialog.frmSelectOrderby().Show(); }

private void fileSellStockCost_Click(object sender, EventArgs e) {

new EMS.SaleStock.frmSellStockCost().Show(); }

private void fileStockStatus_Click(object sender, EventArgs e) {

new EMS.Stock.frmStockStatus().Show(); }

private void fileUpperLimit_Click(object sender, EventArgs e) {

new EMS.Stock.frmUpperLimit().Show(); }

private void fileLowerLimit_Click(object sender, EventArgs e) {

第 18 页 共 41 页

系统实现

new EMS.Stock.frmLowerLimit().Show(); }

private void fileCheckStock_Click(object sender, EventArgs e) {

new EMS.Stock.frmCheckStock().Show(); }

private void 本单位ToolStripMenuItem_Click(object sender, EventArgs e) {

new EMS.SetSystem.frmUnits().Show(); }

private void fileUnitsList_Click(object sender, EventArgs e) {

new EMS.BuyStock.frmUnitsList().Show(); }

private void fileCurrentBook_Click(object sender, EventArgs e) {

new EMS.BuyStock.frmUnitsList().Show(); }

private void fileBakupAndRestor_Click(object sender, EventArgs e) {

new EMS.SetSystem.frmBakup().Show(); }

private void fileClearTable_Click(object sender, EventArgs e) {

new EMS.SetSystem.frmClearTable().Show(); }

private void fileSetOP_Click(object sender, EventArgs e) {

new EMS.SetSystem.frmSetOP().Show(); }

private void frmSysPopedom_Click(object sender, EventArgs e) {

new EMS.SetSystem.frmSetOP().Show(); }

private void fileEnd_Click(object sender, EventArgs e) {

Application.Exit(); }

第 19 页 共 41 页

服装进销存管理系统

private void frmMain_FormClosed(object sender, FormClosedEventArgs e) {

Application.Exit(); }

private void 登录ToolStripMenuItem_Click(object sender, EventArgs e) {

System.Diagnostics.Process.Start(\ }

private void 启动WordToolStripMenuItem_Click(object sender, EventArgs e)

{

System.Diagnostics.Process.Start(\ }

private void 启动ExcelToolStripMenuItem_Click(object sender, EventArgs e)

{

System.Diagnostics.Process.Start(\ }

private void 系统计算器ToolStripMenuItem_Click(object sender, EventArgs e)

{

System.Diagnostics.Process.Start(\ }

private void frmMain_Load(object sender, EventArgs e) {

}

} }

5.2.3 进货销售单窗体界面 如图8:

第 20 页 共 41 页

系统实现

图8 进货管理界面

用户可以根据需要查询相关信息,实现代码如下:

namespace EMS.SaleStock {

public partial class frmSellStock : Form {

BaseClass.BaseInfo baseinfo = new EMS.BaseClass.BaseInfo(); BaseClass.cBillInfo billinfo = new EMS.BaseClass.cBillInfo(); BaseClass.cCurrentAccount currentAccount = new EMS.BaseClass.cCurrentAccount();

BaseClass.cStockInfo stockinfo = new EMS.BaseClass.cStockInfo(); public frmSellStock() {

InitializeComponent(); }

private void frmSellStock_Load(object sender, EventArgs e) {

txtBillDate.Text = DateTime.Now.ToString(\

DataSet ds = null;

string P_Str_newBillCode = \

第 21 页 共 41 页

服装进销存管理系统

int P_Int_newBillCode = 0;

ds = baseinfo.GetAllBill(\ if (ds.Tables[0].Rows.Count == 0) {

txtBillCode.Text = DateTime.Now.ToString(\\

} else {

P_Str_newBillCode =

Convert.ToString(ds.Tables[0].Rows[ds.Tables[0].Rows.Count - 1][\

P_Int_newBillCode =

Convert.ToInt32(P_Str_newBillCode.Substring(10, 7)) + 1;

P_Str_newBillCode = DateTime.Now.ToString(\\

txtBillCode.Text = P_Str_newBillCode; }

txtHandle.Focus(); }

private void btnSelectHandle_Click(object sender, EventArgs e) {

EMS.SelectDataDialog.frmSelectHandle selecthandle;

selecthandle = new EMS.SelectDataDialog.frmSelectHandle();

selecthandle.sellStock = this; //将新创建的窗体对象设置为同一个窗体类的实例(对象)

selecthandle.M_str_object = \ //用于识别 是那一个窗体调用的selecthandle窗口的

selecthandle.ShowDialog(); }

private void btnSelectUnits_Click(object sender, EventArgs e) {

EMS.SelectDataDialog.frmSelectUnits selectUnits;

selectUnits = new EMS.SelectDataDialog.frmSelectUnits();

selectUnits.sellStock = this; //将新创建的窗体对象设置为同一个窗体类的实例(对象)

selectUnits.M_str_object = \ //用于识别 是那一个窗体调用的selectUnits窗口的

selectUnits.ShowDialog(); }

private void dgvStockList_CellDoubleClick(object sender, DataGridViewCellEventArgs e)

{

第 22 页 共 41 页

系统实现

SelectDataDialog.frmSelectStock selectStock = new EMS.SelectDataDialog.frmSelectStock();

selectStock.sellStock = this; //将新创建的窗体对象设置为同一个窗体类的实例(对象)

selectStock.M_int_CurrentRow = e.RowIndex;

selectStock.M_str_object = \ //用于识别 是那一个窗体调用的selectStock窗口的

selectStock.ShowDialog(); }

private void dgvStockList_CellStateChanged(object sender, DataGridViewCellStateChangedEventArgs e)

{

//统计商品进货数量和金额 try {

float tqty = 0; float tsum = 0;

for (int i = 0; i <= dgvStockList.RowCount; i++) {

tsum = tsum + Convert.ToSingle(dgvStockList[5, i].Value.ToString());

tqty = tqty + Convert.ToSingle(dgvStockList[3, i].Value.ToString());

txtFullPayment.Text = tsum.ToString(); txtStockQty.Text = tqty.ToString(); }

}

catch { } }

private void dgvStockList_CellValueChanged(object sender, DataGridViewCellEventArgs e)

{

if (e.ColumnIndex == 3) //计算--统计商品金额 {

try {

float tsum = Convert.ToSingle(dgvStockList[3, e.RowIndex].Value.ToString()) * Convert.ToSingle(dgvStockList[4, e.RowIndex].Value.ToString());

dgvStockList[5, e.RowIndex].Value = tsum.ToString(); }

catch { } }

第 23 页 共 41 页

服装进销存管理系统

if (e.ColumnIndex == 4) {

try {

float tsum = Convert.ToSingle(dgvStockList[3, e.RowIndex].Value.ToString()) * Convert.ToSingle(dgvStockList[4, e.RowIndex].Value.ToString());

dgvStockList[5, e.RowIndex].Value = tsum.ToString(); }

catch { } } }

private void txtpayment_TextChanged(object sender, EventArgs e) {

try {

txtBalance.Text =

Convert.ToString(Convert.ToSingle(txtFullPayment.Text) - Convert.ToSingle(txtpayment.Text));

}

catch (Exception ex) {

MessageBox.Show(\录入非法字符!!!\错误提示\

txtpayment.Focus(); } }

private void btnSave_Click(object sender, EventArgs e) {

//往来单位和经手人不能为空!

if (txtHandle.Text == string.Empty || txtUnits.Text == string.Empty) {

MessageBox.Show(\供货单位和经手人为必填项!\错误提示\

return; }

//列表中数据不能为空

if (Convert.ToString(dgvStockList[3, 0].Value) == string.Empty || Convert.ToString(dgvStockList[4, 0].Value) == string.Empty || Convert.ToString(dgvStockList[5, 0].Value) == string.Empty)

{

MessageBox.Show(\请核实列表中数据:‘数量’、‘单价’、‘金额’不能为空!\错误提示\

return;

第 24 页 共 41 页

系统实现

}

//应付金额不能为空

if (txtFullPayment.Text.Trim() == \ {

MessageBox.Show(\应付金额不能为‘0’!\错误提示\MessageBoxButtons.OK, MessageBoxIcon.Error);

return; }

//向销售表(主表)录入商品单据信息 billinfo.BillCode = txtBillCode.Text; billinfo.Handle = txtHandle.Text; billinfo.Units = txtUnits.Text;

billinfo.Summary = txtSummary.Text;

billinfo.FullPayment = Convert.ToSingle(txtFullPayment.Text); billinfo.Payment = Convert.ToSingle(txtpayment.Text); //执行添加

baseinfo.AddTableMainSellhouse(billinfo, \

//向销售(明细表)中录入商品单据信息

for (int i = 0; i < dgvStockList.RowCount - 1; i++) {

billinfo.BillCode = txtBillCode.Text;

billinfo.TradeCode = dgvStockList[0, i].Value.ToString(); billinfo.FullName = dgvStockList[1, i].Value.ToString(); billinfo.TradeUnit = dgvStockList[2, i].Value.ToString(); billinfo.Qty = Convert.ToSingle(dgvStockList[3, i].Value.ToString());

billinfo.Price = Convert.ToSingle(dgvStockList[4, i].Value.ToString());

billinfo.TSum = Convert.ToSingle(dgvStockList[5, i].Value.ToString());

//执行多行录入数据(添加到明细表中) baseinfo.AddTableDetailedWarehouse(billinfo, \

//更改库存数量 DataSet ds = null;

stockinfo.TradeCode = dgvStockList[0, i].Value.ToString(); ds = baseinfo.GetStockByTradeCode(stockinfo, \ stockinfo.Qty = Convert.ToSingle(ds.Tables[0].Rows[0][\

stockinfo.Qty = stockinfo.Qty - billinfo.Qty;

int d = baseinfo.UpdateSaleStock_Qty(stockinfo);

}

//向往来单位明细表--录入数据--这样以来为分析

第 25 页 共 41 页

服装进销存管理系统

currentAccount.BillCode = txtBillCode.Text; currentAccount.AddGathering = Convert.ToSingle(txtFullPayment.Text);

currentAccount.FactAddFee = Convert.ToSingle(txtpayment.Text); currentAccount.Balance = Convert.ToSingle(txtBalance.Text); currentAccount.Units = txtUnits.Text; //执行添加

int ca = baseinfo.AddCurrentAccount(currentAccount);

MessageBox.Show(\销售单--过账成功!\成功提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

this.Close(); }

private void btnEixt_Click(object sender, EventArgs e) {

this.Close(); } } }

第 26 页 共 41 页

系统应用

6 系统应用

6.1 基本管理模块的应用

基本管理模块能实现4个功能,包括基本管理模块、进货管理模块、销售管理模块、库存管理模块。

其中进货管理界面如图9所示:

图9 进货管理界面图

第 27 页 共 41 页

服装进销存管理系统

图10 进货管理界面图

图11 销售管理界面图

第 28 页 共 41 页

系统应用

图12 库存管理界面图

其中库存商品基本信息的功能维护的功能是维护企业所经营的所有服装商品信息的维护(增加、修改、删除、查询)点击基本信息进入如图13、14所示的界面:

图13 维护管理界面

第 29 页 共 41 页

服装进销存管理系统

图14维护管理界面

其中按商品名进行查询的结果如图15:

图15 商品信息查询效果图

第 30 页 共 41 页

系统应用

进入系统维护,可以查询维护管理员信息,系统信息界面图如图16:

图16 系统维护界面图

用户基本信息包括用户名,密码及进货管理、销售管理、库存管理、系统管理、基本信息管理等管理功能,用户基本信息管理界面如图17:

图17 用户基本信息管理界面

第 31 页 共 41 页

服装进销存管理系统

最后介绍系统的辅助工具,利用这些辅助工具可以快速地对信息进行计算存储等,有效提高了系统的管理效率,其中计算机辅助工具界面图如图18:

图18 辅助工具界面图

往来单位的基本信息包括单位编号、单位名称、税号、单位电话、联系人、单位地址等基本信息,方便用户查询相关历史信息。其中往来单位界面图如图19:

图19 往来单位信息界面图

第 32 页 共 41 页

总结

7 总结

从开始我的毕业设计工作到现在,经过这几个月的积极准备,我的设计与论文基本完成。当我选定了毕业设计的选题后,开始着手设计的准备工作。在设计的初期我进行了系统可行性分析和初期准备工作,并进行开题报告的设计、答辩。接下来我调查大量有关的资料,并结合商家的具体资料进行分析,确定系统的设计要求和具体的模式。并深入研究开发工具使用方法以及.NET开发案例的基础知识。然后进行总体设计、功能模块的划分、数据信息表的确定设计初步框架,并实现基本功能,在进一步完善大部分功能模块,完成系统的设计并开始论文的撰写。在设计的过程中我尝试着加入用柱状图来分析服装商品的进销存情况,由于时间的原因没有进行深入的设计。在以后的设计的过程中,逐步学习GDI+的功能和运用方法。

参考文献

[1] 萨师煊. 数据库系统概论(第四版) 高等教育出版社 2006 [2] 李华建. 刘玉生编著visual c# 2005全程指南 电子工业出版社. 2007 [3] 田原. C#程序设计 清华大学出版社 2005 [4] 李华飚. 精通C#编程 . 科学出版社 . 2003

[5] 张冲. C#编程典型实例解析 . 中国水利水电出版社 . 2007 [6] 张帆. Visual Studio.NET程序设计教程 . 中国铁道出版社 . 2003 [7] 王立丰. Visual Studio.NE项目开发实用案例 科学出版社 2006 [8] 邹建. SQL Sever 2000 开发与管理应用实例 人民邮电出版社 2007

第 33 页 共 41 页

服装进销存管理系统

[9] 高守传. 精通SQL—结构化查询语言详解 人民邮电出版社 2007 [10] 郭睿志. C#+SQL Server项目开发实践 中国铁道出版社 2007

[11] 郑宇军. SQL Server+Visual C# 2005专业开发精解 清华大学出版社 2007

[12] (美)Karli Watson Christian Nagel. C#入门经典(第3版)清华大学出版社 2006 [13] (美)内格尔. C#高级编程(第4版) 清华大学出版社 2006 [14] (英)Sharp. Visual C# 2005从入门到精通 清华大学出版社2006 [15] (美)Karli watton. C#2005数据库编程经典教程 人民邮电出版社 2007

第 34 页 共 41 页

致谢

致谢

首先,我要真诚的感谢指导老师刘兆良老师。本设计的选题和实现都是在他的精心指导下完成的。同时我也深深的感谢这几年来所有代课老师和共处的同学给我的无私的帮助。

在实际完成论文的过程中,由于受个人的知识、经验和能力的限制,论文肯定存在不足之处,我恳请各位老师提出批评和指正。我会在以后的学习和工作中严格要求自己,努力提高自己的专业水平,以不辜负老师对我的期望。

屈佳

2011-5-30

第 35 页 共 41 页

服装进销存管理系统

附录:(附程序部分代码)

namespace EMS.SaleStock

{

public partial class frmResellStock : Form {

BaseClass.BaseInfo baseinfo = new EMS.BaseClass.BaseInfo(); BaseClass.cBillInfo billinfo = new EMS.BaseClass.cBillInfo(); BaseClass.cCurrentAccount currentAccount = new EMS.BaseClass.cCurrentAccount();

BaseClass.cStockInfo stockinfo = new EMS.BaseClass.cStockInfo();

public frmResellStock() {

InitializeComponent(); }

private void frmResellStock_Load(object sender, EventArgs e) {

txtBillDate.Text = DateTime.Now.ToString(\

DataSet ds = null;

string P_Str_newBillCode = \ int P_Int_newBillCode = 0;

ds = baseinfo.GetAllBill(\ if (ds.Tables[0].Rows.Count == 0) {

txtBillCode.Text = DateTime.Now.ToString(\\

} else {

P_Str_newBillCode =

Convert.ToString(ds.Tables[0].Rows[ds.Tables[0].Rows.Count - 1][\

P_Int_newBillCode =

Convert.ToInt32(P_Str_newBillCode.Substring(12, 7)) + 1;

P_Str_newBillCode = DateTime.Now.ToString(\\

txtBillCode.Text = P_Str_newBillCode; }

txtHandle.Focus(); }

private void btnSelectHandle_Click(object sender, EventArgs e) {

第 36 页 共 41 页

附录

EMS.SelectDataDialog.frmSelectHandle selecthandle;

selecthandle = new EMS.SelectDataDialog.frmSelectHandle();

selecthandle.resellStock = this; //将新创建的窗体对象设置为同一个窗体类的实例(对象)

selecthandle.M_str_object = \ //用于识别 是那一个窗体调用的selectHandle窗口的

selecthandle.ShowDialog(); }

private void btnSelectUnits_Click(object sender, EventArgs e) {

EMS.SelectDataDialog.frmSelectUnits selectUnits;

selectUnits = new EMS.SelectDataDialog.frmSelectUnits();

selectUnits.resellStock = this; //将新创建的窗体对象设置为同一个窗体类的实例(对象)

selectUnits.M_str_object = \ //用于识别 是那一个窗体调用的SelectUnits窗口的

selectUnits.ShowDialog(); }

private void dgvStockList_CellDoubleClick(object sender, DataGridViewCellEventArgs e)

{

SelectDataDialog.frmSelectStock selectStock = new EMS.SelectDataDialog.frmSelectStock();

selectStock.resellStock = this; //将新创建的窗体对象设置为同一个窗体类的实例(对象)

selectStock.M_int_CurrentRow = e.RowIndex;

selectStock.M_str_object = \ //用于识别 是那一个窗体调用的SelectStock窗口的

selectStock.ShowDialog(); }

private void dgvStockList_CellStateChanged(object sender, DataGridViewCellStateChangedEventArgs e)

{

//统计商品进货数量和金额 try {

float tqty = 0; float tsum = 0;

for (int i = 0; i <= dgvStockList.RowCount; i++) {

tsum = tsum + Convert.ToSingle(dgvStockList[5, i].Value.ToString());

第 37 页 共 41 页

服装进销存管理系统

tqty = tqty + Convert.ToSingle(dgvStockList[3, i].Value.ToString());

txtFullPayment.Text = tsum.ToString(); txtStockQty.Text = tqty.ToString(); }

}

catch { } }

private void dgvStockList_CellValueChanged(object sender, DataGridViewCellEventArgs e)

{

if (e.ColumnIndex == 3) //计算--统计商品金额 {

try {

float tsum = Convert.ToSingle(dgvStockList[3, e.RowIndex].Value.ToString()) * Convert.ToSingle(dgvStockList[4, e.RowIndex].Value.ToString());

dgvStockList[5, e.RowIndex].Value = tsum.ToString(); }

catch { } }

if (e.ColumnIndex == 4) {

try {

float tsum = Convert.ToSingle(dgvStockList[3, e.RowIndex].Value.ToString()) * Convert.ToSingle(dgvStockList[4, e.RowIndex].Value.ToString());

dgvStockList[5, e.RowIndex].Value = tsum.ToString(); }

catch { } } }

private void btnSave_Click(object sender, EventArgs e) {

//往来单位和经手人不能为空!

if (txtHandle.Text == string.Empty || txtUnits.Text == string.Empty) {

MessageBox.Show(\供货单位和经手人为必填项!\错误提示\

return; }

//列表中数据不能为空

第 38 页 共 41 页

附录

if (Convert.ToString(dgvStockList[3, 0].Value) == string.Empty || Convert.ToString(dgvStockList[4, 0].Value) == string.Empty || Convert.ToString(dgvStockList[5, 0].Value) == string.Empty)

{

MessageBox.Show(\请核实列表中数据:‘数量’、‘单价’、‘金额’不能为空!\错误提示\

return; }

//应付金额不能为空

if (txtFullPayment.Text.Trim() == \ {

MessageBox.Show(\应付金额不能为‘0’!\错误提示\MessageBoxButtons.OK, MessageBoxIcon.Error);

return; }

//向进货表(主表)录入商品单据信息 billinfo.BillCode = txtBillCode.Text; billinfo.Handle = txtHandle.Text; billinfo.Units = txtUnits.Text;

billinfo.Summary = txtSummary.Text;

billinfo.FullPayment = Convert.ToSingle(txtFullPayment.Text); billinfo.Payment = Convert.ToSingle(txtpayment.Text); //执行添加

baseinfo.AddTableMainWarehouse(billinfo, \

//向进货(明细表)中录入商品单据信息

for (int i = 0; i < dgvStockList.RowCount - 1; i++) {

billinfo.BillCode = txtBillCode.Text;

billinfo.TradeCode = dgvStockList[0, i].Value.ToString(); billinfo.FullName = dgvStockList[1, i].Value.ToString(); billinfo.TradeUnit = dgvStockList[2, i].Value.ToString(); billinfo.Qty = Convert.ToSingle(dgvStockList[3, i].Value.ToString());

billinfo.Price = Convert.ToSingle(dgvStockList[4, i].Value.ToString());

billinfo.TSum = Convert.ToSingle(dgvStockList[5, i].Value.ToString());

//执行多行录入数据(添加到明细表中) baseinfo.AddTableDetailedWarehouse(billinfo, \

//更改库存数量和加权平均价格 DataSet ds = null;

stockinfo.TradeCode = dgvStockList[0, i].Value.ToString(); ds = baseinfo.GetStockByTradeCode(stockinfo, \

第 39 页 共 41 页

服装进销存管理系统

stockinfo.Qty = Convert.ToSingle(ds.Tables[0].Rows[0][\ stockinfo.Price =

Convert.ToSingle(ds.Tables[0].Rows[0][\

stockinfo.AveragePrice =

Convert.ToSingle(ds.Tables[0].Rows[0][\

//处理--加权平均价格 if (stockinfo.Price == 0) {

stockinfo.AveragePrice = billinfo.Price; //第一次进货时,加权平均价格等于进货价格

stockinfo.Price = billinfo.Price; } else {

//加权平均价格=(加权平均价*库存总数量+本次进货价格*本次进货数量)/(库存总数量+本次进货数量)

stockinfo.AveragePrice = (stockinfo.AveragePrice * stockinfo.Qty + billinfo.Price * billinfo.Qty) / (stockinfo.Qty + billinfo.Qty);

}

//更新--商品库存数量

stockinfo.Qty = stockinfo.Qty + billinfo.Qty;

int d = baseinfo.UpdateStock_QtyAndAveragerprice(stockinfo);

}

//向往来单位明细表--录入数据--这样以来为分析 currentAccount.BillCode = txtBillCode.Text; currentAccount.ReduceGathering = Convert.ToSingle(txtFullPayment.Text);

currentAccount.FactReduceGathering = Convert.ToSingle(txtpayment.Text);

currentAccount.Balance = Convert.ToSingle(txtBalance.Text); currentAccount.Units = txtUnits.Text; //执行添加

int ca = baseinfo.AddCurrentAccount(currentAccount);

MessageBox.Show(\销售退货单--过账成功!\成功提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

this.Close(); }

private void txtpayment_TextChanged(object sender, EventArgs e) {

try {

txtBalance.Text =

Convert.ToString(Convert.ToSingle(txtFullPayment.Text) -

第 40 页 共 41 页

附录

Convert.ToSingle(txtpayment.Text));

}

catch (Exception ex) {

MessageBox.Show(\录入非法字符!!!\错误提示\

txtpayment.Focus(); } }

private void frmResellStock_TextChanged(object sender, EventArgs e) {

try {

txtBalance.Text =

Convert.ToString(Convert.ToSingle(txtFullPayment.Text) - Convert.ToSingle(txtpayment.Text));

}

catch (Exception ex) {

MessageBox.Show(\录入非法字符!!!\错误提示\

txtpayment.Focus(); } }

private void btnEixt_Click(object sender, EventArgs e) {

this.Close(); } } }

第 41 页 共 41 页

本文来源:https://www.bwwdw.com/article/f356.html

Top