************************************************************************
* Object Name : REPORT ZHCM_ASMNT1PNP. *
* Author/Company Name : Krishnakant Joshi / *
* Transport Request *
* Creation Date * 01/21/2013
************************************************************************
* Description: * Employee hiring details
************************************************************************
* Dependencies *
************************************************************************
* Modification History *
************************************************************************
* Date Programmer Client Ref No. Description Correction *
************************************************************************
REPORT zhcm_asmnt1pnp.
*&**********************************************************************
*& INCLUDE
*&**********************************************************************
INCLUDE : zhcm_asmnt1pnp_top, "Global Types and Data
zhcm_asmnt1pnp_form. "Subroutines
*&**********************************************************************
*& INITIALIZATION.
*&**********************************************************************
INITIALIZATION.
v_repid = sy-repid.
*&**********************************************************************
*& AT SELECTION-SCREEN
*&**********************************************************************
AT SELECTION-SCREEN.
*&**********************************************************************
*& START-OF-SELECTION
*&**********************************************************************
START-OF-SELECTION.
PERFORM get_texts.
SORT: i_t513s BY stell,
i_t530t BY massn massg,
i_t529t BY massn.
*&**********************************************************************
*& GET PERNR.
*&**********************************************************************
GET pernr.
DATA : w_final TYPE t_final,
v_dar TYPE datar,
v_dat TYPE dardt.
*&---------------------------------------------------------------------*
*& Local data for prosessing
DATA : w_t529t TYPE t_t529t,
w_t530t TYPE t_t530t,
w_t513s TYPE t_t513s,
w_t548t TYPE t_t548t,
lw_p0000 TYPE p0000.
*&---------------------------------------------------------------------
*& Get Date specifications
rp-provide-from-last p0041 space pn-begda pn-endda.
IF pnp-sw-found = c_1.
*&---------------------------------------------------------------------*
*& Do loop to check for hire date or original hire date
DO 12 TIMES VARYING v_dar FROM p0041-dar01 NEXT
p0041-dar02
VARYING v_dat FROM p0041-dat01 NEXT
p0041-dat02.
*&---------------------------------------------------------------------*
*& Check for Original date
IF v_dar = c_16.
w_final-dat01 = v_dat.
w_final-dtext = v_dar.
*&---------------------------------------------------------------------*
*& Check for hire date
ELSEIF v_dar = c_u1.
w_final-dat01 = v_dat.
w_final-dtext = v_dar.
EXIT.
ENDIF.
CLEAR: v_dar, v_dat.
ENDDO.
IF w_final-dat01 IS INITIAL.
REJECT.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------
*& Get action data
rp-provide-from-last p0000 space pn-begda pn-endda.
IF pnp-sw-found = c_1.
DELETE p0000[] WHERE stat2 <> 3.
IF p0000[] IS NOT INITIAL.
SORT p0000 BY endda DESCENDING.
READ TABLE p0000 INTO lw_p0000 INDEX 1.
w_final-pernr = lw_p0000-pernr. "Employee number
w_final-begda = lw_p0000-begda. "Start date
READ TABLE i_t529t INTO w_t529t
WITH KEY massn = lw_p0000-massn
BINARY SEARCH.
IF sy-subrc = 0.
w_final-mntxt = w_t529t-mntxt. "Action text
ENDIF.
IF lw_p0000-massg IS NOT INITIAL AND lw_p0000-massn IS NOT INITIAL.
CLEAR w_t530t.
*&---------------------------------------------------------------------*
*& Populate Action reason text
READ TABLE i_t530t INTO w_t530t
WITH KEY massn = lw_p0000-massn
massg = lw_p0000-massg
BINARY SEARCH.
IF sy-subrc = 0.
w_final-mgtxt = w_t530t-mgtxt."Action reason text
ENDIF.
ENDIF.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------
*& Get organizational assignments
rp-provide-from-last p0001 space pn-begda pn-endda.
IF pnp-sw-found = c_1.
w_final-werks = p0001-werks.
w_final-orgeh = p0001-orgeh.
w_final-kostl = p0001-kostl.
*&---------------------------------------------------------------------*
*& Populate job text
CLEAR w_t513s.
READ TABLE i_t513s INTO w_t513s
WITH KEY stell = p0001-stell
BINARY SEARCH.
IF sy-subrc = 0.
w_final-stltx = w_t513s-stltx.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------
*& Get Personal data
rp-provide-from-last p0002 space pn-begda pn-endda.
IF pnp-sw-found = c_1.
w_final-vorna = p0002-vorna. "First name
w_final-nachn = p0002-nachn. "Last name
CASE p0002-gesch. "Gender
WHEN c_1.
w_final-gesch = text-037.
WHEN c_2.
w_final-gesch = text-038.
WHEN OTHERS.
w_final-gesch = text-039.
ENDCASE.
w_final-gbdep = p0002-gbdep.
w_final-gbdat = p0002-gbdat.
ENDIF.
*&---------------------------------------------------------------------
*& Get Address details
rp-provide-from-last p0006 c_1 pn-begda pn-endda.
IF pnp-sw-found = c_1.
w_final-pstlz = p0006-pstlz.
ENDIF.
*&---------------------------------------------------------------------
*& Get Basic Pay details
rp-provide-from-last p0008 space pn-begda pn-endda.
IF pnp-sw-found = c_1.
w_final-ansal = p0008-ansal. "Annual salary
ENDIF.
*&---------------------------------------------------------------------
*& Get Email details
rp-provide-from-last p0105 c_0010 pn-begda pn-endda.
IF pnp-sw-found = c_1.
w_final-usrid_long = p0105-usrid_long. "Email
ENDIF.
*&---------------------------------------------------------------------
*& Append work area
IF w_final-dat01 IS NOT INITIAL.
CLEAR w_t548t.
*&---------------------------------------------------------------------*
*& Populate date text
READ TABLE i_t548t INTO w_t548t
WITH KEY datar = w_final-dtext.
IF sy-subrc = 0.
w_final-dtext = w_t548t-dtext. "Date text
ENDIF.
APPEND w_final TO i_final.
CLEAR w_final.
ENDIF.
*&**********************************************************************
*& END-OF-SELECTION
*&**********************************************************************
END-OF-SELECTION.
IF i_final IS NOT INITIAL.
PERFORM build_fieldcatalog.
PERFORM set_layout.
PERFORM display_alv_report.
ELSE.
MESSAGE text-046 TYPE c_i.
ENDIF.
*&---------------------------------------------------------------------*
*& Include ZHCM_ASMNT1PNP_TOP
*&---------------------------------------------------------------------*
TYPE-POOLS: slis.
TABLES: pernr.
INFOTYPES: 0000, 0001, 0002, 0006, 0008, 0041, 0105.
*&---------------------------------------------------------------------*
TYPES:
*&---------------------------------------------------------------------*
*& Date text
BEGIN OF t_t548t,
datar TYPE datar,
dtext TYPE datax,
END OF t_t548t,
*&---------------------------------------------------------------------*
*& Personnel Action Texts
BEGIN OF t_t529t,
massn TYPE massn, "Action Type
mntxt TYPE mntxt, "Name of Action Type
END OF t_t529t,
*&---------------------------------------------------------------------*
*& Reason for Action Texts
BEGIN OF t_t530t,
massn TYPE massn, "Action Type
massg TYPE massg, "Reason for Action
mgtxt TYPE mgtxt, "Name of reason for action
END OF t_t530t,
*&---------------------------------------------------------------------*
*& Job Titles
BEGIN OF t_t513s,
stell TYPE stell, "Job
stltx TYPE stltx, "Job Title
begda TYPE begda, "Start Date
endda TYPE endda, "End Date
END OF t_t513s,
*&---------------------------------------------------------------------*
*& Final table
BEGIN OF t_final,
pernr TYPE pernr,
begda TYPE begda,
mntxt TYPE mntxt,
mgtxt TYPE mgtxt,
vorna TYPE pad_vorna,
nachn TYPE pad_nachn,
gesch TYPE char20,
gbdep TYPE gbdep,
pstlz TYPE pstlz_hr,
werks TYPE persa,
stltx TYPE stltx,
orgeh TYPE orgeh,
kostl TYPE kostl,
gbdat TYPE gbdat,
usrid_long TYPE comm_id_long,
dtext TYPE datax,
dat01 TYPE dardt,
ansal TYPE ansal,
END OF t_final.
*&**********************************************************************
*& Data
*&**********************************************************************
DATA: i_t529t TYPE STANDARD TABLE OF t_t529t,
i_t530t TYPE STANDARD TABLE OF t_t530t,
i_t513s TYPE STANDARD TABLE OF t_t513s,
i_final TYPE STANDARD TABLE OF t_final,
i_t548t TYPE STANDARD TABLE OF t_t548t.
DATA: i_fieldcatalog TYPE TABLE OF slis_fieldcat_alv,
w_fieldcatalog TYPE slis_fieldcat_alv,
v_repid LIKE sy-repid,
v_gridtitle TYPE lvc_title,
w_layout TYPE slis_layout_alv.
DATA : v_colpos TYPE i VALUE 1.
*&**********************************************************************
*& Constants
*&**********************************************************************
CONSTANTS : c_x TYPE c VALUE 'X',
c_h TYPE c VALUE 'H',
c_i TYPE c VALUE 'I',
c_s TYPE c VALUE 'S',
c_1 TYPE c VALUE '1',
c_2 TYPE c VALUE '2',
c_u1 TYPE char02 VALUE 'U1',
c_16 TYPE char02 VALUE '16',
c_0010 TYPE char04 VALUE '0010'.
*&---------------------------------------------------------------------*
*& Include ZHCM_ASMNT1PNP_FORM
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Form build_fieldcatalog *
*----------------------------------------------------------------------*
* This form is used set field catalog
*----------------------------------------------------------------------*
FORM build_fieldcatalog .
* SET Field Catalog
PERFORM set_fieldcatalog USING : text-019 text-001,
text-020 text-018,
text-021 text-002,
text-022 text-003,
text-023 text-004,
text-024 text-005,
text-025 text-006,
text-026 text-007,
text-027 text-008,
text-028 text-009,
text-029 text-010,
text-030 text-011,
text-031 text-012,
text-032 text-013,
text-033 text-014,
text-034 text-015,
text-035 text-016,
text-036 text-017.
ENDFORM. " BUILD_FIELDCATALOG
*----------------------------------------------------------------------*
* Form display_alv_report *
*----------------------------------------------------------------------*
* This form is used to display report
*----------------------------------------------------------------------*
FORM display_alv_report .
v_gridtitle = text-042.
* ALV GRID DISPLAY Function Module call---------------------------------
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = v_repid
i_callback_top_of_page = 'TOP_OF_PAGE'
it_fieldcat = i_fieldcatalog
is_layout = w_layout
i_grid_title = v_gridtitle
TABLES
t_outtab = i_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. "display_alv_report
*----------------------------------------------------------------------*
* Form set_fieldcatalog *
*----------------------------------------------------------------------*
* This form is used to set field catalog
*----------------------------------------------------------------------*
FORM set_fieldcatalog USING p_field type slis_fieldname
p_seltext type SCRTEXT_M .
CLEAR w_fieldcatalog.
w_fieldcatalog-fieldname = p_field.
w_fieldcatalog-seltext_m = p_seltext.
w_fieldcatalog-col_pos = v_colpos.
w_fieldcatalog-do_sum = c_x.
APPEND w_fieldcatalog TO i_fieldcatalog.
v_colpos = v_colpos + 1.
ENDFORM. " set_fieldcatalog
*----------------------------------------------------------------------*
* Form set_layout *
*----------------------------------------------------------------------*
* This form is used to set report layout
*----------------------------------------------------------------------*
FORM set_layout.
w_layout-no_hotspot = c_x.
w_layout-zebra = c_x.
w_layout-colwidth_optimize = c_x.
ENDFORM. "set_layout
*----------------------------------------------------------------------*
* top_of_page *
*----------------------------------------------------------------------*
* This form is used to set top of page
*----------------------------------------------------------------------*
FORM top_of_page.
DATA : li_header TYPE TABLE OF slis_listheader,
lw_header TYPE slis_listheader,
lv_count TYPE i,
lv_date TYPE char10.
lw_header-info = text-042.
lw_header-key = text-045.
lw_header-typ = c_h.
APPEND lw_header TO li_header.
CLEAR lw_header.
DESCRIBE TABLE i_final LINES lv_count.
WRITE lv_count TO lw_header-info.
"lw_header-info = lv_date.
lw_header-key = text-043.
lw_header-typ = c_s.
APPEND lw_header TO li_header.
CLEAR lw_header.
WRITE: sy-datum TO lv_date USING EDIT MASK '__/__/____'.
lw_header-info = lv_date.
lw_header-key = text-044.
lw_header-typ = c_s.
APPEND lw_header TO li_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = li_header.
ENDFORM. "TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& Form GET_TEXTS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_texts .
*&---------------------------------------------------------------------*
*& Get Date text
SELECT datar dtext
FROM t548t
INTO TABLE i_t548t
WHERE sprsl = sy-langu AND ( datar = c_u1 OR datar = c_16 ).
*&---------------------------------------------------------------------*
*& Get Job title
SELECT stell stltx endda begda
FROM t513s
INTO TABLE i_t513s
WHERE sprsl = sy-langu.
*&---------------------------------------------------------------------
*& Action Texts
SELECT massn mntxt
INTO TABLE i_t529t
FROM t529t
WHERE sprsl = sy-langu.
*&---------------------------------------------------------------------
*& Reason for Action Texts
SELECT massn massg mgtxt
INTO TABLE i_t530t
FROM t530t
WHERE sprsl = sy-langu.
ENDFORM. " GET_TEXTS
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
5 | |
2 | |
2 | |
2 | |
2 | |
2 | |
2 | |
2 | |
1 | |
1 |