资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
通用工资管理系统,目标: 建立适用于各企事业单位、各类人员的通用工资管理系统,能够管理月工资、日工资、计时工资和计件工资。 技术: 在数据表结构的定义、数据的维护、统计、查询、打印等方面都采用了通用技术。尤其是结构描述文件和宏代换起到了至关重要的作用。,8.1 数据表设计,创建表的结构描述文件 COPY STRUCTURE TO extended 利用结构描述文件生成表 CREATE FROM 对结构描述文件的结构进行有限修改,比如添加若干字段,仍然可以用来创建数据表。 利用结构描述文件的这些特性,我们可以在程序运行时,让用户修改结构描述文件的记录,然后创建数据表,达到动态修改表结构的目的 。,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 设置系统窗口的一些属性。包括标题、图标、背景颜色,取消最大化按钮、关闭按钮,使用窗口最大化。然后设置系统的开关或状态,关闭所有文件,清所有变量。最后声明三个全局变量,恢复存于文件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的值作为数据源,达到动态指定数据源的效果,表格中反映对应的表结构描述文件。 利用当前结构描述文件修改对应的工资数据表结构 。,8.3 系统功能的实现,8.3.2 工资数据表结构定义结构定义.scx 表单的Load事件: 以独占方式打开由全局变量s_lbfj所指定的扩充结构描述文件,并将表单标题修改为“XX库结构”。 表单的Activate事件:显示当前数据表(结构描述文件)的记录总数 Grid1每一列文本对象的GotFocus事件:动态地显示出相应的提示信息 “插入”按钮的作用是在当前结构描述文件中插入一条记录 “取消”按钮用来关闭当前打开的数据表(结构描述文件)和表单 “确认”按钮的主要功能是利用当前结构描述文件修改对应的工资数据表结构,8.3 系统功能的实现,8.3.3 浏览修改工资表数据 浏览修改.prg 系统提供了“浏览修改”、“选字段修改”、“统一替换”和“条件修改”四种方式,以适应不同需求。 浏览修改方式与在VFP环境中使用BROWSE命令效果相仿。但为了在软件运行时对特定的工资数据的内容进行修改,开辟自己的浏览窗口,对字段进行控制。,8.3 系统功能的实现,8.3.4 选字段修改工资表数据 选项修改.scx 首先把组合框Combo1的显示值(也就是字段类别名)取出来放到变量zdlb中,用DO CASE语句根据字段类别建立相应的过滤条件表达式字符串,送给变量gltj。 然后利用全局变量s_lbfj和宏代换打开当前结构描述文件,把满足gltj条件的记录过滤出来。再用循环语句把这些记录Field_name字段的值(也就是对应工资数据表中指定类别的字段名)添加到组合框Combo2中,作为其列表项,以此达到对工资数据表字段进行筛选的目的。这里用到了扩充的结构描述文件中“类别”字段的内容。,8.3 系统功能的实现,8.3.5 统一替换字段内容 统一替换.scx 利用“通用查询”类,可以对任意数据表指定输出字段和限制条件进行查询输出。这里我们利用其指定输出字段功能来指定要替换内容的字段名,添加一个文本框来输入替换表达式,直接利用它本身的功能设置限制条件,再修改某个命令按钮的代码,就可以完成统一替换字段内容的操作。,8.3 系统功能的实现,8.3.6 条件修改工资表数据 条件修改.scx 这与利用“通用查询”模块进行查询,并把查询结果显示在屏幕上的效果相当。因此可以引用“通用查询”类,创建一个表单,再对表单进行必要的修改。 设置表单的自定义属性tname的值为“&s_lbf”,作为入口参数,通过全局变量s_lbf和宏代换指定工资数据表。,8.3 系统功能的实现,8.3.7 数据计算 数据计算.prg 在工作区a和工作区b分别打开特定的工资数据表和对应的结构描述文件。 用循环语句对结构描述文件的每条记录进行扫描。 如果该记录定义了公式,则取出field_name和“公式”字段的值保存到变量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 软件的使用,类别设置 结构定义 浏览修改 选项修改 统一替换 条件修改 数据计算 查询输出,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号