




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章 表单高级设计 8.1 多表单应用程序,应用程序界面 单文档界面与多文档界面 顶层表单与子表单 非浮动表单和浮动表单 调用子表单:DO FORM命令,例8-1 为例7-10设计的表单增加一个查页命令按钮,要求单击它能打开一个供用户输入记录号的窗口, 如图8.1所示。当指定记录号并单击确定按钮后,新打开的窗口随即关闭,原表单也立即更新记录显示。 (1) 从例7-10的表单文件SBXG.SCX复制出SBBD1.SCX,并将后者打开。 (2) 在SBBD1.SCX的表单窗口Form1中增加命令按钮Command1。 (3) 创建表单文件SBBD2.SCX,并在其表单窗口Form1中创建标签、文本框各1个。 (4) 属性设置:见表8.1。,表8.1 “查页”属性设置,表单集 使用表单集的优点 表单集的创建与删除 表单集的编辑 例8-3 用表单集来实现查看设备大修情况。 (1) 从例7-13产生的表单文件BG.SCX复制出BDJ.SCX,并使后者打开,表单设计器窗口中将会显示“SB表编辑”表单窗口。 (2) 为表单文件BDJ.SCX创建表单集:选定表单菜单的创建表单集命令。 (3) 向表单集添加表单:选定表单菜单的添加新表单命令,表单设计器窗口中就会出现Form2表单窗口。 (4) 在数据环境中添加DX表, 并将SB表与DX表按编号关联起来。 (5) 将数据环境中DX窗口的标题栏拖放到Form2表单窗口,该表单中就会产生一个关于大修的表格。 (6) 将Form2表单的Caption属性值改为“大修情况”。,8.2 用户定义属性与方法程序,用户定义属性 变量属性 创建:打开表单设计器后,选定表单菜单的新建属性 作用域:对表单集中的所有表单都有效 引用格式:THISFORMSET.变量属性名 数组属性 多表单应用程序的有效参数 用PUBLIC设置的公共变量 用户在表单集中自定义的属性 父表单与子表单间的参数传递:DO FORM WITH TO命令 用户定义方法程序 创建:表单菜单中选定“新建方法程序”命令 过程代码的编辑 调用基本格式为:THISFORMSET.方法程序名,8.3 类,类的概念 类(class)与对象(object) 基类(base class) 子类(subclass) 用户定义类(user-defined class) 容器类(container classes)和控件类(control classes) 类库(class library) 类的特征 封装特征 子类特征 继承性特征 用户定义类 类的创建 将类添加到工具栏 类的编辑,例8-7 创建一个带有确认功能的“退出按钮”类。 (1) 从CommandButton基类新建子类:选定文件菜单的新建命令在新建对话框中选定“类”选项按钮,然后选定新建文件按钮在如图8.7所示新建类对话框的类名文本框中键入类名:退出按钮;在“派生于”下拉列表框中选定基类CommandButton;在“存储于”文本框中键入类库的名字:用户控件选定确定按钮关闭对话框。 (2) 在类设计器中为“退出按钮”类设置属性与事件: 新建类对话框关闭后,随即会弹出一个类设计器窗口(参阅图8.8)。类设计器窗口内显示一个“退出按钮” 窗口,这就是“退出按钮”类;“退出按钮” 窗口中有一个“Command1”按钮(在图8.8中Command1已改作退出两个字),这是类的实例的模样。 在属性窗口中将“退出按钮” 类的Caption 属性由Command1改为“退出”,这将使按钮上显示“退出”两个字(见图8.8)。 双击“退出按钮”窗口内部来打开代码窗口,然后为Click事件键入如下代码: IF MESSAGEBOX(“一定要退出吗?“,4+48,“请确认“)=6 & 信息框包含“是”和“否”按钮,图标显示惊叹号,按“是”按钮返回数值6 THISFORM.Release CLEAR EVENTS & 停止处理事件(参阅10.1节第三点) ENDIF (3) 关闭类设计器窗口。,例8-8 试将例8-7创建的“退出按钮”类添加到表单控件工具栏中。 打开任一表单(参阅图8.10)选定表单控件工具栏的查看类按钮在弹出菜单中选定添加命令在如图8.9所示的打开对话框列表中选定可视类库文件:用户控件.VCX选定确定按钮关闭对话框,表单控件工具栏中就会包含一个“退出按钮”。,第9章 报表设计 9.1 打印基础,TO PRINTER 打印命令 LIST|DISPLAY STRUCTURE TO PRINTER & 打印当前表的结构 LIST|DISPLAY TO PRINTER & 打印当前表的内容 LIST|DISPLAY MEMORY TO PRINTER & 打印当前的变量和数组内容 LIST|DISPLAY STATUS TO PRINTER & 打印VFP环境状态 DIR TO PRINTER & 打印当前目录中表的名字 TYPE TO PRINTER & 打印ASCII字符文件的内容 定向输出命令 SET PRINTER ON | OFF SET PRINTER TO ADDITIVE | ,9.2 报表设计器的基本操作,打开报表设计器窗口 MODIFY REPORT 快速制表 报表菜单中的快速报表命令 例9-3 利用快速制表功能为SB.DBF设计一张包括编号、名称和价格3栏的报表。 (1) 打开报表设计器窗口:往命令窗口键入命令MODIFY REPORT SBJGB,使屏幕上出现报表设计器窗口(参阅图9.12)。 (2) 设置数据源:在报表设计器窗口击右键,在快捷菜单中选定数据环境命令,在数据环境设计器窗口中添加SB表。 (3) 启动快速制表:选定报表设计器窗口,然后在报表菜单中选定快速报表命令,使出现如图9.11所示的快速报表对话框。 (4) 设置快速报表属性:选定快速报表对话框的字段按钮,在字段选择器对话框(图略)中依次选出编号、名称和价格等3个字段,选定确定按钮返回快速报表对话框。选定确定按钮返回报表设计器窗口。 (5) 保存报表定义:选定文件菜单的保存选项,将产生报表文件SBJGB.FRX及其备注文件SBJGB.FRT。,页面预览,命令方式打印报表 REPORT FORM ENVIRONMENT FOR HEADING NOCONSOLE PLAIN RANGE 开始页 ,结束页 PREVIEW IN WINDOW | IN SCREEN NOWAIT TO PRINTER PROMPT | TO FILE ASCII SUMMARY 菜单方式打印报表 “报表”菜单的“运行报表”命令,9.3 报表设计器的高级操作,1. 页面设置,2. 设计报表带区,表9.1 报表带区的建立及作用,基本带区 例9-4 在例9-3所制报表的基础上,设计如图9.11所示具有表格线的设备价格表。,标题与总结带区 数据分组与组标头/组注脚带区 报表菜单的数据分组命令,由报表向导产生一个经过数据分组的报表 工具菜单中向导选项的报表命令 例9-5 打印如图9.15所示带费用总计的设备大修分类表。,创建报表控件 例9-6 打印如图9.24所示设备大修费用表,要求相同的设备编号仅输出第一个。 (1) 定义快速报表: 键入命令MODIFY REPORT DXFY来打开报表设计器窗口在数据环境中添加DX表单击报表设计器窗口,然后选定报表菜单的快速报表命令选定快速报表对话框的确定按钮,使报表设计器窗口中出现编号、年月、费用等标签及字段控件。 (2) 增加总结带区: 选定报表菜单的标题/总结命令在标题/总结对话框中选定总结 带区复选框。 (3) 调整带区高度及控件位置:将各带区调整至如图9.25所示的高度。,(4) 在总结带区建立费用控件: 选定报表控件工具栏的域控件按钮单击总结带区中间,在报表表达式对话框(参阅图9.21)的表达式文本框内键入表达式费用选定计算按钮,在计算字段对话框中选定总和选项按钮(见图9.22)选定确定按钮返回报表表达式对话框选定确定按钮返回报表设计器窗口,费用控件就出现在总结带区之中。 (5) 修改编号字段区: 双击编号字段,在报表表达式对话框中选定打印条件按钮在打印条件对话框中选定“否”按钮(参阅图9.23),使编号字段不打印重复的值选定确定按钮返回报表表达式对话框选定确定按钮返回报表设计器窗口。 (6) 如图9.25所示画出表格线。,报表变量 例9-7 打印如图9.26所示的主要设备的设备役龄表,要求包括记录序号和设备役龄,部门在打印时使用汉字部门名。 (1) 打开报表设计器窗口:键入命令MODIFY REPORT SBYL。 (2) 设置数据环境:在数据环境中添加SB表和BMDM表,并使SB.部门与BMDM.代码关联(从SB.部门字段拖到BMDM.代码索引)。 (3) 定义快速报表:选定报表设计器窗口,然后选定报表菜单的快速报表命令在快速报表对话框中选定字段按钮在字段选择器对话框的SB表中挑选编号、名称、部门3个字段选定确定按钮返回快速报表对话框选定确定按钮,使报表设计器窗口中出现编号、名称、部门等标签及字段控件。,(4) 设置在SB表部门字段控件的位置上输出汉字部门名:双击部门字段控件将报表表达式对话框的表达式文本框中的SB.部门改为BMDM.名称选定确定按钮返回报表设计器窗口,在该控件的位置上即能输出汉字部门名。 (5) 创建报表变量XH(用作序号): 选定报表菜单的变量命令在如图9.28所示报表变量对话框的变量列表中键入变量名XH在“要存储值”文本框中键入表达式XH+1选定确定按钮关闭报表变量对话框。 (6) 创建XH变量控件: 选定报表控件工具栏的域控件按钮单击细节带区左部在报表表达式对话框中选定表达式文本框右侧的对话按钮在如图9.29所示表达式生成器对话框的变量列表中双击报表变量XH选定确定按钮返回报表表达式对话框选定确定按钮返回报表设计器窗口,XH变量控件便已产生。,(7) 建立计算役龄的表达式控件: 选定报表控件工具栏的域控件按钮单击细节带区右部在报表表达式对话框的表达式文本框内键入(DATE()-SB.启用日期)/365在格式文本框内键入输入掩码99选定确定按钮返回报表设计器窗口。 (8) 处理日期和页号:将页注脚带区的Date()控件、_PAGENO控件、“页”标签控件移到页标头带区,然后创建一个“第”标签控件。 (9) 画表格线和创建表名、序号、役龄等标签控件(步骤从略)。 (10) 打印:在命令窗口发命令REPORT FORM sbyl.frx FOR 主要设备,打印结果如图9.26所示。,下篇系统开发,10.系统开发实例 (系统开发小结) 11.关系数据库基本原理,“系统开发”篇包括第10、11两章,依次讲述“系统开发实例”和“关系数据库基本原理”。 第10章结合“汽车修理管理系统”这一实例,阐明了一个VFP 6.0应用系统的整个开发与发布过程,可供读者仿效与借鉴。 第11章是“简明版”新增加的,目的是通过简介关系数据库的初步原理,提高读者开发DBAS的能力。,第10章 系统开发实例 10.1 开发VFP数据库应用系统的一般步骤,需求分析 充分调研 写出需求规范说明书 数据库设计 逻辑设计 物理设计 VFP创建数据库的优点 应用程序设计 应用程序的基本功能 用户界面设计 两类VFP应用程序及其运行环境 VFP应用系统的主文件 运行环境初始化 控制事件循环 恢复先前的环境 软件测试 应用程序发布,10.2 一个实例:“汽车修理管理系统”的开发,需求分析 开发目的: (1) 能对汽车修理有关的各类数据进行输入、修改与查询。 (2) 编制季度零件订货计划。 (3) 打印汽车修理发票和工资月报表。 数据需求 输入单据包括修车登记单、汽车修理单、零件入库单和零件出库单等4种 输出单据包括季度零件订货计划、汽车修理发票和工资月报表等3种。 功能需求 1. 数据登记 登记功能用于把各种手填单据中的数据及时登记到系统将要定义的表中,还要求能进行修改。这些单据包括修车登记单、汽车修理单、零件入库单和零件出库单。 2. 查询 能查询登记单、修理单、汽车、车主、修理工、零件库存的有关数据。 3. 编制并显示季度零件订货计划 编制零件订货计划需要找出要订货的零件,订货条件为:零件库存量最低库存量。 订货量可由用户输入或修改。 4. 打印发票 发票中除包含顾客、汽车及修理项目等数据外,还要计算出修车费,修车费包括修理费和零件费,按下列各式计算: 零件费(零件价格耗用数量) 修理费小时工资修理工时3 总计零件费修理费 5. 打印修理工工资月报表 某修理工的月工资=修理小时小时工资。,数据库设计 逻辑设计 (1) 修理单: XLD(编号,牌号,工号,修理项目,修理小时,送修日期,完工日期) (2) 汽车: QC(牌号,型号,生产厂,车主名) (3) 车主: CZ(车主名,地址,电话) (4) 修理工: XLG(工号,姓名,地址,电话,出生日期,进厂日期,小时工资) (5) 零件用量: LJYL(编号,零件号,数量) (6) 零件库存: LJKC(零件号,零件名,成本,价格,库存量,最低库存,订货量),图10.9 表间关联的设计,物理设计 1. 修理单(C:QCXLXLD.DBF) xld(编号 c(4), 牌号 c(8), 修理项目 c(12), 送修日期 d, 完工日期 d, 工号 c(4) 普通索引, 修理小时 n(4.1) 2汽车(C:QCXLQC.DBF) qc(牌号 c(8) 普通索引, 型号 c(6), 生产厂 c(20), 车主名 c(8) 3车主(C:QCXLCZ.DBF) cz(车主名 c(8) 普通索引, 地址 c(16), 电话 c(7) 4. 修理工(C:QCXLXLG.DBF) xlg (工号 c(4) 普通索引, 姓名 c(8), 地址 c(16), 电话 c(7), 出生日期 d, 进厂日期 d, 小时工资 n(5.2) 5. 零件用量(C:QCXLLJYL.DBF) ljyl(编号 c(4) 普通索引, 零件号 c(6), 数量 n(2) 6. 零件库存(C:QCXLLJKC.DBF) ljkc(零件号 c(6) 普通索引, 零件名 c(10), 成本 n(8.2), 价格 n(8.2), 库存量 n(3), 最低库存 n(3), 订货量 n(3) 7. 零件入库表为LJRK.DBF,其结构与LJKC.DBF相同 8. 零件出库表(C:QCXLLJCK.DBF) ljck(零件号 c(6), 数量 n(2),应用程序设计 总体设计 初始用户界面设计 模块设计与编码 1主文件(QCXL.PRG) SET TALK OFF SET DEFA TO c:qcxl zljf存储总零件费,打印发票时用 xldh=SPACE(4) DO FORM fm & 显示封面(参阅例7-1,并事先将fm表单复制到C:qcxl) KEYB CTRL+F4 & 关闭Command窗口 MODI WIND SCREEN TITL 汽 车 修 理 管 理 系 统 & 打开VFP主窗口并设置窗口标题 CLEA * 以上为初始化环境代码 DO qcxlcd.mpr & 菜单文件名定为QCXLCD(汽车修理菜单) READ EVENT & 建立事件循环 QUIT & 退出VFP,2. 菜单程序(QCXLCD.MPR) 往命令窗口键入命令MODI MENU QCXLCD,就会出现菜单设计窗口,此时可按图10.11建立菜单。 (1) “退出”菜单项的命令 CLEAR EVENTS & 停止事件循环,转去执行READ EVENT后的命令 (2) 按图10.11设置调用各表单的命令,例如对“修车登记”菜单项可键入命令DO FORM xcdj。 (3) 从菜单文件QCXLCD.MNX生成菜单程序QCXLCD.MPR。,3. “修车登记”表单(XCDJ.SCX),4“输入修理单号”表单 (SRXLDH.SCX),5.“汽车修理”表单(QCXL.SCX) 6. “零件订货计划”表单(LJDH.SCX),7. “打印发票”表单(DYFP.SCX) 8. “发票”报表(FP.FRX),运行设计 装载数据 设置应用系统程序项 (1) 进入Windows 98(或Windows 95); (2) 选定“开始”菜单中“设置”选项的“任务栏”命令选定任务栏属性对话框的开始菜单程序选项卡选定添加按钮在创建快捷方式对话框中的命令行文本框中键入:c:vfpvfp6.exe c:qcxlqcxl t选定下一步按钮认同缺省文件夹programs,选定下一步按钮在为程序选定标题对话框中键入:汽车修理管理系统选定完成按钮返回任务栏属性对话框选定确定按钮,“汽车修理管理系统”程序项已建立在“开始”菜单的“程序”子菜单中。,10.3 应用程序的管理与发布,应用程序管理 项目的建立 在命令窗口键入命令MODIFY PROJECT QCXLGL 项目管理器中的主文件 连编 文件的包含与排除,应用程序发布 发布准备 在项目管理器中生成一个.exe可执行程序 创建发布树(目录) 创建发布磁盘 磁盘映象由安装向导生成在硬盘的磁盘映象目录中,选定工具菜单的向导选项的安装命令。,系统开发小结,开发应用系统的一般步骤 通常要经历下述 5 步,即 需求分析数据库设计应用程序设计 软件测试应用程序发布 在VFP应用系统开发中,用户应 尽可能在项目管理器的管理下开发; 充分利用VFP提供的各种设计器与生成器; 在开发完成后建立安装磁盘或安装程序,实现应用程序的商品化。,数据库设计,在应用系统的开发中,数据库设计通常是一项独立的开发活动,而且总是安排在应用程序设计之前完成。 数据库中的数据主要来源于手工操作时的输入数据。但并非简单地把一张输入单据换成一个表; 数据模式的设计应该遵循 “关系规范化”的理论; VFP将表区分为数据表与自由表。在实际应用系统中的表一般应定义为数据表,以便充分利用数据词典的作用。,应用程序设计,VFP的应用程序设计要同时用到面向对象程序设计与结构化程序设计两种方法,体现了两类程序设计方法的结合 应用程序的总体设计可以使用结构化程序设计中由顶向下按功能分类的方法 应用程序的模块设计可充分利用VFP提供的可视化设计工具 ,通常以表单设计作为重点。,第11章 关系数据库基本原理 11.1 关系模型的基本概念,关系的数学定义 域(domain) NAME 张三,李四,王二 SEX 男,女 AGE 17,18,19 笛卡尔乘积(Cartesian product) 笛卡尔乘积(Cartesian product) D1D2Dn(d1,d2,dn) | diDi,i1,2,n 关系(relation) 在域D1,D2,Dn上的关系是D1D2Dn的一个子集,可记为R(D1,D2,Dn)。其中R为关系名,n称为关系的度(degree)。 表文件与关系的对应 关系表现为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版生物降解材料生产合作协议范本
- 2025年度海绵城市土石方工程承包施工及雨水收集合同
- 2025版清单检查项在旅游业中的服务质量监管合同
- 2025年消防电梯采购及消防系统安装合同
- 2025版酒店大堂装修合同范本
- 2025年度物品租赁合同严格禁止转让授权
- 2025年度高端技术人才聘用合同范本
- 贵州省兴仁县2025年上半年公开招聘村务工作者试题含答案分析
- 2025版电子商务平台产品售后服务协议
- 2025年度房地产项目土建施工合同范本
- 全国交通运输行政执法综合管理信息系统考试题库-中(多选题练习)
- 2024年T电梯修理证解析及电梯修理-T证模拟考试题库
- 2024春期国开电大本科《商法》在线形考(形成性考核作业一至四)试题及答案
- (正式版)SHT 3046-2024 石油化工立式圆筒形钢制焊接储罐设计规范
- 2024年四川攀枝花市川投能源攀水电公司招聘笔试参考题库含答案解析
- 全科规培:门诊SOAP病历考核模拟文档
- 三年级上册口算题(可打印)
- 新教师培训讲座课件
- 插花艺术与花艺课件
- Excel模板:血压记录监测表(自动图表分析)
- Stevens-Johnson-综合征及中毒性表皮坏死松解症
评论
0/150
提交评论