1、引言第 1 页 共 41 页服装进销存管理系统1. 引言1.1 选题背景电子商务发展和市场竞争的加剧将企业推上了风口浪尖,中小企业除了积极迎接挑战别无选择。从某种意义上讲,这些变化为中小企业创造了同大企业,同国外企业平等竞争的机会和有利条件。然而,管理水平的差异会弱化这种平等的实际意义。具体而言,中小企业在进销存等环节的管理上都存在着一定程度的不足,而这些不足无疑将使其在市场竞争中陷入举步维艰的艰难境地。显然进行有效的进销存管理已经成为中小企业存身立业的头等大事。而且自从商品市场开放以来,服装销售商家每日的货物进销存就成为了繁重的工作。目前在一些个体户使用的是独立的表格来记录商品的进销存,到清
2、算的时候往往要借助计算器等软件进行人工操作,使得账目在大量变动的情况下容易出错,从而增加成本的消耗;而在已经拥有了服装进销存管理系统的商家,投入使用的大部分商家进销存设计方案中实体模型中的各实体比较分散和孤立,没有一条主线将其串联起来,同时系统分析和设计中对服装进销存的业务分析不够透彻 1。为了使此系统普及应用的推广,必须能够很好的处理各种商家不同的收费需求,对新业务能够方便的进行扩充。1.2 应解决的主要问题及应达到的技术要求 服装进销存管理系统主要是本着方便用户,简化每日的服装进销存的记录,以及及时的数据统计,严格进销存的各个环节,提供高效、安全、智能化的数据管理,从而提高供销部门的整体管
3、理水平 2。(1) 通过对服装进销存业务全面和透彻地分析,构建服装进销存管理系统平台的核心业务实体模型, 开发出具有良好的先进性、适应性、安全可靠性、易重用性、可移植性好的软件系统。(2) 根据服装进销存的相关信息的数据特点,设计出能处理批量事务、大量数服装进销存管理系统第 2 页 共 41 页据和良好的并发性、高性能的服务端。(3) 设计出布局美观合理、易操作、易使用、响应速度快,良好的交互功能的客户端软件。1.3 该系统在国内外的研究历史、现状“科学技术是第一生产力“,为了有效的提高生产效率,许多商家开始引进科学化管理,于是服装鞋帽行业出现了进销存管理系统。目前,在服装行业人们一直使用传统
4、的人工方式管理企业,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着企业的经营规模不断扩大,进销存的数量急剧增加,有关服装进销存的各种信息也成倍增长。这就要求有一个好的信息支持平台。面对庞大的信息量,有必要开发进销存信息管理系统来提高销售管理工作的效率。今天我们使用计算机对服装进销存信息进行管理,具有手工管理所无法比拟的优点。通过这样的系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量,有效地提高进销存的工作效率。因为服务行业的现状以及行业特点和需求要求我们必须要科学管理。有些细心的
5、服装企业管理人员会发现这么一个困惑的问题,在服装行业中有一小部分的企业绩效表现非常突出但是使用 IT 技术却是非常的少,与此相对应的是绝大部分的企业绩效不怎么样,但是 IT 投入却不少。为什么会产生这样的现象呢?答案就在于那一小部分企业从他们的投入中得到的价值远大于成本 3。理论基础第 3 页 共 41 页2 理论基础2.1 Microsoft Visual Studio 简介Visual Studio 是微软公司推出的开发环境。是目前最流行的 Windows 平台应用程序开发环境。目前已经开发到 9.0 版本,也就是 Visual Studio 2008。Visual Studio 可以用来
6、创建 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 使用单独的开发环境,其他的开发
7、语言使用统一的开发环境。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 的发
8、布,微软发布了 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) ,其目的
9、是在同一个项目中支持不同的语言所开发的组件。所有 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 的名义发布(内部
10、版本号为 7.1) 。Visio 作为使用统服装进销存管理系统第 4 页 共 41 页一建模语言(UML)架构应用程序框架的程序被引入,同时被引入的还包括移动设备支持和企业模版。.NET 框架也升级到了 1.1。2005 年,微软发布了 Visual Studio 2005。.NET 字眼从各种语言的名字中被抹去,但是这个版本的 Visual Studio 仍然还是面向 .NET 框架的(版本 2.0) 。这个版本的 Visual Studio 包含有众多版本,分别面向不同的开发角色。同时还永久提供免费的 Visual Studio Express 版本。42.2 SQL Server 200
11、0 简介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 以
12、后简称为 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 是微软出
13、的 SQL 系列最新版本。 52.3 进销存现状在市场经济中,销售是企业运作的重要环节,为了更好的推动销售,不少企业建立了分公司或实行代理机制,通过分公司或代理商把产品推向最终用户。这些分公司或代理商大部分分布在全国各地,甚至海外,远距离频繁的业务信息交流构成了这些企业业务活动的主要特点。在传统方式上,公司之间通常采用电传,电报,电话,E-mail 等方式传递订货,发货,到货,压货,换货,退货等信息,总公司的商务部门在接到分公司或代理商上传来的订单和银行汇款单据传真后,开具产品出库,然后在把相关的进,销,存信息手工存档,在对这些信息进行统计分析,才能理论基础第 5 页 共 41 页了解到整个公
14、司的生产,销售和库存的情况。这种信息传递,管理方式不仅效率低,其可靠性,安全性和保密性都无法满足要求,而且数据统计时间严重滞后,往往是当领导了解到企业的“进,销,存”出现问题时,就已经远离了问题出现的时间和地点。即便是使用传统手工方式管理也存在同样的问题。通过进销存管理系统,可以及时发现问题,结局问题,更好的把握机会。服装进销存管理系统第 6 页 共 41 页3 需求分析3.1 各功能模块需求分析系统分为 4 个主要的功能模块:基本管理模块、进货管理模块、销售管理模块、库存管理模块。基本管理模块需求分析如下:企业经营的基础资料是一个服装企业最基本也是最重要的的信息,脱离了基础资料,例如,服装商
15、品资料、供货商资料、客户资料等,服装进销存系统就无法进行, “基本管理”功能模块就用于维护这些资料。 “服装信息”用于维护(增加、修改、删除、查询)企业所经营的服装的基本信息,内容包括:商品编号、商品名称、 商品单位、数量、单价、库存量。其中商品名称是服装名称的简称,目的是在程序中可以通过简称查询到所需要的服装。“进货单信息”用于维护企业供货商的基本信息,内容包括供货商号、简称、地址、类型、电话、开户行帐号、税号、单位等。“销售信息”用于维护企业客户的基本信息,内容包括客户名称、简称、联系人、地址、电话、开户行帐号、税号、单位等。“管理员信息”用户管理企业各部门的管理员的权限更改。进货管理模块
16、主要实现的功能是进货单的操作,进货单用于录入企业的进货订单,主表“进货单”内容包括商品编号、商品名称、类型、型号、库存总量等,销售管理模块主要实现的功能是销售单的操作。销售单用于录入企业的销售订单,主表“销售单”内容包括商品编号、商品名称、类型、型号、库存总量、单价等。库存管理模块主要实现的功能是库存的查询,包含库存信息这个表单,其属性有:商品号、商品名、 、类型、型号。3.2 进销存管理系统关系图8需求分析第 7 页 共 41 页关系模型如下:供货商信息(商品编号、商品名称、地址、类型、型号、开户行帐号、税号、联系人及电话。)客户信息(商品编号、商品名称、类型、型号、联系人、地址、电话、开户
17、行帐号、税号等。)商品清单(商品编号、商品名称、类型、型号、进货价、产地。)进货单(商品编号、商品名称、型号、规格、库存数量、盘点数量。)销售单(商品编号、商品名称、型号、规格、客户编号、客户名称、税号、单位电话、联系人、单位地址)库存(商品编号、商品名称、库存数量、盘点数量)服装进销存管理系统第 8 页 共 41 页4 系统结构4.1 系统流程图该服装进销存管理系统的系统流程为:管理员登录,如果输入正确的帐号和密码就能登录此系统,否则就会退出系统。登陆成功后就可以根据不同的权限来操作相应的功能模块,具体的流程如图 1 所示:登录用户为管理员是否 系统退出基本管理进货管理销售管理库存管理管理员
18、登录图 1 系统流程图4.2 功能模块图基本管理的功能模块有四个子功能模块,分别是:服装信息管理、供货商信息管理、客户信息管理以及管理员信息管理。不同的子功能必须使用相应的权限才能操作。如图 2 所示:系统结构第 9 页 共 41 页图 2 基本管理模块图进货管理的功能模块有 2 个子功能模块:进货信息管理、进货单打印。其中进货单打印嵌入到进货单信息里面,在实行查询、删除、增加、修改的同时还能实现打印的功能,如图 3 所示:图 3 进货管理模块图销售管理的功能模块有 2 个子功能模块:销售信息管理、销售单打印。其中销售单打印嵌入到销售单信息里面,在实行查询、删除、增加、修改的同时还能实现打印的
19、功能,如图 4 所示:基本管理服装信息供货商信息客户信息管理员信息进货管理进货信息进货单打印服装进销存管理系统第 10 页 共 41 页图 4 销售管理模块图库存管理的功能模实现的是及时查询库存信息的情况。在实际的实现过程中,为了要加快查询的速度和精度,我们设计了 3 种查询的方法。库存管理功能模块图如图 5 所示:图 5 库存管理功能模块图4.3 系统数据表及其用途1.供货商清单:用于保存企业供货商的基本信息,供货单位编号为主键。其字段如表 1 所示。库存管理库存信息查询销售管理销售信息销售单打印系统结构第 11 页 共 41 页表 1 供货商清单列名 数据类型 长度 允许空否 是否主键供货
20、单位编号 Varchar 5 否 是供货单位名称 Varchar 30 是 否税号 Varchar 30 是 否单位电话 Varchar 20 是 否联系人 Varchar 10 是 否单位地址 Char 60 是 否开户行及账号 Varchar 80 是 否2.客户信息:用于保存企业客户的基本信息,客户编号为主键。其字段如表 2所示。表 2 客户信息列名 数据类型 长度 允许空否 是否主键客户编号 Char 10 否 是客户名称 Varchar 30 是 否联系人 Varchar 30 是 否客户地址 Varchar 60 是 否客户电话 Varchar 20 是 否开户行及账号 Varch
21、ar 80 是 否税号 Varchar 30 是 否3商品清单:用于保存企业所经营的服装的基本信息,商品编号为主键。其字段如表 3 所示服装进销存管理系统第 12 页 共 41 页表 3 商品清单列名 数据类型 长度 允许空否 是否主键商品编号 Varchar 5 否 是商品名称 Varchar 20 是 否型号 Varchar 10 否 否规格 Varchar 10 是 否单位 Varchar 10 是 否产地 Varchar 20 是 否库存数量 Float 8 是 否4. 进货单:进货单用于录入企业的进货订单,商品编号为主键。其字段如表 4所示。表 4 进货单列名 数据类型 长度 允许空
22、否 是否主键商品编号 Varchar 5 否 是商品名称 Varchar 20 是 否型号 Varchar 10 否 否规格 Varchar 10 是 否单位 Varchar 10 是 否产地 Varchar 20 是 否库存数量 Float 8 是 否进货数量 Float 8 是 否进货金额 Float 8 是 否系统结构第 13 页 共 41 页5.销售单:进货单用于录入企业的进货订单,商品编号为主键。其字段如表 5:表 5 销售单列名 数据类型 长度 允许空否 是否主键商品编号 Varchar 5 否 是商品名称 Varchar 20 是 否型号 Varchar 10 否 否规格 Var
23、char 10 是 否单位 Varchar 10 是 否产地 Varchar 20 是 否库存数量 Float 8 是 否销售数量 Float 8 是 否销售金额 Float 8 是 否6.库存:库存表用来保存商品在仓库中的信息。其字段如表 8 所示。表 6 库存列名 数据类型 长度 允许空否 是否主键商品编号 Varchar 5 否 是商品名称 Varchar 20 是 否库存数量 Float 8 是 否成本均价 Decimal 13 是 否库存总价 Decimal 13 是 否服装进销存管理系统第 14 页 共 41 页5 系统实现5.1 基本管理模块的实现基本管理模块有四个功能:商品信息
24、维护、供货商信息维护、客户信息维护、管理员信息维护。这个四个子功能是互相独立的,在后面的功能中需要分别调用。对于基本的信息维护,一般要做到查询、添加、修改和删除四个功能。5.2 管理模块的实现 5.2.1 系统登陆界面图如图 6 所示图 6 系统登录界面图用户输入个人的姓名和密码来进入系统进行相关的操作,用户身份不对者将不能进入系统进行操作,用户名或密码错误则自动清空文本框,要求重新输入,用户登陆之前所有功能都被屏蔽,只能退出系统,登陆成功以后才可以进行系统共操作。实现代码如下:namespace EMSpublic partial class frmLogin : FormBaseClass
25、.BaseInfo baseinfo = new EMS.BaseClass.BaseInfo();BaseClass.cPopedom popedom = new EMS.BaseClass.cPopedom();public frmLogin()系统实现第 15 页 共 41 页InitializeComponent();private void btnLogin_Click(object sender, EventArgs e)if (txtUserName.Text = string.Empty)MessageBox.Show(“用户名称不能为空!“, “错误提示“, MessageB
26、oxButtons.OK, MessageBoxIcon.Error);return;DataSet ds = null;popedom.SysUser = txtUserName.Text;popedom.Password = txtUserPwd.Text;ds=baseinfo.Login(popedom);if (ds.Tables0.Rows.Count 0)frmMain frm_main = new frmMain();frm_main.Show();if (Convert.ToBoolean(ds.Tables0.Rows0“stock“) frm_main.tlmBuy.En
27、abled = true;if (Convert.ToBoolean(ds.Tables0.Rows0“vendition“) frm_main.tlmSale.Enabled = true;if (Convert.ToBoolean(ds.Tables0.Rows0“storage“) frm_main.tlmStock.Enabled = true;if (Convert.ToBoolean(ds.Tables0.Rows0“system“) frm_main.tlmSystem.Enabled = true;if (Convert.ToBoolean(ds.Tables0.Rows0“b
28、ase“) frm_main.tlmBase.Enabled = true;this.Visible = false;elseMessageBox.Show(“用户名称或密码不正确!“,“错误提示“,MessageBoxButtons.OK,MessageBoxIcon.Error);private void txtUserName_KeyUp(object sender, KeyEventArgs e)if (e.KeyValue = 13) txtUserPwd.Focus();private void txtUserPwd_KeyUp(object sender, KeyEventArg
29、s e)if (e.KeyValue = 13) btnLogin.Focus();服装进销存管理系统第 16 页 共 41 页private void btnExit_Click(object sender, EventArgs e)this.Close();private void frmLogin_Load(object sender, EventArgs e)5.2.2 主框体界面主框体实现的是商品信息在库存中的主要功能,包括进货单、销售单、往来单位、员工信息、管理员信息以及基本在各个模块上实现的增、删、改功能。在设计查询方法的时候参照了前面的商品编号查询,以便加快查询的精度。其中商品
30、编号查询采用的是模糊查询。其中主框体界面如图 7:系统实现第 17 页 共 41 页图 7 主框体界面图用户登陆成功后,进入主界面,可以使用系统的多种功能,如查询进货单,销售单,往来客户,员工信息及管理员信息等。实现代码如下:namespace EMSpublic partial class frmMain : Formpublic frmMain()InitializeComponent();private void fileUnits_Click(object sender, EventArgs e)BaseInfo.frmUnits frm_units = new EMS.BaseInf
31、o.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.frmBuy
32、Stock().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();服装进销存管理系统第 18 页 共 41 页private void fileSellStock_Click(object sender, EventArgs
33、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 s
34、ender, 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
35、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();pr
36、ivate void fileLowerLimit_Click(object sender, EventArgs e)系统实现第 19 页 共 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.frmU
37、nits().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.frm
38、Bakup().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().Sh
39、ow();private void fileEnd_Click(object sender, EventArgs e)Application.Exit();服装进销存管理系统第 20 页 共 41 页private void frmMain_FormClosed(object sender, FormClosedEventArgs e)Application.Exit();private void 登录ToolStripMenuItem_Click(object sender, EventArgs e)System.Diagnostics.Process.Start(“iexplore.exe
40、“);private void 启动WordToolStripMenuItem_Click(object sender, EventArgs e)System.Diagnostics.Process.Start(“WINWORD.EXE“);private void 启动ExcelToolStripMenuItem_Click(object sender, EventArgs e)System.Diagnostics.Process.Start(“excel.exe“);private void 系统计算器ToolStripMenuItem_Click(object sender, Event
41、Args e)System.Diagnostics.Process.Start(“calc.exe“);private void frmMain_Load(object sender, EventArgs e)5.2.3 进货销售单窗体界面如图 8:系统实现第 21 页 共 41 页图 8 进货管理界面用户可以根据需要查询相关信息,实现代码如下:namespace EMS.SaleStockpublic partial class frmSellStock : FormBaseClass.BaseInfo baseinfo = new EMS.BaseClass.BaseInfo();Base
42、Class.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
43、)txtBillDate.Text = DateTime.Now.ToString(“yyyy-MM-dd“);DataSet ds = null;string P_Str_newBillCode = “;服装进销存管理系统第 22 页 共 41 页int P_Int_newBillCode = 0;ds = baseinfo.GetAllBill(“tb_sell_main“);if (ds.Tables0.Rows.Count = 0)txtBillCode.Text = DateTime.Now.ToString(“yyyyMMdd“) + “XS“ + “1000001“;elseP_
44、Str_newBillCode = Convert.ToString(ds.Tables0.Rowsds.Tables0.Rows.Count - 1“billcode“);P_Int_newBillCode = Convert.ToInt32(P_Str_newBillCode.Substring(10, 7) + 1;P_Str_newBillCode = DateTime.Now.ToString(“yyyyMMdd“) + “XS“ + P_Int_newBillCode.ToString();txtBillCode.Text = P_Str_newBillCode;txtHandle
45、.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 = “SellStock“; /用于识别 是那一个窗体调用的selectha
46、ndle窗口的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 = “SellStock“; /用于识别
47、是那一个窗体调用的selectUnits窗口的selectUnits.ShowDialog();private void dgvStockList_CellDoubleClick(object sender, DataGridViewCellEventArgs e)系统实现第 23 页 共 41 页SelectDataDialog.frmSelectStock selectStock = new EMS.SelectDataDialog.frmSelectStock();selectStock.sellStock = this; /将新创建的窗体对象设置为同一个窗体类的实例(对象)select
48、Stock.M_int_CurrentRow = e.RowIndex;selectStock.M_str_object = “SellStock“; /用于识别 是那一个窗体调用的selectStock窗口的selectStock.ShowDialog();private void dgvStockList_CellStateChanged(object sender, DataGridViewCellStateChangedEventArgs e)/统计商品进货数量和金额tryfloat tqty = 0;float tsum = 0;for (int i = 0; i = dgvStoc
49、kList.RowCount; i+)tsum = tsum + Convert.ToSingle(dgvStockList5, i.Value.ToString();tqty = tqty + Convert.ToSingle(dgvStockList3, i.Value.ToString();txtFullPayment.Text = tsum.ToString();txtStockQty.Text = tqty.ToString();catch private void dgvStockList_CellValueChanged(object sender, DataGridViewCellEventArgs e)if (e.ColumnIndex = 3) /计算统计商品金额tryfloat tsum = Convert.ToSingl