第10章 应用系统开发实例.ppt
第第1010章章 应用系统开发实例应用系统开发实例4/2/20231本章目录导引本章目录导引 10.1 10.1 软件开发基本概念软件开发基本概念 10.2 10.2 数据库系统开发过程数据库系统开发过程 10.3 10.3 人事工资管理系统开发人事工资管理系统开发 10.4 10.4 编译与发布应用程序编译与发布应用程序4/2/2023210.110.1 软件开发基本概念软件开发基本概念 10.1.1 10.1.1 软件软件 10.1.2 10.1.2 软件工程软件工程 10.1.3 10.1.3 软件生命周期软件生命周期 4/2/2023310.1.10.1.1 1 软件软件 软软 件件 是是计计算算机机系系统统中中与与硬硬件件相相互互依依存存的的部部分分,它它是是包包括括程程序序、数数据据及及相相关关文文档档的的完完整整集集合合。其其中中,程程 序序 是是按按事事先先设设计计的的功功能能和和性性能能要要求求执执行行的的指指令令序序列列;数数 据据 是是使使程程序序能能正正常常操操纵纵信信息息的的数数据据结结构构;文文档档是是与与程程序序开开发发、维维护护和和使使用用有有关关的的图图文文材材料料。4/2/2023410.1.210.1.2 软件工程软件工程 软件工程软件工程是:是:把系统化的、规范的、可度量的途径把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化方法应用于软件开发、运行和维护的过程,也就是把工程化方法应用于软件设计中;应用于软件设计中;研究研究中提到的途径。中提到的途径。实质上,软件工程就是采用工程的概念、原理、技术和实质上,软件工程就是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法来开发与维护软件,把经过时间考验而证明正确的管理方法和最先进的软件开发技术结合起来,应用到软件开发和方法和最先进的软件开发技术结合起来,应用到软件开发和维护过程中,来解决软件危机问题。维护过程中,来解决软件危机问题。4/2/2023510.1.10.1.3 3 软件生命周期软件生命周期 同同其其它它事事物物一一样样,软软件件也也有有孕孕育育、诞诞生生、成成长长、成成熟熟、衰衰亡亡的的生生存存过过程程,称称其其为为计计算算机机软软件件的的生生命命周期周期。软软件件生生命命周周期期由由软软件件定定义义、软软件件开开发发和和运运行行维维护三个时期组成,每个时期又可划分成若干个阶段。护三个时期组成,每个时期又可划分成若干个阶段。4/2/2023610.1.10.1.3 3 软件生命周期软件生命周期 软软件件定定义义时时期期的的任任务务是是:确确定定软软件件开开发发工工程程必必须须完完成成的的总总目目标标;确确定定工工程程的的可可行行性性;导导出出实实现现工工程程目目标标应应该该采采用用的的策策略略及及系系统统必必须须完完成成的的功功能能;估估计计完完成成该该项项工工程程需需要要的的资资源源和和成成本本,并并且且制制定定工工程程进度表。进度表。软软件件定定义义时时期期可可划划分分为为问问题题定定义义、可可行行性性研研究究、需求分析三个阶段。需求分析三个阶段。4/2/2023710.110.1.3.3 软件生命周期软件生命周期 开开发发时时期期具具体体设设计计和和实实现现在在前前一一个个时时期期定定义义的的软件。软件。开开发发时时期期分分四四个个阶阶段段:概概要要设设计计、详详细细设设计计、编编码码和和单单元元测测试试、综综合合测测试试。其其中中前前两两个个阶阶段段又又称称为系统设计,后两个阶段又称为系统实现。为系统设计,后两个阶段又称为系统实现。4/2/2023810.1.310.1.3 软件生命周期软件生命周期 维维护护时时期期的的主主要要任任务务是是使使软软件件持持久久地地满满足足用用户的需求。软件维护时期不再进一步划分阶段。户的需求。软件维护时期不再进一步划分阶段。4/2/2023910.1.310.1.3 软件生命周期软件生命周期1.1.问题定义问题定义 问问题题定定义义阶阶段段必必须须回回答答的的关关键键问问题题是是:“要要解解决决的的问问题题是是什什么么”。通通过过调调研研,系系统统分分析析员员应应该该提提出出关关于于问问题题性性质质、工工程程目目标标和和工工程程规规模模的的书书面面报报告告,并且需要得到客户对这份报告的确认。并且需要得到客户对这份报告的确认。4/2/20231010.1.310.1.3 软件生命周期软件生命周期2.2.可行性研究可行性研究 这这个个阶阶段段要要回回答答的的关关键键问问题题是是:“上上一一个个阶阶段段所确定的问题是否有行得通的解决办法所确定的问题是否有行得通的解决办法”。可可行行性性研研究究的的目目的的就就是是用用最最小小的的代代价价在在尽尽可可能能短短的的时时间间内内确确定定问问题题是是否否能能够够解解决决。可可行行性性研研究究的的目的不是解决问题,而是确定问题是否值得去解决。目的不是解决问题,而是确定问题是否值得去解决。4/2/2023111010.1.3.1.3 软件生命周期软件生命周期2.2.可行性研究可行性研究 可行性研究包括四个方面的研究:可行性研究包括四个方面的研究:(1 1)经经济济可可行行性性:进进行行成成本本效效益益分分析析,从从经经济济角角度度判判断断系统开发是否系统开发是否“合算合算”。(2 2)技技术术可可行行性性:进进行行技技术术风风险险评评价价。从从开开发发者者的的技技术术实实力力、工工作作基基础础、问问题题的的复复杂杂性性等等方方面面出出发发,判判断断系系统统开开发发在时间、费用等限制条件下成功的可能性。在时间、费用等限制条件下成功的可能性。(3 3)法法律律可可行行性性:确确定定系系统统开开发发可可能能导导致致的的任任何何侵侵权权行行为、妨碍性后果和责任。为、妨碍性后果和责任。(4 4)方方案案的的选选择择:评评价价系系统统或或产产品品开开发发的的几几个个候候选选方方案案,最后给出结论性意见。最后给出结论性意见。4/2/20231210.10.1.3 1.3 软件生命周期软件生命周期3.3.需求分析需求分析 需需求求分分析析阶阶段段的的任任务务不不是是具具体体的的解解决决客客户户的的问问题题,而而是是准准确确回回答答“系系统统必必须须做做什什么么”这这个个问问题题,即即确确定定系系统统的的功功能能,对对目目标标系系统统提提出出完完整整、准准确确、清晰、具体的要求。清晰、具体的要求。系系统统分分析析员员在在需需求求分分析析阶阶段段必必须须和和用用户户密密切切配配合合,充充分分交交流流信信息息,以以得得出出经经过过用用户户确确认认的的系系统统需需求。求。4/2/20231310.1.310.1.3 软件生命周期软件生命周期4.4.概要设计概要设计 概概要要设设计计又又称称为为总总体体设设计计。概概要要设设计计阶阶段段的的任任务务是是概概括括地回答地回答“怎样实现系统目标?怎样实现系统目标?”这个问题。这个问题。总总体体设设计计过过程程可可分分为为两两个个阶阶段段:功功能能设设计计,确确立立软软件件系系统统的的实实现现方方案案;结结构构设设计计,确确定定软软件件的的体体系系结结构构,也也就就是是确确定系统由哪些模块组成以及模块间的关系。定系统由哪些模块组成以及模块间的关系。常常用用的的描描述述软软件件结结构构的的图图形形工工具具有有:层层次次图图、HIPOHIPO图图、结构图。结构图。4/2/20231410.1.310.1.3 软件生命周期软件生命周期5.5.详细设计详细设计 详详细细设设计计也也叫叫做做过过程程设设计计或或程程序序设设计计,它它不不同同于于编编码码或或编编程程。详详细细设设计计阶阶段段的的任任务务是是回回答答“怎怎样样具具体体地地实实现现系系统统目目标标?”这这个个问问题题。本本阶阶段段要要详详细细地地设设计计每每个个模模块块,确确定定实实现现模块功能的算法和数据结构。模块功能的算法和数据结构。常常用用的的详详细细设设计计工工具具有有:程程序序流流程程图图、N-SN-S图图(盒盒图图)、PADPAD(问题分析图)等。问题分析图)等。4/2/20231510.1.310.1.3 软件生命周期软件生命周期6.6.编码和单元测试编码和单元测试 这这个个阶阶段段的的关关键键任任务务是是写写出出正正确确、容容易易理理解解、容易维护的程序模块。容易维护的程序模块。程程序序员员根根据据目目标标系系统统的的性性质质和和实实际际环环境境,选选取取适适当当的的高高级级语语言言,把把详详细细设设计计的的结结果果翻翻译译成成用用选选定定语语言言书书写写的的程程序序,并并且且仔仔细细测测试试编编写写出出的的每每一一个个模模块。块。4/2/20231610.1.310.1.3 软件生命周期软件生命周期7.7.综合测试综合测试 这这个个阶阶段段的的任任务务是是通通过过各各种种类类型型的的测测试试(集集成成测测试试、确确认认测测试试、系系统统测测试试)及及相相应应的的调调试试使使软软件件达到预定的要求。达到预定的要求。4/2/20231710.1.10.1.3 3 软件生命周期软件生命周期8.8.软件维护软件维护 软软件件维维护护的的关关键键任任务务是是,通通过过各各种种必必要要的的维维护护活活动动使使系系统统持久地满足用户的需求。通常有四类维护活动:持久地满足用户的需求。通常有四类维护活动:(1 1)改正性维护:诊断和改正使用过程中发现的软件错误。)改正性维护:诊断和改正使用过程中发现的软件错误。(2 2)适应性维护:修改软件以适应环境的变化。)适应性维护:修改软件以适应环境的变化。(3 3)完完善善性性维维护护:根根据据用用户户的的要要求求改改进进或或扩扩充充软软件件,使使它它更完善。更完善。(4 4)预防性维护:修改软件为将来的维护活动预先做准备。)预防性维护:修改软件为将来的维护活动预先做准备。4/2/20231810.210.2 数据库应用系统开发过程数据库应用系统开发过程 1.1.需求分析需求分析 2.2.数据库设计数据库设计 3.3.应用程序中各功能模块设计应用程序中各功能模块设计 4.4.软件测试软件测试 5.5.应用程序发布应用程序发布 6.6.系统运行与维护系统运行与维护4/2/20231910.310.3 人事工资管理系统开发人事工资管理系统开发10.3.1 10.3.1 需求分析需求分析10.3.2 10.3.2 系统总体框架设计系统总体框架设计10.3.3 10.3.3 数据库设计数据库设计 10.3.4 10.3.4 主控程序设计主控程序设计 10.3.5 10.3.5 系统登录表单设计系统登录表单设计10.3.6 10.3.6 人事管理模块设计人事管理模块设计10.3.7 10.3.7 工资管理模块设计工资管理模块设计10.3.8 10.3.8 系统管理模块设计系统管理模块设计4/2/20232010.3.10.3.1 1 需求分析需求分析功能需求:功能需求:(1 1)数据维护)数据维护(2 2)数据查询)数据查询(3 3)工资计算)工资计算(4 4)报表打印)报表打印4/2/20232110.3.10.3.2 2 系统总体框架设计系统总体框架设计4/2/20232210.3.210.3.2 系统总体框架设计系统总体框架设计程序调用关系:程序调用关系:本本系系统统除除了了用用到到的的各各菜菜单单项项对对应应的的表表单单文文件件外外,还还有有下下列列文文件件:主主控控程程序序main.main.prgprg、系系统统登登录录窗窗口口pass.pass.scxscx、主菜单主菜单main_menu.main_menu.mprmpr。程程序序调调用用关关系系如如下下:主主控控程程序序main.main.prgprg中中调调用用“系系统统登登录录窗窗口口”表表单单pass.pass.scxscx,密密码码正正确确则则调调用用系系统统菜单菜单manimani_menu._menu.mprmpr。各菜单项调用相对应的表单。各菜单项调用相对应的表单。4/2/20232310.3.310.3.3 数据库设计数据库设计 人事工资管理系统的数据库(人事工资管理系统的数据库(E:RSGZRSGZK.DBCE:RSGZRSGZK.DBC)包含六包含六个表文件:人事表、工资表、部门表、职称表、年份表、用户个表文件:人事表、工资表、部门表、职称表、年份表、用户表。表。4/2/20232410.3.410.3.4 主控程序设计主控程序设计 主主文文件件就就是是主主控控程程序序,是是在在启启动动程程序序时时首首先先被被调调用的文件。主文件有以下几个作用:用的文件。主文件有以下几个作用:(1 1)对应用程序的环境进行初始化。)对应用程序的环境进行初始化。(2 2)作作为为应应用用程程序序执执行行的的起起始始点点,由由此此启启动动程程序序的逐级调用。的逐级调用。(3 3)显示初始的用户界面。)显示初始的用户界面。(4 4)控制事件循环。)控制事件循环。(5 5)恢复系统默认的环境。)恢复系统默认的环境。4/2/20232510.3.410.3.4 主控程序设计主控程序设计 核心代码:核心代码:DO FORM.pass.DO FORM.pass.scx scx&调用系统登录窗口调用系统登录窗口 On On ShutDownShutDown do do OnShutdown OnShutdown&退出系统时调用函数退出系统时调用函数onshutdownonshutdown()()READ EVENTS&READ EVENTS&建立事件循环建立事件循环 On On ShutDown ShutDown&释放当前的释放当前的OnOn ShutDown ShutDown命令命令 FUNCTION FUNCTION OnShutdownOnShutdown()()CLEAR EVENTS CLEAR EVENTS&退出事件循环退出事件循环 QUITQUIT ENDFUNC ENDFUNC4/2/20232610.3.510.3.5 系统登录表单设计系统登录表单设计1.系统登录表单设计界面系统登录表单设计界面4/2/20232710.3.510.3.5 系统登录表单设计系统登录表单设计2.2.功能及设计说明功能及设计说明 该该表表单单用用于于判判断断用用户户名名及及密密码码是是否否正正确确。若若正正确确,完完成成以以下下2 2项工作:项工作:(1 1)设设置置一一个个全全局局变变量量operatoperat,用用于于记记录录登登录录系系统统的的操操作作员员姓姓名名,系系统统中中有有二二个个地地方方要要用用到到该该操操作作员员的的姓姓名名或或代代号号:一一是是进进入入主主界界面面后后在在标标题题栏栏显显示示操操作作员员姓姓名名;二二是是操操作作员员在在系系统统管管理理模模块块的的口口令令设设置置中中更更改改自自己己的的口口令令时时,系系统统要要知知道道是哪个操作员。是哪个操作员。(2 2)调用菜单文件,显示系统主界面。)调用菜单文件,显示系统主界面。4/2/20232810.3.610.3.6 人事管理模块设计人事管理模块设计1.1.人事数据维护表单设计人事数据维护表单设计(1 1)人事数据维护表单设计界面)人事数据维护表单设计界面4/2/20232910.3.610.3.6 人事管理模块设计人事管理模块设计(2 2)“人事数据维护表单人事数据维护表单”功能及设计说明功能及设计说明 人人事事数数据据维维护护表表单单包包括括下下列列功功能能:数数据据录录入入、修修改改、删删除除、查询、浏览、保存、打印等。查询、浏览、保存、打印等。本本表表单单左左边边是是浏浏览览窗窗口口,便便于于用用户户浏浏览览数数据据;右右边边是是编编辑辑窗口,主要用于输入、修改数据。窗口,主要用于输入、修改数据。4/2/20233010.3.610.3.6 人事管理模块设计人事管理模块设计表单中录入数据的两种实现方法:表单中录入数据的两种实现方法:法一:表单中的控件与表文件中的字段绑定法一:表单中的控件与表文件中的字段绑定 这这种种方方式式下下,记记录录增增加加一一般般用用append append blankblank命命令令追追加加一一条条空空白白记记录录,以以让让用用户户输输入入数数据据。用用户户输输入入、修修改改数数据据后后,表表文文件件中中字字段段的的内内容容跟跟随随改改变变,不不用用再再作作保保存存。这这种种方方式式下下,如如果果有有“保保存存”按按钮钮,并并不不是是真真正正用用来来保保存存数数据据,而而是是用用于于设设置置按按钮钮的的有有效效性性及及控控件件是是否否只只读读等等。此此表表单单的的“保保存存”按按钮属于这种情况。钮属于这种情况。4/2/20233110.3.610.3.6 人事管理模块设计人事管理模块设计法二:表单中的控件与表文件中的字段不绑定。法二:表单中的控件与表文件中的字段不绑定。一一般般在在“增增加加”按按钮钮中中清清除除各各控控件件(例例如如文文本本框框)的的内内容容,以以便便用用户户输输入入新新的的数数据据;在在“保保存存”时时用用SQLSQL语语言言中中的的insertinsert语语句句将将控控件件(文文本本框框、编编辑辑框框、编编辑辑框框、按按钮钮组组、复复选选框框)的内容插入到表文件中。的内容插入到表文件中。4/2/20233210.3.610.3.6 人事管理模块设计人事管理模块设计以动态颜色显示选中的以动态颜色显示选中的GridGrid对象的行和列对象的行和列 本本例例中中浏浏览览数数据据时时,选选中中表表格格中中的的某某个个记记录录时时,该该行行用用不不同同颜颜色色显显示示,而而且且右右边边编编辑辑窗窗口口中中各各控控件件显显示示的的数数据据要要跟跟随随变变化化,为此要在表格控件的为此要在表格控件的AfterRowColChangeAfterRowColChange事件中加入代码:事件中加入代码:*以不同颜色显示选中的以不同颜色显示选中的GridGrid对象的行及列对象的行及列 This.This.SetAllSetAll(DynamicBackColorDynamicBackColor,IIF(This.,IIF(This.ActiveRowActiveRow;RecNoRecNo(),RGB(255,255,255),RGB(0,255,0),Column)(),RGB(255,255,255),RGB(0,255,0),Column)*选中表格数据后,右边文本框中的记录跟随变化选中表格数据后,右边文本框中的记录跟随变化 SELECT SELECT rsbrsb THISFORM.Refresh THISFORM.Refresh4/2/20233310.3.10.3.6 6 人事管理模块设计人事管理模块设计“添加相片添加相片”命令按钮的命令按钮的ClickClick事件代码为:事件代码为:wjmwjm=GETFILE()=GETFILE()IF NOT EMPTY(IF NOT EMPTY(wjmwjm)APPEND GENERAL APPEND GENERAL 相片相片 FROM&FROM&wjmwjm ENDIF ENDIF 使使用用APPENDAPPEND命命令令添添加加照照片片前前一一定定要要判判断断变变量量wjmwjm是是否否为为空空,否否则则,如如果果单单击击了了本本按按钮钮但但未未选选择择图图片片文文件件,就会出现就会出现“语法错误语法错误”的提示。的提示。4/2/20233410.3.610.3.6 人事管理模块设计人事管理模块设计2.2.人事信息查询表单设计人事信息查询表单设计(1 1)人事信息查询表单设计界面)人事信息查询表单设计界面4/2/20233510.3.610.3.6 人事管理模块设计人事管理模块设计(2 2)“人事数据维护表单人事数据维护表单”功能及设计说明功能及设计说明查询实现方法查询实现方法 实现查询的方法很多,例如:用实现查询的方法很多,例如:用Select-SQLSelect-SQL语言查询、用语言查询、用查询设计器件建立查询、利用视图进行查询等。查询设计器件建立查询、利用视图进行查询等。本例是利用表格显示人事表(本例是利用表格显示人事表(rsbrsb.dbf.dbf)中的查询数据,数中的查询数据,数据按查询条件用据按查询条件用set filter toset filter to命令过滤,条件由用户输入或选命令过滤,条件由用户输入或选择。择。4/2/20233610.3.610.3.6 人事管理模块设计人事管理模块设计操作说明操作说明 用户先通过选项按钮组选择查询类别,当用户选择按员工号或姓名查询用户先通过选项按钮组选择查询类别,当用户选择按员工号或姓名查询时,出现一个文本框,让用户输入员工编号或姓名。当用户选择按部门查询时,出现一个文本框,让用户输入员工编号或姓名。当用户选择按部门查询时,出现一个组合框,以便用户选择部门。时,出现一个组合框,以便用户选择部门。当用户选择按出生日期查询时,出现两个文本框,以便用户输入起始日当用户选择按出生日期查询时,出现两个文本框,以便用户输入起始日期与截止日期;如果用户只输入起始日期,则显示出生日期为起始日期之后期与截止日期;如果用户只输入起始日期,则显示出生日期为起始日期之后的所有记录;如果用户只输入截止日期,则显示出生日期为截止日期之前的的所有记录;如果用户只输入截止日期,则显示出生日期为截止日期之前的所有记录;如果用户既输入起始日期又输入截止日期,则显示出生日期为起所有记录;如果用户既输入起始日期又输入截止日期,则显示出生日期为起始日期之后且为截止日期之前的所有记录。如果用户选择显示全体记录,表始日期之后且为截止日期之前的所有记录。如果用户选择显示全体记录,表格中显示人事表(格中显示人事表(rsbrsb.dbf.dbf)中的所有记录。中的所有记录。4/2/20233710.10.3.6 3.6 人事管理模块设计人事管理模块设计打印按钮打印按钮 本表单中包含两个打印按钮:查询打印、按部门分组打印。本表单中包含两个打印按钮:查询打印、按部门分组打印。查询打印用于打印查询到的员工的人事信息表。按部门分组打查询打印用于打印查询到的员工的人事信息表。按部门分组打印,则是按部门分组打印所有员工的人事信息表,每组从新的印,则是按部门分组打印所有员工的人事信息表,每组从新的一页开始打印。代码分别为:一页开始打印。代码分别为:REPORT FORM.REPORT FORM.rsbrsb_bb1._bb1.frxfrx PREVIEW PREVIEW REPORT FORM.REPORT FORM.rsbrsb_bb2._bb2.frxfrx PREVIEW PREVIEW 4/2/20233810.10.3.6 3.6 人事管理模块设计人事管理模块设计按编号或姓名查询的实现按编号或姓名查询的实现 输入编号或姓名后在表格中显示查询的记录,可在文本框输入编号或姓名后在表格中显示查询的记录,可在文本框text1text1的的ValidValid事件中添加以下代码实现:事件中添加以下代码实现:SELECT SELECT rsbrsb 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.Refresh4/2/20233910.3.710.3.7 工资管理模块设计工资管理模块设计1.1.工资数据维护表单设计工资数据维护表单设计 (1 1)工资数据维护表单设计界面)工资数据维护表单设计界面4/2/20234010.3.10.3.7 7 工资管理模块设计工资管理模块设计(2 2)“工资数据维护表单工资数据维护表单”功能及设计说明功能及设计说明工资数据维护表单的主要功能工资数据维护表单的主要功能 输入、修改工资数据;输入、修改工资数据;新增某月工资数据;新增某月工资数据;删除某月工资数据;删除某月工资数据;对工资进行计算。对工资进行计算。4/2/20234110.3.10.3.7 7 工资管理模块设计工资管理模块设计新增某月工资数据新增某月工资数据 输输入入某某月月工工资资前前要要先先新新增增本本月月工工资资数数据据,即即对对工工资资数数据据进进行行月月初初始始化化。月月初初始始化化的的过过程程是是先先从从rsbrsb.dbf.dbf中中插插入入员员工工编编号号到到gzbgzb.dbf.dbf中中,生生成成本本月月工工资资的的员员工工名名单单;再再将将上上月月工工资资数数据据中中的的固固定定项项部部分分(基基本本工工资资、岗岗位位津津贴贴、保保险险)导导入入到到gzbgzb.dbf.dbf中中,用用户户只只需需要要输输入入工工资资数数据据项项中中的的变变动动项项目目(奖奖励励、水水电电),这这样可减少用户的输入工作量。样可减少用户的输入工作量。当当然然,首首次次使使用用人人事事工工资资管管理理系系统统进进行行工工资资数数据据月月初初始始化化时时,上月工资数据不存在,需要输入所有的工资数据。上月工资数据不存在,需要输入所有的工资数据。4/2/20234210.3.10.3.7 7 工资管理模块设计工资管理模块设计注意:注意:工工资资表表中中的的员员工工名名单单是是从从rsbrsb.dbf.dbf得得到到,不不是是从从上上月月工工资资表表文文件件中中得得到到,因因为为本本月月如如果果人人员员发发生生了了变变化化(例例如如:调调入入、调调出出),本本月月工工资资表表的的人人员员名名单单与与上上月月将将不不同同,而而rsbrsb.dbf.dbf中中的的人人员名单能反映这种变化。员名单能反映这种变化。工工资资数数据据的的固固定定项项部部分分是是从从上上月月工工资资表表文文件件得得到到,如如果果固固定项部分发生了变化,在录入界面中进行修改即可。定项部分发生了变化,在录入界面中进行修改即可。4/2/20234310.3.10.3.7 7 工资管理模块设计工资管理模块设计工资录入工资录入 工工资资月月初初始始化化后后就就可可以以录录入入和和修修改改工工资资,单单击击“打打开开”按按钮钮,弹弹出出“选选择择工工资资年年月月”对对话话框框,先先选选择择年年份份、月月份份,调调出出该该月月工工资资数数据据后后,就就可可以以输输入、修改工资数据。入、修改工资数据。说说明明:工工资资数数据据输输入入和和显显示示界界面面是是用用表表格格实实现现的的,除除了了工工资资表表中中的的各各项项数数据据外外,还还要要显显示示员员工工对对应应的的姓姓名名、部部门门名名称称;而而工工资资表表中中有有员员工工编编号号,人人事事表表中中有有员员工工编编号号、姓姓名名及及部部门门代代码码,部部门门代代码码表表中中有有部部门门代代码码和和部部门门名名称称;表表格格中中的的数数据据涉涉及及到到三三个个表表:gzbgzb.dbf.dbf、rsbrsb.dbf.dbf、bmdmbmdm.dbf.dbf。本本处处是是先先将将三三个个表表中中的的数数据据生生成成视视图图,然然后后用用视视图图文文件件作作为为表表格格的的数数据据源源,在在表表格格中中显显示示视图文件的内容。视图文件的内容。4/2/20234410.3.10.3.7 7 工资管理模块设计工资管理模块设计使用视图更新基表数据使用视图更新基表数据建立视图建立视图 OPEN DATABASE.OPEN DATABASE.rsgzkrsgzk CREATE SQL VIEW CREATE SQL VIEW gz gz_view AS;_view AS;SELECT SELECT gzbgzb.编号编号,rsbrsb.姓名姓名,gzbgzb.基本工资基本工资,gzbgzb.岗位津贴岗位津贴,;,;gzbgzb.奖励奖励,gzbgzb.保险保险,gzbgzb.水电水电,bmdmbmdm.部门名称部门名称,gzbgzb.年月年月;FROM FROM rsbrsb,gzbgzb,bmdmbmdm;WHERE WHERE gzbgzb.编号编号=rsbrsb.编号编号 andand rsb rsb.部门代码部门代码=bmdmbmdm.代码代码;andand gzb gzb.年月年月=nyny4/2/20234510.310.3.7.7 工资管理模块设计工资管理模块设计设置表可更新设置表可更新 DBSETPROP(DBSETPROP(gzgz_view,view,tables,_view,view,tables,rsbrsb,gzbgzb,bmdmbmdm)设置更新主键设置更新主键 DBSETPROP(DBSETPROP(gzgz_view._view.编号编号,Field,Field,KeyfieldKeyfield,.T.),.T.)DBSETPROP(DBSETPROP(gzgz_view._view.年月年月,Field,Field,KeyfieldKeyfield,.T.),.T.)4/2/20234610.310.3.7.7 工资管理模块设计工资管理模块设计设置可更新字段名设置可更新字段名 DBSETPROP(DBSETPROP(gzgz_view._view.编号编号,Field,Field,UpdateNameUpdateName,gzbgzb.编号编号)DBSETPROP(DBSETPROP(gzgz_view._view.姓名姓名,Field,Field,UpdateNameUpdateName,rsbrsb.姓名姓名)DBSETPROP(DBSETPROP(gzgz_view._view.基本工资基本工资,Field,Field,UpdateNameUpdateName,gzbgzb.基本工资基本工资)DBSETPROP(DBSETPROP(gzgz_view._view.岗位津贴岗位津贴,Field,Field,UpdateNameUpdateName,gzbgzb.岗位津贴岗位津贴)DBSETPROP(DBSETPROP(gzgz_view._view.奖励奖励,Field,Field,UpdateNameUpdateName,gzbgzb.奖励奖励)DBSETPROP(DBSETPROP(gzgz_view._view.保险保险,Field,Field,UpdateNameUpdateName,gzbgzb.保险保险)DBSETPROP(DBSETPROP(gzgz_view._view.水电水电,Field,Field,UpdateNameUpdateName,gzbgzb.水电水电)DBSETPROP(DBSETPROP(gzgz_view._view.部门名称部门名称,Field,Field,UpdateNameUpdateName,bmdmbmdm.部门名称部门名称)DBSETPROP(DBSETPROP(gzgz_view._view.年月年月,Field,Field,UpdateNameUpdateName,gzbgzb.年月年月)4/2/20234710.3.10.3.7 7 工资管理模块设计工资管理模块设计设置可更新字段设置可更新字段 DBSETPROP(DBSETPROP(gzgz_view._view.基本工资基本工资,Field,Field,UpdatableUpdatable,.T.),.T.)DBSETPROP(DBSETPROP(gzgz_view._view.岗位津贴岗位津贴,Field,Field,UpdatableUpdatable,.T.),.T.)DBSETPROP(DBSETPROP(gzgz_view._view.奖励奖励,Field,Field,UpdatableUpdatable,.T.),.T.)DBSETPROP(DBSETPROP(gzgz_view._view.水电水电,Field,Field,UpdatableUpdatable,.T.),.T.)DBSETPROP(DBSETPROP(gzgz_view._view.保险保险,Field,Field,UpdatableUpdatable,.T.),.T.)4/2/20234810.3.10.3.7 7 工资管理模块设计工资管理模块设计激活更新功能激活更新功能 DBSETPROP(DBSETPROP(gzgz_view,view,_view,view,SendUpdatesSendUpdates,.T.),.T.)将视图文件作为表格的数据源将视图文件作为表格的数据源 THISFORM.Grid1.THISFORM.Grid1.RecordSourceTypeRecordSourceType=0=0 THISFORM.Grid1.THISFORM.Grid1.RecordSourceRecordSource=gzgz_view_view4/2/20234910.3.10.3.7 7 工资管理模块设计工资管理模块设计2.2.工资信息查询表单设计工资信息查询表单设计 (1 1)工资信息查询表单设计界面)工资信息查询表单设计界面4/2/20235010.3.710.3.7 工资管理模块设计工资管理模块设计(2 2)“工资信息查询表单工资信息查询表单”功能及设计说明功能及设计说明查询实现查询实现 工工资资信信息息查查询询表表单单是是用用表表格格来来显显示示查查询询数数据据,表表格格的的数数据据源源是是一一个个临临时时表表。选选择择年年份份和和月月份份后后,单单击击确确定定按按钮钮时时会会先先生生成成一一个个临临时时表表gzbgzb_temp.dbf_temp.dbf,再再设设置置表表格格数数据据源源为为该该临临时时表表。选选择择查查询询类类别别后后,输输入入或或选选择择查查询询条条件件可可以以用用set set filter filter toto语语句过滤表格中的数据,从而只显示满足条件的记录。句过滤表格中的数据,从而只显示满足条件的记录。4/2/20235110.3.710.3.7 工资管理模块设计工资管理模块设计核心代码核心代码*将查询结果保存到临时表将查询结果保存到临时表 SELECT SELECT gzbgzb.编号编号,rsbrsb.姓名姓名,gzbgzb.基本工资基本工资,gzbgzb.岗位津贴岗位津贴,;,;gzbgzb.奖励奖励,gzbgzb.应发工资应发工资,gzbgzb.保险保险,gzbgzb.水电水电,;,;gzbgzb.实发工资实发工资,bmdmbmdm.部门名称部门名称,gzbgzb.年月年月;FROM FROM rsbrsb,gzbgzb,bmdmbmdm;WHERE WHERE rsbrsb.编号编号=gzbgzb.编号编号 andand rsb rsb.部门代码部门代码=bmdmbmdm.代码代码;INTO CURSORINTO CURSOR gzb gzb_temp_temp*设定表格数据源设定表格数据源 THISFORM.Grid1.THISFORM.Grid1.RecordSourceRecordSource=gzbgzb_temp_temp4/2/20235210.3.710.3.7 工资管理模块设计工资管理模块设计报表打印报表打印 工工资资信信息息查查询询表表单单具具有有查查询询及及报报表表打打印印功功能能,表表单单上上有有两两个个打打印印按按钮钮:查查询询结结果果打打印印、月月工工资资汇汇总总表表打打印印。如如果果用用户户先先按按查查询询类类别别进进行行了了查查询询,则则表表格格中中显显示示满满足足查查询询条条件件的的记记录录,此此时时单单击击“查查询询结结果果打