【SQL开源代码栏目提醒】:网学会员为广大网友收集整理了,C# ASP仓库管理信息系统(带源码)论文 - 研究报告,希望对大家有所帮助!
第一章 公司介绍与系统的需求分析1.1 公司简介 佳雪公司是一个专销电动机的公司,主要业务是进行电动机的进货与分销,作为一个销售的中介公司,其要求有入库与出库的主要数据库,可以简单的记录数据,并且可以进行多方面的查询,使得公司有较详细的数据统计与分析。
其主要业务如以下图所示: 1. 厂商 仓库 顾客 图 1.1.1 2.查询功能 1)按型号查询 有两个结果:A 生成 入库量、出库量、节余量 B 生成 两个数据来源表,包括出库来源与入库来源; 2)按单位查询 结果:生成 型号、产品名称、时间(入/出库)、单价 再生成出入库的两个基本情况表,包括供应商和顾客的基本情况,如型号、出/入库时间,单价,发票编号、结帐情况; 3.本系统主要运用 Visual Basic 的内嵌数据库 Access 来记录数据; 4.产品信息: 、型号(文本) 序号(自动生成) 、出库时间(日 、入库时间(日期)期) 、发票编号(文本) 、数量(数字) 、厂商名称(文本) 、单价(货币) 、供应商 、厂商与供应商的电话(数字)名称(文本) 、结帐情况(是/否)是为 0,否为-11. 2 分析与描述 一.根据 1.1 章节的具体要求,总结出以下的数据流程: 输入数据 图 1.2.1 数据流程 入库 出库 查询 增 修 删 增 修 删 单 型 加 改 除 加 改 除 位 号 供 顾 入 出 应 客 库 库 商二.根据以上情况,按要求设计了几个相关的数据库 表:出库、入库 查询:查询结余、出库查询、入库查询、型号出库查询、型号入库查询 主要的出库表属性如以下表所示: 字段名 属性 字段大小 序号 自动生成 长整型 型号 文本 50 产品名称 文本 50 出库数量 数字 长整型 单价 货币 自动小数 出库时间 日期 年-月-日 发票编号 文本 50 顾客电话 文本 50 结帐情况 是/否 2 表 1.2.1 由于入库表与出库想类似,所以在此不做详细介绍。
为了方便查询,因此在出库与入库的基础上增加了几个查询表,具体字段如下: 1.查询结余:型号、产品名称、出库数量、入库数量 2.出库查询:顾客名称、型号、出库时间、单价、出库数量 OF SUM、发票编 号、结帐情况 3.入库查询:供应商名称、型号、入库时间、单价、入库数量 OF SUM、发票 编号、结帐情况 4.出库型号查询:型号、产品名称、顾客名称、单价、发票编号、结帐情况 5.入库型号查询:型号、产品名称、供应商名称、单价、发票编号、结帐情况1.3 数据库的主要特点 数据库中的每一个表都必须符合下面几个特征:表中的每一个单元的内容只有一个值所有字段的名称都不相同记录的前后次序和字段的左右次序可以变化,不受限制数据库中的表的上下次序不受限制表中不应有内容完全相同的记录表中的每一个字段都必须有相同的数据类型使用 Visual Basic 开发应用程序的两个主要思想:可视设计事件驱动编程 Visual Basic 应用程序不同于其他语言开发的单一性程序。
使用 Visual Basic编程时,必须首先确定应用程序如何与用户交互,如鼠标单击,用户必须编写
代码控制这些事件的响应方法。
使用 Visual Basic 开发数据库应用程序的一般步骤如下所示:(1)建立数据库(2)建立用户界面(3)编写
代码(4)调试运行(5)编译应用程序(6)发布应用程序界面设计(1)控件的位置(2)界面元素的一致性(3)保持界面的简明(4)使用颜色和图象:增加视觉的感染力(5)图象和图标:增加应用程序的视觉上的趣味(6)选取字体Visual Basic 应用程序的结构: 由于 Visual Basic 应用程序是基于对象的,所以应用程序的
代码结构就是该程序在屏幕上物理表示的模型。
根据定义,对象包含数据和
代码。
在屏幕上看到的窗体代表属性,这些属性定义了窗体的外观和内在特性。
本设计主要是运用 Data 控件。
Data 控件主要是打开、访问并操作已有的数据库,它是 Visual Basic 访问数据库的最常用的工具之一。
由于 Data 控件使用 Microsoft 的 Jet 引擎来实现数据访问 ,使用户可以无缝地访问很多标准(与 Microsoft Access 所用的数据库引擎相同)的数据库格式,而且无需编写任何
代码就可以创建数据应用程序,因此这种 VisualBasic 内部的 Data 控件最合适小的(桌面)数据库,诸如 Access 和 ISAM 数据库等。
由于 Data 控件是 Visual Basic 的内部控件,因此可以直接在标准工具箱中找到该控件。
在程序运行过程中,只要用鼠标单击控件上的箭头按钮,系统将自动修改 Data控件指向的记录和显示在约束控件中的数据,而不需要编写任何
代码。
可以将多个 Data 控件同时添加到一个工程甚至是同一个窗体中。
另外,每个控件可以连接到不同的数据库或同一个数据库的不同表上,还可以和
代码一起查询满足的语句的表的记录集。
使用 Data 控件可以显示、编辑和更新来字各种已有的数据库信息。
此外,还可以访问和操作远程的开放式数据库连接。
除了使用 Data 控件之外,还运用的 Visual Basic 6.0 的新增控件功能,Dblistbox它不象标准的列表框或组合框那样需要使用 AddItem 方法添加列表项。
另外,它们还可以有选择地把某个选定的字段传递给另一个 Data 控件,使得它对于“查找表”应用程序很理想。
与其他的约束控件不同,这些控件可以同时显示多个记录。
约束数据列表控件类似于普通的列表框控件,可以显示记录集中的数据,网格中的每一行代表记录集中的一个记录。
第二章 管理系统的设计与分析2.1 进入界面 由于系统的的界面比较单一,因此在设计过程中运用了许多网上下载的图片来 增添界面的可观性。
在考虑到操作员的技术水平有限,因此在控件方面只运用了 COMMAND,这 样不仅能是界面清楚,更能是操作者很快学会,简单易懂。
图 2.1.1 是进入本系统的状态图,单击“确定”可以进入界面,如按“系统信 息”的话,将显示本系统的具体软硬件情况。
图 2.1.1 当图 2.1.1 中的“确定”按钮被激活时,将进入图 2.1.3 的屏幕,界面的图片是图片引入的,接着将进入正式的编辑或查询状态。
具体的系统情况如图 2.1.2 所示:图 2.1.2图 2.1.32. 2 入库界面 当激活入库按钮时将出现以下的界面(图 2.2.1) 图 2.2.1 入库窗体(图 2.2.1)及其各个控件的主要属性 控 件 控件名 主要属性类型Form Frmrsg1 Caption“入库情况”Data Data1 Databasename“Adb2.mdb” Recordsettype1’Dynaset Caption“入库情况”CommandDialog Command1 Caption“上一个” Command2 Caption“下一个” Command3 Caption“确定” Command4 Caption“取消” Command5 Caption“退出” Command6 Caption“增加” Command7 Caption“修改” Command8 Caption“删除” Lable1 Caption“序号”Lable Lable2 Caption“型号” Lable3 Caption“产品名称” Lable4 Caption“数量” Lable5 Caption“单价” Lable6 Caption“入库时间” Lable7 Caption“发票名称” Lable8 Caption“供应商名称” Lable9 Caption“电话” Lable10 Caption“结帐情况” Text Text1 Caption“序号”Datasource“data1” Text2 Caption“型号”Datasource“data1” Text3 Caption“产品名称”Datasource“data1” Text4 Caption“数量”Datasource“data1” Text5 Caption“单价”Datasource“data1” Text6 Caption“入库时间”Datasource“data1” Text7 Caption“发票名称”Datasource“data1” Text8 “ Caption 供应商名称” “ Datasource data1” Text9 Caption“电话”Datasource“data1” Text10 Caption“结帐情况”Datasource“data1” 表 2.2.1 控件说明 增加新记录当单击“确定”按钮后,“确定”和“取消”两个按钮显示,同时使其他的按钮不可见,这样做是为了防止用户的误操作。
其主要程序如下:Private Sub Command5_Clickxg True显示“确定”和“取消”两个按钮Command3.Visible TrueCommand4.Visible True取消其他按钮功能Command5.Enabled FalseCommand6.Enabled FalseCommand7.Enabled FalseCommand8.Enabled FalseCommand1.Enabled FalseCommand2.Enabled FalseData1.Recordset.AddNew 添加一个新记录Text1.SetFocus 光标在 TEXT1 处 end sub 修改记录在调用 EDIT 方法之前,约束控件中的数据是只读的,用户无法对其进行修改。
调用了 EDIT 方法后,用户可以在约束控件中修改记录的值。
如果在对当前记录进行修改之前修改,未使用 EDIT 方法,将发生运行时错误。
其主要程序如下:Private Sub Command6_Clickxg TrueCommand3.Enabled TrueCommand4.Enabled True取消其他按钮功能Command5.Enabled FalseCommand6.Enabled FalseCommand7.Enabled FalseCommand8.Enabled FalseCommand1.Enabled FalseCommand2.Enabled False对记录进行编辑Data1.Recordset.EditText1.SetFocusEnd Sub 删除记录当用户单击“删除”命令按钮时,为了防止用户误删除数据,程序将调用 Msgbox()函数以弹出对话框,询问用户是否真的要删除该记录。
如果用户单击对话框上的“确定”按钮,程序调用记录集的 Delete 方法,将记录集的当前记录设置为空,并从原始的表中删掉当前记录。
但是删除的记录仍然是当前记录,只是将其变为了无效的记录,任何对其的引用都会产生错误。
其主要程序如下:Private Sub Command6_Clickxg TrueCommand3.Enabled TrueCommand4.Enabled True取消其他按钮功能Command5.Enabled FalseCommand6.Enabled FalseCommand7.Enabled FalseCommand8.Enabled FalseCommand1.Enabled FalseCommand2.Enabled False对记录进行编辑Data1.Recordset.EditText1.SetFocusEnd SubPrivate Sub Command7_Clickss MsgBoxquot真的要删除吗?quot vbYesNo vbInformation quot删除记录quot如果要删除If ss vbYes ThenData1.Recordset.DeleteData1.Recordset.MoveNextIf Data1.Recordset.EOF ThenData1.Recordset.MoveLastCommand2.Enabled FalseEnd IfEnd IfEnd Sub 移动数据当用户单击“上一个”和“下一个”按钮是,系统将自动转换数据,但注意,当移至第一个记录时,“下一个”按钮将失效;移至最后一个记录是,“上一个”按钮也将失效。
其中在设计程序时,为了防止“NO Current Record”这样的错误,在移动记录指针时测试记录集的 BOF 和 EOF 属性。
如果单击“上一个”和“下一个”命令按钮 则分别调用 Movefirst 和 Movelast 方法,将导致记录指针指向空指针, “NO 这是防止Current Record”错误出现的最简单和最有效的方法。
与此同时,如果记录集的 BOF属性为 True则置“上一个”命令按钮为非激活状态,是用户无法再单击该按钮。
同样,当记录集的 BOF 属性为 True 时,置“下一个”命令按钮为非激活状态。
其主要程序如下:Private Sub Command1_Clickxg FalseData1.Recordset.MovePrevious如果是第一个记录,BOF 属性为 TRUEIf Data1.Recordset.BOF ThenData1.Recordset.MoveFirstCommand1.Enabled FalseElseCommand2.Enabled TrueCommand1.Enabled TrueEnd IfEnd SubPrivate Sub Command2_Clickxg FalseData1.Recordset.MovePrevious如果当前记录是记录集中最后一个记录,EOF 属性为 TRUEIf Data1.Recordset.BOF ThenData1.Recordset.MoveLastCommand2.Enabled FalseElseCommand2.Enabled TrueCommand1.Enabled TrueEnd IfEnd Sub 用 Updata 方法确认增加和修改当用户修改和增加完一个记录的数据后,需要将数据保存到数据库中。
可以通过调用记录集的 Updata 方法把数据保存到数据库中。
单击“确定”按钮时,记录将被记如数据库。
其主要程序如下:Private Sub Command3_ClickOn Error GoTo error1xg TrueData1.Recordset.UpdateCommand3.Enabled FalseCommand4.Enabled FalseCommand2.Enabled TrueCommand1.Enabled TrueCommand4.Enabled TrueCommand5.Enabled TrueCommand6.Enabled TrueCommand7.Enabled TrueCommand8.Enabled TrueExit Suberror1: MsgBox Err.Description vbOKOnly quot错误提示quotEnd Sub 用 CancelUpdata 方法放弃增加和修改如果用户修改了约束控件里的数据后,在没有单击“确定”命令按钮之前,想放弃刚才的增加或修改,则可以单击“取消”命令。
由于其程序与 Updata 方法相似,因此不做重复解释。
定义 Data_Validata 事件过程对于一个新记录或编辑的记录,如果不能维护引用完整性或不能反映该旧路的实体原型,那么它就是无效的,并且破坏了数据库的完整性。
为了在“入库情况”表中建立一个有效的记录,就必须要有主关键字段“型号”的值。
因此,对已经存在和新增加的旧路都要先测试其“型号”字段之后才可以执行更新操作。
其主要程序如下:当约束控件中内容改变时If Text2.DataChanged ThenSave TrueIf Data1.Recordset.RecordCount gt 1 ThenCommand1.Enabled TrueCommand2.Enabled TrueEnd IfElseIf Text2.Text quotquot And xg True Then !quot ss MsgBoxquot必须要有‘型号’ vbOKOnly vbInformation quot提示quot Action False Command3.Visible True Command4.Visible True Command1.Visible True Command2.Visible True Command7.Visible True Command8.Visible True Command5.Visible True Command6.Visible True End If End If If Action data_actionunload Or Action data_actionclose Then Save True End IfEnd Sub2.3 出库界面当单击“出库”按钮的时候,系统将进入出库信息输入界面,如(图 2.3.1)所示,其基本情况与入库相类似,依次不做具体介绍。
图 2.3.12.4 查询界面 当用户单击“查询”按钮时,系统将出现密码登陆框,因为查询的是内部资料, 因此,需身份验证,如图 2.4.1 图 2.4.1 随后将进入查询功能,如图 2.4.2 图 2.4.2 用户可根据不同需要进行“按型号”和“按单位”的查询。
单击“按型号”,系统将进入以型号为关键字段的查询,如图 2.4.3。
其中根据
SQL 语句的查询,选出出库型号与入库型号相同的记录,统计出入库与出库的 总数量,然后可按“上一个”和“下一个”进行查询,也可按出库与入库分别 查询记录。
图 2.4.3 当用户单击“查询出库”按钮是,系统进入界面,如图 2.4.4 图 2.4.4 图 2.4.4 窗体及其上面控件的属性设置 控件类型 控件名 主要属性 Form frmdblist Caption“查询出库” Data Data1 DatabaseName“a:db2.mdb” RecordsetType1 RecordSource“出库型号” Frame Frame1 Caption“具体情况” Lable Lable1 Cqption“产品名称” Lable2 Cqption“单价” Lable3 Cqption“发票编号” Lable4 Cqption“顾客名称” Lable5 Cqption“结帐情况” Text Text1 Datafield“具体情况” Datasource“Data1” Text2 Datafield“具体情况” Datasource“Data1” Text3 Datafield“具体情况” Datasource“Data1” Text4 Datafield“具体情况” Datasource“Data1” Text5 Datafield“具体情况” Datasource“Data1” DBlist Dblist1 Listfield“型号” Rowsource“Data1” 表 2.4.1 单击 Dblist 框中的型号,Frame 中将自动显示记录,以供用户查询。
当用户单击“查询入库”按钮时,将出现图 2.4.5 的界面。
图 2.4.5 再回到查询界面,单击“按单位”按钮,此时系统将进入按单位查询的截面, 如图 2.4.6 图 2.4.6 分别按 和 “顾客” “供应商”按钮,系统将分别进入不同的查询界面,如图 2.4.7 和图 2.4.8由于以下两个窗口的属性以及其设计方法类似与图 4.3,因此也不做详细介绍。
.
上一篇:
VC++6.0俄罗斯方块代码
下一篇:
应用数学学报编辑部联系方式