《员工清单ABAP样例》由会员分享,可在线阅读,更多相关《员工清单ABAP样例(9页珍藏版)》请在金锄头文库上搜索。
1、*&-*& Report ZHRPYM02*&*&-*&*&*&-*REPORT ZHRPYM02 NO STANDARD PAGE HEADING MESSAGE-ID zmhr.TYPE-POOLS slis. 用于声明类型组 Lsis中的数据类型和常量TABLES: pernr,zthrjob. tables用于声明可以使用它的表空间区域 zthrjob岗位与职系、序列、职等的关系NODES: person, NODES可以把数据从逻辑数据库考贝到可执行程序group, CEperas. CEINFOTYPES: 0001, 0002, 0022, 0032, 0041, 0185, 0
2、529, 0534, 0709.DATA: it_fieldcat TYPE lvc_s_fcat OCCURS 0, ALV格式 LVC_S_FCAT: ALV 控制: 字段目录wa_fieldcat TYPE lvc_s_fcat,wa_layout TYPE lvc_s_layo. lvc_s_layo 布局DATA: BEGIN OF itab OCCURS 0, 定义内表pernr LIKE pa0001-pernr, 人员编号sname LIKE pa0001-sname, 员工姓名gesch LIKE Pa0002-GESCH, 员工性别 IDSEX(4), 用于显示员工性别文本
3、age TYPE i, 员工年龄gbdat like pa0002-GBDAT, 出生日期pcode LIKE Pa0534-PCODE, 政治面貌werks LIKE pa0001-werks, 人事范围 IDname1 LIKE t500p-name1, 人事范围文本orgeh LIKE p0001-orgeh, 部门 IDorgtx LIKE t527x-orgtx, 部门名称plans LIKE pa0001-plans, 职位 IDplstx LIKE t528t-plstx, 职位文本stell LIKE pa0001-stell, 岗位 IDstltx like t513s-st
4、ltx, 岗位文本icnum LIKE p0185-icnum, 身份证号 zgwlb LIKE pa0001-zgwlb, 岗位类别,从域取值zzx LIKE pa0001-zzx, 职系 IDzzhixi LIKE zthrzx-zzhixi, 职系文本zxl LIKE pa0001-zxl, 序列 IDzxulie LIKE zthrxl-zxulie, 序列文本gl_t(40),sl_t(40),END OF itab.data: zbegda like pa0001-begda,zendda like pa0001-endda.DATA: BEGIN OF it_peras OCCU
5、RS 0,personid_ext LIKE pa0709-personid_ext,END OF it_peras.DATA: zperas_num TYPE i,用于最后报表输出时的人员统计zpernr_num TYPE i.DATA: l_dd07v_zgwlb LIKE STANDARD TABLE OF dd07v WITH HEADER LINE. 声明岗位类别域,以便取文本DATA: l_dd07v_gesch LIKE STANDARD TABLE OF dd07v WITH HEADER LINE. 声明性别域,以便取文本DATA: l_dd07v_zhklb LIKE ST
6、ANDARD TABLE OF dd07v WITH HEADER LINE. 声明户口类别域,以便取文本selection-screen begin of block b1 with frame title text-s01.定义附加条件select-options:Z_ZZX FOR zthrjob-ZZX MATCHCODE OBJECT zhhrzx, ZHHRZX 职系搜索帮助 如果是使用搜索帮助的,在 select-option for后面还要加上额外的 match objectZ_zxl FOR zthrjob-zxl MATCHCODE OBJECT zhhrxl, ZHHRX
7、L 序列搜索帮助Z_zzd FOR zthrjob-zzhideng, 职等Z_zgwlb FOR zthrjob-zgwlb. 岗位类别SELECTION-SCREEN END OF BLOCK b1.INITIALIZATION. 为屏幕选择字段的就业状态 STAT2设置默认值 3.CLEAR: pnpstat2, pnpstat2.pnpstat2-sign = I.pnpstat2-option = EQ.pnpstat2-low = 3.APPEND pnpstat2.AT SELECTION-SCREEN.START-OF-SELECTION.CLEAR: itab, itab.z
8、begda = pn-begda.zendda = pn-endda.GET PERAS.PERFORM frm_get_data .END-OF-SELECTION.IF itab IS INITIAL.MESSAGE s000(zmhr) WITH text-m01.EXIT.ENDIF.PERFORM FRM_DISPLAY_DATA .*&-*& Form frm_get_data*&-* 读取数据*-*FORM frm_get_data. 读取数据DATA: c_year(4) TYPE n, b_year(4) TYPE n. 系统日期年 ITAB日期年 用于计算员工年龄DATA:
9、 c_date(4) TYPE n, b_date(4) TYPE n. 系统日期月日 ITAB 日期月日rp_provide_from_last p0001 space zbegda zendda.CHECK pnp-sw-found = 1.CHECK p0001-zzx IN z_zzxAND p0001-zxl IN z_zxlAND p0001-zzhideng IN z_zzdAND p0001-zgwlb IN z_zgwlb.itab-orgeh = p0001-orgeh.* itab-persg = p0001-persg.itab-pernr = p0001-pernr.
10、itab-sname = p0001-sname.itab-plans = p0001-plans.itab-werks = p0001-werks.itab-gbdat = p0002-gbdat.itab-pcode = p0534-pcode.* itab-btrtl = p0001-btrtl.* itab-persg = p0001-persg.* itab-persk = p0001-persk.itab-plans = p0001-plans.itab-stell = p0001-stell.itab-zgwlb = p0001-zgwlb.* itab-zzhideng = p
11、0001-zzhideng.itab-zzx = p0001-zzx.itab-zxl = p0001-zxl.SELECT domvalue_l ddtext 岗位类别文本FROM dd07vINTO CORRESPONDING FIELDS OF TABLE l_dd07v_zgwlbWHERE domname = ZGWLBAND ddlanguage = 1.READ TABLE l_dd07v_zgwlb WITH KEY domvalue_l = itab-zgwlb.IF sy-subrc = 0.itab-zgwlb = l_dd07v_zgwlb-ddtext.ENDIF.S
12、ELECT SINGLE orgtx 组织单元文本FROM t527xINTO itab-orgtxWHERE orgeh = itab-orgehAND sprsl = sy-languAND endda = ALL ( SELECT endda FROM t527xWHERE orgeh = itab-orgehAND sprsl = sy-languAND ( endda = zbegda AND begda = ALL ( SELECT endda FROM t528t WHERE plans = itab-plansAND otype = SAND sprsl = sy-languA
13、ND ( endda = zbegda AND begda = ALL ( SELECT endda FROM t513sWHERE stell = itab-stellAND sprsl = sy-languAND ( endda = zbegda AND begda c_date.itab-age = c_year - b_year - 1.else.itab-age = c_year - b_year.endif.APPEND ITAB.ENDFORM .FORM FRM_DISPLAY_DATA.CLEAR: it_peras, it_peras.LOOP AT itab. 必须,否则 ITAB就是空表MOVE-CORRESPONDING itab TO it_peras.APPEND it_peras.ENDLOOP.DESCRIBE TABLE itab LINES zpernr_nu