SAP HR开发总结(1)(4300字)

来源:m.fanwen118.com时间:2021.5.2

一、系统中提供了标准的报表

某些报表无法通过菜单路径或常规报告选择来访问。而是必须通过选择菜单:系统 → 服务 → 报告 来进行访问。

在初始屏幕中,您可以输入 RP* 并使用后续报告来显示所有报表的概览。可通过使用以下命名约定来输入更多特定的通用搜索标准:

SAPHR开发总结1

SAPHR开发总结1

EXAMPLE_PNP_GET_PAYROLL , 如果没有写过Payroll resport的人,参考这个Report。 PAY99_RESULT: Structure for payroll result,其中的EVP在设计工资单的Rule时可能就用到。

二、 PHF、SI、TAX相关的报表,可以在 pc28 中找到

PC28 – SAP menu – Subsequent Activities – Per payroll period –Reporting

SAPHR开发总结1

通过 中国的TAX 报表,看看如何处理payroll result.

(1) LDB

(2) Report catalog ,使用后可以自动带出选择屏幕的一部分

(3) Unicode checks active ,要激活

(4) 使用了get pernr,这样的event.,get pernr 是一个循环操作,界面上选择

的所有员工,都会依次循环。每一次的循环,都会找到当前员工的infotype数据,找哪些infotype 中的数据,是在infotypes中的声明中决定的。

(5) 取得payroll result的 function : CU_READ_RGDIR,将payroll result

从cluster表中取出来。

SAPHR开发总结1

(6) 对于Cluster 表,可以如下使用

TABLES: PERNR, PCL1, PCL2, PC260.

(7)

三、标准报表举例

(1) HTWLINF0

可以看到员工的所有维护过的信息类型,包括几条记录,分别的起止时间,最后修改的时间、修改人等,如果有子类型,还会按照子类型来区分;更方便的是,双击每条记录,都可以跳到PA20中查看详细的信息。

SAPHR开发总结1

(2) EXAMPLE_PNP_GET_PAYROLL

如果没有写过Payroll resport的人,参考这个Report

REPORT ZEXAMPLE_PNP_GET_PAYROLL.

tables : pernr , pyorgscreen , pytimescreen.

nodes : payroll type pay99_result.

tables : t512t.

data : wa_rt like line of payroll-inter-rt.

data : wa_crt like line of payroll-inter-crt.

data : wa_wpbp like line of payroll-inter-wpbp.

data : g_result_counter type i .

data : mylist like pc261 OCCURS 0 .

data : wa_mylist like line of mylist.

data : pay type ref to cl_pay. "这个类有两个方法READ_RESULT,和WRITE_RESULT initialization.

get pernr.

write : / '正在处理的人员编号为 : ' ,pernr-pernr.

g_result_counter = 0 .

create object pay.

call method pay->read_result importing list = mylist. "将结果输出到pc261结构中。Cluster directory

"CALL METHOD pay->write_result EXPORTING list = mylist.

"感觉这一句可有可无?

loop at mylist into wa_mylist . "循环访问获得的结果。

write : / wa_mylist.

endloop.

get payroll .

g_result_counter = g_result_counter + 1 .

write : / 'sequence number = ' , payroll-evp-seqnr.

write : 'In period = ' , payroll-inter-versc-inper.

write : 'for period = ' , payroll-inter-versc-fpper.

write : 'Pay date = ' , payroll-inter-versc-paydt.

write : / 'WBPB 拆分 ---begin '.

loop at payroll-inter-wpbp into wa_wpbp.

write : / 'Personel Area = ' , wa_wpbp-werks,

'Sub area = ' , wa_wpbp-btrtl.

endloop.

write : / 'WBPB 拆分 ---end'.

skip 1.

write : / 'RT表中的数据--begin'.

loop at payroll-inter-rt into wa_rt.

select single * from t512t where sprsl = sy-langu and molga = payroll-inter-versc-molga and lgart = wa_rt-lgart.

write : / wa_rt-lgart , t512t-lgtxt , wa_rt-betrg currency payroll-inter-versc-waers, payroll-inter-versc-waers.

endloop.

write : / 'RT表中的数据--end'.

write : / 'CRT表中的数据--begin'.

loop at payroll-inter-crt into wa_crt.

select single * from t512t where sprsl = sy-langu and molga = payroll-inter-versc-molga and lgart = wa_crt-lgart.

write : / wa_crt-lgart , t512t-lgtxt , wa_crt-betrg currency payroll-inter-versc-waers, payroll-inter-versc-waers.

endloop.

write : / 'CRT表中的数据--end'.

get pernr late.

skip .

if g_result_counter = 0 .

write : / '未找到结果 for ' ,pernr-pernr.

else.

write : / '共找到:', g_result_counter ,'条结果for ', pernr-pernr.

endif.

(3) PAY99_RESULT 结构

Structure for payroll result,其中的EVP在设计工资单的Rule时可能就用到。

(4) 2

四、自定义报表举例

五、获得员工的雇佣日期

data : hire_date like p0001-ENDDA.

CALL FUNCTION 'RP_GET_HIRE_DATE' EXPORTING

PERSNR = '28000021' CHECK_INFOTYPES = '0000'

IMPORTING HIREDATE = hire_date .

write : / hire_date.

SAPHR开发总结1

SAPHR开发总结1

http://kemiya.net/thread-4556-1-1.html

HR信息类型创建

锁定人员编号

CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'

EXPORTING

NUMBER =

IMPORTING

RETURN =

EXCEPTIONS

OTHERS = 01.

创建信息类型

CALL FUNCTION 'HR_INFOTYPE_OPERATION'

EXPORTING

INFTY =

SUBTYPE =

NUMBER =

VALIDITYBEGIN =

RECORD =

OPERATION = 'INS'

NOCOMMIT = 'X'

DIALOG_MODE = '0'

IMPORTING

RETURN =

KEY =

EXCEPTIONS

OTHERS = 0.

IF L_RETURN IS INITIAL.

P_TYPE = 'S'.

S_MSG = '信息类型创建成功'.

COMMIT WORK.

解除锁定

CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'

EXPORTING

NUMBER =

IMPORTING

RETURN =

EXCEPTIONS

OTHERS = 01.


第二篇:JAVASCRIPT弹出窗口大总结 4500字

//关闭,父窗口弹出对话框,子窗口直接关闭

this.Response.Write("<script

language=javascript>window.close();</script>");

//关闭,父窗口和子窗口都不弹出对话框,直接关闭

this.Response.Write("<script>");

this.Response.Write("{top.opener =null;top.close();}");

this.Response.Write("</script>");

//弹出窗口刷新当前页面width=200 height=200菜单。菜单栏,工具条,地址栏,状态栏全没有

this.Response.Write("<script

language=Javascript>window.open('rows.aspx','newwindow','width=200,height=200')</script>");

//弹出窗口刷新当前页面

this.Response.Write("<script

language=javascript>window.open('rows.aspx')</script>");

this.Response.Write("<script>window.open('WebForm2.aspx','_blank');</script>");

//弹出提示窗口跳到webform2.aspx页(在一个IE窗口中)

this.Response.Write(" <script language=javascript>alert('注册成功');window.window.location.href='WebForm2.aspx';</script> ");

//关闭当前子窗口,刷新父窗口

this.Response.Write("<script>window.opener.location.href=window.opener.location.href;window.close();</script>");

this.Response.Write("<script>window.opener.location.replace(window.opener.document.referrer);window.close();</script>");

//子窗口刷新父窗口

this.Response.Write("<script>window.opener.location.href=window.opener.location.href;</script>");

this.Response.Write("<script>window.opener.location.href='WebForm1.aspx';</script>");

//弹出提示窗口.确定后弹出子窗口(WebForm2.aspx)

this.Response.Write("<script language='javascript'>alert('发表成功!');window.open('WebForm2.aspx')</script>");

//弹出提示窗口,确定后,刷新父窗口

this.Response.Write("<script>alert('发表成功!');window.opener.location.href=window.opener.location.href;</script>"

);

//弹出相同的一页

<INPUT type="button" value="Button" onclick="javascript:window.open(window.location.href)">

//

Response.Write("parent.mainFrameBottom.location.href='yourwebform.aspx?temp=" +str+"';");

<SCRIPT LANGUAGE="javascript">

<!--

window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要写成一行

-->

</SCRIPT>

参数解释:

<SCRIPT LANGUAGE="javascript"> js脚本开始;

window.open 弹出新窗口的命令;

'page.html' 弹出窗口的文件名;

'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替; height=100 窗口高度;

width=400 窗口宽度;

top=0 窗口距离屏幕上方的象素值;

left=0 窗口距离屏幕左侧的象素值;

toolbar=no 是否显示工具栏,yes为显示;

menubar,scrollbars 表示菜单栏和滚动栏。

resizable=no 是否允许改变窗口大小,yes为允许;

location=no 是否显示地址栏,yes为允许;

status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许; </SCRIPT> js脚本结束

'newwin':隐藏菜单栏地址栏工具条

width=50:宽度

height=50:高度

scrollbars=yes/n滚动条

top=50:窗口距离屏幕上方

left=50:窗口距离屏幕左侧

例:window.open('detail.aspx?ID="+e.Item.Cells[1].Text+"','newwin','width=750,height=600,scrollbars=yes,top=50,left=50');");

this.Response.Write("<Script>window.open('WebForm2.aspx','','toolbar=

no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=750,height=470,left=80,top=40');</script>");

例:

this.Response.Write("<script>alert('发表成功!');window.opener.location.href=window.opener.location.href;</script>");

this.Response.Write("<script>");

this.Response.Write("{top.opener =null;top.close();}");

this.Response.Write("</script>");

例: linkcolumn1.DataNavigateUrlFormatString="javascript:varwin=window.open('edit_usr.aspx?actid={0}','newwin','width=750,height=600,scrollbars=yes,top=50,left=50');window.close()";

window.open

<a href="#" onClick="javascrpt:window.open('adminlove_edituser.asp?user_id=<%=rs("user_id")%>','','toolbar=no,location=no,width=540,height=360')">编审</a>

window.open 的各个属性参数

具体总结 window.open 的各个属性参数如下:

windowobj = window.open([URL ][, name ][, features ][, replace]]]]) URL:新窗口的URL地址

name:新窗口的名称,可以为空

featurse:属性控制字符串,在此控制窗口的各种属性,属性之间以逗号隔开。 fullscreen= { yes/no/1/0 } 是否全屏,默认no

channelmode= { yes/no/1/0 } 是否显示频道栏,默认no

toolbar= { yes/no/1/0 } 是否显示工具条,默认no

location= { yes/no/1/0 } 是否显示地址栏,默认no

directories = { yes/no/1/0 } 是否显示转向按钮,默认no

status= { yes/no/1/0 } 是否显示窗口状态条,默认no

menubar= { yes/no/1/0 } 是否显示菜单,默认no

scrollbars= { yes/no/1/0 } 是否显示滚动条,默认yes

resizable= { yes/no/1/0 } 是否窗口可调整大小,默认no

width=number 窗口宽度(像素单位)

height=number 窗口高度(像素单位)

top=number 窗口离屏幕顶部距离(像素单位)

left=number 窗口离屏幕左边距离(像素单位)

更多类似范文
┣ 开发总结 300字
┣ 系统开发总结 1800字
┣ 项目开发总结 3700字
┣ 资源开发总结 3300字
┣ 更多开发总结
┗ 搜索类似范文