本帖最后由 小疯子 于 2013-10-26 19:18 编辑
读取RT表中相应的薪资信息。 读取步骤如下: 1,读取RGDIR(工资发放结果) 2,读取Payroll表 3,读取RT表 4, 读取需要的工资项
代码实例如下: * 读取payroll表 * 读取RGDIR(工资发放结果) DATA:tab_in_rgdir LIKE pc261 OCCURS 0 WITH HEADER LINE."RGDIR DATA:l_py_result TYPE paycn_result, l_seqnr TYPE pc261-seqnr. DATA:rec_rt TYPE LINE OF hrpay99_rt.
CALL FUNCTION 'CU_READ_RGDIR' EXPORTING persnr = p0002-pernr TABLES in_rgdir = tab_in_rgdir EXCEPTIONS no_record_found = 1 OTHERS = 2 . IF sy-subrc = 0. * 读取Payroll中奖金信息 LOOP AT tab_in_rgdir WHERE payty EQ 'A' AND srtza = 'A' AND bondt between PNPDISBD and PNPDISED and bondt = P_DATE1. l_seqnr = tab_in_rgdir-seqnr . * 得到RT表 CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT' EXPORTING employeenumber = p0002-pernr sequencenumber = l_seqnr check_read_authority = 'X' CHANGING payroll_result = l_py_result EXCEPTIONS illegal_isocode_or_clusterid = 1 error_generating_import = 2 import_mismatch_error = 3 subpool_dir_full = 4 no_read_authority = 5 no_record_found = 6 versions_do_not_match = 7 error_reading_archive = 8 error_reading_relid = 9 OTHERS = 10 . IF sy-subrc = 0. * 读取RT表中的工资项560记录 LOOP AT l_py_result-inter-rt INTO rec_rt WHERE lgart = '/560'. IF rec_rt-betrg <> 0. ITAB_ALL-MONEY = rec_rt-betrg. COLLECT ITAB_ALL. ENDIF. ENDLOOP . ENDIF. ENDLOOP . ENDIF.
工资核算类型
|