第十二章+应用系统开发实例_第1页
第十二章+应用系统开发实例_第2页
第十二章+应用系统开发实例_第3页
第十二章+应用系统开发实例_第4页
第十二章+应用系统开发实例_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021-9-31第第1212章章 应用系统开发实例应用系统开发实例2021-9-32本章目录导引本章目录导引 12.1 12.1 软件开发基本概念软件开发基本概念 12.2 12.2 数据库系统开发过程数据库系统开发过程 12.3 12.3 人事工资管理系统开发人事工资管理系统开发 12.4 12.4 编译与发布应用程序编译与发布应用程序2021-9-3312.1 12.1 软件开发基本概念软件开发基本概念 12.1.1 12.1.1 软件软件 12.1.2 12.1.2 软件工程软件工程 12.1.3 12.1.3 软件生命周期软件生命周期 2021-9-3412.1.1 12.1.1 软

2、件软件 软件软件是计算机系统中与硬件相互依存的部分,是计算机系统中与硬件相互依存的部分,它是包括程序、数据及相关文档的完整集合。其中,它是包括程序、数据及相关文档的完整集合。其中,程序程序是按事先设计的功能和性能要求执行的指令序是按事先设计的功能和性能要求执行的指令序列;列;数据数据是使程序能正常操纵信息的数据结构;是使程序能正常操纵信息的数据结构;文文档档是与程序开发、维护和使用有关的图文材料。是与程序开发、维护和使用有关的图文材料。2021-9-3512.1.2 12.1.2 软件工程软件工程 软件工程软件工程是:是: 把系统化的、规范的、可度量的途径把系统化的、规范的、可度量的途径应用于

3、软件开发、运行和维护的过程,也就是把工程化方法应用于软件开发、运行和维护的过程,也就是把工程化方法应用于软件设计中;应用于软件设计中; 研究研究中提到的途径。中提到的途径。 实质上,软件工程就是采用工程的概念、原理、技术和实质上,软件工程就是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法来开发与维护软件,把经过时间考验而证明正确的管理方法和最先进的软件开发技术结合起来,应用到软件开发和方法和最先进的软件开发技术结合起来,应用到软件开发和维护过程中,来解决软件危机问题。维护过程中,来解决软件危机问题。 2021-9-3612.1.3 12.1.3 软件生命周

4、期软件生命周期 同其它事物一样,软件也有孕育、诞生、成长、同其它事物一样,软件也有孕育、诞生、成长、成熟、衰亡的生存过程,称其为计算机成熟、衰亡的生存过程,称其为计算机软件的生命软件的生命周期周期。 软件生命周期软件生命周期由软件定义、软件开发和运行维由软件定义、软件开发和运行维护三个时期组成,每个时期又可划分成若干个阶段。护三个时期组成,每个时期又可划分成若干个阶段。2021-9-3712.1.3 12.1.3 软件生命周期软件生命周期 软件定义时期软件定义时期的任务是:确定软件开发工程必的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工须完成的总目标;确定工程的可行性

5、;导出实现工程目标应该采用的策略及系统必须完成的功能;估程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程计完成该项工程需要的资源和成本,并且制定工程进度表。进度表。 软件定义时期可划分为问题定义、可行性研究、软件定义时期可划分为问题定义、可行性研究、需求分析三个阶段。需求分析三个阶段。2021-9-3812.1.3 12.1.3 软件生命周期软件生命周期 开发时期开发时期具体设计和实现在前一个时期定义的具体设计和实现在前一个时期定义的软件。软件。 开发时期分四个阶段:概要设计、详细设计、开发时期分四个阶段:概要设计、详细设计、编码和单元测试、综合测试。其

6、中前两个阶段又称编码和单元测试、综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。为系统设计,后两个阶段又称为系统实现。 2021-9-3912.1.3 12.1.3 软件生命周期软件生命周期 维护时期维护时期的主要任务是使软件持久地满足用的主要任务是使软件持久地满足用户的需求。软件维护时期不再进一步划分阶段。户的需求。软件维护时期不再进一步划分阶段。 2021-9-31012.1.3 12.1.3 软件生命周期软件生命周期1.1.问题定义问题定义 问题定义阶段必须回答的关键问题是:问题定义阶段必须回答的关键问题是:“要解要解决的问题是什么决的问题是什么”。通过调研,系统分析员

7、应该提。通过调研,系统分析员应该提出关于问题性质、工程目标和工程规模的书面报告,出关于问题性质、工程目标和工程规模的书面报告,并且需要得到客户对这份报告的确认。并且需要得到客户对这份报告的确认。2021-9-31112.1.3 12.1.3 软件生命周期软件生命周期2.2.可行性研究可行性研究 这个阶段要回答的关键问题是:这个阶段要回答的关键问题是:“上一个阶段上一个阶段所确定的问题是否有行得通的解决办法所确定的问题是否有行得通的解决办法”。 可行性研究的目的就是用最小的代价在尽可能可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性研究的短的时间内确定问题是否能够解

8、决。可行性研究的目的不是解决问题,而是确定问题是否值得去解决。目的不是解决问题,而是确定问题是否值得去解决。2021-9-31212.1.3 12.1.3 软件生命周期软件生命周期2.2.可行性研究可行性研究 可行性研究包括四个方面的研究:可行性研究包括四个方面的研究: (1 1)经济可行性:进行成本效益分析,从经济角度判断)经济可行性:进行成本效益分析,从经济角度判断系统开发是否系统开发是否“合算合算”。 (2 2)技术可行性:进行技术风险评价。从开发者的技术)技术可行性:进行技术风险评价。从开发者的技术实力、工作基础、问题的复杂性等方面出发,判断系统开发实力、工作基础、问题的复杂性等方面出

9、发,判断系统开发在时间、费用等限制条件下成功的可能性。在时间、费用等限制条件下成功的可能性。 (3 3)法律可行性:确定系统开发可能导致的任何侵权行)法律可行性:确定系统开发可能导致的任何侵权行为、妨碍性后果和责任。为、妨碍性后果和责任。 (4 4)方案的选择:评价系统或产品开发的几个候选方案,)方案的选择:评价系统或产品开发的几个候选方案,最后给出结论性意见。最后给出结论性意见。2021-9-31312.1.3 12.1.3 软件生命周期软件生命周期3.3.需求分析需求分析 需求分析阶段的任务不是具体的解决客户的问需求分析阶段的任务不是具体的解决客户的问题,而是准确回答题,而是准确回答“系统

10、必须做什么系统必须做什么”这个问题,这个问题,即确定系统的功能,对目标系统提出完整、准确、即确定系统的功能,对目标系统提出完整、准确、清晰、具体的要求。清晰、具体的要求。 系统分析员在需求分析阶段必须和用户密切配系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统需合,充分交流信息,以得出经过用户确认的系统需求。求。2021-9-31412.1.3 12.1.3 软件生命周期软件生命周期4.4.概要设计概要设计 概要设计又称为总体设计。概要设计阶段的任务是概括概要设计又称为总体设计。概要设计阶段的任务是概括地回答地回答“怎样实现系统目标?怎样实现系统目标?”这个问

11、题。这个问题。 总体设计过程可分为两个阶段:功能设计,确立软件系总体设计过程可分为两个阶段:功能设计,确立软件系统的实现方案;结构设计,确定软件的体系结构,也就是确统的实现方案;结构设计,确定软件的体系结构,也就是确定系统由哪些模块组成以及模块间的关系。定系统由哪些模块组成以及模块间的关系。 常用的描述软件结构的图形工具有:层次图、常用的描述软件结构的图形工具有:层次图、HIPOHIPO图、图、结构图。结构图。2021-9-31512.1.3 12.1.3 软件生命周期软件生命周期5.5.详细设计详细设计 详细设计也叫做过程设计或程序设计,它不同于编码或详细设计也叫做过程设计或程序设计,它不同

12、于编码或编程。详细设计阶段的任务是回答编程。详细设计阶段的任务是回答“怎样具体地实现系统目怎样具体地实现系统目标?标?”这个问题。本阶段要详细地设计每个模块,确定实现这个问题。本阶段要详细地设计每个模块,确定实现模块功能的算法和数据结构。模块功能的算法和数据结构。 常用的详细设计工具有:程序流程图、常用的详细设计工具有:程序流程图、N-SN-S图(盒图)、图(盒图)、PADPAD(问题分析图)等。(问题分析图)等。2021-9-31612.1.3 12.1.3 软件生命周期软件生命周期6.6.编码和单元测试编码和单元测试 这个阶段的关键任务是写出正确、容易理解、这个阶段的关键任务是写出正确、容

13、易理解、容易维护的程序模块。容易维护的程序模块。 程序员根据目标系统的性质和实际环境,选取程序员根据目标系统的性质和实际环境,选取适当的高级语言,把详细设计的结果翻译成用选定适当的高级语言,把详细设计的结果翻译成用选定语言书写的程序,并且仔细测试编写出的每一个模语言书写的程序,并且仔细测试编写出的每一个模块。块。2021-9-31712.1.3 12.1.3 软件生命周期软件生命周期7.7.综合测试综合测试 这个阶段的任务是通过各种类型的测试(集成这个阶段的任务是通过各种类型的测试(集成测试、确认测试、系统测试)及相应的调试使软件测试、确认测试、系统测试)及相应的调试使软件达到预定的要求。达到

14、预定的要求。2021-9-31812.1.3 12.1.3 软件生命周期软件生命周期8.8.软件维护软件维护 软件维护的关键任务是,通过各种必要的维护活动使系统软件维护的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需求。通常有四类维护活动:持久地满足用户的需求。通常有四类维护活动: (1 1)改正性维护:诊断和改正使用过程中发现的软件错误。)改正性维护:诊断和改正使用过程中发现的软件错误。 (2 2)适应性维护:修改软件以适应环境的变化。)适应性维护:修改软件以适应环境的变化。 (3 3)完善性维护:根据用户的要求改进或扩充软件,使它)完善性维护:根据用户的要求改进或扩充软件,使它

15、更完善。更完善。 (4 4)预防性维护:修改软件为将来的维护活动预先做准备。)预防性维护:修改软件为将来的维护活动预先做准备。2021-9-31912.2 12.2 数据库应用系统开发过程数据库应用系统开发过程 1. 1. 需求分析需求分析 2. 2. 数据库设计数据库设计 3. 3. 应用程序中各功能模块设计应用程序中各功能模块设计 4. 4. 软件测试软件测试 5. 5. 应用程序发布应用程序发布 6. 6. 系统运行与维护系统运行与维护2021-9-32012.3 12.3 人事工资管理系统开发人事工资管理系统开发12.3.1 12.3.1 需求分析需求分析12.3.2 12.3.2 系

16、统总体框架设计系统总体框架设计12.3.3 12.3.3 数据库设计数据库设计 12.3.4 12.3.4 主控程序设计主控程序设计 12.3.5 12.3.5 系统登录表单设计系统登录表单设计12.3.6 12.3.6 人事管理模块设计人事管理模块设计12.3.7 12.3.7 工资管理模块设计工资管理模块设计12.3.8 12.3.8 系统管理模块设计系统管理模块设计2021-9-32112.3.1 12.3.1 需求分析需求分析功能需求:功能需求:(1 1)数据维护)数据维护(2 2)数据查询)数据查询(3 3)工资计算)工资计算(4 4)报表打印)报表打印2021-9-32212.3.

17、2 12.3.2 系统总体框架设计系统总体框架设计2021-9-32312.3.2 12.3.2 系统总体框架设计系统总体框架设计程序调用关系:程序调用关系: 本系统除了用到的各菜单项对应的表单文件外,本系统除了用到的各菜单项对应的表单文件外,还有下列文件:主控程序还有下列文件:主控程序main.prgmain.prg、系统登录窗口、系统登录窗口pass.scxpass.scx、主菜单、主菜单main_menu.mprmain_menu.mpr。 程序调用关系如下:主控程序程序调用关系如下:主控程序main.prgmain.prg中调用中调用“系统登录窗口系统登录窗口”表单表单pass.scx

18、pass.scx,密码正确则调用,密码正确则调用系统菜单系统菜单mani_menu.mprmani_menu.mpr。各菜单项调用相对应的表。各菜单项调用相对应的表单。单。 2021-9-32412.3.3 12.3.3 数据库设计数据库设计 人事工资管理系统的数据库(人事工资管理系统的数据库(E:RSGZRSGZK.DBCE:RSGZRSGZK.DBC)包含六)包含六个表文件:人事表、工资表、部门表、职称表、年份表、用户个表文件:人事表、工资表、部门表、职称表、年份表、用户表。表。2021-9-32512.3.4 12.3.4 主控程序设计主控程序设计 主文件就是主控程序,是在启动程序时首先

19、被调主文件就是主控程序,是在启动程序时首先被调用的文件。主文件有以下几个作用:用的文件。主文件有以下几个作用: (1 1)对应用程序的环境进行初始化。)对应用程序的环境进行初始化。 (2 2)作为应用程序执行的起始点,由此启动程序)作为应用程序执行的起始点,由此启动程序的逐级调用。的逐级调用。 (3 3)显示初始的用户界面。)显示初始的用户界面。 (4 4)控制事件循环。)控制事件循环。 (5 5)恢复系统默认的环境。)恢复系统默认的环境。2021-9-32612.3.4 12.3.4 主控程序设计主控程序设计 核心代码:核心代码: DO FORM .pass.scx &DO FORM .pa

20、ss.scx &调用系统登录窗口调用系统登录窗口 On ShutDown do OnShutdown On ShutDown do OnShutdown &退出系统时调用函数退出系统时调用函数onshutdown()onshutdown() READ EVENTS & READ EVENTS &建立事件循环建立事件循环 On ShutDown &On ShutDown &释放当前的释放当前的On ShutDownOn ShutDown命令命令 FUNCTION OnShutdown() FUNCTION OnShutdown() CLEAR EVENTS & CLEAR EVENTS &退出事

21、件循环退出事件循环 QUIT QUIT ENDFUNC ENDFUNC2021-9-32712.3.5 12.3.5 系统登录表单设计系统登录表单设计1. 系统登录表单设计界面系统登录表单设计界面2021-9-32812.3.5 12.3.5 系统登录表单设计系统登录表单设计2.2.功能及设计说明功能及设计说明 该表单用于判断用户名及密码是否正确。若正确,完成以该表单用于判断用户名及密码是否正确。若正确,完成以下下2 2项工作:项工作: (1 1)设置一个全局变量)设置一个全局变量operatoperat,用于记录登录系统的操作,用于记录登录系统的操作员姓名,系统中有二个地方要用到该操作员的姓

22、名或代号:员姓名,系统中有二个地方要用到该操作员的姓名或代号:一是进入主界面后在标题栏显示操作员姓名;二是操作员在一是进入主界面后在标题栏显示操作员姓名;二是操作员在系统管理模块的口令设置中更改自己的口令时,系统要知道系统管理模块的口令设置中更改自己的口令时,系统要知道是哪个操作员。是哪个操作员。 (2 2)调用菜单文件,显示系统主界面。)调用菜单文件,显示系统主界面。 2021-9-32912.3.6 12.3.6 人事管理模块设计人事管理模块设计1.1.人事数据维护表单设计人事数据维护表单设计(1 1)人事数据维护表单设计界面)人事数据维护表单设计界面2021-9-33012.3.6 12

23、.3.6 人事管理模块设计人事管理模块设计(2 2)“人事数据维护表单人事数据维护表单”功能及设计说明功能及设计说明 人事数据维护表单包括下列功能:数据录入、修改、删除、人事数据维护表单包括下列功能:数据录入、修改、删除、查询、浏览、保存、打印等。查询、浏览、保存、打印等。 本表单左边是浏览窗口,便于用户浏览数据;右边是编辑本表单左边是浏览窗口,便于用户浏览数据;右边是编辑窗口,主要用于输入、修改数据。窗口,主要用于输入、修改数据。2021-9-33112.3.6 12.3.6 人事管理模块设计人事管理模块设计表单中录入数据的两种实现方法:表单中录入数据的两种实现方法: 法一:表单中的控件与表

24、文件中的字段绑定法一:表单中的控件与表文件中的字段绑定 这种方式下,记录增加一般用这种方式下,记录增加一般用append blankappend blank命令追加一命令追加一条空白记录,以让用户输入数据。用户输入、修改数据后,条空白记录,以让用户输入数据。用户输入、修改数据后,表文件中字段的内容跟随改变,不用再作保存。这种方式下,表文件中字段的内容跟随改变,不用再作保存。这种方式下,如果有如果有“保存保存”按钮,并不是真正用来保存数据,而是用于按钮,并不是真正用来保存数据,而是用于设置按钮的有效性及控件是否只读等。此表单的设置按钮的有效性及控件是否只读等。此表单的“保存保存”按按钮属于这种情

25、况。钮属于这种情况。2021-9-33212.3.6 12.3.6 人事管理模块设计人事管理模块设计法二:表单中的控件与表文件中的字段不绑定。法二:表单中的控件与表文件中的字段不绑定。 一般在一般在“增加增加”按钮中清除各控件(例如文本框)的内容,按钮中清除各控件(例如文本框)的内容,以便用户输入新的数据;在以便用户输入新的数据;在“保存保存”时用时用SQLSQL语言中的语言中的insertinsert语句将控件(文本框、编辑框、编辑框、按钮组、复选框)语句将控件(文本框、编辑框、编辑框、按钮组、复选框)的内容插入到表文件中。的内容插入到表文件中。2021-9-33312.3.6 12.3.6

26、 人事管理模块设计人事管理模块设计以动态颜色显示选中的以动态颜色显示选中的GridGrid对象的行和列对象的行和列 本例中浏览数据时,选中表格中的某个记录时,该行用不同本例中浏览数据时,选中表格中的某个记录时,该行用不同颜色显示,而且右边编辑窗口中各控件显示的数据要跟随变化,颜色显示,而且右边编辑窗口中各控件显示的数据要跟随变化,为此要在表格控件的为此要在表格控件的AfterRowColChangeAfterRowColChange事件中加入代码:事件中加入代码: * *以不同颜色显示选中的以不同颜色显示选中的GridGrid对象的行及列对象的行及列 This.SetAll(DynamicBa

27、ckColor,IIF(This.ActiveRow;This.SetAll(DynamicBackColor,IIF(This.ActiveRow; RecNo(),RGB(255,255,255),RGB(0,255,0),Column) RecNo(),RGB(255,255,255),RGB(0,255,0),Column) * *选中表格数据后,右边文本框中的记录跟随变化选中表格数据后,右边文本框中的记录跟随变化 SELECT rsbSELECT rsb THISFORM.Refresh THISFORM.Refresh2021-9-33412.3.6 12.3.6 人事管理模块设计

28、人事管理模块设计“添加相片添加相片” ” 命令按钮的命令按钮的ClickClick事件代码为:事件代码为: wjm=GETFILE()wjm=GETFILE() IF NOT EMPTY(wjm) IF NOT EMPTY(wjm) APPEND GENERAL APPEND GENERAL 相片相片 FROM &wjmFROM &wjm ENDIF ENDIF 使用使用APPENDAPPEND命令添加照片前一定要判断变量命令添加照片前一定要判断变量wjmwjm是否是否为空,否则,如果单击了本按钮但未选择图片文件,为空,否则,如果单击了本按钮但未选择图片文件,就会出现就会出现“语法错误语法错误

29、”的提示。的提示。2021-9-33512.3.6 12.3.6 人事管理模块设计人事管理模块设计2. 2. 人事信息查询表单设计人事信息查询表单设计(1 1)人事信息查询表单设计界面)人事信息查询表单设计界面2021-9-33612.3.6 12.3.6 人事管理模块设计人事管理模块设计(2 2)“人事数据维护表单人事数据维护表单”功能及设计说明功能及设计说明查询实现方法查询实现方法 实现查询的方法很多,例如:用实现查询的方法很多,例如:用Select-SQLSelect-SQL语言查询、用语言查询、用查询设计器件建立查询、利用视图进行查询等。查询设计器件建立查询、利用视图进行查询等。 本例

30、是利用表格显示人事表(本例是利用表格显示人事表(rsb.dbfrsb.dbf)中的查询数据,数)中的查询数据,数据按查询条件用据按查询条件用set filter toset filter to命令过滤,条件由用户输入或选命令过滤,条件由用户输入或选择。择。2021-9-33712.3.6 12.3.6 人事管理模块设计人事管理模块设计操作说明操作说明 用户先通过选项按钮组选择查询类别,当用户选择按员工号或姓名查询用户先通过选项按钮组选择查询类别,当用户选择按员工号或姓名查询时,出现一个文本框,让用户输入员工编号或姓名。当用户选择按部门查询时,出现一个文本框,让用户输入员工编号或姓名。当用户选择

31、按部门查询时,出现一个组合框,以便用户选择部门。时,出现一个组合框,以便用户选择部门。 当用户选择按出生日期查询时,出现两个文本框,以便用户输入起始日当用户选择按出生日期查询时,出现两个文本框,以便用户输入起始日期与截止日期;如果用户只输入起始日期,则显示出生日期为起始日期之后期与截止日期;如果用户只输入起始日期,则显示出生日期为起始日期之后的所有记录;如果用户只输入截止日期,则显示出生日期为截止日期之前的的所有记录;如果用户只输入截止日期,则显示出生日期为截止日期之前的所有记录;如果用户既输入起始日期又输入截止日期,则显示出生日期为起所有记录;如果用户既输入起始日期又输入截止日期,则显示出生

32、日期为起始日期之后且为截止日期之前的所有记录。如果用户选择显示全体记录,表始日期之后且为截止日期之前的所有记录。如果用户选择显示全体记录,表格中显示人事表(格中显示人事表(rsb.dbfrsb.dbf)中的所有记录。)中的所有记录。2021-9-33812.3.6 12.3.6 人事管理模块设计人事管理模块设计打印按钮打印按钮 本表单中包含两个打印按钮:查询打印、按部门分组打印。本表单中包含两个打印按钮:查询打印、按部门分组打印。查询打印用于打印查询到的员工的人事信息表。按部门分组打查询打印用于打印查询到的员工的人事信息表。按部门分组打印,则是按部门分组打印所有员工的人事信息表,每组从新的印,

33、则是按部门分组打印所有员工的人事信息表,每组从新的一页开始打印。代码分别为:一页开始打印。代码分别为: REPORT FORM .rsb_bb1.frx PREVIEW REPORT FORM .rsb_bb1.frx PREVIEW REPORT FORM .rsb_bb2.frx PREVIEW REPORT FORM .rsb_bb2.frx PREVIEW 2021-9-33912.3.6 12.3.6 人事管理模块设计人事管理模块设计按编号或姓名查询的实现按编号或姓名查询的实现 输入编号或姓名后在表格中显示查询的记录,可在文本框输入编号或姓名后在表格中显示查询的记录,可在文本框tex

34、t1text1的的ValidValid事件中添加以下代码实现:事件中添加以下代码实现: SELECT rsbSELECT rsb SET FILTER TO SET FILTER TO 编号编号=ALLTRIM(THISFORM.Text1.;=ALLTRIM(THISFORM.Text1.; Value) OR Value) OR 姓名姓名=ALLTRIM(THISFORM.Text1.Value)=ALLTRIM(THISFORM.Text1.Value) THISFORM.Grid1.Refresh THISFORM.Grid1.Refresh2021-9-34012.3.7 12.3.

35、7 工资管理模块设计工资管理模块设计1. 1. 工资数据维护表单设计工资数据维护表单设计 (1 1)工资数据维护表单设计界面)工资数据维护表单设计界面2021-9-34112.3.7 12.3.7 工资管理模块设计工资管理模块设计 (2 2)“工资数据维护表单工资数据维护表单” ” 功能及设计说明功能及设计说明工资数据维护表单的主要功能工资数据维护表单的主要功能 输入、修改工资数据;输入、修改工资数据; 新增某月工资数据;新增某月工资数据; 删除某月工资数据;删除某月工资数据; 对工资进行计算。对工资进行计算。2021-9-34212.3.7 12.3.7 工资管理模块设计工资管理模块设计新增

36、某月工资数据新增某月工资数据 输入某月工资前要先新增本月工资数据,即对工资数据进输入某月工资前要先新增本月工资数据,即对工资数据进行月初始化。月初始化的过程是先从行月初始化。月初始化的过程是先从rsb.dbfrsb.dbf中插入员工编号到中插入员工编号到gzb.dbfgzb.dbf中,生成本月工资的员工名单;再将上月工资数据中的中,生成本月工资的员工名单;再将上月工资数据中的固定项部分(基本工资、岗位津贴、保险)导入到固定项部分(基本工资、岗位津贴、保险)导入到gzb.dbfgzb.dbf中,中,用户只需要输入工资数据项中的变动项目(奖励、水电),这用户只需要输入工资数据项中的变动项目(奖励、

37、水电),这样可减少用户的输入工作量。样可减少用户的输入工作量。 当然,首次使用人事工资管理系统进行工资数据月初始化时,当然,首次使用人事工资管理系统进行工资数据月初始化时,上月工资数据不存在,需要输入所有的工资数据。上月工资数据不存在,需要输入所有的工资数据。2021-9-34312.3.7 12.3.7 工资管理模块设计工资管理模块设计注意:注意: 工资表中的员工名单是从工资表中的员工名单是从rsb.dbfrsb.dbf得到,不是从上月工资表得到,不是从上月工资表文件中得到,因为本月如果人员发生了变化(例如:调入、调文件中得到,因为本月如果人员发生了变化(例如:调入、调出),本月工资表的人员

38、名单与上月将不同,而出),本月工资表的人员名单与上月将不同,而rsb.dbfrsb.dbf中的人中的人员名单能反映这种变化。员名单能反映这种变化。 工资数据的固定项部分是从上月工资表文件得到,如果固工资数据的固定项部分是从上月工资表文件得到,如果固定项部分发生了变化,在录入界面中进行修改即可。定项部分发生了变化,在录入界面中进行修改即可。2021-9-34412.3.7 12.3.7 工资管理模块设计工资管理模块设计工资录入工资录入 工资月初始化后就可以录入和修改工资,单击工资月初始化后就可以录入和修改工资,单击“打开打开”按钮,弹出按钮,弹出“选选择工资年月择工资年月”对话框,先选择年份、月

39、份,调出该月工资数据后,就可以输对话框,先选择年份、月份,调出该月工资数据后,就可以输入、修改工资数据。入、修改工资数据。 说明:工资数据输入和显示界面是用表格实现的,除了工资表中的各项说明:工资数据输入和显示界面是用表格实现的,除了工资表中的各项数据外,还要显示员工对应的姓名、部门名称;而工资表中有员工编号,人数据外,还要显示员工对应的姓名、部门名称;而工资表中有员工编号,人事表中有员工编号、姓名及部门代码,部门代码表中有部门代码和部门名称;事表中有员工编号、姓名及部门代码,部门代码表中有部门代码和部门名称;表格中的数据涉及到三个表:表格中的数据涉及到三个表:gzb.dbfgzb.dbf、r

40、sb.dbfrsb.dbf、bmdm.dbfbmdm.dbf。本处是先将三。本处是先将三个表中的数据生成视图,然后用视图文件作为表格的数据源,在表格中显示个表中的数据生成视图,然后用视图文件作为表格的数据源,在表格中显示视图文件的内容。视图文件的内容。2021-9-34512.3.7 12.3.7 工资管理模块设计工资管理模块设计使用视图更新基表数据使用视图更新基表数据建立视图建立视图 OPEN DATABASE .rsgzkOPEN DATABASE .rsgzk CREATE SQL VIEW gz_view AS; CREATE SQL VIEW gz_view AS; SELECT g

41、zb. SELECT gzb.编号编号,rsb.,rsb.姓名姓名,gzb.,gzb.基本工资基本工资,gzb.,gzb.岗位津贴岗位津贴,;,; gzb. gzb.奖励奖励,gzb.,gzb.保险保险,gzb.,gzb.水电水电,bmdm.,bmdm.部门名称部门名称,gzb.,gzb.年月年月; ; FROM rsb,gzb,bmdm; FROM rsb,gzb,bmdm; WHERE gzb. WHERE gzb.编号编号=rsb.=rsb.编号编号 and rsb.and rsb.部门代码部门代码=bmdm.=bmdm.代码代码; ; and gzb. and gzb.年月年月=ny=

42、ny2021-9-34612.3.7 12.3.7 工资管理模块设计工资管理模块设计设置表可更新设置表可更新 DBSETPROP(gz_view,view,tables,rsb,gzb,bmdm)DBSETPROP(gz_view,view,tables,rsb,gzb,bmdm)设置更新主键设置更新主键 DBSETPROP(gz_view.DBSETPROP(gz_view.编号编号,Field,Keyfield,.T.),Field,Keyfield,.T.) DBSETPROP(gz_view. DBSETPROP(gz_view.年月年月,Field,Keyfield,.T.),Fie

43、ld,Keyfield,.T.)2021-9-34712.3.7 12.3.7 工资管理模块设计工资管理模块设计设置可更新字段名设置可更新字段名 DBSETPROP(gz_view. DBSETPROP(gz_view.编号编号,Field,UpdateName,gzb.,Field,UpdateName,gzb.编号编号) DBSETPROP(gz_view. DBSETPROP(gz_view.姓名姓名,Field,UpdateName,rsb.,Field,UpdateName,rsb.姓名姓名) DBSETPROP(gz_view. DBSETPROP(gz_view.基本工资基本工资

44、,Field,UpdateName,gzb.,Field,UpdateName,gzb.基本工资基本工资) DBSETPROP(gz_view. DBSETPROP(gz_view.岗位津贴岗位津贴,Field,UpdateName,gzb.,Field,UpdateName,gzb.岗位津贴岗位津贴) DBSETPROP(gz_view. DBSETPROP(gz_view.奖励奖励,Field,UpdateName,gzb.,Field,UpdateName,gzb.奖励奖励) DBSETPROP(gz_view. DBSETPROP(gz_view.保险保险,Field,UpdateNa

45、me,gzb.,Field,UpdateName,gzb.保险保险) DBSETPROP(gz_view. DBSETPROP(gz_view.水电水电,Field,UpdateName,gzb.,Field,UpdateName,gzb.水电水电) DBSETPROP(gz_view. DBSETPROP(gz_view.部门名称部门名称,Field,UpdateName,bmdm.,Field,UpdateName,bmdm.部门名称部门名称) DBSETPROP(gz_view. DBSETPROP(gz_view.年月年月,Field,UpdateName,gzb.,Field,Upd

46、ateName,gzb.年月年月)2021-9-34812.3.7 12.3.7 工资管理模块设计工资管理模块设计设置可更新字段设置可更新字段 DBSETPROP(gz_view. DBSETPROP(gz_view.基本工资基本工资,Field,Updatable,.T.),Field,Updatable,.T.) DBSETPROP(gz_view. DBSETPROP(gz_view.岗位津贴岗位津贴,Field,Updatable,.T.),Field,Updatable,.T.) DBSETPROP(gz_view. DBSETPROP(gz_view.奖励奖励,Field,Upda

47、table,.T.),Field,Updatable,.T.) DBSETPROP(gz_view. DBSETPROP(gz_view.水电水电,Field,Updatable,.T.),Field,Updatable,.T.) DBSETPROP(gz_view. DBSETPROP(gz_view.保险保险,Field,Updatable,.T.),Field,Updatable,.T.)2021-9-34912.3.7 12.3.7 工资管理模块设计工资管理模块设计 激活更新功能激活更新功能 DBSETPROP(gz_view,view,SendUpdates,.T.)DBSETPRO

48、P(gz_view,view,SendUpdates,.T.)将视图文件作为表格的数据源将视图文件作为表格的数据源 THISFORM.Grid1.RecordSourceType=0THISFORM.Grid1.RecordSourceType=0 THISFORM.Grid1.RecordSource=gz_view THISFORM.Grid1.RecordSource=gz_view2021-9-35012.3.7 12.3.7 工资管理模块设计工资管理模块设计2. 2. 工资信息查询表单设计工资信息查询表单设计 (1 1)工资信息查询表单设计界面)工资信息查询表单设计界面2021-9-

49、35112.3.7 12.3.7 工资管理模块设计工资管理模块设计(2 2)“工资信息查询表单工资信息查询表单”功能及设计说明功能及设计说明查询实现查询实现 工资信息查询表单是用表格来显示查询数据,表格的数据工资信息查询表单是用表格来显示查询数据,表格的数据源是一个临时表。选择年份和月份后,单击确定按钮时会先生源是一个临时表。选择年份和月份后,单击确定按钮时会先生成一个临时表成一个临时表gzb_temp.dbfgzb_temp.dbf,再设置表格数据源为该临时表。,再设置表格数据源为该临时表。选择查询类别后,输入或选择查询条件可以用选择查询类别后,输入或选择查询条件可以用set filter

50、toset filter to语语句过滤表格中的数据,从而只显示满足条件的记录。句过滤表格中的数据,从而只显示满足条件的记录。2021-9-35212.3.7 12.3.7 工资管理模块设计工资管理模块设计核心代码核心代码* *将查询结果保存到临时表将查询结果保存到临时表 SELECT gzb.SELECT gzb.编号编号,rsb.,rsb.姓名姓名,gzb.,gzb.基本工资基本工资,gzb.,gzb.岗位津贴岗位津贴,;,; gzb. gzb.奖励奖励,gzb.,gzb.应发工资应发工资,gzb.,gzb.保险保险,gzb.,gzb.水电水电,;,; gzb. gzb.实发工资实发工资,

51、bmdm.,bmdm.部门名称部门名称,gzb.,gzb.年月年月; ; FROM rsb,gzb,bmdm; FROM rsb,gzb,bmdm; WHERE rsb. WHERE rsb.编号编号=gzb.=gzb.编号编号 and rsb.and rsb.部门代码部门代码=bmdm.=bmdm.代码代码; ; INTO CURSOR gzb_temp INTO CURSOR gzb_temp* *设定表格数据源设定表格数据源 THISFORM.Grid1.RecordSource=gzb_tempTHISFORM.Grid1.RecordSource=gzb_temp2021-9-353

52、12.3.7 12.3.7 工资管理模块设计工资管理模块设计报表打印报表打印 工资信息查询表单具有查询及报表打印功能,表单上有两工资信息查询表单具有查询及报表打印功能,表单上有两个打印按钮:查询结果打印、月工资汇总表打印。如果用户先个打印按钮:查询结果打印、月工资汇总表打印。如果用户先按查询类别进行了查询,则表格中显示满足查询条件的记录,按查询类别进行了查询,则表格中显示满足查询条件的记录,此时单击此时单击“查询结果打印查询结果打印”按钮将打印查询到记录的工资信息。按钮将打印查询到记录的工资信息。用户选择年月份后,如果不选择查询类别或查询类别选择用户选择年月份后,如果不选择查询类别或查询类别选

53、择“显显示全体员工示全体员工”,则表格中显示所有员工记录;此时,则表格中显示所有员工记录;此时,“月工资月工资汇总表打印汇总表打印”按钮用于打印全体员工的该月的工资报表,按部按钮用于打印全体员工的该月的工资报表,按部门分组打印。门分组打印。2021-9-35412.3.7 12.3.7 工资管理模块设计工资管理模块设计“查询结果打印查询结果打印”按钮的按钮的ClickClick事件代码事件代码 DO CASEDO CASE CASE THISFORM.Optiongroup1.Option1.Value=1 CASE THISFORM.Optiongroup1.Option1.Value=1

54、SET FILTER TO SET FILTER TO 编号编号=ALLTRIM(THISFORM.Text1.Value) and =ALLTRIM(THISFORM.Text1.Value) and 年月年月=ny=ny CASE THISFORM.Optiongroup1.Option2.Value=1 CASE THISFORM.Optiongroup1.Option2.Value=1 SET FILTER TO SET FILTER TO 姓名姓名=ALLTRIM(THISFORM.Text1.Value) and =ALLTRIM(THISFORM.Text1.Value) and

55、 年月年月=ny=ny CASE THISFORM.Optiongroup1.Option3.Value=1 CASE THISFORM.Optiongroup1.Option3.Value=1 SET FILTER TO SET FILTER TO 部门名称部门名称=ALLTRIM(THISFORM.Combo3.DisplayValue); =ALLTRIM(THISFORM.Combo3.DisplayValue); and and 年月年月=ny=ny CASE THISFORM.Optiongroup1.Option4.Value=1 CASE THISFORM.Optiongrou

56、p1.Option4.Value=1 SET FILTER TO SET FILTER TO 年月年月=ny=nyENDCASEENDCASEREPORT FORM .gz_bb1.frx PREVIEWREPORT FORM .gz_bb1.frx PREVIEW2021-9-35512.3.7 12.3.7 工资管理模块设计工资管理模块设计3. 3. 选择年月对话框设计选择年月对话框设计(1 1)选择年月对话框设计界面)选择年月对话框设计界面2021-9-35612.3.7 12.3.7 工资管理模块设计工资管理模块设计(2 2)选择年月对话框设计说明)选择年月对话框设计说明年份下拉列表框

57、(年份下拉列表框(Combo1Combo1)数据的获得)数据的获得 RowSourceType 6-RowSourceType 6-字段字段 RowSource year.RowSource year.年份名称年份名称月份下拉列表框(月份下拉列表框(Combo2Combo2)数据的获得)数据的获得 Combo2Combo2的的InitInit事件代码事件代码 THISFORM.Combo2.AddItem(01)THISFORM.Combo2.AddItem(01) THISFORM.Combo2.AddItem(02) THISFORM.Combo2.AddItem(02) 2021-9-3

58、5712.3.7 12.3.7 工资管理模块设计工资管理模块设计Combo1Combo1、Combo2Combo2的的ClickClick事件代码事件代码 nf=ALLTRIM(THISFORM.Combo1.DisplayValue)nf=ALLTRIM(THISFORM.Combo1.DisplayValue) yf=ALLTRIM(THISFORM.Combo2.DisplayValue) yf=ALLTRIM(THISFORM.Combo2.DisplayValue) ny=ALLTRIM(THISFORM.Combo1.DisplayValue); ny=ALLTRIM(THISFO

59、RM.Combo1.DisplayValue); +ALLTRIM(THISFORM.Combo2.DisplayValue) +ALLTRIM(THISFORM.Combo2.DisplayValue)2021-9-35812.3.7 12.3.7 工资管理模块设计工资管理模块设计4.4.工资报表设计工资报表设计(1 1)工资信息表()工资信息表(gz_bb1.frxgz_bb1.frx)报表设计)报表设计工资信息表报表打印结果工资信息表报表打印结果2021-9-35912.3.7 12.3.7 工资管理模块设计工资管理模块设计工资信息表报表设计界面工资信息表报表设计界面2021-9-360

60、12.3.7 12.3.7 工资管理模块设计工资管理模块设计(2 2)月工资汇总表()月工资汇总表(gz_bb2.frxgz_bb2.frx)报表设计)报表设计月工资汇总表输出结果月工资汇总表输出结果2021-9-36112.3.7 12.3.7 工资管理模块设计工资管理模块设计月工资汇总表报表设计界面月工资汇总表报表设计界面2021-9-36212.3.7 12.3.7 工资管理模块设计工资管理模块设计月工资汇总表报表设计界面月工资汇总表报表设计界面 报表设计器上的内容分为以下几类:提示信息、表格线、变报表设计器上的内容分为以下几类:提示信息、表格线、变量(字段变量、内存变量、系统内存变量、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论