Você está na página 1de 8

REPORT zp_postcode. type-pools: slis. NODES: pernr. INFOTYPES: 0000, 0001, 0002, 0006, 0008, 0014, 0105, 0121.

SELECTION-SCREEN BEGIN OF BLOCK pcode WITH FRAME TITLE text-s01. SELECT-OPTIONS: so_pcode FOR p0006-pstlz. SELECTION-SCREEN END OF BLOCK pcode. TYPES: BEGIN OF t_output, pernr TYPE p0001-pernr, "personnel name anredtxt TYPE t522t-atext, "title (based on p0002-anred) fname TYPE p0002-vorna, "first name lname TYPE p0002-nachn, "last name orgtx TYPE t527x-orgtx, "dept fte TYPE p0008-bsgrd, "fte parking(20) TYPE c, payslip TYPE t526-sachn, "payslip address telno TYPE p0105-usrid_long, "tel number(p0105-usrty = 0020) email TYPE p0105-usrid_long, "email (p0105-usrty = MAIL) postcode type p0006-pstlz, END OF t_output. DATA: it_output TYPE STANDARD TABLE OF t_output INITIAL SIZE 0, wa_output TYPE t_output. *ALV data declarations data: fieldcatalog type slis_t_fieldcat_alv with header line, gd_tab_group type slis_t_sp_group_alv, gd_layout type slis_layout_alv, gd_repid like sy-repid, gt_events type slis_t_event, gd_prntparams type slis_print_alv, gd_count(6) type n, gd_outtext(70) type c, gd_lines type i. "ALV Declarations

********************************************************************* *** *START-OF-SELECTION. START-OF-SELECTION. clear: gd_count. GET pernr. * Infotype 0121 is used to store multiple contracts for personnel. * Field p0121-hpern contains the personnel number for the main contract. PROVIDE * from p0121 between pn-begda and pn-endda. * Check if main contract if p0121-pernr ne p0121-hpern. reject. endif. ENDPROVIDE. add 1 to gd_count. concatenate 'Processing personnel data'(m10) gd_count into gd_outtext separated by ' '. * Display indicator for employee count perform progress_indicator using gd_outtext. * Retrieve datd from infotypes rp_provide_from_last p0000 space pn-begda pn-endda. rp_provide_from_last p0001 space pn-begda pn-endda. rp_provide_from_last p0002 space pn-begda pn-endda. rp_provide_from_last p0006 space pn-begda pn-endda. rp_provide_from_last p0008 space pn-begda pn-endda. rp_provide_from_last p0014 space pn-begda pn-endda. * Check post code CHECK p0006-pstlz IN so_pcode. "cp

* Post code wa_output-postcode = p0006-pstlz. * Personnel number wa_output-pernr = pernr-pernr. * Personnel title SELECT SINGLE atext FROM t522t INTO wa_output-anredtxt WHERE sprsl EQ sy-langu AND anred EQ p0002-anred. * First name wa_output-fname = p0002-vorna. * Last name wa_output-lname = p0002-nachn. * Organizational Unit text (dept) SELECT SINGLE orgtx FROM t527x INTO wa_output-orgtx WHERE sprsl EQ sy-langu AND orgeh EQ p0001-orgeh AND endda GE sy-datum. * FTE wa_output-fte = p0008-bsgrd. * Parking / travel deducted? CASE p0014-lgart. WHEN '7180' OR '7181' OR '7182'. wa_output-parking = text-002. WHEN '7183'. wa_output-parking = text-001. WHEN '7171' OR '7172' or '7173' or '7174' or '7175' or '7176' or '7177' or '7178'. wa_output-parking = text-003.

ENDCASE. * Payslip Address SELECT SINGLE sachn FROM t526 INTO wa_output-payslip WHERE werks EQ p0001-werks AND sachx EQ p0001-sacha. PROVIDE * from p0105 between pn-begda and pn-endda. * Telephone numbers if p0105-usrty = '0020'. wa_output-telno = p0105-usrid_long. endif. * Email address if p0105-usrty = 'MAIL'. wa_output-email = p0105-usrid_long. endif. ENDPROVIDE. append wa_output to it_output. clear: wa_output. ********************************************************************* *** *END-OF-SELECTION. END-OF-SELECTION. describe table it_output lines gd_lines. if gd_lines gt 0. perform build_fieldcatalog. perform build_layout. perform display_alv_report. else. message i003(zp) with 'No records found'. endif.

*&---------------------------------------------------------------------* *& Form PROGRESS_INDICATOR *&---------------------------------------------------------------------* * Displays progress indicator on SAP screen *----------------------------------------------------------------------* form progress_indicator using p_text. call function 'SAPGUI_PROGRESS_INDICATOR' exporting * PERCENTAGE = 0 text = p_text. endform. " PROGRESS_INDICATOR *&---------------------------------------------------------------------* *& Form BUILD_FIELDCATALOG *&---------------------------------------------------------------------* * Build Fieldcatalog for ALV Report *----------------------------------------------------------------------* form build_fieldcatalog. fieldcatalog-fieldname = 'PERNR'. fieldcatalog-seltext_m = 'Personnel No.'. fieldcatalog-col_pos = 0. fieldcatalog-outputlen = 10. * fieldcatalog-emphasize = 'X'. * fieldcatalog-key = 'X'. * fieldcatalog-do_sum = 'X'. * fieldcatalog-no_zero = 'X'. append fieldcatalog to fieldcatalog. clear fieldcatalog. fieldcatalog-fieldname = 'ANREDTXT'. fieldcatalog-seltext_m = 'Title'. fieldcatalog-col_pos = 1. append fieldcatalog to fieldcatalog. clear fieldcatalog. fieldcatalog-fieldname = 'FNAME'. fieldcatalog-seltext_m = 'First Name'. fieldcatalog-col_pos = 2. append fieldcatalog to fieldcatalog. clear fieldcatalog.

fieldcatalog-fieldname = 'LNAME'. fieldcatalog-seltext_m = 'Last Name'. fieldcatalog-col_pos = 3. append fieldcatalog to fieldcatalog. clear fieldcatalog. fieldcatalog-fieldname = 'ORGTX'. fieldcatalog-seltext_m = 'Department'. fieldcatalog-col_pos = 4. append fieldcatalog to fieldcatalog. clear fieldcatalog. fieldcatalog-fieldname = 'FTE'. fieldcatalog-seltext_m = 'FTE'. fieldcatalog-col_pos = 5. append fieldcatalog to fieldcatalog. clear fieldcatalog. fieldcatalog-fieldname = 'PARKING'. fieldcatalog-seltext_m = 'Parking/Metrocard'. fieldcatalog-col_pos = 6. append fieldcatalog to fieldcatalog. clear fieldcatalog. fieldcatalog-fieldname = 'PAYSLIP'. fieldcatalog-seltext_m = 'Payslip Add.'. fieldcatalog-col_pos = 7. append fieldcatalog to fieldcatalog. clear fieldcatalog. fieldcatalog-fieldname = 'TELNO'. fieldcatalog-seltext_m = 'Telephone'. fieldcatalog-col_pos = 8. append fieldcatalog to fieldcatalog. clear fieldcatalog. fieldcatalog-fieldname = 'EMAIL'. fieldcatalog-seltext_m = 'E-mail'. fieldcatalog-col_pos = 9. append fieldcatalog to fieldcatalog. clear fieldcatalog.

fieldcatalog-fieldname = 'POSTCODE'. fieldcatalog-seltext_m = 'Post code'. fieldcatalog-col_pos = 10. append fieldcatalog to fieldcatalog. clear fieldcatalog. endform. " BUILD_FIELDCATALOG *&---------------------------------------------------------------------* *& Form BUILD_LAYOUT *&---------------------------------------------------------------------* * Build layout for ALV grid report *----------------------------------------------------------------------* form build_layout. gd_layout-no_input = 'X'. gd_layout-colwidth_optimize = 'X'. gd_layout-totals_text = 'Totals'(201). gd_layout-zebra = 'X'. endform. " BUILD_LAYOUT *&---------------------------------------------------------------------* *& Form DISPLAY_ALV_REPORT *&---------------------------------------------------------------------* * Display report using ALV grid *----------------------------------------------------------------------* form display_alv_report. gd_repid = sy-repid. call function 'REUSE_ALV_GRID_DISPLAY' exporting i_callback_program = gd_repid is_layout = gd_layout it_fieldcat = fieldcatalog[] i_save = 'X' tables t_outtab = it_output 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

Você também pode gostar