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

下载本文档

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

文档简介

第10章应用系统开发实例10/1/20231第10章应用系统开发实例8/1/20231本章目录导引

10.1软件开发基本概念10.2数据库系统开发过程10.3人事工资管理系统开发10.4编译与发布应用程序10/1/20232本章目录导引10.1软件开发基本概念8/1/2023210.1软件开发基本概念

10.1.1软件10.1.2软件工程10.1.3软件生命周期10/1/2023310.1软件开发基本概念10.1.1软件8/1/2010.1.1软件

软件是计算机系统中与硬件相互依存的部分,它是包括程序、数据及相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。10/1/2023410.1.1软件软件是计算机系统中与硬件相互依存的10.1.2软件工程

软件工程是:①把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化方法应用于软件设计中;②研究①中提到的途径。实质上,软件工程就是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和最先进的软件开发技术结合起来,应用到软件开发和维护过程中,来解决软件危机问题。10/1/2023510.1.2软件工程软件工程是:①把系统化的、规10.1.3软件生命周期

同其它事物一样,软件也有孕育、诞生、成长、成熟、衰亡的生存过程,称其为计算机软件的生命周期。

软件生命周期由软件定义、软件开发和运行维护三个时期组成,每个时期又可划分成若干个阶段。10/1/2023610.1.3软件生命周期同其它事物一样,软件也有孕10.1.3软件生命周期

软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。软件定义时期可划分为问题定义、可行性研究、需求分析三个阶段。10/1/2023710.1.3软件生命周期软件定义时期的任务是:确定10.1.3软件生命周期

开发时期具体设计和实现在前一个时期定义的软件。开发时期分四个阶段:概要设计、详细设计、编码和单元测试、综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。

10/1/2023810.1.3软件生命周期开发时期具体设计和实现在前10.1.3软件生命周期

维护时期的主要任务是使软件持久地满足用户的需求。软件维护时期不再进一步划分阶段。

10/1/2023910.1.3软件生命周期维护时期的主要任务是使10.1.3软件生命周期1.问题定义问题定义阶段必须回答的关键问题是:“要解决的问题是什么”。通过调研,系统分析员应该提出关于问题性质、工程目标和工程规模的书面报告,并且需要得到客户对这份报告的确认。10/1/20231010.1.3软件生命周期1.问题定义8/1/20231010.1.3软件生命周期2.可行性研究这个阶段要回答的关键问题是:“上一个阶段所确定的问题是否有行得通的解决办法”。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性研究的目的不是解决问题,而是确定问题是否值得去解决。10/1/20231110.1.3软件生命周期2.可行性研究8/1/2023110.1.3软件生命周期2.可行性研究

可行性研究包括四个方面的研究:(1)经济可行性:进行成本效益分析,从经济角度判断系统开发是否“合算”。(2)技术可行性:进行技术风险评价。从开发者的技术实力、工作基础、问题的复杂性等方面出发,判断系统开发在时间、费用等限制条件下成功的可能性。(3)法律可行性:确定系统开发可能导致的任何侵权行为、妨碍性后果和责任。(4)方案的选择:评价系统或产品开发的几个候选方案,最后给出结论性意见。10/1/20231210.1.3软件生命周期2.可行性研究8/1/2023110.1.3软件生命周期3.需求分析需求分析阶段的任务不是具体的解决客户的问题,而是准确回答“系统必须做什么”这个问题,即确定系统的功能,对目标系统提出完整、准确、清晰、具体的要求。系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统需求。10/1/20231310.1.3软件生命周期3.需求分析8/1/20231310.1.3软件生命周期4.概要设计概要设计又称为总体设计。概要设计阶段的任务是概括地回答“怎样实现系统目标?”这个问题。总体设计过程可分为两个阶段:功能设计,确立软件系统的实现方案;结构设计,确定软件的体系结构,也就是确定系统由哪些模块组成以及模块间的关系。常用的描述软件结构的图形工具有:层次图、HIPO图、结构图。10/1/20231410.1.3软件生命周期4.概要设计8/1/20231410.1.3软件生命周期5.详细设计

详细设计也叫做过程设计或程序设计,它不同于编码或编程。详细设计阶段的任务是回答“怎样具体地实现系统目标?”这个问题。本阶段要详细地设计每个模块,确定实现模块功能的算法和数据结构。常用的详细设计工具有:程序流程图、N-S图(盒图)、PAD(问题分析图)等。10/1/20231510.1.3软件生命周期5.详细设计8/1/20231510.1.3软件生命周期6.编码和单元测试这个阶段的关键任务是写出正确、容易理解、容易维护的程序模块。程序员根据目标系统的性质和实际环境,选取适当的高级语言,把详细设计的结果翻译成用选定语言书写的程序,并且仔细测试编写出的每一个模块。10/1/20231610.1.3软件生命周期6.编码和单元测试8/1/20210.1.3软件生命周期7.综合测试这个阶段的任务是通过各种类型的测试(集成测试、确认测试、系统测试)及相应的调试使软件达到预定的要求。10/1/20231710.1.3软件生命周期7.综合测试8/1/20231710.1.3软件生命周期8.软件维护

软件维护的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需求。通常有四类维护活动:(1)改正性维护:诊断和改正使用过程中发现的软件错误。(2)适应性维护:修改软件以适应环境的变化。(3)完善性维护:根据用户的要求改进或扩充软件,使它更完善。(4)预防性维护:修改软件为将来的维护活动预先做准备。10/1/20231810.1.3软件生命周期8.软件维护8/1/20231810.2数据库应用系统开发过程

1.需求分析2.数据库设计3.应用程序中各功能模块设计4.软件测试5.应用程序发布6.系统运行与维护10/1/20231910.2数据库应用系统开发过程1.需求分析8/1/210.3人事工资管理系统开发10.3.1需求分析10.3.2系统总体框架设计10.3.3数据库设计10.3.4主控程序设计10.3.5系统登录表单设计10.3.6人事管理模块设计10.3.7工资管理模块设计10.3.8系统管理模块设计10/1/20232010.3人事工资管理系统开发10.3.1需求分析8/1/10.3.1需求分析功能需求:(1)数据维护(2)数据查询(3)工资计算(4)报表打印10/1/20232110.3.1需求分析功能需求:8/1/20232110.3.2系统总体框架设计10/1/20232210.3.2系统总体框架设计8/1/20232210.3.2系统总体框架设计程序调用关系:

本系统除了用到的各菜单项对应的表单文件外,还有下列文件:主控程序main.prg、系统登录窗口pass.scx、主菜单main_menu.mpr。程序调用关系如下:主控程序main.prg中调用“系统登录窗口”表单pass.scx,密码正确则调用系统菜单mani_menu.mpr。各菜单项调用相对应的表单。

10/1/20232310.3.2系统总体框架设计程序调用关系:8/1/202310.3.3数据库设计

人事工资管理系统的数据库(E:\RSGZ\RSGZK.DBC)包含六个表文件:人事表、工资表、部门表、职称表、年份表、用户表。10/1/20232410.3.3数据库设计人事工资管理系统的数据库(E:10.3.4主控程序设计

主文件就是主控程序,是在启动程序时首先被调用的文件。主文件有以下几个作用:(1)对应用程序的环境进行初始化。(2)作为应用程序执行的起始点,由此启动程序的逐级调用。(3)显示初始的用户界面。(4)控制事件循环。(5)恢复系统默认的环境。10/1/20232510.3.4主控程序设计主文件就是主控程序,是在启动10.3.4主控程序设计核心代码:DOFORM.\pass.scx&&调用系统登录窗口OnShutDowndoOnShutdown&&退出系统时调用函数onshutdown()READEVENTS&&建立事件循环OnShutDown&&释放当前的OnShutDown命令

FUNCTIONOnShutdown()CLEAREVENTS&&退出事件循环QUITENDFUNC10/1/20232610.3.4主控程序设计核心代码:8/1/20232610.3.5系统登录表单设计1.系统登录表单设计界面10/1/20232710.3.5系统登录表单设计1.系统登录表单设计界面8/10.3.5系统登录表单设计2.功能及设计说明

该表单用于判断用户名及密码是否正确。若正确,完成以下2项工作:(1)设置一个全局变量operat,用于记录登录系统的操作员姓名,系统中有二个地方要用到该操作员的姓名或代号:一是进入主界面后在标题栏显示操作员姓名;二是操作员在系统管理模块的口令设置中更改自己的口令时,系统要知道是哪个操作员。(2)调用菜单文件,显示系统主界面。

10/1/20232810.3.5系统登录表单设计2.功能及设计说明8/1/2010.3.6人事管理模块设计1.人事数据维护表单设计(1)人事数据维护表单设计界面10/1/20232910.3.6人事管理模块设计1.人事数据维护表单设计8/110.3.6人事管理模块设计(2)“人事数据维护表单”功能及设计说明

人事数据维护表单包括下列功能:数据录入、修改、删除、查询、浏览、保存、打印等。本表单左边是浏览窗口,便于用户浏览数据;右边是编辑窗口,主要用于输入、修改数据。10/1/20233010.3.6人事管理模块设计(2)“人事数据维护表单”功能10.3.6人事管理模块设计表单中录入数据的两种实现方法:法一:表单中的控件与表文件中的字段绑定

这种方式下,记录增加一般用appendblank命令追加一条空白记录,以让用户输入数据。用户输入、修改数据后,表文件中字段的内容跟随改变,不用再作保存。这种方式下,如果有“保存”按钮,并不是真正用来保存数据,而是用于设置按钮的有效性及控件是否只读等。此表单的“保存”按钮属于这种情况。10/1/20233110.3.6人事管理模块设计表单中录入数据的两种实现方法:10.3.6人事管理模块设计法二:表单中的控件与表文件中的字段不绑定。

一般在“增加”按钮中清除各控件(例如文本框)的内容,以便用户输入新的数据;在“保存”时用SQL语言中的insert语句将控件(文本框、编辑框、编辑框、按钮组、复选框)的内容插入到表文件中。10/1/20233210.3.6人事管理模块设计法二:表单中的控件与表文件中的10.3.6人事管理模块设计以动态颜色显示选中的Grid对象的行和列

本例中浏览数据时,选中表格中的某个记录时,该行用不同颜色显示,而且右边编辑窗口中各控件显示的数据要跟随变化,为此要在表格控件的AfterRowColChange事件中加入代码:

*以不同颜色显示选中的Grid对象的行及列This.SetAll("DynamicBackColor","IIF(This.ActiveRow;<>RecNo(),RGB(255,255,255),RGB(0,255,0))","Column")*选中表格数据后,右边文本框中的记录跟随变化SELECTrsbTHISFORM.Refresh10/1/20233310.3.6人事管理模块设计以动态颜色显示选中的Grid对10.3.6人事管理模块设计“添加相片”命令按钮的Click事件代码为:wjm=GETFILE()IFNOTEMPTY(wjm)APPENDGENERAL相片FROM&wjmENDIF使用APPEND命令添加照片前一定要判断变量wjm是否为空,否则,如果单击了本按钮但未选择图片文件,就会出现“语法错误”的提示。10/1/20233410.3.6人事管理模块设计“添加相片”命令按钮的Cli10.3.6人事管理模块设计2.人事信息查询表单设计(1)人事信息查询表单设计界面10/1/20233510.3.6人事管理模块设计2.人事信息查询表单设计8/10.3.6人事管理模块设计(2)“人事数据维护表单”功能及设计说明●查询实现方法

实现查询的方法很多,例如:用Select-SQL语言查询、用查询设计器件建立查询、利用视图进行查询等。本例是利用表格显示人事表(rsb.dbf)中的查询数据,数据按查询条件用setfilterto命令过滤,条件由用户输入或选择。10/1/20233610.3.6人事管理模块设计(2)“人事数据维护表单”功能10.3.6人事管理模块设计●操作说明

用户先通过选项按钮组选择查询类别,当用户选择按员工号或姓名查询时,出现一个文本框,让用户输入员工编号或姓名。当用户选择按部门查询时,出现一个组合框,以便用户选择部门。当用户选择按出生日期查询时,出现两个文本框,以便用户输入起始日期与截止日期;如果用户只输入起始日期,则显示出生日期为起始日期之后的所有记录;如果用户只输入截止日期,则显示出生日期为截止日期之前的所有记录;如果用户既输入起始日期又输入截止日期,则显示出生日期为起始日期之后且为截止日期之前的所有记录。如果用户选择显示全体记录,表格中显示人事表(rsb.dbf)中的所有记录。10/1/20233710.3.6人事管理模块设计●操作说明8/1/20233710.3.6人事管理模块设计●打印按钮

本表单中包含两个打印按钮:查询打印、按部门分组打印。查询打印用于打印查询到的员工的人事信息表。按部门分组打印,则是按部门分组打印所有员工的人事信息表,每组从新的一页开始打印。代码分别为:REPORTFORM.\rsb_bb1.frxPREVIEWREPORTFORM.\rsb_bb2.frxPREVIEW10/1/20233810.3.6人事管理模块设计●打印按钮8/1/2010.3.6人事管理模块设计●按编号或姓名查询的实现

输入编号或姓名后在表格中显示查询的记录,可在文本框text1的Valid事件中添加以下代码实现:SELECTrsbSETFILTERTO编号=ALLTRIM(THISFORM.Text1.;Value)OR姓名=ALLTRIM(THISFORM.Text1.Value)THISFORM.Grid1.Refresh10/1/20233910.3.6人事管理模块设计●按编号或姓名查询的实现8/110.3.7工资管理模块设计1.工资数据维护表单设计(1)工资数据维护表单设计界面10/1/20234010.3.7工资管理模块设计1.工资数据维护表单设计8/10.3.7工资管理模块设计

(2)“工资数据维护表单”功能及设计说明●工资数据维护表单的主要功能

输入、修改工资数据;新增某月工资数据;删除某月工资数据;对工资进行计算。10/1/20234110.3.7工资管理模块设计(2)“工资数据维护表单”10.3.7工资管理模块设计●新增某月工资数据

输入某月工资前要先新增本月工资数据,即对工资数据进行月初始化。月初始化的过程是先从rsb.dbf中插入员工编号到gzb.dbf中,生成本月工资的员工名单;再将上月工资数据中的固定项部分(基本工资、岗位津贴、保险)导入到gzb.dbf中,用户只需要输入工资数据项中的变动项目(奖励、水电),这样可减少用户的输入工作量。当然,首次使用人事工资管理系统进行工资数据月初始化时,上月工资数据不存在,需要输入所有的工资数据。10/1/20234210.3.7工资管理模块设计●新增某月工资数据8/1/2010.3.7工资管理模块设计注意:①工资表中的员工名单是从rsb.dbf得到,不是从上月工资表文件中得到,因为本月如果人员发生了变化(例如:调入、调出),本月工资表的人员名单与上月将不同,而rsb.dbf中的人员名单能反映这种变化。②工资数据的固定项部分是从上月工资表文件得到,如果固定项部分发生了变化,在录入界面中进行修改即可。10/1/20234310.3.7工资管理模块设计注意:8/1/20234310.3.7工资管理模块设计●工资录入

工资月初始化后就可以录入和修改工资,单击“打开”按钮,弹出“选择工资年月”对话框,先选择年份、月份,调出该月工资数据后,就可以输入、修改工资数据。说明:工资数据输入和显示界面是用表格实现的,除了工资表中的各项数据外,还要显示员工对应的姓名、部门名称;而工资表中有员工编号,人事表中有员工编号、姓名及部门代码,部门代码表中有部门代码和部门名称;表格中的数据涉及到三个表:gzb.dbf、rsb.dbf、bmdm.dbf。本处是先将三个表中的数据生成视图,然后用视图文件作为表格的数据源,在表格中显示视图文件的内容。10/1/20234410.3.7工资管理模块设计●工资录入8/1/20234410.3.7工资管理模块设计●使用视图更新基表数据建立视图OPENDATABASE.\rsgzkCREATESQLVIEWgz_viewAS;SELECTgzb.编号,rsb.姓名,gzb.基本工资,gzb.岗位津贴,;gzb.奖励,gzb.保险,gzb.水电,bmdm.部门名称,gzb.年月;FROMrsb,gzb,bmdm;WHEREgzb.编号=rsb.编号andrsb.部门代码=bmdm.代码;andgzb.年月=ny10/1/20234510.3.7工资管理模块设计●使用视图更新基表数据8/1/10.3.7工资管理模块设计设置表可更新DBSETPROP('gz_view','view','tables','rsb,gzb,bmdm')设置更新主键DBSETPROP('gz_view.编号','Field','Keyfield',.T.)DBSETPROP('gz_view.年月','Field','Keyfield',.T.)10/1/20234610.3.7工资管理模块设计设置表可更新8/1/2023410.3.7工资管理模块设计设置可更新字段名

DBSETPROP('gz_view.编号','Field','UpdateName','gzb.编号')DBSETPROP('gz_view.姓名','Field','UpdateName','rsb.姓名')DBSETPROP('gz_view.基本工资','Field','UpdateName','gzb.基本工资')DBSETPROP('gz_view.岗位津贴','Field','UpdateName','gzb.岗位津贴')DBSETPROP('gz_view.奖励','Field','UpdateName','gzb.奖励')DBSETPROP('gz_view.保险','Field','UpdateName','gzb.保险')DBSETPROP('gz_view.水电','Field','UpdateName','gzb.水电')DBSETPROP('gz_view.部门名称','Field','UpdateName','bmdm.部门名称')DBSETPROP('gz_view.年月','Field','UpdateName','gzb.年月')10/1/20234710.3.7工资管理模块设计设置可更新字段名

8/1/2010.3.7工资管理模块设计设置可更新字段

DBSETPROP('gz_view.基本工资','Field','Updatable',.T.)DBSETPROP('gz_view.岗位津贴','Field','Updatable',.T.)DBSETPROP('gz_view.奖励','Field','Updatable',.T.)DBSETPROP('gz_view.水电','Field','Updatable',.T.)DBSETPROP('gz_view.保险','Field','Updatable',.T.)10/1/20234810.3.7工资管理模块设计设置可更新字段

8/1/20210.3.7工资管理模块设计

激活更新功能DBSETPROP('gz_view','view','SendUpdates',.T.)

将视图文件作为表格的数据源THISFORM.Grid1.RecordSourceType=0THISFORM.Grid1.RecordSource="gz_view"10/1/20234910.3.7工资管理模块设计

激活更新功能8/1/202310.3.7工资管理模块设计2.工资信息查询表单设计(1)工资信息查询表单设计界面10/1/20235010.3.7工资管理模块设计2.工资信息查询表单设计8/10.3.7工资管理模块设计(2)“工资信息查询表单”功能及设计说明●查询实现

工资信息查询表单是用表格来显示查询数据,表格的数据源是一个临时表。选择年份和月份后,单击确定按钮时会先生成一个临时表gzb_temp.dbf,再设置表格数据源为该临时表。选择查询类别后,输入或选择查询条件可以用setfilterto语句过滤表格中的数据,从而只显示满足条件的记录。10/1/20235110.3.7工资管理模块设计(2)“工资信息查询表单”功能10.3.7工资管理模块设计核心代码*将查询结果保存到临时表SELECTgzb.编号,rsb.姓名,gzb.基本工资,gzb.岗位津贴,;gzb.奖励,gzb.应发工资,gzb.保险,gzb.水电,;gzb.实发工资,bmdm.部门名称,gzb.年月;FROMrsb,gzb,bmdm;WHERErsb.编号=gzb.编号andrsb.部门代码=bmdm.代码;INTOCURSORgzb_temp

*设定表格数据源THISFORM.Grid1.RecordSource="gzb_temp"10/1/20235210.3.7工资管理模块设计核心代码8/1/20235210.3.7工资管理模块设计●报表打印

工资信息查询表单具有查询及报表打印功能,表单上有两个打印按钮:查询结果打印、月工资汇总表打印。如果用户先按查询类别进行了查询,则表格中显示满足查询条件的记录,此时单击“查询结果打印”按钮将打印查询到记录的工资信息。用户选择年月份后,如果不选择查询类别或查询类别选择“显示全体员工”,则表格中显示所有员工记录;此时,“月工资汇总表打印”按钮用于打印全体员工的该月的工资报表,按部门分组打印。10/1/20235310.3.7工资管理模块设计●报表打印8/1/20235310.3.7工资管理模块设计“查询结果打印”按钮的Click事件代码

DOCASECASETHISFORM.Optiongroup1.Option1.Value=1SETFILTERTO编号=ALLTRIM(THISFORM.Text1.Value)and年月=nyCASETHISFORM.Optiongroup1.Option2.Value=1SETFILTERTO姓名=ALLTRIM(THISFORM.Text1.Value)and年月=nyCASETHISFORM.Optiongroup1.Option3.Value=1SETFILTERTO部门名称=ALLTRIM(THISFORM.Combo3.DisplayValue);and年月=nyCASETHISFORM.Optiongroup1.Option4.Value=1SETFILTERTO年月=nyENDCASEREPORTFORM.\gz_bb1.frxPREVIEW10/1/20235410.3.7工资管理模块设计“查询结果打印”按钮的Clic10.3.7工资管理模块设计3.选择年月对话框设计(1)选择年月对话框设计界面10/1/20235510.3.7工资管理模块设计3.选择年月对话框设计8/110.3.7工资管理模块设计(2)选择年月对话框设计说明●年份下拉列表框(Combo1)数据的获得RowSourceType6-字段RowSourceyear.年份名称●月份下拉列表框(Combo2)数据的获得Combo2的Init事件代码THISFORM.Combo2.AddItem("01")THISFORM.Combo2.AddItem("02")┄10/1/20235610.3.7工资管理模块设计(2)选择年月对话框设计说明810.3.7工资管理模块设计●Combo1、Combo2的Click事件代码nf=ALLTRIM(THISFORM.Combo1.DisplayValue)yf=ALLTRIM(THISFORM.Combo2.DisplayValue)ny=ALLTRIM(THISFORM.Combo1.DisplayValue);+ALLTRIM(THISFORM.Combo2.DisplayValue)10/1/20235710.3.7工资管理模块设计●Combo1、Combo2的10.3.7工资管理模块设计4.工资报表设计(1)工资信息表(gz_bb1.frx)报表设计●工资信息表报表打印结果10/1/20235810.3.7工资管理模块设计4.工资报表设计8/1/20210.3.7工资管理模块设计●工资信息表报表设计界面10/1/20235910.3.7工资管理模块设计●工资信息表报表设计界面8/110.3.7工资管理模块设计(2)月工资汇总表(gz_bb2.frx)报表设计●月工资汇总表输出结果10/1/20236010.3.7工资管理模块设计(2)月工资汇总表(gz_bb10.3.7工资管理模块设计●月工资汇总表报表设计界面10/1/20236110.3.7工资管理模块设计●月工资汇总表报表设计界面8/10.3.7工资管理模块设计●月工资汇总表报表设计界面

报表设计器上的内容分为以下几类:提示信息、表格线、变量(字段变量、内存变量、系统内存变量、函数)。①提示信息提示信息包括页表头带区:年、页工资明细表、编号、姓名、…、部门名称;组注脚带区:部分汇总、应发工资、实发工资;页注脚带区:打印日期、页码。这些利用报表控件工具栏上的“标签”控件可以实现。②表格线利用报表控件工具栏上的“线条”控件即可画出表格线。10/1/20236210.3.7工资管理模块设计●月工资汇总表报表设计界面8/10.3.7工资管理模块设计③变量利用报表控件工具栏的“域控件”可以建立变量。选择域控件后,弹出一个报表表达式对话框,只需输入表达式即可,例如:输入字段变量、内存变量、函数。对于字段变量通常的表达式是:表文件名.字段名,如gzb.编号。nf、yf用于记录指明工资信息所属的年份、月份,这是在调用报表的表单中赋值的。yfgz、sfgz用于按部门统计应发工资金额和实发工资金额。在报表设计器件中,选择【报表】→【变量】菜单项,会弹出“报表变量”对话框,在此可建立这两个变量,如下图所示。10/1/20236310.3.7工资管理模块设计③变量8/1/20236310.3.7工资管理模块设计月工资汇总表报表中建立变量yfgz、sfgz10/1/20236410.3.7工资管理模块设计月工资汇总表报表中建立变量yf10.3.8系统管理模块设计1.用户管理10/1/20236510.3.8系统管理模块设计1.用户管理8/1/2023610.3.8系统管理模块设计2.更改密码10/1/20236610.3.8系统管理模块设计2.更改密码8/1/2023610.3.8系统管理模块设计3.基础资料设置10/1/20236710.3.8系统管理模块设计3.基础资料设置8/1/20210.3.8系统管理模块设计4.数据初始化10/1/20236810.3.8系统管理模块设计4.数据初始化8/1/202310.3.8系统管理模块设计5.数据备份10/1/20236910.3.8系统管理模块设计5.数据备份8/1/2023610.3.8系统管理模块设计6.数据恢复10/1/20237010.3.8系统管理模块设计6.数据恢复8/1/2023710.3.8系统管理模块设计7.退出系统

在定义“退出系统”菜单项时,在结果列中选择“过程”,并写入过程代码:CLEAREVENTS&&退出事件循环QUIT10/1/20237110.3.8系统管理模块设计7.退出系统8/1/2023710.4编译与发布应用程序10.4.1连编可执行文件10.4.2应用程序发布10.4.3应用程序安装10/1/20237210.4编译与发布应用程序10.4.1连编可执行文件8/10.4.1连编可执行文件1.连编可执行文件(1)在项目管理器中,将main.prg设置为主程序,单击“连编”按钮。(2)在弹出的“连编选项”对话框中,选择“连编可执行文件”单选按钮及“重新编译全部文件”、“显示错误”复选框。10/1/20237310.4.1连编可执行文件1.连编可执行文件8/1/20210.4.1连编可执行文件(3)单击“确定”按钮,弹出“另存为”对话框。(4)在“另存为”对话框的“应用程序名”文本框中

温馨提示

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

评论

0/150

提交评论