资源描述
学 号:
课 程 设 计
题 目
库存管理系统
教 学 院
计算机学院
专 业
班 级
姓 名
指导教师
2011
年
9
月
29
日
课程设计任务书
2011~2012 学年第1 学期
学生姓名: 专业班级:
指导教师:工作部门:
一、 课程设计题目 仓库管理系统
二、课程设计内容(含技术指标)
本系统采用CS模式,分为客户端与服务器端,系统要求实现的功能如下:
1.商品管理:对商品信息进行增、删、改、查,以及商品的下架与上架管理。
2。员工管理:对员工信息进行增、删、改、查,以及员工的在职与离职管理。
3。商品类别管理:对商品类别信息进行增、删、改、查。(包括商品类别的逻辑删除与恢复)
4。商品入库:把指定的商品存入指定的仓库中,入库表仅记录每次入库的商品信息(商品id,数量等)。
5.商品出库:把指定的商品从指定的仓库中销售出去,出库表仅记录每次出库的商品信息(商品id,数量等)。
6。物料调拨:把指定的商品从A仓库调到B仓库,此操作需操作员提出调拨申请,等待信息维护员审批,若该次调拨被批准,才能进行调拨。
7。库存盘点:操作员会定期对所有仓库里的商品进行一次盘点,此操作主要是检查每个仓库里所有商品的实际数量和数据库中存的数量是否一致,从而统计出各种商品的报溢、报损情况。
8。部门管理:此操作的主要功能就是员工的调配,把一个员工从A部门调到B部门。
9。权限管理:此操作的主要功能是对员工权限的管理,指定员工只能对指定的模块进行操作。
10。供应商信息管理:对供应商信息进行增、删、改、查,以及供应商的现供货状态的管理。
11.客户信息管理:对客户信息进行增、删、改、查,以及客户的现需求状态的管理。
12.库存查询:此操作是统计各个仓库中各种商品现在的存储状况.
三、进度安排
1.初步完成系统的总体设计,搭好框架。
2.完成最低要求:商品管理、商品入库、商品出库和库存查询等模块要实现.
3.进一步要求:将员工管理、商品类别管理、库存盘点等模块实现,有兴趣的同学可以进一步改进客户端的界面效果。
四、基本要求
1.界面友好,功能模块要划分好。
2.程序要加必要的注释。
3.要提供程序测试方案和数据。
目 录
引 言 1
一、系统分析 2
1.1选题背景 2
1.2需求分析 2
1.3可行性分析 4
1。4系统功能描述 5
1。5逻辑模型 6
二、 系统设计 9
2.1总体结构 9
2.2数据库设计 10
2.3详细设计 12
三、系统实现 16
3。1部门管理模块 16
3.2权限管理模块 18
3.3商品类别管理模块 20
四、总结 23
参考文献 24
课程设计(论文)
引 言
当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息处理系统的环境。计算机最大的好处在于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
仓库作为一总货品资源的集散地,货品的种类繁多,包含很多的信息数据的管理。据调查得知,以前仓库进行信息管理的方式主要是基于文本、表格等纸介质的手工处理,对于货品的出入库情况的统计和核实等往往采用对账本的人工检查,对管理者的管理权限等不受约束,任何人都可查看,这样容易引起资料外泄。另外,数据信息处理工作量大,容易出错,由于数据繁多,容易丢失,且不易查找.总的来说,缺乏系统、规范的信息管理手段。而且,一般的存储情况是记录在账本上的,仓库的工作人员和管理员也只是当时记得比较清楚,时间一长,如果再要进行查询,就得在众多的资料中翻阅查找了,这样造成费时、费力,如要对很长时间以前的货品进行更改就更加困难了。因此,很有必要建立一个库存管理系统,使货品管理工作规范化,系统化,程序化。提高信息处理的速度和准确性。本系统的开发主要包括前端应用程序以及后台数据库的建立和维护两个方面。经过分析,我选用微软公司的Visual C#。NET来开发系统,利用其提供的各种面向对象的开发工具,来操纵数据库。
库存管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起一个数据一致性和完整性强、数据安全性好的库;而对于后者则要求应用程序具有功能完备、易使用等特点。本系统利用Visual C#。NET提供的各种面向对象的开发工具,尤其是ADO,能方便而简洁地实现应用程序和数据库的互访,是一款能让用户满意的可行系统。
一、系统分析
1.1选题背景
库存管理系统是一个企事业单位不可缺少的一部分,它的内容对于企业的决策者和管理者来说都是至关重要的,因此,库存管理系统应该能够为用户提供充足的信息和快捷的查询手段,但一直以来人们使用传统的人工方式管理库存,这种管理方式存在着许多缺点,诸如效率低,保密性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学不断发展,其强大的功能已经被人们深刻认识,它已经进入了人类社会的各个领域并发挥着越来越重要的作用.
作为计算机应用的一部分,使用计算机对产品库存信息进行管理,具有着人工管理无法比拟的优点,它检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,可减少更多的人力物力,这些都能够极大地提高货品库存的管理效率,也是企业库存管理科学化、正规化,与世界接轨的重要条件.因此,开发一个库存管理系统是很有必要的,具有其特有的技术意义和管理意义。
1.2需求分析
在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作.需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要.只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法.系统需求分析就是在用户需求调研的基础上,确定系统的总体结构方案,完成相应的需求分析报告。在确定系统的总体结构方案过程中,包括确定应用程序的结构、系统开发环境和开发工具的选择.
市场经济的一个重要特征,就是生产的相对过剩和产品的相对过剩.它决定了这是一个买方市场。对企业来说,库存的增加或积压,无论是原材料、半成品或制成品,都意味着企业运作处于一种不良的状态,都是一种直接的或潜在的损失.大量的库存挤占了企业的有限资金,使得资金流速减缓,现金流发生困难,甚至导致资金紧张,影响企业的正常运作。 此外,大量的库存增加了保管与仓储的压力,占用了相当的人力和物力,使得企业负担加重. 凡此种种,一直困扰着企业的生产经营管理活动,影响企业经济效益的实现。显而易见,切实而有效地控制库存,是摆在众多企业面前的当务之急,也是纾解企业经济压力、减负增效的重要途径。
1) 应用程序结构
从用户应用角度来看,可把应用程序系统的组成部分分成数据存储层、业务处理层和界面表示层等3个层次,而应用程序结构可归纳为:集中式应用程序结构、单机板应用程序结构、多层服务器应用程序结构、浏览器/服务器应用程序结构、客户机/服务器应用程序结构等5种类型.
本库存管理系统就采用了单机版应用程序结构,将数据库和应用程序置于一台机器上,这样更加节约成本,适合中小规模的超市使用。用户可以轻松将其拷贝到其他计算机上,可以同时运行程序.
2) 系统开发环境
由于大多数公司内部使用的计算机平台都是基于Windows环境的。为了降低系统成本,应最大程度地利用现有的资源、兼容现有的环境,可确定使用下面的开发环境:
数据库:Microsoft SQL Server 2005;
前端开发工具:Visual C#。NET;
数据访问对象:ADO。
3) 开发工具选择
可视化(visual)程序设计是一种全新的程序设计方法,全面采用面向对象的程序设计技术,使用事件驱动机制进行程序设计。利用可视化开发工具可以快速、高效地开发应用程序。可视化的开发工具很多,如Microsoft公司推出的Visual Studio软件系列,Borland公司的Delphi、C++ Builder系列等。
Visual Studio 是微软公司推出的集成开发环境,是目前最流行的 Windows 平台应用程序开发环境.它是把代码的编写、程序的调试、编译、运行以及其他的相关操作都集成在一起的“编程工具”。 作用是程序员通过它这个平台,利用编程语言来写程序,调试,运行。
经分析,本库存管理系统选用Visual C#。NET来设计界面,选用SQL Server 2005来建立后台数据库。
17
1。3可行性分析
可行性研究主要内容是要求以全面、系统的分析为主要方法,经济效益为核心,围绕影响项目的各种因素,运用大量的数据资料论证拟建项目是否可行。对整个可行性研究提出综合分析评价,指出优缺点和建议.因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。
一般来说,可行性分析应从投资必要性分析、经济可行性、技术可行性、操作可行性等方面进行研究。本系统的可行性分析如下:
1) 投资必要性分析
主要根据市场调查及预测的结果,以及有关的产业政策等因素,论证项目投资建设的必要性。在投资必要性的论证上,一是要做好投资环境的分析,对构成投资环境的各种要素进行全面的分析论证,二是要做好市场研究,包括市场供求预测、竞争力分析、价格分析、市场细分、定位及营销策略论证。
2) 经济可行性
由于本库存管理系统所要求的硬件(计算机及相关硬件)和软件环境(Visual C#.NET+SQL Server 2005),市场上都容易购买到或从相关网站下载,系统成本主要集中在本管理系统的开发与维护上,对用户不造成过重的经济负担。而一旦此系统投入使用,不仅可以减少库存的工作强度,提高工作效率,而且方便了库存对信息的管理,延续了传统的管理模式,极大限度地方便了库存管理人员,而且,目标系统不是很复杂,开发的周期较短,人员经济支出不大,所节省的大量人力、财力产生的效益将远远大于本系统的开发成本,所以从经济方面讲开发此系统是可行的。
3) 技术可行性分析
主要从项目实施的技术角度,合理设计技术方案,并进行比选和评价。各行业不同项目技术可行性的研究内容及深度差别很大。对于工业项目,可行性研究的技术论证应达到能够比较明确地提出设备清单的深度;对于各种非工业项目,技术方案的论证也应达到目前工程方案初步设计的深度,以便与国际惯例接轨。本系统采用Visual C#.NET作为前台开发工具,采用SQL Server 2005工具建立数据库,并通过Visual C#。NET中的ADO控件使两者进行连接从而进行系统软件开发。Visual C#.NET不仅能帮助软件开发者提高软件开发的质量和效率,缩短开发周期,而且还具备强大的数据库管理功能,完全能够满足本系统的开发需求。
4) 操作可行性分析
传统的库存管理系统,一般有两种方式:一是手工管理,这种方式应用最传统的“笔纸操作系统”,将库存的货物信息、销售信息、厂商信息管理及单据管理等均以纯手工的形式进行,将信息以表格文件的表现形式记录在纸上,再进行统一保存。这种方式虽然在简单信息查询时会有一定的方便,但是存在着更多的不便:信息保存时间和条件很受限制、容易被损坏、信息查询不便、信息传达容易造成失误等.
另一种常见的信息管理方法是应用单机版的管理系统,本系统就是一款做的相对到位的单机版的库存管理系统,在库存信息处理方面做得很精准规范。
因为库存管理人员已经有丰富的信息管理经验,加之有相当的计算机应用经验,所以对于此系统一定很容易就可操作熟练.综上所述,本库存管理系统投资少、收益大,且其运行操作简单易学,具备了开发的可行性.
1。4系统功能描述
1) 开发方法的选择
信息系统的开发是一项比较复杂的工作,因此我们必须选用科学有效的开发方法。本系统的开发采用了生命周期法。在系统设计时遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,而在具体的设计上,则通过在系统的使用及对系统了解的不断加深中,对某一部分或几部分进行重新分析、设计、实施,使系统逐步完善。
2) 系统功能描述及系统安全性
本库存管理系统是一套对货品入库、出库、库存进行全面管理的系统.
在管理内容上,它的主要功能包括:
进货管理:进行填写货品信息,货品采购入库,入库单据的填写和修改最低库存量。
出货管理:进行货品出库,出货单据的填写和获取采购员信息。
信息查询:货品信息查询,库存信息查询,入库、出库单据查询,月报表查询。
统计报表:完整的日报表、月报表统计查询功能,每张单据每次业务金额都可以清楚地反映。
系统管理:身份验证,修改本人密码,注册用户,修改删除用户。
由于库存管理系统包含比较重要的信息,因此,在系统设计时除了注重用户的需求,还要保证系统的安全性和一致性,体现如下:
安全性:本系统中共分为三类不同的用户,分别具有不同的权限。
一致性:系统的数据要保证一致性、准确性,当某一数据库中记录发生改变时,与之相关联的数据库也随之变化。
1.5逻辑模型
本系统的逻辑模型以系统的数据流图为主要描述工具。
数据流图是组织中信息运动的抽象,是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发,将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目,它表达了数据和处理的关系。
为了叙述方便,我们用不同的符号代表这四个元素:
→表示数据流;
=表示文件(数据存储);
○表示加工;
□表示数据流的源点和终点。
通过分析调查有关库存管理需要,并针对一般库存管理系统的功能需求,设计出库存管理系统顶层数据流程图如图1-1所示:
业务输入
业务结果
查询结果
查询要求
注册用户
修改要求
修改结果
系统管理员
仓库管理员
返回结果
库存管理系统
经理
查询要求
查询结果
图1-1 库存管理系统顶层DFD
根据系统的顶层数据流图,进一步分析,画出系统的第二层数据流图如下所示:
操作员信息表
系统管理
仓库信息表
仓库信息表
仓库信息表
系统管理
信息查询
身份验证
数据维护
图1-2 系统管理员数据流
库存信息表
采购员信息表
货品信息表
仓库管理员
日报表
采购员信息表
货品信息表
库存管理系统
个人信息表
进货管理
进货管理 进货结果
用户编号 出货管理
出货管理
身份验证 出货结果
密码
报表统计
月报表统计
统计结果
图1-3 仓库管理员数据流
经理
身份验证
信息查询
经理
日报表
货品信息表
库存表
入库单
出库单
月报表
经理信息表
编号 信息查询 查询结果
密码
图1—4 经理数据流
二、 系统设计
2。1总体结构
1) 系统功能分析
系统开发的总体任务是实现企业物资设备管理的系统化、规范化和自动化,从而达到企业仓库库存管理效率的目的。系统功能分析是在系统开发总体任务的基础上完成的。本库存管理系统需要完成的功能有:
① 库存管理的各种信息的输入,包括入库、出库、货品信息的输入等.
② 库存管理的各种信息的查询、修改和维护。
③ 入库单、出库单的生成,日报表、月报表的生成。
④ 在货品库存中加入所允许的最低库存字段,对所有库存物资实现监控和报警。
2) 系统功能模块图
根据系统功能分析,画出系统功能模块图如下:
库存管理系统
身份验证
注册用户
修改删除用户
修改密码
信息查询
报表统计
进货管理
出货管理
系统管理
入库单填写
填写货品信息
修改最低库存
出库单填写
获取采购员信息
日报表
月报表
库存查询
货品查询
报表查询
图2-1 系统总体功能模块图
2.2数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。设计数据库时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求.
1) 数据库概念结构设计
本系统将货品分类,每类货品都有一名采购员负责采购,每名采购员只负责采购一类货品,每类货品都放在一个仓库中,一个仓库中可以放不同种类的货品,每个客户可以订购不同的货品,每种货品可以卖给不同的客户.
货品
采购
仓库
客户
存储
订购
采购员
n
1
m
n
n
1
货品编号
规格型号
单位
货品名称
客户编号
客户名称
仓库名称
负责人
联系电话
采购员编号
采购的货品类别
图2-2 库存管理系统E-R图
2) 逻辑结构设计
根据系统功能需求与数据流程图,本数据库管理系统需要11个数据表,分别是操作员个人信息表、登录表、仓库信息表、货品信息表、库存信息表、入库单、出库单、采购员表、客户信息表、日报表、月报表.11个表的数据库逻辑结构如下:
操作员个人信息表(UID, Uname, Sex, Tel);
登录表(UID ,PWD, Limit);
仓库信息表(仓库名称,负责人,联系电话,联系地址,);
货品信息表(货品编号,货品名称,货品类别,单位,规格型号,颜色);
库存信息表(库别,货品编号,最低库存,数量,进货单价,出货单价);
入库单(凭证编号,库别,货品编号,数量,进货单价,合计,入库时间,制单人,采购人编号);
出库单(凭证编号,库别,货品编号,数量,出货单价,合计,出库时间,制单人,客户编号);
采购员表(UID, Uname, 采购的货品类别,Tel);
客户信息表(客户编号,客户名称,联系人,联系电话,联系地址,本日出酷暑两);
3) 设置引用完整性
为了防止用户不小心删除有用的数据,或者输入错误的数据,2完整性 (Referential Integrity)。
例如本系统用到的数据库中,入库单中输入的货品编号必须现存在于货品信息表中。通过设置引用完整性对数据库进行约束,能够帮助程序员和用户确保使用的数据是合法的.
4) 数据库链接的实现
为了充分展现对象编程的思想,系统中利用ADO。NET中的组件SqlConnection实现数据库和前台应用程序之间的连接,利用connection对象和command对象实现随时访问数据库的功能。
ADO控件较灵活,它使用SQL表达式,通过SQL属性来和数据库文件相连并显示要显示的字段,可以方便地对一个或多个数据表中的记录进行访问.
2.3详细设计
本库存管理系统是本着用户操作界面友好、清晰、易学易用的原则进行设计的。
1) 身份验证模块的设计
在进入系统主界面之前,会出现一个身份验证对话框,要验证用户的身份。本系统中用户分为管理员、仓库管理员和经理三种。不同用户其权限也不同。
库存管理系统
用户编号:
密码:
退出
登陆
图2—3 用户登录模块界面设计
该模块的流程图如图2-4所示:
是
否
用 户
登 录
是否为合法用户?
否
选择身份
判断用户类型
进入系统
开 始
结 束
图2—4 用户登录模块流程图
2) 系统主界面的实现
系统主界面分为三个,根据用户的权限不同进入不同的主界面,分别是系统管理员界面、信息维护员界面、操作员界面。各自主界面自然有不同的功能。
进货管理模块包括填写货品信息、入库单、修改最低库存三个子模块。
填写货品信息
货品编号
货品名称
单位
货品类别
规格型号
颜色
确定
取消
图2—5 填写货品信息设计
入库单
凭证编号
货品编号
数量
库别
进货单价
入库时间
确定
取消
采购人编号
制单人
图2-6 入库单设计
出库单
凭证编号
货品编号
数量
库别
出货单价
出库时间
确定
取消
客户编号
制单人
图2—7 出库单设计
3) 信息查询模块的实现
该模块三种用户都会用到,用户根据不同的权限分别可以查询不同的内容,如系统管理员为了修改仓库信息表、采购员信息表、客户信息表而查询相关信息,仓库管理员为了通知采购员及时采购而查询采购员信息,经理查询仓库管理的各种信息等。
三、系统实现
系统实现包括用户需求实现,系统界面实现和数据库实现三方面.
我负责的部分模块有部门管理、权限管理和商品类别管理这三个模块,具体实现及相关界面设计如下:
3.1部门管理模块
//调度人员到目标部门
private void bt_MoveToRightDep_Click(object sender, EventArgs e)
{
//获取要调动的人员
List〈Consumer〉 reDepConsList = new List〈Consumer>();
for (int i = listBox_resource_cons。SelectedItems.Count - 1; i >= 0; i--)
{
string workNum = listBox_resource_cons。SelectedItems[i].ToString()。Split(' ’)[1];
Consumer cons = bll。GetConsDepByWN(workNum);
reDepConsList。Add(cons);
}
//获取要移到的部门
int targetDepId = 0;
foreach (Department dep in depList)
{
if (dep。Name == cb_target_dep。SelectedItem。ToString())
{
targetDepId = dep.Id;
}
}
bool b = bll.ReDepCons(reDepConsList,targetDepId);
if (b)
{
MessageBox.Show(”调度人员成功”);
depList = bll.GetAllDep();
AllBindDeps();
treeView1.ExpandAll();
}
else
{
MessageBox.Show(”调度人员出错");
depList = bll。GetAllDep();
AllBindDeps();
treeView1.ExpandAll();
}
}
//选项改变时,控制改变权限的按钮能否使用
private void cb_A_SelectedIndexChanged(object sender, EventArgs e)
{
bool b = false;
foreach (string s in limA)
{
if (cb_A.SelectedIndex == -1)
{
}
else if (s == cb_A。SelectedItem。ToString())
{
b = true;
}
}
if (b)
{
bt_A_upLimit。Enabled = false;
bt_A_downLimit.Enabled = true;
}
else
{
bt_A_upLimit.Enabled = true;
bt_A_downLimit.Enabled = false;
}
}
private void cb_B_SelectedIndexChanged(object sender, EventArgs e)
{
bool b = false;
foreach (string s in limB)
{
if (cb_B。SelectedIndex == -1)
{
}
else if (s == cb_B。SelectedItem。ToString())
{
b = true;
}
}
if (b)
{
bt_B_upLimit。Enabled = false;
bt_B_downLimit.Enabled = true;
}
else
{
bt_B_upLimit.Enabled = true;
bt_B_downLimit。Enabled = false;
}
}
图3-1 部门管理界面
3。2权限管理模块
//权限升级操作
private void bt_A_upLimit_Click(object sender, EventArgs e)
{
//获取当前选中项的索引号
int a = cb_A.SelectedIndex;
//增加到泛型和lable中
string s = cb_A。SelectedItem。ToString();
limA。Add(s);
lb_A_exName。Text += ”," + s;
//重置选中项
cb_A。SelectedIndex = -1;
cb_A.SelectedIndex = a;
}
private void bt_B_upLimit_Click(object sender, EventArgs e)
{
int a = cb_B。SelectedIndex;
string s = cb_B。SelectedItem。ToString();
limB.Add(s);
lb_B_exName。Text += ",” + s;
cb_B.SelectedIndex = —1;
cb_B。SelectedIndex = a;
}
private void bt_C_upLimit_Click(object sender, EventArgs e)
{
int a = cb_C。SelectedIndex;
string s = cb_C。SelectedItem。ToString();
limC.Add(s);
lb_C_exName.Text += ”," + s;
cb_C.SelectedIndex = —1;
cb_C。SelectedIndex = a;
}
//权限降级操作
private void bt_A_downLimit_Click(object sender, EventArgs e)
{
if (limA.Count < 2)
{
MessageBox.Show("不能降级,必须保证这个权限下至少有一个可以执行的操作");
}
else
{
//获取当前选中项的索引号
int a = cb_A。SelectedIndex;
//删除泛型中的字符串
string s = cb_A.SelectedItem。ToString();
for (int i = 0; i 〈 limA.Count; i++)
{
if (limA[i] == s)
{
limA.Remove(limA[i]);
}
}
//重置label
lb_A_exName。Text = ”";
foreach (string item in limA)
{
lb_A_exName。Text += ”,” + item;
}
lb_A_exName。Text = lb_A_exName.Text。Remove(0, 1);
//重置选中项(为了使button的可用性刷新)
cb_A.SelectedIndex = —1;
cb_A。SelectedIndex = a;
}
}
权限管理界面
图3—2 权限管理界面
3。3商品类别管理模块
//商品类别(ON)
string id;
private void 修改ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (listView1。SelectedItems.Count>0)
{
id = listView1。SelectedItems[0]。SubItems[0]。Text;
//商品类别编号不允许修改
tb_ClaNum。ReadOnly = true;
tb_ClaNum。Text = listView1。SelectedItems[0]。SubItems[2].Text;//编号
tb_ClaName.Text = listView1.SelectedItems[0]。SubItems[1]。Text;//名称
cb_ClaStatus.Text = listView1.SelectedItems[0].SubItems[3].Text;//状态
}
else
{
MessageBox.Show("没有选中任何行");
}
}
//从弃用状态改回在用状态
private void 在用ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (listView2。SelectedItems。Count〉0)
{
//获取选中行的id泛型
List〈string〉 list = new List〈string〉();
foreach (ListViewItem item in listView2.SelectedItems)
展开阅读全文