资源预览内容
第1页 / 共84页
第2页 / 共84页
第3页 / 共84页
第4页 / 共84页
第5页 / 共84页
第6页 / 共84页
第7页 / 共84页
第8页 / 共84页
第9页 / 共84页
第10页 / 共84页
亲,该文档总共84页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第1212章章 应用系统开发实例应用系统开发实例9/27/20241本章目录导引本章目录导引 12.1 12.1 软件开发基本概念软件开发基本概念 12.2 12.2 数据库系统开发过程数据库系统开发过程 12.3 12.3 人事工资管理系统开发人事工资管理系统开发 12.4 12.4 编译与发布应用程序编译与发布应用程序9/27/2024212.1 12.1 软件开发基本概念软件开发基本概念 12.1.1 12.1.1 软件软件 12.1.2 12.1.2 软件工程软件工程 12.1.3 12.1.3 软件生命周期软件生命周期 9/27/2024312.1.1 12.1.1 软件软件 软软 件件 是是计计算算机机系系统统中中与与硬硬件件相相互互依依存存的的部部分分,它它是是包包括括程程序序、数数据据及及相相关关文文档档的的完完整整集集合合。其其中中,程程 序序 是是按按事事先先设设计计的的功功能能和和性性能能要要求求执执行行的的指指令令序序列列 ; 数数 据据 是是使使程程序序能能正正常常操操纵纵信信息息的的数数据据结结构构; 文文档档是是与与程程序序开开发发、维维护护和和使使用用有有关关的的图图文文材材料料。9/27/2024412.1.2 12.1.2 软件工程软件工程 软件工程软件工程是:是: 把系统化的、规范的、可度量的途径把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化方法应用于软件开发、运行和维护的过程,也就是把工程化方法应用于软件设计中;应用于软件设计中; 研究研究中提到的途径。中提到的途径。 实质上,软件工程就是采用工程的概念、原理、技术和实质上,软件工程就是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法来开发与维护软件,把经过时间考验而证明正确的管理方法和最先进的软件开发技术结合起来,应用到软件开发和方法和最先进的软件开发技术结合起来,应用到软件开发和维护过程中,来解决软件危机问题。维护过程中,来解决软件危机问题。 9/27/2024512.1.3 12.1.3 软件生命周期软件生命周期 同同其其它它事事物物一一样样,软软件件也也有有孕孕育育、诞诞生生、成成长长、成成熟熟、衰衰亡亡的的生生存存过过程程,称称其其为为计计算算机机软软件件的的生生命命周期周期。 软软件件生生命命周周期期由由软软件件定定义义、软软件件开开发发和和运运行行维维护三个时期组成,每个时期又可划分成若干个阶段。护三个时期组成,每个时期又可划分成若干个阶段。9/27/2024612.1.3 12.1.3 软件生命周期软件生命周期 软软件件定定义义时时期期的的任任务务是是:确确定定软软件件开开发发工工程程必必须须完完成成的的总总目目标标;确确定定工工程程的的可可行行性性;导导出出实实现现工工程程目目标标应应该该采采用用的的策策略略及及系系统统必必须须完完成成的的功功能能;估估计计完完成成该该项项工工程程需需要要的的资资源源和和成成本本,并并且且制制定定工工程程进度表。进度表。 软软件件定定义义时时期期可可划划分分为为问问题题定定义义、可可行行性性研研究究、需求分析三个阶段。需求分析三个阶段。9/27/2024712.1.3 12.1.3 软件生命周期软件生命周期 开开发发时时期期具具体体设设计计和和实实现现在在前前一一个个时时期期定定义义的的软件。软件。 开开发发时时期期分分四四个个阶阶段段:概概要要设设计计、详详细细设设计计、编编码码和和单单元元测测试试、综综合合测测试试。其其中中前前两两个个阶阶段段又又称称为系统设计,后两个阶段又称为系统实现。为系统设计,后两个阶段又称为系统实现。 9/27/2024812.1.3 12.1.3 软件生命周期软件生命周期 维维护护时时期期的的主主要要任任务务是是使使软软件件持持久久地地满满足足用用户的需求。软件维护时期不再进一步划分阶段。户的需求。软件维护时期不再进一步划分阶段。 9/27/2024912.1.3 12.1.3 软件生命周期软件生命周期1.1.问题定义问题定义 问问题题定定义义阶阶段段必必须须回回答答的的关关键键问问题题是是:“要要解解决决的的问问题题是是什什么么”。通通过过调调研研,系系统统分分析析员员应应该该提提出出关关于于问问题题性性质质、工工程程目目标标和和工工程程规规模模的的书书面面报报告告,并且需要得到客户对这份报告的确认。并且需要得到客户对这份报告的确认。9/27/20241012.1.3 12.1.3 软件生命周期软件生命周期2.2.可行性研究可行性研究 这这个个阶阶段段要要回回答答的的关关键键问问题题是是:“上上一一个个阶阶段段所确定的问题是否有行得通的解决办法所确定的问题是否有行得通的解决办法”。 可可行行性性研研究究的的目目的的就就是是用用最最小小的的代代价价在在尽尽可可能能短短的的时时间间内内确确定定问问题题是是否否能能够够解解决决。可可行行性性研研究究的的目的不是解决问题,而是确定问题是否值得去解决。目的不是解决问题,而是确定问题是否值得去解决。9/27/20241112.1.3 12.1.3 软件生命周期软件生命周期2.2.可行性研究可行性研究 可行性研究包括四个方面的研究:可行性研究包括四个方面的研究: (1 1)经经济济可可行行性性:进进行行成成本本效效益益分分析析,从从经经济济角角度度判判断断系统开发是否系统开发是否“合算合算”。 (2 2)技技术术可可行行性性:进进行行技技术术风风险险评评价价。从从开开发发者者的的技技术术实实力力、工工作作基基础础、问问题题的的复复杂杂性性等等方方面面出出发发,判判断断系系统统开开发发在时间、费用等限制条件下成功的可能性。在时间、费用等限制条件下成功的可能性。 (3 3)法法律律可可行行性性:确确定定系系统统开开发发可可能能导导致致的的任任何何侵侵权权行行为、妨碍性后果和责任。为、妨碍性后果和责任。 (4 4)方方案案的的选选择择:评评价价系系统统或或产产品品开开发发的的几几个个候候选选方方案案,最后给出结论性意见。最后给出结论性意见。9/27/20241212.1.3 12.1.3 软件生命周期软件生命周期3.3.需求分析需求分析 需需求求分分析析阶阶段段的的任任务务不不是是具具体体的的解解决决客客户户的的问问题题,而而是是准准确确回回答答“系系统统必必须须做做什什么么”这这个个问问题题,即即确确定定系系统统的的功功能能,对对目目标标系系统统提提出出完完整整、准准确确、清晰、具体的要求。清晰、具体的要求。 系系统统分分析析员员在在需需求求分分析析阶阶段段必必须须和和用用户户密密切切配配合合,充充分分交交流流信信息息,以以得得出出经经过过用用户户确确认认的的系系统统需需求。求。9/27/20241312.1.3 12.1.3 软件生命周期软件生命周期4.4.概要设计概要设计 概概要要设设计计又又称称为为总总体体设设计计。概概要要设设计计阶阶段段的的任任务务是是概概括括地回答地回答“怎样实现系统目标?怎样实现系统目标?”这个问题。这个问题。 总总体体设设计计过过程程可可分分为为两两个个阶阶段段:功功能能设设计计,确确立立软软件件系系统统的的实实现现方方案案;结结构构设设计计,确确定定软软件件的的体体系系结结构构,也也就就是是确确定系统由哪些模块组成以及模块间的关系。定系统由哪些模块组成以及模块间的关系。 常常用用的的描描述述软软件件结结构构的的图图形形工工具具有有:层层次次图图、HIPOHIPO图图、结构图。结构图。9/27/20241412.1.3 12.1.3 软件生命周期软件生命周期5.5.详细设计详细设计 详详细细设设计计也也叫叫做做过过程程设设计计或或程程序序设设计计,它它不不同同于于编编码码或或编编程程。详详细细设设计计阶阶段段的的任任务务是是回回答答“怎怎样样具具体体地地实实现现系系统统目目标标?”这这个个问问题题。本本阶阶段段要要详详细细地地设设计计每每个个模模块块,确确定定实实现现模块功能的算法和数据结构。模块功能的算法和数据结构。 常常用用的的详详细细设设计计工工具具有有:程程序序流流程程图图、N-SN-S图图(盒盒图图)、PADPAD(问题分析图)等。(问题分析图)等。9/27/20241512.1.3 12.1.3 软件生命周期软件生命周期6.6.编码和单元测试编码和单元测试 这这个个阶阶段段的的关关键键任任务务是是写写出出正正确确、容容易易理理解解、容易维护的程序模块。容易维护的程序模块。 程程序序员员根根据据目目标标系系统统的的性性质质和和实实际际环环境境,选选取取适适当当的的高高级级语语言言,把把详详细细设设计计的的结结果果翻翻译译成成用用选选定定语语言言书书写写的的程程序序,并并且且仔仔细细测测试试编编写写出出的的每每一一个个模模块。块。9/27/20241612.1.3 12.1.3 软件生命周期软件生命周期7.7.综合测试综合测试 这这个个阶阶段段的的任任务务是是通通过过各各种种类类型型的的测测试试(集集成成测测试试、确确认认测测试试、系系统统测测试试)及及相相应应的的调调试试使使软软件件达到预定的要求。达到预定的要求。9/27/20241712.1.3 12.1.3 软件生命周期软件生命周期8.8.软件维护软件维护 软软件件维维护护的的关关键键任任务务是是,通通过过各各种种必必要要的的维维护护活活动动使使系系统统持久地满足用户的需求。通常有四类维护活动:持久地满足用户的需求。通常有四类维护活动: (1 1)改正性维护:诊断和改正使用过程中发现的软件错误。)改正性维护:诊断和改正使用过程中发现的软件错误。 (2 2)适应性维护:修改软件以适应环境的变化。)适应性维护:修改软件以适应环境的变化。 (3 3)完完善善性性维维护护:根根据据用用户户的的要要求求改改进进或或扩扩充充软软件件,使使它它更完善。更完善。 (4 4)预防性维护:修改软件为将来的维护活动预先做准备。)预防性维护:修改软件为将来的维护活动预先做准备。9/27/20241812.2 12.2 数据库应用系统开发过程数据库应用系统开发过程 1. 1. 需求分析需求分析 2. 2. 数据库设计数据库设计 3. 3. 应用程序中各功能模块设计应用程序中各功能模块设计 4. 4. 软件测试软件测试 5. 5. 应用程序发布应用程序发布 6. 6. 系统运行与维护系统运行与维护9/27/20241912.3 12.3 人事工资管理系统开发人事工资管理系统开发12.3.1 12.3.1 需求分析需求分析12.3.2 12.3.2 系统总体框架设计系统总体框架设计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 系统管理模块设计系统管理模块设计9/27/20242012.3.1 12.3.1 需求分析需求分析功能需求:功能需求:(1 1)数据维护)数据维护(2 2)数据查询)数据查询(3 3)工资计算)工资计算(4 4)报表打印)报表打印9/27/20242112.3.2 12.3.2 系统总体框架设计系统总体框架设计9/27/20242212.3.2 12.3.2 系统总体框架设计系统总体框架设计程序调用关系:程序调用关系: 本本系系统统除除了了用用到到的的各各菜菜单单项项对对应应的的表表单单文文件件外外,还还有有下下列列文文件件:主主控控程程序序main.prgmain.prg、系系统统登登录录窗窗口口pass.scxpass.scx、主菜单、主菜单main_menu.mprmain_menu.mpr。 程程序序调调用用关关系系如如下下:主主控控程程序序main.prgmain.prg中中调调用用“系系统统登登录录窗窗口口”表表单单pass.scxpass.scx,密密码码正正确确则则调调用用系系统统菜单菜单mani_menu.mprmani_menu.mpr。各菜单项调用相对应的表单。各菜单项调用相对应的表单。 9/27/20242312.3.3 12.3.3 数据库设计数据库设计 人事工资管理系统的数据库(人事工资管理系统的数据库(E:RSGZRSGZK.DBCE:RSGZRSGZK.DBC)包含六)包含六个表文件:人事表、工资表、部门表、职称表、年份表、用户个表文件:人事表、工资表、部门表、职称表、年份表、用户表。表。9/27/20242412.3.4 12.3.4 主控程序设计主控程序设计 主主文文件件就就是是主主控控程程序序,是是在在启启动动程程序序时时首首先先被被调调用的文件。主文件有以下几个作用:用的文件。主文件有以下几个作用: (1 1)对应用程序的环境进行初始化。)对应用程序的环境进行初始化。 (2 2)作作为为应应用用程程序序执执行行的的起起始始点点,由由此此启启动动程程序序的逐级调用。的逐级调用。 (3 3)显示初始的用户界面。)显示初始的用户界面。 (4 4)控制事件循环。)控制事件循环。 (5 5)恢复系统默认的环境。)恢复系统默认的环境。9/27/20242512.3.4 12.3.4 主控程序设计主控程序设计 核心代码:核心代码: DO FORM .pass.scx & DO FORM .pass.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 &退出事件循环退出事件循环 QUIT QUIT ENDFUNC ENDFUNC9/27/20242612.3.5 12.3.5 系统登录表单设计系统登录表单设计1. 系统登录表单设计界面系统登录表单设计界面9/27/20242712.3.5 12.3.5 系统登录表单设计系统登录表单设计2.2.功能及设计说明功能及设计说明 该该表表单单用用于于判判断断用用户户名名及及密密码码是是否否正正确确。若若正正确确,完完成成以以下下2 2项工作:项工作: (1 1)设设置置一一个个全全局局变变量量operatoperat,用用于于记记录录登登录录系系统统的的操操作作员员姓姓名名,系系统统中中有有二二个个地地方方要要用用到到该该操操作作员员的的姓姓名名或或代代号号:一一是是进进入入主主界界面面后后在在标标题题栏栏显显示示操操作作员员姓姓名名;二二是是操操作作员员在在系系统统管管理理模模块块的的口口令令设设置置中中更更改改自自己己的的口口令令时时,系系统统要要知知道道是哪个操作员。是哪个操作员。 (2 2)调用菜单文件,显示系统主界面。)调用菜单文件,显示系统主界面。 9/27/20242812.3.6 12.3.6 人事管理模块设计人事管理模块设计1.1.人事数据维护表单设计人事数据维护表单设计(1 1)人事数据维护表单设计界面)人事数据维护表单设计界面9/27/20242912.3.6 12.3.6 人事管理模块设计人事管理模块设计(2 2)“人事数据维护表单人事数据维护表单”功能及设计说明功能及设计说明 人人事事数数据据维维护护表表单单包包括括下下列列功功能能:数数据据录录入入、修修改改、删删除除、查询、浏览、保存、打印等。查询、浏览、保存、打印等。 本本表表单单左左边边是是浏浏览览窗窗口口,便便于于用用户户浏浏览览数数据据;右右边边是是编编辑辑窗口,主要用于输入、修改数据。窗口,主要用于输入、修改数据。9/27/20243012.3.6 12.3.6 人事管理模块设计人事管理模块设计表单中录入数据的两种实现方法:表单中录入数据的两种实现方法: 法一:表单中的控件与表文件中的字段绑定法一:表单中的控件与表文件中的字段绑定 这这种种方方式式下下,记记录录增增加加一一般般用用append append blankblank命命令令追追加加一一条条空空白白记记录录,以以让让用用户户输输入入数数据据。用用户户输输入入、修修改改数数据据后后,表表文文件件中中字字段段的的内内容容跟跟随随改改变变,不不用用再再作作保保存存。这这种种方方式式下下,如如果果有有“保保存存”按按钮钮,并并不不是是真真正正用用来来保保存存数数据据,而而是是用用于于设设置置按按钮钮的的有有效效性性及及控控件件是是否否只只读读等等。此此表表单单的的“保保存存”按按钮属于这种情况。钮属于这种情况。9/27/20243112.3.6 12.3.6 人事管理模块设计人事管理模块设计法二:表单中的控件与表文件中的字段不绑定。法二:表单中的控件与表文件中的字段不绑定。 一一般般在在“增增加加”按按钮钮中中清清除除各各控控件件(例例如如文文本本框框)的的内内容容,以以便便用用户户输输入入新新的的数数据据;在在“保保存存”时时用用SQLSQL语语言言中中的的insertinsert语语句句将将控控件件(文文本本框框、编编辑辑框框、编编辑辑框框、按按钮钮组组、复复选选框框)的内容插入到表文件中。的内容插入到表文件中。9/27/20243212.3.6 12.3.6 人事管理模块设计人事管理模块设计以动态颜色显示选中的以动态颜色显示选中的GridGrid对象的行和列对象的行和列 本本例例中中浏浏览览数数据据时时,选选中中表表格格中中的的某某个个记记录录时时,该该行行用用不不同同颜颜色色显显示示,而而且且右右边边编编辑辑窗窗口口中中各各控控件件显显示示的的数数据据要要跟跟随随变变化化,为此要在表格控件的为此要在表格控件的AfterRowColChangeAfterRowColChange事件中加入代码:事件中加入代码: * *以不同颜色显示选中的以不同颜色显示选中的GridGrid对象的行及列对象的行及列 This.SetAll(DynamicBackColor,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 rsb SELECT rsb THISFORM.Refresh THISFORM.Refresh9/27/20243312.3.6 12.3.6 人事管理模块设计人事管理模块设计“添加相片添加相片” ” 命令按钮的命令按钮的ClickClick事件代码为:事件代码为: wjm=GETFILE() wjm=GETFILE() IF NOT EMPTY(wjm) IF NOT EMPTY(wjm) APPEND GENERAL APPEND GENERAL 相片相片 FROM &wjm FROM &wjm ENDIF ENDIF 使使用用APPENDAPPEND命命令令添添加加照照片片前前一一定定要要判判断断变变量量wjmwjm是是否否为为空空,否否则则,如如果果单单击击了了本本按按钮钮但但未未选选择择图图片片文文件件,就会出现就会出现“语法错误语法错误”的提示。的提示。9/27/20243412.3.6 12.3.6 人事管理模块设计人事管理模块设计2. 2. 人事信息查询表单设计人事信息查询表单设计(1 1)人事信息查询表单设计界面)人事信息查询表单设计界面9/27/20243512.3.6 12.3.6 人事管理模块设计人事管理模块设计(2 2)“人事数据维护表单人事数据维护表单”功能及设计说明功能及设计说明查询实现方法查询实现方法 实现查询的方法很多,例如:用实现查询的方法很多,例如:用Select-SQLSelect-SQL语言查询、用语言查询、用查询设计器件建立查询、利用视图进行查询等。查询设计器件建立查询、利用视图进行查询等。 本例是利用表格显示人事表(本例是利用表格显示人事表(rsb.dbfrsb.dbf)中的查询数据,数)中的查询数据,数据按查询条件用据按查询条件用set filter toset filter to命令过滤,条件由用户输入或选命令过滤,条件由用户输入或选择。择。9/27/20243612.3.6 12.3.6 人事管理模块设计人事管理模块设计操作说明操作说明 用户先通过选项按钮组选择查询类别,当用户选择按员工号或姓名查询用户先通过选项按钮组选择查询类别,当用户选择按员工号或姓名查询时,出现一个文本框,让用户输入员工编号或姓名。当用户选择按部门查询时,出现一个文本框,让用户输入员工编号或姓名。当用户选择按部门查询时,出现一个组合框,以便用户选择部门。时,出现一个组合框,以便用户选择部门。 当用户选择按出生日期查询时,出现两个文本框,以便用户输入起始日当用户选择按出生日期查询时,出现两个文本框,以便用户输入起始日期与截止日期;如果用户只输入起始日期,则显示出生日期为起始日期之后期与截止日期;如果用户只输入起始日期,则显示出生日期为起始日期之后的所有记录;如果用户只输入截止日期,则显示出生日期为截止日期之前的的所有记录;如果用户只输入截止日期,则显示出生日期为截止日期之前的所有记录;如果用户既输入起始日期又输入截止日期,则显示出生日期为起所有记录;如果用户既输入起始日期又输入截止日期,则显示出生日期为起始日期之后且为截止日期之前的所有记录。如果用户选择显示全体记录,表始日期之后且为截止日期之前的所有记录。如果用户选择显示全体记录,表格中显示人事表(格中显示人事表(rsb.dbfrsb.dbf)中的所有记录。)中的所有记录。9/27/20243712.3.6 12.3.6 人事管理模块设计人事管理模块设计打印按钮打印按钮 本表单中包含两个打印按钮:查询打印、按部门分组打印。本表单中包含两个打印按钮:查询打印、按部门分组打印。查询打印用于打印查询到的员工的人事信息表。按部门分组打查询打印用于打印查询到的员工的人事信息表。按部门分组打印,则是按部门分组打印所有员工的人事信息表,每组从新的印,则是按部门分组打印所有员工的人事信息表,每组从新的一页开始打印。代码分别为:一页开始打印。代码分别为: REPORT FORM .rsb_bb1.frx PREVIEW REPORT FORM .rsb_bb1.frx PREVIEW REPORT FORM .rsb_bb2.frx PREVIEW REPORT FORM .rsb_bb2.frx PREVIEW 9/27/20243812.3.6 12.3.6 人事管理模块设计人事管理模块设计按编号或姓名查询的实现按编号或姓名查询的实现 输入编号或姓名后在表格中显示查询的记录,可在文本框输入编号或姓名后在表格中显示查询的记录,可在文本框text1text1的的ValidValid事件中添加以下代码实现:事件中添加以下代码实现: SELECT rsb SELECT 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)9/27/20243912.3.7 12.3.7 工资管理模块设计工资管理模块设计1. 1. 工资数据维护表单设计工资数据维护表单设计 (1 1)工资数据维护表单设计界面)工资数据维护表单设计界面9/27/20244012.3.7 12.3.7 工资管理模块设计工资管理模块设计 (2 2)“工资数据维护表单工资数据维护表单” ” 功能及设计说明功能及设计说明工资数据维护表单的主要功能工资数据维护表单的主要功能 输入、修改工资数据;输入、修改工资数据; 新增某月工资数据;新增某月工资数据; 删除某月工资数据;删除某月工资数据; 对工资进行计算。对工资进行计算。9/27/20244112.3.7 12.3.7 工资管理模块设计工资管理模块设计新增某月工资数据新增某月工资数据 输输入入某某月月工工资资前前要要先先新新增增本本月月工工资资数数据据,即即对对工工资资数数据据进进行行月月初初始始化化。月月初初始始化化的的过过程程是是先先从从rsb.dbfrsb.dbf中中插插入入员员工工编编号号到到gzb.dbfgzb.dbf中中,生生成成本本月月工工资资的的员员工工名名单单;再再将将上上月月工工资资数数据据中中的的固固定定项项部部分分(基基本本工工资资、岗岗位位津津贴贴、保保险险)导导入入到到gzb.dbfgzb.dbf中中,用用户户只只需需要要输输入入工工资资数数据据项项中中的的变变动动项项目目(奖奖励励、水水电电),这这样可减少用户的输入工作量。样可减少用户的输入工作量。 当当然然,首首次次使使用用人人事事工工资资管管理理系系统统进进行行工工资资数数据据月月初初始始化化时时,上月工资数据不存在,需要输入所有的工资数据。上月工资数据不存在,需要输入所有的工资数据。9/27/20244212.3.7 12.3.7 工资管理模块设计工资管理模块设计注意:注意: 工工资资表表中中的的员员工工名名单单是是从从rsb.dbfrsb.dbf得得到到,不不是是从从上上月月工工资资表表文文件件中中得得到到,因因为为本本月月如如果果人人员员发发生生了了变变化化(例例如如:调调入入、调调出出),本本月月工工资资表表的的人人员员名名单单与与上上月月将将不不同同,而而rsb.dbfrsb.dbf中中的的人人员名单能反映这种变化。员名单能反映这种变化。 工工资资数数据据的的固固定定项项部部分分是是从从上上月月工工资资表表文文件件得得到到,如如果果固固定项部分发生了变化,在录入界面中进行修改即可。定项部分发生了变化,在录入界面中进行修改即可。9/27/20244312.3.7 12.3.7 工资管理模块设计工资管理模块设计工资录入工资录入 工工资资月月初初始始化化后后就就可可以以录录入入和和修修改改工工资资,单单击击“打打开开”按按钮钮,弹弹出出“选选择择工工资资年年月月”对对话话框框,先先选选择择年年份份、月月份份,调调出出该该月月工工资资数数据据后后,就就可可以以输输入、修改工资数据。入、修改工资数据。 说说明明:工工资资数数据据输输入入和和显显示示界界面面是是用用表表格格实实现现的的,除除了了工工资资表表中中的的各各项项数数据据外外,还还要要显显示示员员工工对对应应的的姓姓名名、部部门门名名称称;而而工工资资表表中中有有员员工工编编号号,人人事事表表中中有有员员工工编编号号、姓姓名名及及部部门门代代码码,部部门门代代码码表表中中有有部部门门代代码码和和部部门门名名称称;表表格格中中的的数数据据涉涉及及到到三三个个表表:gzb.dbfgzb.dbf、rsb.dbfrsb.dbf、bmdm.dbfbmdm.dbf。本本处处是是先先将将三三个个表表中中的的数数据据生生成成视视图图,然然后后用用视视图图文文件件作作为为表表格格的的数数据据源源,在在表表格格中中显显示示视图文件的内容。视图文件的内容。9/27/20244412.3.7 12.3.7 工资管理模块设计工资管理模块设计使用视图更新基表数据使用视图更新基表数据建立视图建立视图 OPEN DATABASE .rsgzk OPEN DATABASE .rsgzk CREATE SQL VIEW gz_view AS; CREATE SQL VIEW gz_view AS; SELECT gzb. 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=ny9/27/20244512.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.),Field,Keyfield,.T.)9/27/20244612.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.基本工资基本工资,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,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,bmdm.,Field,UpdateName,bmdm.部门名称部门名称) DBSETPROP(gz_view. DBSETPROP(gz_view.年月年月,Field,UpdateName,gzb.,Field,UpdateName,gzb.年月年月)9/27/20244712.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,Updatable,.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.)9/27/20244812.3.7 12.3.7 工资管理模块设计工资管理模块设计激活更新功能激活更新功能 DBSETPROP(gz_view,view,SendUpdates,.T.) DBSETPROP(gz_view,view,SendUpdates,.T.)将视图文件作为表格的数据源将视图文件作为表格的数据源 THISFORM.Grid1.RecordSourceType=0 THISFORM.Grid1.RecordSourceType=0 THISFORM.Grid1.RecordSource=gz_view THISFORM.Grid1.RecordSource=gz_view9/27/20244912.3.7 12.3.7 工资管理模块设计工资管理模块设计2. 2. 工资信息查询表单设计工资信息查询表单设计 (1 1)工资信息查询表单设计界面)工资信息查询表单设计界面9/27/20245012.3.7 12.3.7 工资管理模块设计工资管理模块设计(2 2)“工资信息查询表单工资信息查询表单”功能及设计说明功能及设计说明查询实现查询实现 工工资资信信息息查查询询表表单单是是用用表表格格来来显显示示查查询询数数据据,表表格格的的数数据据源源是是一一个个临临时时表表。选选择择年年份份和和月月份份后后,单单击击确确定定按按钮钮时时会会先先生生成成一一个个临临时时表表gzb_temp.dbfgzb_temp.dbf,再再设设置置表表格格数数据据源源为为该该临临时时表表。选选择择查查询询类类别别后后,输输入入或或选选择择查查询询条条件件可可以以用用set set filter filter toto语语句过滤表格中的数据,从而只显示满足条件的记录。句过滤表格中的数据,从而只显示满足条件的记录。9/27/20245112.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.实发工资实发工资,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_temp THISFORM.Grid1.RecordSource=gzb_temp9/27/20245212.3.7 12.3.7 工资管理模块设计工资管理模块设计报表打印报表打印 工工资资信信息息查查询询表表单单具具有有查查询询及及报报表表打打印印功功能能,表表单单上上有有两两个个打打印印按按钮钮:查查询询结结果果打打印印、月月工工资资汇汇总总表表打打印印。如如果果用用户户先先按按查查询询类类别别进进行行了了查查询询,则则表表格格中中显显示示满满足足查查询询条条件件的的记记录录,此此时时单单击击“查查询询结结果果打打印印”按按钮钮将将打打印印查查询询到到记记录录的的工工资资信信息息。用用户户选选择择年年月月份份后后,如如果果不不选选择择查查询询类类别别或或查查询询类类别别选选择择“显显示示全全体体员员工工”,则则表表格格中中显显示示所所有有员员工工记记录录;此此时时,“月月工工资资汇汇总总表表打打印印”按按钮钮用用于于打打印印全全体体员员工工的的该该月月的的工工资资报报表表,按按部部门分组打印。门分组打印。9/27/20245312.3.7 12.3.7 工资管理模块设计工资管理模块设计“查询结果打印查询结果打印”按钮的按钮的ClickClick事件代码事件代码 DO CASEDO CASE CASE THISFORM.Optiongroup1.Option1.Value=1 CASE THISFORM.Optiongroup1.Option1.Value=1 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 年月年月=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.Optiongroup1.Option4.Value=1 SET FILTER TO SET FILTER TO 年月年月=ny=nyENDCASEENDCASEREPORT FORM .gz_bb1.frx PREVIEWREPORT FORM .gz_bb1.frx PREVIEW9/27/20245412.3.7 12.3.7 工资管理模块设计工资管理模块设计3. 3. 选择年月对话框设计选择年月对话框设计(1 1)选择年月对话框设计界面)选择年月对话框设计界面9/27/20245512.3.7 12.3.7 工资管理模块设计工资管理模块设计(2 2)选择年月对话框设计说明)选择年月对话框设计说明年份下拉列表框(年份下拉列表框(Combo1Combo1)数据的获得)数据的获得 RowSourceType 6- RowSourceType 6-字段字段 RowSource year. RowSource year.年份名称年份名称月份下拉列表框(月份下拉列表框(Combo2Combo2)数据的获得)数据的获得 Combo2 Combo2的的InitInit事件代码事件代码 THISFORM.Combo2.AddItem(01) THISFORM.Combo2.AddItem(01) THISFORM.Combo2.AddItem(02) THISFORM.Combo2.AddItem(02) 9/27/20245612.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(THISFORM.Combo1.DisplayValue); +ALLTRIM(THISFORM.Combo2.DisplayValue) +ALLTRIM(THISFORM.Combo2.DisplayValue)9/27/20245712.3.7 12.3.7 工资管理模块设计工资管理模块设计4.4.工资报表设计工资报表设计(1 1)工资信息表()工资信息表(gz_bb1.frxgz_bb1.frx)报表设计)报表设计工资信息表报表打印结果工资信息表报表打印结果9/27/20245812.3.7 12.3.7 工资管理模块设计工资管理模块设计工资信息表报表设计界面工资信息表报表设计界面9/27/20245912.3.7 12.3.7 工资管理模块设计工资管理模块设计(2 2)月工资汇总表()月工资汇总表(gz_bb2.frxgz_bb2.frx)报表设计)报表设计月工资汇总表输出结果月工资汇总表输出结果9/27/20246012.3.7 12.3.7 工资管理模块设计工资管理模块设计月工资汇总表报表设计界面月工资汇总表报表设计界面9/27/20246112.3.7 12.3.7 工资管理模块设计工资管理模块设计月工资汇总表报表设计界面月工资汇总表报表设计界面 报报表表设设计计器器上上的的内内容容分分为为以以下下几几类类:提提示示信信息息、表表格格线线、变变量(字段变量、内存变量、系统内存变量、函数)。量(字段变量、内存变量、系统内存变量、函数)。 提示信息提示信息 提提示示信信息息包包括括页页表表头头带带区区:年年、页页工工资资明明细细表表、编编号号、姓姓名名、部部门门名名称称;组组注注脚脚带带区区:部部分分汇汇总总、应应发发工工资资、实实发发工工资资;页页注注脚脚带带区区:打打印印日日期期、页页码码。这这些些利利用用报报表表控控件件工工具具栏栏上上的的“标签标签”控件可以实现。控件可以实现。 表格线表格线 利用报表控件工具栏上的利用报表控件工具栏上的“线条线条”控件即可画出表格线。控件即可画出表格线。9/27/20246212.3.7 12.3.7 工资管理模块设计工资管理模块设计 变量变量 利利用用报报表表控控件件工工具具栏栏的的“域域控控件件”可可以以建建立立变变量量。选选择择域域控控件件后后,弹弹出出一一个个报报表表表表达达式式对对话话框框,只只需需输输入入表表达达式式即即可可,例例如如:输入字段变量、内存变量、函数。输入字段变量、内存变量、函数。 对对于于字字段段变变量量通通常常的的表表达达式式是是:表表文文件件名名. .字字段段名名,如如gzb.gzb.编编号。号。 nfnf、yfyf用用于于记记录录指指明明工工资资信信息息所所属属的的年年份份、月月份份,这这是是在在调调用报表的表单中赋值的。用报表的表单中赋值的。 yfgzyfgz、sfgzsfgz用用于于按按部部门门统统计计应应发发工工资资金金额额和和实实发发工工资资金金额额。在在报报表表设设计计器器件件中中,选选择择【报报表表】【变变量量】菜菜单单项项,会会弹弹出出“报表变量报表变量”对话框,在此可建立这两个变量,如下图所示。对话框,在此可建立这两个变量,如下图所示。9/27/20246312.3.7 12.3.7 工资管理模块设计工资管理模块设计月工资汇总表报表中建立变量月工资汇总表报表中建立变量yfgzyfgz、sfgzsfgz9/27/20246412.3.8 12.3.8 系统管理模块设计系统管理模块设计1.1.用户管理用户管理9/27/20246512.3.8 12.3.8 系统管理模块设计系统管理模块设计2.2.更改密码更改密码9/27/20246612.3.8 12.3.8 系统管理模块设计系统管理模块设计3.3.基础资料设置基础资料设置9/27/20246712.3.8 12.3.8 系统管理模块设计系统管理模块设计4.4.数据初始化数据初始化9/27/20246812.3.8 12.3.8 系统管理模块设计系统管理模块设计5.5.数据备份数据备份9/27/20246912.3.8 12.3.8 系统管理模块设计系统管理模块设计6.6.数据恢复数据恢复9/27/20247012.3.8 12.3.8 系统管理模块设计系统管理模块设计7.7.退出系统退出系统 在在定定义义“退退出出系系统统”菜菜单单项项时时,在在结结果果列列中中选选择择“过程过程”,并写入过程代码:,并写入过程代码: CLEAR EVENTS & CLEAR EVENTS &退出事件循环退出事件循环 QUIT QUIT9/27/20247112.4 12.4 编译与发布应用程序编译与发布应用程序12.4.1 12.4.1 连编可执行文件连编可执行文件12.4.2 12.4.2 应用程序发布应用程序发布12.4.3 12.4.3 应用程序安装应用程序安装9/27/20247212.4.1 12.4.1 连编可执行文件连编可执行文件1.1.连编可执行文件连编可执行文件 (1 1)在在项项目目管管理理器器中中,将将main.prgmain.prg设设置置为为主主程程序序,单单击击“连编连编”按钮。按钮。 (2 2)在弹出的)在弹出的“连编选项连编选项”对话框中,选择对话框中,选择“连编可执行连编可执行文件文件”单选按钮及单选按钮及“重新编译重新编译全部文件全部文件”、“显示错误显示错误”复复选框。选框。9/27/20247312.4.1 12.4.1 连编可执行文件连编可执行文件 (3 3)单击)单击“确定确定”按钮,弹出按钮,弹出“另存为另存为”对话框。对话框。 (4 4)在)在“另存为另存为”对话框对话框的的“应用程序名应用程序名”文本框中文本框中输入一个文件名(例如:输入一个文件名(例如:RSGZRSGZ),然后单击),然后单击“保存保存”按钮,就可以开始编译了。按钮,就可以开始编译了。 9/27/20247412.4.1 12.4.1 连编可执行文件连编可执行文件2.2.可执行程序的独立运行可执行程序的独立运行 将将下下列列文文件件拷拷贝贝到到同同一一文文件件夹夹,可可执执行行文文件件RSGZ.EXERSGZ.EXE即即可可脱离脱离Visual FoxProVisual FoxPro环境运行。环境运行。 (1 1)可执行文件)可执行文件RSGZ.EXERSGZ.EXE。 (2 2)数据库文件、表文件。)数据库文件、表文件。 (3 3)图标文件、图片文件。)图标文件、图片文件。 (4 4)Visual FoxProVisual FoxPro配置文件配置文件CONFIG.FPWCONFIG.FPW。 ( 5 5) Visual Visual FoxProFoxPro的的 动动 态态 链链 接接 库库 文文 件件 : Vfp6r.dllVfp6r.dll、Vfp6rchs.dllVfp6rchs.dll、Vfp6renu.dllVfp6renu.dll。9/27/20247512.4.2 12.4.2 应用程序发布应用程序发布 建建立立好好发发布布目目录录并并复复制制了了应应用用系系统统运运行行所所必必需需的的全全部部文文件件到到发发布布目目录录E:RSGZSOURCEE:RSGZSOURCE下下中中之之后后,就就可可以以用用“安安装向导装向导”制作发布磁盘了。制作发布磁盘了。 在在“工具工具”菜单选菜单选择择“向导向导”子菜单下的子菜单下的“安装安装”命令,则弹出命令,则弹出如图所示安装向导对如图所示安装向导对话框,选定话框,选定“创建目录创建目录”按钮。按钮。9/27/20247612.4.2 12.4.2 应用程序发布应用程序发布步骤步骤1-1-定位文件定位文件 安装向导的第一步就是指定发布树目录,安装向导的第一步就是指定发布树目录,E:RSGZSOURCEE:RSGZSOURCE9/27/20247712.4.2 12.4.2 应用程序发布应用程序发布步骤步骤2-2-指定组件指定组件 选选中中“Visual “Visual FoxproFoxpro运运行行时时刻刻组组件件”复复选选框框,可可使使“安安装向导装向导”包含运行时所包含运行时所必须的支持文件必须的支持文件Vfp6r.dllVfp6r.dll。9/27/20247812.4.2 12.4.2 应用程序发布应用程序发布步骤步骤3-3-磁盘映象磁盘映象 该步骤可指定磁盘映象目录和安装磁盘类型。该步骤可指定磁盘映象目录和安装磁盘类型。9/27/20247912.4.2 12.4.2 应用程序发布应用程序发布步骤步骤4-4-安装选项安装选项 该该步步骤骤要要求求指指定定安安装装时时所所显显示示对对话话框框的的标标题题以以及及版版权权声声明明,还可以指定安装完成还可以指定安装完成后执行的程序。后执行的程序。 9/27/20248012.4.2 12.4.2 应用程序发布应用程序发布步骤步骤5-5-默认目标目录默认目标目录 该该步步骤骤要要求求指指定定默默认认的的文文件件安安装装目目录录和和开开始始菜菜单单中中程程序序管管理器组名。理器组名。 9/27/20248112.4.2 12.4.2 应用程序发布应用程序发布步骤步骤6-6-改变文件设置改变文件设置 该该对对话话框框用用于于改改变变列列出出在在表表格格中中的的文文件件的的设设置置,可可以以修修改改文文件件的的目目标标目目录录、更更改改程程序序组组的的属属性性和和为为您您的的文文件件注注册册ActiveXActiveX控件。控件。 9/27/20248212.4.2 12.4.2 应用程序发布应用程序发布步骤步骤7-7-完成完成 单单击击“完完成成”按按钮钮后后,在在E:RSGZE:RSGZ目目录录中中产产生生了了磁磁盘盘映映象象-NETSETUP-NETSETUP子目录。子目录。9/27/20248312.4.3 12.4.3 应用程序安装应用程序安装1.1.安装安装 发发布布盘盘中中含含有有应应用用程程序序的的安安装装程程序序SETUP.EXESETUP.EXE,只只要要在在WindowsWindows中中运运行行该该程程序序,并并按按提提示示一一步步步步操操作作就就可可以以完完成成应应用用程序的安装。程序的安装。2.2.运行运行 应应用用程程序序安安装装好好后后,WindowsWindows的的开开始始菜菜单单中中出出现现该该应应用用程程序序的程序组及程序项,用户可通过它启动应用程序。的程序组及程序项,用户可通过它启动应用程序。9/27/202484
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号