《Visual FoxPro 9.0项目开发案例教程》-李政-电子教案 第08章

上传人:E**** 文档编号:89407989 上传时间:2019-05-24 格式:PPT 页数:16 大小:87KB
返回 下载 相关 举报
《Visual FoxPro 9.0项目开发案例教程》-李政-电子教案 第08章_第1页
第1页 / 共16页
《Visual FoxPro 9.0项目开发案例教程》-李政-电子教案 第08章_第2页
第2页 / 共16页
《Visual FoxPro 9.0项目开发案例教程》-李政-电子教案 第08章_第3页
第3页 / 共16页
《Visual FoxPro 9.0项目开发案例教程》-李政-电子教案 第08章_第4页
第4页 / 共16页
《Visual FoxPro 9.0项目开发案例教程》-李政-电子教案 第08章_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《《Visual FoxPro 9.0项目开发案例教程》-李政-电子教案 第08章》由会员分享,可在线阅读,更多相关《《Visual FoxPro 9.0项目开发案例教程》-李政-电子教案 第08章(16页珍藏版)》请在金锄头文库上搜索。

1、通用工资管理系统,目标: 建立适用于各企事业单位、各类人员的通用工资管理系统,能够管理月工资、日工资、计时工资和计件工资。 技术: 在数据表结构的定义、数据的维护、统计、查询、打印等方面都采用了通用技术。尤其是结构描述文件和宏代换起到了至关重要的作用。,8.1 数据表设计,创建表的结构描述文件 COPY STRUCTURE TO extended 利用结构描述文件生成表 CREATE FROM 对结构描述文件的结构进行有限修改,比如添加若干字段,仍然可以用来创建数据表。 利用结构描述文件的这些特性,我们可以在程序运行时,让用户修改结构描述文件的记录,然后创建数据表,达到动态修改表结构的目的 。

2、,8.1 数据表设计,结构描述文件 ygz_j.dbf、rgz_j.dbf、jsgz_j.dbf和jjgz_j.dbf四个扩充的结构描述文件。 数据表 ygz.dbf、rgz.dbf、jsgz.dbf和jjgz.dbf,分别用来保存月工资、日工资、计时工资和计件工资的有关信息。 数据表gzlb.dbf 在软件运行时供用户能够选择和设置不同的工资类型 。,8.2 菜单与主程序设计,8.2.1 菜单设计,“退出”菜单 主程序.prg,8.2 菜单与主程序设计,8.2.2 主程序设计 主程序.prg 设置系统窗口的一些属性。包括标题、图标、背景颜色,取消最大化按钮、关闭按钮,使用窗口最大化。然后设置

3、系统的开关或状态,关闭所有文件,清所有变量。最后声明三个全局变量,恢复存于文件SYS.MEM的内存变量,执行主菜单并读取用户事件。,8.3 系统功能的实现,8.3.1 工资类别设置 类别设置.scx 在表单中通过下拉列表来指定工资类型,把工资类别名、工资类别符号、结构描述文件名放到全局变量s_lbm、s_lbf、s_lbfj中,以便在系统的各个模块中引用。并且工资类别设置具有记忆功能。,8.3 系统功能的实现,8.3.2 工资数据表结构定义结构定义.scx 添加Grid1控件,其RecordSource属性设置为“&s_lbfj”。这样数据源就不再是固定的,而是用变量s_lbfj的值作为数据源

4、,达到动态指定数据源的效果,表格中反映对应的表结构描述文件。 利用当前结构描述文件修改对应的工资数据表结构 。,8.3 系统功能的实现,8.3.2 工资数据表结构定义结构定义.scx 表单的Load事件: 以独占方式打开由全局变量s_lbfj所指定的扩充结构描述文件,并将表单标题修改为“XX库结构”。 表单的Activate事件:显示当前数据表(结构描述文件)的记录总数 Grid1每一列文本对象的GotFocus事件:动态地显示出相应的提示信息 “插入”按钮的作用是在当前结构描述文件中插入一条记录 “取消”按钮用来关闭当前打开的数据表(结构描述文件)和表单 “确认”按钮的主要功能是利用当前结构

5、描述文件修改对应的工资数据表结构,8.3 系统功能的实现,8.3.3 浏览修改工资表数据 浏览修改.prg 系统提供了“浏览修改”、“选字段修改”、“统一替换”和“条件修改”四种方式,以适应不同需求。 浏览修改方式与在VFP环境中使用BROWSE命令效果相仿。但为了在软件运行时对特定的工资数据的内容进行修改,开辟自己的浏览窗口,对字段进行控制。,8.3 系统功能的实现,8.3.4 选字段修改工资表数据 选项修改.scx 首先把组合框Combo1的显示值(也就是字段类别名)取出来放到变量zdlb中,用DO CASE语句根据字段类别建立相应的过滤条件表达式字符串,送给变量gltj。 然后利用全局变

6、量s_lbfj和宏代换打开当前结构描述文件,把满足gltj条件的记录过滤出来。再用循环语句把这些记录Field_name字段的值(也就是对应工资数据表中指定类别的字段名)添加到组合框Combo2中,作为其列表项,以此达到对工资数据表字段进行筛选的目的。这里用到了扩充的结构描述文件中“类别”字段的内容。,8.3 系统功能的实现,8.3.5 统一替换字段内容 统一替换.scx 利用“通用查询”类,可以对任意数据表指定输出字段和限制条件进行查询输出。这里我们利用其指定输出字段功能来指定要替换内容的字段名,添加一个文本框来输入替换表达式,直接利用它本身的功能设置限制条件,再修改某个命令按钮的代码,就可

7、以完成统一替换字段内容的操作。,8.3 系统功能的实现,8.3.6 条件修改工资表数据 条件修改.scx 这与利用“通用查询”模块进行查询,并把查询结果显示在屏幕上的效果相当。因此可以引用“通用查询”类,创建一个表单,再对表单进行必要的修改。 设置表单的自定义属性tname的值为“&s_lbf”,作为入口参数,通过全局变量s_lbf和宏代换指定工资数据表。,8.3 系统功能的实现,8.3.7 数据计算 数据计算.prg 在工作区a和工作区b分别打开特定的工资数据表和对应的结构描述文件。 用循环语句对结构描述文件的每条记录进行扫描。 如果该记录定义了公式,则取出field_name和“公式”字段

8、的值保存到变量zdm和gs中,选择工资数据表工作区,用“REPLACE ALL &zdm WITH &gs”语句计算并填写工资数据表对应字段的值,再返回结构描述文件工作区。,8.3 系统功能的实现,如果该记录“类别”字段的内容为“1”,说明对应的工资数据表的字段是收入项,则把该记录field_name字段的值(也就是对应的工资数据表的字段名)拼接到变量SRX中。 如果该记录“类别”字段的内容为“2”,说明对应的工资数据表的字段是支出项,则把该记录field_name字段的值拼接到变量ZCX中。 最后选择工资数据表工作区,用REPLACE语句和宏代换功能计算并填写“应发工资”、“扣款合计”和“实发工资”字段的内容,完成数据计算任务。,8.3 系统功能的实现,8.3.8 查询输出 查询输出.scx 直接引用“通用查询”类,创建一个表单,进行必要的参数设置即可。,8.4 软件的使用,类别设置 结构定义 浏览修改 选项修改 统一替换 条件修改 数据计算 查询输出,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号