HR报表开发基本流程

时间:2022-01-13 13:51:15
  1. HR报表开发一般都会使用逻辑数据库(旧的是PNP,新的是PNPCE,一般都是用旧的)

 

HR报表开发基本流程

 

 

HR报表开发基本流程

 

系统中已经存在很多ReportCategory,可以根据开发需要选择类似的进行复制,来看一个比较常见的Category

HR报表开发基本流程

 

HR报表开发基本流程

 

要编辑2中哪些字段写在屏幕上

 

HR报表开发基本流程

 

创建完后保存然后输入新创建的CATEGORY名字保存退出。

HR报表开发基本流程

 

 

然后在程序中输入

TABLES: PERNR.

运行就可以看到效果。

HR报表开发基本流程

 

 

  1. HR程序的编写

由于用到了LDBHR的表结构与其它模块的不同,所以程序的编写也略有不同,但要比其它模块的更简单。

HR报表开发基本流程

 

程序头部要定义将要用到的HR数据表(PA0000,PA0001)就是

INFOTYPES00000001.

如果不定义,而在后面使用了该表程序会报语法错误。

而定义好之后在程序中使用时表名是P0000,P0001(而不是pa0000,pa0001)

 

HR报表开发基本流程

 

 

程序运行时有一个结构体PN,存放的是屏幕上输入的日期及一些基本参数,常用到的是PN-BEGDAPN-ENDDA

 

HR报表开发基本流程

 

 

Get pernr.

这句是逻辑数据库的专用语法,功能是根据用户输入的选择条件从逻辑数据库PNP中取出相应的数据然后循环,此时的PERNR是一个结构体,会在每次循环时自动赋值。且要注意该句不能写在FORM内部.

 

HR报表开发基本流程

 

Rp_provide_from_last是一个系统的标准HR宏,标准格式是

 

RP_PROVIDE_FROM_LAST  P0000 P0000-SUBTY PN-BEGDA PN-ENDDA.

获取成功的标志是PNP-SW-FOUND = 1.

 

它的意思是根据PERNR当前的NO.号找表P0000中字段SUBTY = P0000-SUBTY且字段BEGDAENDDA之间的时间有部分存在于PN-BEGDAPN-ENDDA之间的数据的最后一条。

  p0000

P0000

BEGDA

ENDDA

1

2012.05.01

2012.05.30

2

2012.06.01

2012.06.30

PN-BEGDA =2012.04.01,PN-ENDDA = 2012.05.03

该语法只会得到第1条,因为第2条的时间不在PN内。

如果PN-BEGDA = 2012.04.01, PN-ENDDA = 2012.06.02.

那么该语法会取第2条,12 都在时间内,取最后一条。

 

 

HR报表开发基本流程

 

HR的表中有的表的结构如P0041中的DAR01/DAT01,DAR02/DAT02,DAR03/DAT03….

HR报表开发基本流程

 

DTTYPE的类型,如果要取某个类型的DATE时,由于不确定是存放在哪个DT(DAT01/DAT02/…),所以可用语法

DO ..VARYIING OBJ FORM XXX NTEXT XXX来方便解决这个问题。见上面CODE.

 

HR报表开发基本流程

 

还有一种常用的语法,PROVIDE * FROM P0000 BETWEEN PN-BEGDA AND PN-ENDDA.

其功能等于一个LOOP AT P0000 WHERE BEGDA LT PN-ENDDA AND ENDDA GTPN-ENDDA. ENDLOOP.