《仓库管理系统37182589.docx》由会员分享,可在线阅读,更多相关《仓库管理系统37182589.docx(50页珍藏版)》请在三一办公上搜索。
1、4.2数据库设计数据库的结构设计是一个非常重要的问题,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度。在数据库系统开发设计的时候应该尽量考虑全面,尤其应该仔细考虑用户的各种需求,避免在设计中浪费不必要的人力和物力。4.2.1 数据库需求分析数据库需求分析是数据库结构设计的第一阶段,是非常重要的一个阶段。在这个阶段主要是手机基本数据、数据结构以及确定数据处理的流程,为以后进一步设计打下基础。在仔细调查企业仓库物资设备管理过程的基础上,我们得到本系统所处理的数据流程,如图4-2所示。 仓库
2、现有库存 各部门需求 企业总体生产计划汇总 处理设备 采购 设备 出库设备 入库 设备 还库图4-2 数据流程图针对本实例,通过对企业仓库管理的内容和流程分析,设计的数据项和数据结构如下。l 设备代码信息包括的数据项有设备号、设备名称l 现有库存信息包括的数据项有现有设备、现有数目、总数目、最大库存、最小库存等。l 设备入库信息包括的数据项有设备号、入库时间、供应商、供应商电话、入库数量、价格、采购员等。l 设备出库信息包括的数据项有设备号、使用部门、出库时间、出库状况、经手人、出库数量、领取人、用途等。l 设备采购信息包括的数据项有采购的设备、采购员、供应商、采购数目、采购时间等。l 设备归
3、还信息包括的数据项有归还设备、归还部门、归还数目、归还时间、经手人等。l 设备需求信息包括的数据项有需求的部门、需求设备、需求数目、需求时间等。l 日志信息包括操作员、操作人员、操作内容。有了上面的数据结构、数据项和数据流程,就能进行下面的数据库设计。4.2.2 数据库概念结构设计这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。本实例根据上面的设计规划出的实体有库存实体、入库实体、出库实体、采购实体、还库实体、需求实体。实体和实体之间的关系E-R图如图4-34-8所示。 现有库存设备号 现有库存 警戒库存 总数图4-3 库存
4、实体E-R图 入库设备号 供应商信息 采购价格信息 采购员图4-4 入库实体E-R图 出库设备号 使用部门 数量 时间 经手人图4-5 出库实体E-R图 计划采购设备号 库存信息 供应信息 时间图4-6 设备采购实体E-R图 设备还库 设备号 还库时间 人 还库数量 经手人图4-7 还库实体E-R图 部门需求 设备号 需求部门 需求数量 需求时间图4-8 部门需求实体E-R图 实体和实体之间的关系图如图4-9所示。 入库 现有库存 出库 还库 部门需求 设备采购图4-9 实体关系图4.2.3 数据库逻辑结构设计需要将上面的数据库概念结构转化为Visual FoxPro 60.数据库系统所支持的
5、实际数据模型,也就是数据库的逻辑结构。在上面的实体以及实体之间关系的基础上,形成数据库中表以及各个表之间的关系。仓库管理系统数据库中各个表的设计结果如下面的几个表格所示,每个表格表示在数据库中的一个表。表4-1 为设备代码表表4-1列名数据类型可否为空设备号(主键)数值型(20)不能为空设备名称字符型(50)可为空表4-2 为设备入库表表4-2列名数据类型可否为空设备号数值型(20)不能为空入库时间(主键)日期型(8)可为空供应商字符型(50)可为空供应商电话字符型(15)可为空入库数量数值型(20)可为空价格字符型(10)可为空采购员字符型(20)可为空表4-3 为设备出库表表4-3列名数据
6、类型可否为空设备号数值型(20)不能为空出库时间(主键)日期型(8)可为空使用部门字符型(50)可为空出库状况数值型(20)可为空经手人字符型(20)可为空出库数量数值型(10)不能为空领取人字符型(50)可为空用途字符型(50)可为空表4-4 为现有库存表表4-4列名数据类型可否为空设备号(主键)数值型(20)不能为空现有库存数值型(20)可为空最大库存数值型(20)可为空最小库存数值型(20)可为空总数数值型(20)可为空表4-5 为部门需求表表4-5列名数据类型可否为空设备号(主键)数值型(20)不能为空部门名称字符型(20)不能为空需要数量数值型(20)可为空需求开始时间日期型(8)可
7、为空需求结束时间日期型(8)可为空表4-6 为设备还库表表4-6列名数据类型可否为空设备号(主键)数值型(20)不能为空还库时间日期型(8)不能为空仓库管理员数值型(20)可为空归还数量数值型(20)可为空归还人字符型(10)可为空表4-7 为操作日志表表4-7列名数据类型可否为空操作员字符型(50)不能为空操作内容字符型(50)不能为空操作时间日期型(8)可为空表4-8 为设备采购计划表表4-8列名数据类型可否为空设备号数值型(20)不能为空现有库存数值型(20)可为空总库存数值型(20)可为空最大库存数值型(20)可为空购买数量数值型(20)可为空供应商字符型(20)不能为空价格字符型(1
8、0)可为空计划采购时间(主键)日期型(8)可为空4.3 数据库结构的实现在需求分析、概念结构设计的基础上得到数据库的逻辑结构之后,我们就可以在Visual FoxPro 60.数据库系统中实现该逻辑结构。图4-10 新建数据库打开如图4-10所示的“仓库管理”项目后,在项目管理器中展开数据文件夹,用鼠标选中数据库,单击右侧的“新建”按钮,在弹出的对话框中将该数据库文件储存为C:仓库管理仓库管理.dbc。在弹出的如图4-11所示的数据库设计器中单击鼠标右键,选择“新建表”,为数据库添加数据表(表的内容如表4-1至表4-8所示)。下面以表4-1为例来介绍表的建立过程。选择“新建表”,在弹出的对话框
9、中将表存储为C:仓库管理设备代码.dbf。在弹出的如图4-12所示的表设计器中填写表的内容。请读者将其与表4-1比较,可以发现表的字段名就是列名。由于在以后编写的程序中对数据库数据的操作通常是应用表的字段,因此读者在设计字段名时要挑选容易理解的名称。字段设置完成后,单击“确定”按钮后为表输入数据,如不想现在输入,可以先“取消”,以后再输入。具体方法如下: 图4-13 为表输入数据(1) 如图4-13所示,选中要输入的数据的表,单击“浏览”按钮。(2) 此时弹出的无数据的表,在Visual FoxPro的主窗口中选择“表”,选择“追加薪记录”后,就可以在表中输入数据了,如图4-14所示。不过这种
10、方法只能一次输入一条记录,要输入第二条记录时,需要再次追加新记录。如果有一个已有的数据的表,可以使用“使用追加记录”将这个有数据的表追加到当前表中,不过执行那个该操作要求这两个表的结构完全相同。 4.4各个功能模块的创建按照前面的分析,我们将管理系统的逻辑模块统一到6个实际功能模块中,如图4-15所示。切换面板用于切换不同的操作,每项具体操作结束后,都会返回到切换面板。下面对各模块的作用进行说明:l 设备入库模块 添加设备到库存中。l 设备出库模块 将设备从库从中取出并记录。l 设备还原模块 将归还待库存的设备保存到数据库。l 设备需求模块 记录各部门的设备要求。l 设备采购模块 记录要采购的
11、设备。l 切换面板 用于切换到不同的操作,如设备入库、设备出库等。l 显示报表 显示库存过多、库存不足等信息。下面就按照功能模块图来设计该仓库管理系统。首先在Visual FoxPro 6.0中建立一个项目管理器,以便管理本系统中所有数据,命名为仓库管理。一下操作均在该项目管理器中进行。以下所有表单的“Desktop”属性全部为“.T.-真”。4.4.1功能选择界面的设计这一模块的主要功能是作为系统主界面为进入本系统不同功能界面选择提供一个接口,使用一个窗口来实现这一功能。首先建立一个表单,设其“Caption”属性分别为“仓库管理”。在该表单上添加6个“按钮”控件,它们的“Caption”属
12、性分别为“设备入库”、“设备出库”、“设备还库”、“部门需求”、“设备采购”和“显示报表”。然后在表单上添加“图像”控件,并设其“Stretch”属性为“2- Stretch(扩展)”,“Picture”属性为图片所在位置,本例中为“C:仓库管理001.jpg”。在“command1”(“Caption”属性为“设备入库”)控件的“Click”事件中添加如下代码:do form 设备入库表thisform.release 在“command2”(“Caption”属性为“设备出库”)控件的“Click”事件中添加如下代码:do form 设备出库表thisform.release 在“comm
13、and3”(“Caption”属性为“设备还库”)控件的“Click”事件中添加如下代码:do form 设备还库表thisform.release 在“command4”(“Caption”属性为“部门需求”)控件的“Click”事件中添加如下代码:do form 部门需求表thisform.release在“command5”(“Caption”属性为“设备采购”)控件的“Click”事件中添加如下代码:do form 设备采购表thisform.release在“command6”(“Caption”属性为“显示报表”)控件的“Click”事件中添加如下代码:do form 显示报表th
14、isform.release在“form1”的属性里选择“autocenter”设置为“.T.-真”,同时将“backcolor”设置为“255,255,255”,“windowstate”设置为“0-普通”。添加“form1”的“Init”事件的代码如下:set directory to c:仓库管理*将程序的默认的路径指向资源所在的文件夹该表单设计结果如图4-16所示:4.4.2设备入库模块的设计在设备入库模块中将实现设备数据的添加和入库等功能。在前面的几章的例子中已经详细介绍了关于如何制定具有标准查询并修改功能的表单,其实Visual FoxPro 6.0本身也具有生成具有上述功能表单的
15、功能。下面就介绍如何通过表单导向完成设备入库表单的设计。首先在项目管理器的文档视图下单击“新建”按钮,如图4-17所示。然后选择“表单导向”,如图4-18、图4-19所示。 图4-18 图4-19在接下来的向导中,“数据库和表”选择“仓库管理”以及“设备入库表”,这是前面定义好的数据库和表。由于设备入库需要显示所有的字段,因此我们将可用字段全部移至选定字段,如图所示,单击“下一步”按钮,在表单样式中,选择“阴影式”以及“图片按钮”,如图所示。左上角的窗口提供了表单样式的预览功能,图片按钮和文本按钮的区别在于显示的时候是以图片来表达功能还是文字来表达,实现功能的函数没有区别。选择“上一步”按钮可
16、以跳回上一个界面对表单中显示的字段进行修改。单击“下一步”按钮后,向导进行到“步骤3-排序次序”,如图所示,选择“设备号”为索引,并选择升序排列。最后预览表单,核对每项的设置,完成表单向导,如图4-23所示。值得注意的是,在结束表单向导前,可选择“保存表单以备将来使用”,“保存并运行表单”,或者“保存表单并用表单设计器修改表单”。由于Visual FoxPro6.0向导生成的表单只具有普遍性,对于当前设计的仓库管理系统还需要一定的改变,因此以我们选择“保存表单并用表设计器修改表单”。单击“完成”按钮系统提示保存表单,将表单保存为“设备入库表.scx”,存于C:仓库管理目录下。然后打开表单修改器
17、生成的表单,如图所示。在修改BUTTONSET时,可以通过属性窗口的下拉列表选定单个按钮,调整其位置和其它属性。如图4-25所示。根据功能需求,把“cmdPrint”、“”cmdExit、“cmdDelete”和“cmdEdit”的Visible属性都设为“.F.-假”。添加2个命令按钮,Caption属性分别设为“修改库存”和“回主界面”。在“回主界面”命令按钮的Click事件中添加代码如下:thisform.releasedo form 仓库管理在修改库存命令按钮的Click事件中添加代码如下:select 现有库存表 again*先在该表单的数据环境中添加现有库存表,如图4-26所示ge
18、tid=thisform.设备号1.text1.valueset order to 设备号seek getid&库存表中查找设备号等于getid的记录if found() getnum=thisform.入库数量1.text1.value update 现有库存表; set 现有库存=(现有库存+getnum) where (设备号=getid)*如果库存表中有该项设备,则更新库存表else insert into 现有库存表 (设备号,现有库存); value (thisform.设备号1.text1.value,thisform.入库数量1.text1.value)endifinsert
19、into 操作日志表(操作员,操作内容,操作时间);values (thisform.采购员1.text1.value,设备入库,date()*如果库存表中没有该项设备,则添加设备到库存表保存后运行表单,界面如图4-27所示:4.4.3设备出库模块的设计在设备出库模块中将实现设备出库数据的添加和修改库存等功能。该模块的功能和设备入库的功能相似。具体操作可以参考设备入库模块的设计,设计最终的界面如图4-28所示。在表单的左上角加上了显示当前时间的功能,添加标签label2的caption属性设为“当前时间”;添加label3的caption属性设为空;为当前表单的label3init事件添加如下
20、代码:this.caption=dtoc(date()&date()用来获取当前的系统时间&Init事件在每次表单被初始化时被调用该模块具体实现留给读者自行完成,表4-9、4-10列出了表单中所用到控件的属性值。下面时设备出库表单中“修改库存”命令按钮的Click事件的代码:set directory to c:仓库管理use现有库存表again*先在该表单的数据环境中添加现有库存表getid=thisform.设备号1.text1.valueset order to 设备号seek getid *在现有库存表中查找设备号等于getid的纪录if found() getnum=thisform
21、.出库数量1.text1.value update 现有库存表; set 现有库存=(现有库存-getnum) where (设备号=getid)insert into 操作日志表(操作员,操作内容,操作时间);values(thisform.领取人1.text1.value,设备出库,date() *如果库存表中有该项设备,则更新库存表 insert into 操作日志表(操作员,操作内容,操作时间); values (thisform.领取人1.text1.value,设备出库,date()elsemessagebox(出错,1,错误的设备号)*如果没有该设备号则报告出错信息endif4.
22、4.4设备还库模块的设计在设备还库模块中将实现设备还库数据的添加和修改库存等功能,按照上文介绍的步骤设计设备还库表。设备还库表所可能用到的控件的属性如表4-11、4-12所示.下面是设备还库表中“修改库存”命令按钮的click事件的代码:set directory to c:仓库管理use现有库存表again*先在该表单的数据环境中添加现有库存表 getid=thisform.设备号1.text1.valueset order to 设备号seek getid *在现有库存表中查找设备号等于getid的纪录if found() getnum=thisform.归还数量1.text1.value
23、 update 现有库存表; set 现有库存=(现有库存-getnum) where (设备号=getid) insert into 操作日志表(操作员,操作内容,操作时间); values (thisform.归还人1.text1.value,设备还库,date() *如果库存表中有该项设备,则更新库存表,同时更新操作日志else messagebox(出错,1,错误的设备号)*如果没有该设备号则报告出错信息 endif保存后运行表单,可得到如图4-29所示的设备还库表。4.4.5 设备需求模块的设计在设备需求模块中将实现设备需求数据的添加和保存日志等功能。首先通过Visual Foxpr
24、o的表单向导生成所需的设备需求表单,选择部门需求表的所有可用字段,然后为保持程序风格的一致,继续采用表单的阴影式和图片按钮的风格。在“步骤3-排序次序”时。选择设备号的升序排列。最后单击“完成”按钮,把表单保存在“c:仓库管理”目录下,名为“设备需求.scx”。重要步骤参照图4-30到图4-33。通过表单向导生成的表单如图4-33所示,用户可以调节控件的位置,修改表单中控件的属性,最后结果如图4-34所示。相关的属性设置如表4-13、表4-14所示。在表单设计器中,双击“保存日志”命令按钮。添加click事件代码如下:insert into 操作日志表 (操作员,操作内容,操作时间) valu
25、es (username,设备需求,date()*把设备需求写入操作日志表中双击回主界面命令按钮,添加click事件代码如下:thisform.releasedo form 仓库管理*运行仓库管理界面保存对表单所作的修改。4.4.6 设备采购模块的设计在设备采购模块中将实现设备采购数据的添加和保存日志等功能。(1)由数据表生成表单通过Visual Foxpro的表单向导,生成设备采购计划表单。在选择数据库和表时,选择仓库管理数据库和设备采购计划表。在选择字段时,选择所有可用字段,选择阴影式和图片按钮作为设备采购计划表的样式。选择计划采购时间的升序排列作为设备采购计划表的索引。(2)为窗体修改和
26、添加命令按钮添加2个命令按钮“保存日志”和“回主界面”。设置表单中控件的属性。下面的表列出了需要修改的控件的名称以及属性值。表4-15 Form1控件的主要属性 属性名称属性值Caption设备采购表Autocenter.T.-真BackColor255.255.255表4-16 ButtonSet1控件的主要属性:控件名属性名称属性值cmdExitVisible.F.-假cmdDeleteVisible.F.-假cmdPrintVisible.F.-假cmdEditVisible.F.-假Command1Caption保存日志Command2Caption回主界面3. 为按钮添加click事
27、件代码:在表单设计器中,双击保存日志命令按钮。添加click事件代码如下:insert into 操作日志表 (操作员,操作内容,操作时间) values (username,设备需求,date()*把设备需求写入操作日志表中双击回主界面按钮,添加click事件代码如下:thisform.release*释放本表单do form 仓库管理*运行仓库管理界面保存对表单所作的修改,表单运行效果如图4-35所示:4.4.7 显示报表模块的设计在该模块中,一共要显示3个报表,分别提供库存不足,库存过多和操作日志等信息。1 设计显示报表表单在项目管理器的文档视图下选择“新建”,然后选择新建表单,如图4-
28、36所示。4-36在如图4-37所示的空白表单中添加一个页框控件,并按照下表4-17设置页框的属性,同时在数据环境里添加现有库存表和操作日志表。 “pageframe1”控件的主要属性控件名属性名称属性值Form1Caption显示报表Pageframe1Caption3Pageframe1.Page1Caption库存不足表Pageframe1.Page2Caption库存过多表Pageframe1.Page3Caption操作日志分别为每个page添加一个表格grid1,如图4-38所示:分别为每个page添加一个表格grid1,如图所示: 库存过多表 库存不足表 操作日志表设置表格控件的
29、属性,如表4-18所示:控件名属性名称属性值Pageframe1.Page1.grid1ReadOnly.T.-真Pageframe1.Page1.grid1RecordSourceType1-别名Pageframe1.Page1.grid1ColumnCount-1Pageframe1.Page2.grid1ReadOnly.T.-真Pageframe1.Page2.grid1RecordSourceType1-别名Pageframe1.Page2.grid1ColumnCount-1Pageframe1.Page3.grid1ReadOnly.T.-真Pageframe1.Page3.gr
30、id1RecordSourceType1-别名Pageframe1.Page3.grid1ColumnCount-12 代码设计定义Pageframe1.Page1.grid1的init事件运行“显示报表”表单,界面所图所示:local Custs1select 设备号,最大库存,现有库存 from 现有库存表 where (现有库存最大库存) into cursor Custs1thisform.页框.库存过多.库存过多表.recordsource=Custs1定义Pageframe1.Page2.grid1的init事件local Custs2select 设备号,最小库存,现有库存 fr
31、om 现有库存表 where (现有库存最小库存) into cursor Custs2thisform.页框.库存不足.库存不足表.recordsource=Custs2定义Pageframe1.Page3.grid1的init事件local Custs3select * from 操作日志表 into cursor Custs3thisform.页框.操作日志.操作日志表1.recordsource=Custs3运行“显示报表”表单,界面如图4-39所示。4.5 开发中的难点和解决技巧Visual FoxPro 6.0中向导包括表向导、数据库向导、查询向导、报表向导、标签向导、邮件合并向导
32、、数据透视表向导、导入向导、文档向导、安装向导、升迁向导、应用程序向导、web发布向导等。在这里我们再介绍查询向导、报表向导、标签向导。4.5.1 查询向导当建立的表中只有几个、十几条记录时,利用“浏览”窗口可以较快的查找符合一定条件的记录,但当表较大,例如有几百、上千甚至上万条记录时,用浏览的方式就相当困难了。这样的效率和不建表几乎没有什么两样。建立数据库存储数据不是目的。真正的目的是利用数据库管理技术来操作这些数据信息。表的查询时数据处理工作中的重要工作之一,它能在大量的记录中找出符合一定条件的记录。 从“工具”菜单中选取“向导”,单击其中的“查询”,就会进入“向导选取”,这里有5个向导选
33、项,鼠标点取哪个向导时,就会在“说明”中出现有关向导用途的说明。这里选取“查询向导”。在查询向导的每一步骤中,都有一些文字说明,它帮助理解这一步骤的用法。下面是“查询向导”的“步骤1-字段选取”,如图4-40所示,单击“下一步”按钮。接下来创建查询表达式。这些表达式是符合Visual Foxpro 规则的,即它能读懂并执行的。设置查询条件:设备入库表设备号小于10的所有设备,如图441所示。当不知道某种数据类型“值”,单击“预览”按钮,如果格式正确将显示符合条件的记录,否则将会出现错误提示,有时会提示正确格式。为了表达两个条件同时具备,我们选取“与”单选按钮。单击 “下一步”按钮,进入“步骤4
34、排序记录”,如图442所示。从“可用字段”中选取“设备入库表.设备号”作为排序字段,并按升序排列。单击“下一步”按钮。进入步骤4a-限制记录,如图4-43所示。这里有两组单选按钮,用来设置在浏览查询结果窗口显示记录的限制。取默认值“所有记录”。单击“下一步”按钮,进入“步骤5完成”,如图444所示。选择“保存并运行查询”,单击“完成”按钮,即进入保存对话框,命名为“设备号小于2”,查询保存在扩展名为.QPR的文件中。此外也可以在完成查询设计后,在命令窗口中输入“DO设备号小于2.qpr”,来执行这个查询。4.5.2 报表向导数据库管理系统中使用报表是日常工作中最常用的查看数据的手段之一。生成报
35、表就是把输入的数据按照一定的条件和格式又以报表的形式显示。这里的表格和原始表格具有完全不同的含义,是更深入地反映原始数据之间关系、实质的经过提炼和筛选的表格。打开“工具”菜单中的“向导,选择“报表”,出现“”向导选取对话框,选择“报表向导”。单击“确定”按钮,进入步骤1字段选取,如图4-45所示。在这个窗口中,选择设备入库表,并选定“可用字段”中的所有字段。单击“下一步“按钮进入步骤2分组记录,如图446所示。在这个窗口中,选择设备入库表,并选定”可用字段”中的所有字段。单击“下一步”按钮进入步骤2-分组记录,如图4-46所示。根据报表的需要,这一步可以选择也可以不选择。单击“下一步”按钮进入
36、“步骤3-选择报表样式”,如图4-47所示。单击样式名称,在左上角框内即时显示该样式的效果,这里选择比较符合中国人习惯的账务式。单击“下一步”按钮进入“步骤4-定义报表布局”,如图4-48所示。这一步骤可通过微调按钮分别设置报表的列数、方向和字段布局。选择布局方向的默认值“纵向”。单击“下一步”按钮进入“步骤5-排序记录”,如图4-49所示。这一步骤可以选择一个至三个字段作为报表的排序字段,并可设置是升序还是降序。也可以不选排序手段。“选定字段”的第一行为主排序字段,一下依次为各个次排序字段。这里选取设备标号字段为排序字段。单击“下一步”按钮进入 “步骤6-完成”,如图4-50所示。在“报表标
37、题“中输入标题中输入标题“设备入库表”,选择“保存报表以备将来使用”。去除“对不能容纳的字段进行拆行处理”(即使屏幕显示不开,也不折到下一行)。单击“预览”按钮,进入预览窗口,在屏幕上查看生成的报表,如图4-51所示。如果对报表满意,可以选择“打印预览”中的打印按钮将该报表输出到打印机。如果不满意,则可以单击“上一步”按钮,返回到前面步骤进行相应修改。修改完毕,单击“完成”按钮,在保存窗口中键入报表名“设备入库表”,报表保存在以.FRX和.FRT为扩展名的文件中.以后要打印该报表时,可在命令窗口中输入:REPORT FORM 设备入库表TO PRINT。4.5.3标签向导标签是什么,它与报表有
38、何不同呢?报表是以表为单位按一个格式生成一个报表,标签则是以表中的记录为单位,一条记录生成一个标签。它们有许多相似之处,标签可以看作是一种特殊的报表。或者换一种不很贴切的说法:符合某种条件的花名册就是一种报表,每个人的名片就是一个标签。和使用其他向导一样,先在“工具”菜单中选取“向导”,再单击“标签”进入标签向导的“步骤1-选择表”。打开设备入库表。按“下一步”按钮进入 “步骤2-选择标签类型”,如图4-52所示。 图4-52 标签向导(一)标签向导提供了多种标签尺寸,在单选按钮中选择“公制”,并选择大小为33.87mm*99.06mm,列数为2的“Avery L7162”型号标签。单击“下一
39、步”按钮,进入步骤3-定义布局,如图4-53所示。 图4-53 标签向导(二)这一步骤是标签向导中操作最多的步骤。选择按钮的左边是常见的6个健盘符号按钮。我们以当前亮条处字段为例来演示如何操作。先在“文本”框中输入“设备号:”,单击“选定”按钮,则文本框中的内容被选定到“选定的字段”框中,再在“可用字段”中将光标移到设备号处,双击或按“选定”按钮。则“选定字段”中就有“设备号:设备号”行。完成以上操作后,单击按钮,则“选定字段”框中的亮条移到下一空行中,在此空行中重复以上操作,将所有需要的字段移动到“选定字段”中。单击“字体”按钮,进入下面的“字体”对话框,选择“规则”、“小五”号字体,按“确
40、定”按钮进入步骤4排序记录,如图4一54所示。我们选择编号字段为排序字段,并选择“升序”单选按钮。单击“下一步”进入“步骤5-完成”,如图4-55所示。 图4-55 标签向导(四)单击“预览”按钮,进入预览窗口,在屏幕上查看标签。和报表一样,也可以打印标签,可返回相应的步骤进行修改、保存。标签保存在以.LBX为扩展名的文件中。以后在命令窗口中输入命令:LABLE FORM设备入库TO PRINT,就可打印标签了。4.6 系统的编译和发行4.6.1 设置主文件用主图标以黑体的文件表示)标记的文件是用户在启动.app或者是.exe时被调用的文件。它可以是一个表单、菜单或程序,建议使用程序作为主文件
41、。4.6.2 构造主文件如果主文件是一个程序,它将调用应用程序框架中的各个功能组件,然后由这些组件调用应用程序的其余部分。如果要建立一个简单的主程序,可以按下列步骤进行。(1) 现设置应用环境界面。(2) 确定初始用户界面。(3) 建立事件循环。(4) 恢复环境,退出应用程序。例如,可以建立下面的程序作为主程序:set directory to c:仓库管理*将资源路径设为默认路径_screen.left=-10000do form 仓库管理on shutdown quitread events为了避免无限循环,必须在READ EVENTS命令之前安排CLEAR EVENTS命令。可以在主菜单或主表单中添加一个“退出”项,该项发出CLEAR EVENTS命令。具体步骤详见第l章中相关内容。本系统的主程序为主程序.prg。4.6.3 在.app和.exe文件中包含和排除文件 如果在发布的应用程序中不想再更改这些文件,可把它们放在项目中并设置为“包含”。那么这些文件变成只读的,不能修改。如果想修改这些文件,把它们放到项目中并设置为排除”,然后作为独立文件随着应用程序一起发布。 在默认情况下Visual FoxPro在嵌放的过程中排除了数据库、表格、称为.ff的c库文件和.app文件。建议用户除了一些特定的表格,最好不