*&---------------------------------------------------------------------*
*& Report ZHR_PAYSLIP_TO_PDF_LIST
*&---------------------------------------------------------------------*
*&Author: Sreenith Sathian
*&---------------------------------------------------------------------*
REPORT zhr_payslip_to_pdf_list.
TABLES:tsp01,pa0001.
TYPES : BEGIN OF ty_listm.
    INCLUDE STRUCTURE abaplist.
TYPES: END OF ty_listm.
TYPES: BEGIN OF ty_conf.
    INCLUDE STRUCTURE solisti1.
TYPES: END OF ty_conf.
TYPES: BEGIN OF ty_status ,
         slno     TYPE count,
         filename TYPE text150,
       END OF ty_status.
*-- INTERNAL TABLES
DATA:
  mtab_pdf    LIKE tline OCCURS 0 WITH HEADER LINE,
  mc_filename LIKE rlgrap-filename,
  lt_0001     TYPE TABLE OF pa0001,
  ls_0001     TYPE  pa0001,
  lt_status   TYPE TABLE OF ty_status,
  ls_status   TYPE ty_status,
  lt_emps     TYPE TABLE OF bapiout_001,
  lt_empsx    TYPE TABLE OF bapiout_001,
  ls_emps     TYPE bapiout_001,
  lt_paydata  TYPE TABLE OF hrpy_rgdir,
  ls_paydata  TYPE hrpy_rgdir,
  ls_return   TYPE bapireturn1,
  lr_pernr    TYPE TABLE OF selopt,
  ls_pernr    TYPE selopt,
  lv_pernr_s  TYPE string,
  lv_file     TYPE authb-filename
  VALUE '/usr/sap/trans/SAP/PAYSLIP/',
  lt_values   TYPE TABLE OF rsparams,
  ls_values   TYPE rsparams,
  lt_listm    TYPE  TABLE OF ty_listm,
  ls_listm    TYPE  ty_listm,
  lt_conf     TYPE TABLE OF ty_conf,
  ls_conf     TYPE ty_conf,
  lt_bin      TYPE solix_tab,
  ls_bin      TYPE solix,
  lt_dum      TYPE soli_tab,
  lv_count    TYPE i,
  lv_yr_mn    TYPE faper,
  lv_bool     TYPE sx_boolean,
  lv_leng     TYPE so_obj_len,
  lv_repid    TYPE sy-repid VALUE 'HINCEDT0',
  lv_date_e   TYPE char10,
  lv_date_i   TYPE datum,
  lv_begda    TYPE datum,
  lv_endda    TYPE datum,
  lv_permo    TYPE permo,
  lv_pabrj    TYPE pabrj,
  lv_pabrp    TYPE pabrp,
  lv_per_dt   TYPE datum,
  lv_year     TYPE t549q-pabrj,
  lv_month    TYPE t549q-pabrp,
  lv_year_p   TYPE t549q-pabrj,
  lv_month_p  TYPE t549q-pabrp.
FIELD-SYMBOLS: <fs_values> TYPE rsparams.
*--------------------------------------------------------------------*
*-- SELECTION SCREEN
*--------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
PARAMETERS : pnpxabkr TYPE pnpxabkr MATCHCODE OBJECT h_t549a, "Pay.Area
             rb_cur   RADIOBUTTON GROUP g1 MODIF ID  abc
                      USER-COMMAND xyz DEFAULT 'X' ,"Current Period
             rb_oth   RADIOBUTTON GROUP g1.         "Other Period
PARAMETERS : pnppabrp TYPE pnppabrp MODIF ID aaa,   "Month
             pnppabrj TYPE pnppabrj MODIF ID aaa.   "Year
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS :  p_pernr FOR pa0001-pernr NO INTERVALS ."Personnel No
SELECTION-SCREEN END OF BLOCK b2.
*--------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
*--------------------------------------------------------------------*
  LOOP AT SCREEN.
    IF rb_cur = abap_true.
      IF screen-group1 = 'AAA'.
        screen-active = 0.
      ENDIF.
    ELSE.
      IF screen-group1 = 'AAA'.
        screen-active = 1.
      ENDIF.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.
*--------------------------------------------------------------------*
AT SELECTION-SCREEN.
*--------------------------------------------------------------------*
  IF sy-ucomm =  'ONLI'.
    IF  pnpxabkr IS INITIAL.
      MESSAGE 'Please enter Payroll area' TYPE 'E'.
    ELSE.
      IF rb_oth = abap_true .
        IF pnppabrp IS INITIAL OR
        pnppabrj IS INITIAL.
          MESSAGE 'Please enter Period' TYPE 'E'.
        ENDIF.
      ENDIF.
    ENDIF.
  ENDIF.
*--------------------------------------------------------------------*
START-OF-SELECTION.
*--------------------------------------------------------------------*
*Current period
*--------------------------------------------------------------------*
  IF rb_cur  = abap_true.
*--------------------------------------------------------------------*
    CALL FUNCTION 'HR_PAYROLL_PERIOD_GET'
      EXPORTING
        payroll_area   = pnpxabkr
        date           = sy-datum
      IMPORTING
        payroll_year   = lv_year
        payroll_period = lv_month
      EXCEPTIONS
        no_entry_t549a = 1
        no_entry_t549q = 2
        OTHERS         = 3.
    IF sy-subrc <> 0.
* Implement suitable error handling here
    ELSE.
      pnppabrp  = lv_month.
      pnppabrj  = lv_year.
    ENDIF.
  ENDIF.
*--------------------------------------------------------------------*
*Start and end date of Pay Period
*--------------------------------------------------------------------*
*  lv_permo = '01'.
*  lv_pabrj = pnppabrj.
*  lv_pabrp = pnppabrp.
*  CALL FUNCTION 'HR_NL_GET_DATES_OF_PERIOD'
*    EXPORTING
*      im_permo            = lv_permo
*      im_year             = lv_pabrj
*      im_period           = lv_pabrp
*    IMPORTING
*      ex_begda            = lv_begda
*      ex_endda            = lv_endda
*    EXCEPTIONS
*      error_reading_t549q = 1
*      OTHERS              = 2.
*  IF sy-subrc <> 0.
** Implement suitable error handling here
*  ENDIF.
*--------------------------------------------------------------------*
  PERFORM prepare_variant.
*--------------------------------------------------------------------*
*Year and month combined
  CONCATENATE pnppabrj pnppabrp INTO lv_yr_mn.
*--------------------------------------------------------------------*
*if p_pernr is initial - fetch employees based on payroll area
*--------------------------------------------------------------------*
  IF p_pernr IS INITIAL.
    CALL FUNCTION 'BAPI_OUTEMPLOYEE_GETLIST'
      EXPORTING
        iabkrs           = pnpxabkr
      IMPORTING
        return           = ls_return
      TABLES
        outemployee_list = lt_emps.
    IF lt_emps IS NOT INITIAL.
      SELECT * FROM hrpy_rgdir
        INTO TABLE lt_paydata
        FOR ALL ENTRIES IN lt_emps
        WHERE pernr = lt_emps-employeenumber
        AND   fpper = lv_yr_mn. .
    ENDIF.
    LOOP AT lt_emps INTO ls_emps.
      READ TABLE lt_paydata WITH KEY pernr =  ls_emps-employeenumber
      fpper = lv_yr_mn TRANSPORTING NO FIELDS.
      IF sy-subrc  = 0.
        APPEND ls_emps TO lt_empsx.
        CLEAR: ls_emps.
      ENDIF.
    ENDLOOP.
*--------------------------------------------------------------------*
  ELSE."Pernr entered
*--------------------------------------------------------------------*
    SELECT * FROM pa0001
      INTO TABLE lt_0001
      WHERE pernr IN p_pernr
      AND   begda LE sy-datum
      AND   endda GE sy-datum.
    IF sy-subrc = 0.
      SELECT * FROM hrpy_rgdir
        INTO TABLE lt_paydata
        FOR ALL ENTRIES IN lt_0001
        WHERE pernr = lt_0001-pernr
        AND   fpper = lv_yr_mn."period
    ENDIF.
  ENDIF.
*--------------------------------------------------------------------*
  PERFORM change_selection_paramerters.
*--------------------------------------------------------------------*
  CALL FUNCTION 'LIST_FREE_MEMORY'.
  IF p_pernr IS INITIAL.
*Loop PA0001
    PERFORM pernr_is_initial.
  ELSE.
*Loop LT_EMPX
    PERFORM pernr_is_not_initial.
  ENDIF.
*--------------------------------------------------------------------*
*  Status Report display
*--------------------------------------------------------------------*
  IF lt_status IS NOT INITIAL.
    DATA:lit_layout   TYPE REF TO cl_salv_layout,
         lv_key       TYPE salv_s_layout_key,
         lo_functions TYPE REF TO cl_salv_functions_list,
         lo_columns   TYPE REF TO cl_salv_columns_table,
         lit_table    TYPE REF TO cl_salv_table,
         lo_column    TYPE REF TO cl_salv_column_table.
*   Get the event object
    DATA: lo_events TYPE REF TO cl_salv_events_table.
    TRY.
        cl_salv_table=>factory(
          IMPORTING
            r_salv_table = lit_table
          CHANGING
            t_table      =  lt_status )."data table
      CATCH cx_salv_msg.                                "#EC NO_HANDLER
    ENDTRY.
* activate ALV generic Functions
    lo_functions = lit_table->get_functions( ).
    lo_functions->set_all( abap_true ).
**Allow the user to manage layouts of the ALV grid
    lit_layout = lit_table->get_layout( ).
    lv_key-report = sy-repid.
    lit_layout->set_key( lv_key ).
    lit_layout->set_save_restriction( cl_salv_layout=>restrict_none ).
    lo_columns = lit_table->get_columns( ).
    lo_columns->set_optimize( abap_true ).
*    lo_columns->set_key_fixation( ).
*Check box click event
    lo_events = lit_table->get_event( ).
*Change the properties of the Columns
*display the table
    lit_table->display( ).
  ENDIF.
*&---------------------------------------------------------------------*
*& Form PERNR_IS_INITIAL
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM pernr_is_initial .
  LOOP AT lt_empsx INTO ls_emps.
    CLEAR: mc_filename.
    lv_pernr_s = ls_emps-employeenumber .
    CONDENSE lv_pernr_s.
    SHIFT lv_pernr_s LEFT DELETING LEADING '0'.
*Prepare file name
    CONCATENATE lv_file  'HRIS_' lv_pernr_s sy-datum+4(2)
                sy-datum+6(2) sy-datum+2(2)'.pdf'
                INTO mc_filename.
*Check Paydata found or not
    READ TABLE lt_paydata INTO ls_paydata
     WITH KEY pernr =  ls_emps-employeenumber
     fpper = lv_yr_mn .
    IF sy-subrc = 0.
      READ TABLE lt_values ASSIGNING <fs_values>
      WITH KEY selname = 'PNPPERNR'.
      IF sy-subrc = 0.
        <fs_values>-low = ls_emps-employeenumber  .
      ENDIF.
      UNASSIGN <fs_values>.
      READ TABLE lt_values ASSIGNING <fs_values>
      WITH KEY selname = 'PNPDISBD'.
      IF sy-subrc = 0.
        <fs_values>-low = ls_paydata-fpbeg  .
      ENDIF.
      UNASSIGN <fs_values>.
      READ TABLE lt_values ASSIGNING <fs_values>
      WITH KEY selname = 'PNPDISED'.
      IF sy-subrc = 0.
        <fs_values>-low = ls_paydata-fpend  .
      ENDIF.
      UNASSIGN <fs_values>.
    ENDIF.
*--------------------------------------------------------------------*
    SUBMIT (lv_repid) WITH SELECTION-TABLE lt_values
    EXPORTING LIST TO MEMORY AND RETURN.
*--------------------------------------------------------------------*
    CALL FUNCTION 'LIST_FROM_MEMORY'
      TABLES
        listobject = lt_listm
      EXCEPTIONS
        not_found  = 1
        OTHERS     = 2.
    IF sy-subrc = 0.
      CALL FUNCTION 'LIST_FREE_MEMORY'.
      CALL FUNCTION 'RCF_CONVERT_ALI_PRT'
        EXPORTING
          format_dst       = 'PDF'
          devtype          = 'PDF1'
        CHANGING
          abaplist         = lt_listm
          content_bin      = lt_bin
          objhead          = lt_dum
          len              = lv_leng
        EXCEPTIONS
          compress_error   = 1
          conversion_error = 2
          not_supported    = 3
          OTHERS           = 4.
      IF sy-subrc <> 0.
* Implement suitable error handling here
      ENDIF.
      OPEN DATASET mc_filename  FOR OUTPUT IN  BINARY MODE .
      IF sy-subrc NE 0.
      ELSE.
        LOOP AT lt_bin INTO ls_bin .
          TRANSFER ls_bin  TO mc_filename.
        ENDLOOP.
        CLOSE DATASET mc_filename.
      ENDIF.
      CLEAR:lv_leng,lt_dum[],lt_bin[],lt_listm[].
      lv_count = lv_count + 1.
      ls_status-slno = lv_count.
      ls_status-filename = mc_filename.
      APPEND ls_status TO lt_status.
      CLEAR: ls_status.
    ELSE.
      CALL FUNCTION 'LIST_FREE_MEMORY'.
    ENDIF.
  ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PERNR_IS_NOT_INITIAL
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM pernr_is_not_initial .
  LOOP AT lt_0001 INTO ls_0001.
    READ TABLE lt_paydata INTO ls_paydata
    WITH KEY pernr = ls_0001-pernr
             fpper = lv_yr_mn.
    IF sy-subrc = 0.
      CLEAR: mc_filename.
      lv_pernr_s = ls_0001-pernr .
      CONDENSE lv_pernr_s.
      SHIFT lv_pernr_s LEFT DELETING LEADING '0'.
      CONCATENATE lv_file  'HRIS_' lv_pernr_s '_' sy-datum+4(2)
                  sy-datum+6(2) sy-datum+2(2) sy-uzeit '.pdf'
                  INTO mc_filename.
      READ TABLE lt_values ASSIGNING <fs_values>
      WITH KEY selname = 'PNPPERNR'.
      IF sy-subrc = 0.
        <fs_values>-low = ls_0001-pernr  .
      ENDIF.
      SUBMIT (lv_repid) WITH SELECTION-TABLE lt_values
      EXPORTING LIST TO MEMORY AND RETURN.
      CALL FUNCTION 'LIST_FROM_MEMORY'
        TABLES
          listobject = lt_listm
        EXCEPTIONS
          not_found  = 1
          OTHERS     = 2.
      IF sy-subrc = 0.
        CALL FUNCTION 'RCF_CONVERT_ALI_PRT'
          EXPORTING
            format_dst       = 'PDF'
            devtype          = 'PDF1'
          CHANGING
            abaplist         = lt_listm
            content_bin      = lt_bin
            objhead          = lt_dum
            len              = lv_leng
          EXCEPTIONS
            compress_error   = 1
            conversion_error = 2
            not_supported    = 3
            OTHERS           = 4.
        IF sy-subrc <> 0.
* Implement suitable error handling here
        ENDIF.
        OPEN DATASET mc_filename  FOR OUTPUT IN  BINARY MODE .
        IF sy-subrc NE 0.
        ELSE.
          LOOP AT lt_bin INTO ls_bin .
            TRANSFER ls_bin  TO mc_filename.
          ENDLOOP.
          CLOSE DATASET mc_filename.
        ENDIF.
        CLEAR:lv_leng,lt_dum[],lt_bin[],lt_listm[].
        CALL FUNCTION 'LIST_FREE_MEMORY'.
        lv_count = lv_count + 1.
        ls_status-slno = lv_count.
        ls_status-filename = mc_filename.
        APPEND ls_status TO lt_status.
        CLEAR: ls_status.
      ENDIF.
    ENDIF.
  ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CHANGE_SELECTION_PARAMERTERS
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM change_selection_paramerters .
  LOOP AT lt_values INTO ls_values WHERE selname = 'BONDT'    OR
                                         selname = 'PNPBEGDA' OR
                                         selname = 'PNPBEGPS' OR
                                         selname = 'PNPENDDA' OR
                                         selname = 'PNPENDPS' OR
                                         selname = 'PYBEGDA'  OR
                                         selname = 'PYENDDA'  .
    IF ls_values-low = '00.00.0000'.
      CLEAR: ls_values-low.
      ls_values-low = '00000000'.
    ELSE.
      lv_date_e = ls_values-low.
      CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
        EXPORTING
          date_external = lv_date_e
        IMPORTING
          date_internal = lv_date_i.
      ls_values-low = lv_date_i.
      CLEAR: lv_date_i.
    ENDIF.
    MODIFY lt_values FROM ls_values TRANSPORTING low.
  ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PREPARE_VARIANT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM prepare_variant .
  ls_values-selname = 'PNPABKRS'.
  ls_values-kind    = 'S'.
  ls_values-sign    = 'I'.
  ls_values-low     = pnpxabkr.
  ls_values-option  = 'EQ'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPANSVH'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPBTRTL'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPBUKRS'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPENAME'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPFISTL'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPFKBER'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPGEBER'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPGRANT'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPGSBER'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPJUPER'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPKOKRS'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPKOKTL'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPKOSTL'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPMASNG'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPMASSG'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPMASSN'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPMSTBR'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPORGEH'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPOTYPE'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
*--------------------------------------------------------------------*
  ls_values-selname = 'PNPPERNR'.
  ls_values-kind    = 'S'.
  ls_values-sign    = 'I'.
*  ls_values-low     = .
  ls_values-option  = 'EQ'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
*--------------------------------------------------------------------*
  ls_values-selname = 'PNPPERSG'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPPERSK'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPPLANS'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSACHA'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSACHP'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSACHZ'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSASBA'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSASBP'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSASBZ'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSBMOD'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSNAME'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSTAT1'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSTAT2'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSTAT3'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSTATU'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSTELL'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPVDSK1'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPWERKS'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPXBWBK'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPXPGPK'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'ANDRUCK'.
  ls_values-kind    = 'P'.
  ls_values-low     = 'A'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'ANZ-TEST'.
  ls_values-kind    = 'P'.
  ls_values-low     = '0'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'BONDT'.
  ls_values-kind    = 'P'.
  ls_values-low     = '00.00.0000'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'CHK_ESS'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'CUR_ALT'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'CUR_FP'.
  ls_values-kind    = 'P'.
  ls_values-low     = 'X'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'CUR_IP'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'CUR_VAL'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'FORMULAR'.
  ls_values-kind    = 'P'.
  ls_values-low     = 'ZAMH'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'ONLY'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PAYID'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PAYTY'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPBEGDA'.
  ls_values-kind    = 'P'.
  ls_values-low    = '00.00.0000'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPBEGPS'.
  ls_values-kind    = 'P'.
  ls_values-low    = '00.00.0000'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPDISBD'.
  ls_values-kind    = 'P'.
  ls_values-low     =  lv_begda.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPDISED'.
  ls_values-kind    = 'P'.
  ls_values-low     = lv_endda .
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPDISPJ'.
  ls_values-kind    = 'P'.
  ls_values-low     =  pnppabrj.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPDISPP'.
  ls_values-kind    = 'P'.
  ls_values-low    =  pnppabrp.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPENDDA'.
  ls_values-kind    = 'P'.
  ls_values-low    = '00.00.0000'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPENDPS'.
  ls_values-kind    = 'P'.
  ls_values-low    = '00.00.0000'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
*--------------------------------------------------------------------*
  ls_values-selname = 'PNPPABRJ'.
  ls_values-kind    = 'P'.
  ls_values-low     =  pnppabrj.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
*--------------------------------------------------------------------*
  ls_values-selname = 'PNPPABRP'.
  ls_values-kind    = 'P'.
  ls_values-low    =  pnppabrp.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPTIMR1'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPTIMR2'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPTIMR3'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPTIMR4'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPTIMR5'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPTIMR6'.
  ls_values-kind    = 'P'.
  ls_values-low     = 'X'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPTIMR9'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPTIMRA'.
  ls_values-kind    = 'P'.
  ls_values-low     = 'X'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPXABKR'.
  ls_values-kind    = 'P'.
  ls_values-low     =  pnpxabkr.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PRT_PROT'.
  ls_values-kind    = 'P'.
  ls_values-low   = 'X'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYABRJ0'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYABRJ1'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYABRP0'.
  ls_values-kind    = 'P'.
  ls_values-low    = '00'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYABRP1'.
  ls_values-kind    = 'P'.
  ls_values-low    = '00'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYBEGDA'.
  ls_values-kind    = 'P'.
  ls_values-low    = '00.00.0000'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYENDDA'.
  ls_values-kind    = 'P'.
  ls_values-low    = '00.00.0000'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYPA03R0'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYPA03R1'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYVW0_0'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYVW0_1'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYVW1_0'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYVW1_1'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYVW2_0'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYXABKR'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'RUECKD'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'RUECKR'.
  ls_values-kind    = 'P'.
  ls_values-low     = 'J'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'SORT_RR'.
  ls_values-kind    = 'P'.
  ls_values-low     = '1'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'SPRACHE'.
  ls_values-kind    = 'P'.
  ls_values-low    = 'B'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPINDEX'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPOBJID'.
  ls_values-kind    = 'S'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'COMPRESS'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'EXP_FRM'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'IMPMEM'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPESSCF'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPMCIDE'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPMCSTR'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPPLVAR'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSORTF'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPSORTT'.
  ls_values-kind    = 'P'.
  ls_values-low     = 'L'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PNPTIMED'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYARCH'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYCT_PER'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYEVAL'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYPARAID'.
  ls_values-kind    = 'P'.
  ls_values-sign    = ' '.
  ls_values-low     = '000000000000000000000000000000000000'.
  ls_values-option  = ' '.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYSCREEN'.
  ls_values-kind    = 'P'.
  ls_values-sign    = ' '.
  ls_values-low     = 'T'.
  ls_values-option  = ' '.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYSORTT'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYVW0'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYVW1'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
  ls_values-selname = 'PYVW2'.
  ls_values-kind    = 'P'.
  APPEND ls_values TO lt_values.
  CLEAR: ls_values.
ENDFORM.