Help - in REUSE_ALV_HIERSEQ_LIST_DISPLAY

HI friends,
     i would like to know how to transfer the records which are checked or selected records in check box in REUSE_ALV_HIERSEQ_LIST_DISPLAY  to a internal table .
expecting all your valueable answers,
Thanks,
ganesh.

Hi,
If you have achieved this thru' object oriented method, then you have a method called, <b>GET_SELECTED_ROWS</b>.
If it is using SLIS, then you need to use Box fieldname concept and then get the selected rows using
loop at itab where <b>boxfield = 'X'</b>
endloop.
and populate them into another internal table inside the loop.
Hope this will help you in solving your issue.
Feel free to revert back.
--Ragu
Message was edited by:
        Raguraman C

Similar Messages

  • Need a key field in REUSE_ALV_HIERSEQ_LIST_DISPLAY output

    Hi all.
    i have report to display the output with help of ,REUSE_ALV_HIERSEQ_LIST_DISPLAY' function module.
    i have a scenario to download the output in a excel sheet where we can filter the output.
    so i need to add a key field in the alv output.
    it can be a simple index field where first header and item data have index 1
                                                        second header and item data have index 2
                                                     and so on
    so that after downloading it in excel sheet we can filter the data based on this key field
    can any one tell me the solution for the problem.
    Thanks in advance.

    Set the Key fields in Internal table
    1) Create PF-Status.
    2) Create a Button for download Name the Button %PC.
    It will automatically Give you popup to save the list to Excel.
    Regards,
    Gurpreet

  • Help on how to use FM REUSE_ALV_HIERSEQ_LIST_DISPLAY...

    Hello Experts,
    I am having problems using the said FM. Based on my code below, can you please tell
    me what am I doing wrong. Hope you can help me guys. Thank you and take care!
    [code]
    *& Report ZFI_CASH_PROOF_SHEET
    *& PROGRAM TYPE  : Report
    *& RICEF ID      : 149
    *& TITLE         : ZFI_CASH_PROOF_SHEET
    *& SAP Module    : FI
    *& CREATION DATE : 10/24/2007
    *& AUTHOR        : Aris Hidalgo
    *& DESIGNER      : Aris Hidalgo
    *& DESCRIPTION   :
    $*********************************************************************
    *$     CHANGE HISTORY
    *$----
    *$   DATE        | T-Num      | Description                  | Reference
                  |            |                              |
    $*********************************************************************
    REPORT  zfi_cash_proof_sheet
            NO STANDARD PAGE HEADING
            MESSAGE-ID zfi.
    Data Dictionary Table/s                      *
    TABLES: t012k.
    TYPE-POOLS                                   *
    TYPE-POOLS: slis.
    SELECTION-SCREEN                             *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_bukrs FOR t012k-bukrs OBLIGATORY,
                    s_hbkid FOR t012k-hbkid,
                    s_hktid FOR t012k-hktid.
    PARAMETERS:     p_budat TYPE bsak-budat OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1.
    */ CLASS DEFINITION/S */
    CLASS lcl_alv_routines DEFINITION DEFERRED.
          CLASS lcl_data_def DEFINITION
    CLASS lcl_data_def DEFINITION ABSTRACT.
      PUBLIC SECTION.
        TYPES: BEGIN OF t_t012k,
                bukrs TYPE t012k-bukrs,
                hbkid TYPE t012k-hbkid,
                hktid TYPE t012k-hktid,
                hkont TYPE t012k-hkont,
               END OF t_t012k.
        TYPES: BEGIN OF t_bsis_bsas,
                bukrs TYPE bsis-bukrs,
                hkont TYPE bsis-hkont,
                belnr TYPE bsis-belnr,
                buzei TYPE bsis-buzei,
                gjahr TYPE bsis-gjahr,
                budat TYPE bsis-budat,
                blart TYPE bsis-blart,
                dmbtr TYPE bsis-dmbtr,
                shkzg TYPE bsis-shkzg,
               END OF t_bsis_bsas.
        TYPES: BEGIN OF t_bsid_bsad,
                bukrs TYPE bsid-bukrs,
                belnr TYPE bsid-belnr,
                gjahr TYPE bsid-gjahr,
                blart TYPE bsid-blart,
                buzei TYPE bsid-buzei,
                budat TYPE bsid-budat,
                dmbtr TYPE bsid-dmbtr,
                shkzg TYPE bsid-shkzg,
               END OF t_bsid_bsad.
        TYPES: BEGIN OF t_cash_in_bank,
                bukrs TYPE bsis-bukrs,
                hkont TYPE bsis-hkont,
                dmbtr TYPE bsis-dmbtr,
               END OF t_cash_in_bank.
        TYPES: BEGIN OF t_outs_trade_coll,
                bukrs              TYPE bsis-bukrs,
                hkont              TYPE bsis-hkont,
                one_day            TYPE bsis-dmbtr,
                two_days           TYPE bsis-dmbtr,
                more_than_two_days TYPE bsis-dmbtr,
               END OF t_outs_trade_coll.
        TYPES: BEGIN OF t_zcheck_monitor,
                zzbukr TYPE zcheck_monitor-zzbukr,
                zhbkid TYPE zcheck_monitor-zhbkid,
                zhktid TYPE zcheck_monitor-zhktid,
                zubhkt TYPE zcheck_monitor-zubhkt,
                zrwbtr TYPE zcheck_monitor-zrwbtr,
                zrlsvd TYPE zcheck_monitor-zrlsvd,
                zrlsdt TYPE zcheck_monitor-zrlsdt,
               END OF t_zcheck_monitor.
        TYPES: BEGIN OF t_zcheck_monitor_collect,
                zzbukr TYPE zcheck_monitor-zzbukr,
                zubhkt TYPE zcheck_monitor-zubhkt,
                zrwbtr TYPE zcheck_monitor-zrwbtr,
               END OF t_zcheck_monitor_collect.
        TYPES: BEGIN OF t_company,
                bukrs TYPE t001-bukrs,
                butxt TYPE t001-butxt,
               END OF t_company.
        TYPES: BEGIN OF t_header,
                bukrs TYPE t001-bukrs,
                butxt TYPE t001-butxt,
                hbkid TYPE t012k-hbkid,
               END OF t_header.
        TYPES: BEGIN OF t_output,
                bukrs              TYPE bsis-bukrs,
                hktid              TYPE t012k-hktid,
                cash_in_bank       TYPE bsis-dmbtr,
                one_day            TYPE bsis-dmbtr,
                two_days           TYPE bsis-dmbtr,
                more_than_two_days TYPE bsis-dmbtr,
                misc_collection    TYPE bsis-dmbtr,
                outs_rel_checks    TYPE bsis-dmbtr,
                treas_transactions TYPE bsis-dmbtr,
                tot_cash_bal       TYPE bsis-dmbtr,
                outs_unrel_checks  TYPE bsis-dmbtr,
                imp_docs_due       TYPE bsis-dmbtr,
                est_cash_balance   TYPE bsis-dmbtr,
               END OF t_output.
        DATA: gt_t012k                  TYPE HASHED TABLE OF t_t012k
                                        WITH UNIQUE KEY bukrs hbkid hktid,
              gt_bsis                   TYPE STANDARD TABLE OF t_bsis_bsas,
              gt_bsis_dum               LIKE gt_bsis,
              wa_bsis                   LIKE LINE OF gt_bsis,
              gt_bsas                   LIKE gt_bsis,
              gt_bsis_bsas              LIKE gt_bsas,
              gt_bsid_bsad              TYPE SORTED TABLE OF t_bsid_bsad
                                        WITH NON-UNIQUE KEY bukrs belnr gjahr blart,
              gt_bsik                   LIKE gt_bsid_bsad,
              gt_cash_in_bank           TYPE HASHED TABLE OF t_cash_in_bank
                                        WITH UNIQUE KEY bukrs hkont,
              gt_misc_collection        LIKE gt_cash_in_bank,
              wa_misc_collection        LIKE LINE OF gt_misc_collection,
              gt_importation_docs_due   LIKE gt_cash_in_bank,
              wa_importation_docs_due   LIKE LINE OF gt_importation_docs_due,
              wa_cash_in_bank           LIKE LINE OF gt_cash_in_bank,
              gt_outs_trade_coll        TYPE HASHED TABLE OF t_outs_trade_coll
                                        WITH UNIQUE KEY bukrs hkont,
              wa_outs_trade_coll        LIKE LINE OF gt_outs_trade_coll,
              gt_zcheck_monitor         TYPE STANDARD TABLE OF t_zcheck_monitor,
              gt_zcheck_monitor_collect TYPE HASHED TABLE OF t_zcheck_monitor_collect
                                        WITH UNIQUE KEY zzbukr zubhkt,
              wa_zcheck_monitor_collect LIKE LINE OF gt_zcheck_monitor_collect,
              gt_outs_rel_checks        LIKE gt_cash_in_bank,
              wa_outs_rel_checks        LIKE LINE OF gt_outs_rel_checks,
              gt_company                TYPE HASHED TABLE OF t_company
                                        WITH UNIQUE KEY bukrs,
              wa_company                LIKE LINE OF gt_company,
              gt_header                 TYPE STANDARD TABLE OF t_header,
              wa_header                 LIKE LINE OF gt_header,
              gt_output                 TYPE STANDARD TABLE OF t_output,
              wa_output                 LIKE LINE OF gt_output.
    ENDCLASS.                    "lcl_data_def DEFINITION
          CLASS lcl_get_data DEFINITION
    CLASS lcl_get_data DEFINITION INHERITING FROM lcl_data_def.
      PUBLIC SECTION.
        METHODS: get_bank_details,
                 get_gl_balances,
                 get_cust_items,
                 get_vend_items,
                 sum_gl_accounts,
                 monday_routines
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_bukrs TYPE bsis-bukrs
                     im_hkont TYPE bsis-hkont
                     im_budat TYPE bsis-budat
                     im_dmbtr TYPE bsis-dmbtr,
                 sunday_routines
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_bukrs TYPE bsis-bukrs
                     im_hkont TYPE bsis-hkont
                     im_budat TYPE bsis-budat
                     im_dmbtr TYPE bsis-dmbtr,
                 tuesday_routines
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_bukrs TYPE bsis-bukrs
                     im_hkont TYPE bsis-hkont
                     im_budat TYPE bsis-budat
                     im_dmbtr TYPE bsis-dmbtr,
                 other_days_routines
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_bukrs TYPE bsis-bukrs
                     im_hkont TYPE bsis-hkont
                     im_budat TYPE bsis-budat
                     im_dmbtr TYPE bsis-dmbtr,
                 difference_in_days
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_budat TYPE bsis-budat
                   EXPORTING
                     ex_diff  TYPE vtbbewe-atage,
                 outs_check_released,
                 process_data.
      PRIVATE SECTION.
        CONSTANTS: lc_credit   TYPE bsis-shkzg VALUE 'H',
                   lc_debit    TYPE bsis-shkzg VALUE 'S',
                   lc_nt       TYPE bsis-blart VALUE 'NT',
                   lc_gl_zero  TYPE bsis-hkont VALUE '+++++++++0',
                   lc_gl_one   TYPE bsis-hkont VALUE '+++++++++1',
                   lc_gl_three TYPE bsis-hkont VALUE '+++++++++3',
                   lc_monday   TYPE dtresr-weekday VALUE 'Monday',
                   lc_tuesday  TYPE dtresr-weekday VALUE 'Tuesday',
                   lc_sunday   TYPE dtresr-weekday VALUE 'Sunday'.
        CONSTANTS: lc_k3 TYPE bsik-blart VALUE 'K3',
                   lc_k4 TYPE bsik-blart VALUE 'K4',
                   lc_k5 TYPE bsik-blart VALUE 'K5',
                   lc_k6 TYPE bsik-blart VALUE 'K6',
                   lc_k7 TYPE bsik-blart VALUE 'K7',
                   lc_kb TYPE bsik-blart VALUE 'KB',
                   lc_kd TYPE bsik-blart VALUE 'KD'.
        DATA: lv_hkont           TYPE bsis-hkont,
              lr_hkont           TYPE RANGE OF bsis-hkont,
              wa_hkont           LIKE LINE OF lr_hkont,
              lr_blart           TYPE RANGE OF bsik-blart,
              wa_blart           LIKE LINE OF lr_blart,
              lv_hkont_new       TYPE bsis-hkont,
              lv_hkont_old       TYPE bsis-hkont,
              lv_date            TYPE vtbbewe-atage,
              lv_budat           TYPE bsis-budat,
              lv_day             TYPE dtresr-weekday,
              o_lcl_alv_routines TYPE REF TO lcl_alv_routines.
    ENDCLASS.                    "lcl_get_data DEFINITION
          CLASS alv_routines DEFINITION
    CLASS lcl_alv_routines DEFINITION INHERITING FROM lcl_get_data.
      PUBLIC SECTION.
        DATA: gt_fieldcat       TYPE slis_t_fieldcat_alv,
              wa_fieldcat       LIKE LINE OF gt_fieldcat,
              gs_layout         TYPE slis_layout_alv,
              gs_keyinfo        TYPE slis_keyinfo_alv,
              gv_repid          TYPE syst-repid,
              gv_tabname_header TYPE slis_tabname,
              gv_tabname_item   TYPE slis_tabname.
        METHODS: alv_init,
                 build_fieldcat,
                 display_data
                   IMPORTING
                     im_header LIKE gt_header
                     im_output LIKE gt_output.
    ENDCLASS.                    "lcl_alv_routines DEFINITION
    */ CLASS IMPLEMENTATION/S */
          CLASS lcl_get_data IMPLEMENTATION
    CLASS lcl_get_data IMPLEMENTATION.
      METHOD get_bank_details.
        FIELD-SYMBOLS: <fs_t012k> LIKE LINE OF gt_t012k.
      Get bank account/s and their corresponding G/L account/s
        SELECT bukrs hbkid
               hktid hkont
          FROM t012k
          INTO TABLE gt_t012k
         WHERE bukrs IN s_bukrs
           AND hbkid IN s_hbkid
           AND hktid IN s_hktid.
        IF NOT gt_t012k[] IS INITIAL.
          SORT gt_t012k BY bukrs hbkid hktid hkont.
        Get company name
          SELECT bukrs butxt
            FROM t001
            INTO TABLE gt_company
             FOR ALL ENTRIES IN gt_t012k
           WHERE bukrs = gt_t012k-bukrs.
          LOOP AT gt_t012k ASSIGNING <fs_t012k>.
            wa_hkont-sign   = 'I'.
            wa_hkont-option = 'EQ'.
            wa_hkont-low    = <fs_t012k>-hkont.
            SHIFT wa_hkont-low LEFT DELETING LEADING space.
            APPEND wa_hkont TO lr_hkont.
            CLEAR wa_hkont.
            lv_hkont_new = <fs_t012k>-hkont.
            IF lv_hkont_new <> lv_hkont_old.
              CLEAR lv_hkont.
              lv_hkont = <fs_t012k>-hkont.
              DO 4 TIMES.
                ADD 1 TO lv_hkont.
                CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
                  EXPORTING
                    input  = lv_hkont
                  IMPORTING
                    output = lv_hkont.
                wa_hkont-sign   = 'I'.
                wa_hkont-option = 'EQ'.
                wa_hkont-low    = lv_hkont.
                SHIFT wa_hkont-low LEFT DELETING LEADING space.
                APPEND wa_hkont TO lr_hkont.
                CLEAR wa_hkont.
              ENDDO.
            ENDIF.
            lv_hkont_old = lv_hkont_new.
          ENDLOOP.
          CALL METHOD me->get_gl_balances.
        ENDIF.
      ENDMETHOD.                    "get_bank_details
      METHOD get_gl_balances.
      Get G/L line items(Open items)
        SELECT bukrs hkont belnr
               buzei gjahr budat
               blart dmbtr shkzg
          FROM bsis
          INTO TABLE gt_bsis
           FOR ALL ENTRIES IN gt_t012k
         WHERE bukrs = gt_t012k-bukrs
           AND hkont IN lr_hkont
           AND budat <= p_budat.
      Get G/L line items(Cleared items)
        SELECT bukrs hkont belnr
               buzei gjahr budat
               blart dmbtr shkzg
          FROM bsas
          INTO TABLE gt_bsas
           FOR ALL ENTRIES IN gt_t012k
         WHERE bukrs = gt_t012k-bukrs
           AND hkont IN lr_hkont
           AND budat <= p_budat.
        APPEND LINES OF gt_bsis TO gt_bsis_bsas.
        APPEND LINES OF gt_bsas TO gt_bsis_bsas.
        IF NOT gt_bsis_bsas[] IS INITIAL.
          CALL METHOD me->get_cust_items.
          CALL METHOD me->get_vend_items.
          CALL METHOD me->sum_gl_accounts.
        ENDIF.
      ENDMETHOD.                    "get_gl_balances
      METHOD get_cust_items.
      Get customer line items(Open items)
        SELECT bukrs belnr gjahr blart
               buzei budat dmbtr shkzg
          FROM bsid
          INTO TABLE gt_bsid_bsad
           FOR ALL ENTRIES IN gt_bsis_bsas
         WHERE bukrs = gt_bsis_bsas-bukrs
           AND gjahr = gt_bsis_bsas-gjahr
           AND belnr = gt_bsis_bsas-belnr.
      Get customer line items(Cleared items)
        SELECT bukrs belnr gjahr blart
               buzei budat dmbtr shkzg
          FROM bsad
          APPENDING TABLE gt_bsid_bsad
           FOR ALL ENTRIES IN gt_bsis_bsas
         WHERE bukrs = gt_bsis_bsas-bukrs
           AND gjahr = gt_bsis_bsas-gjahr
           AND belnr = gt_bsis_bsas-belnr.
      ENDMETHOD.                    "get_cust_items
      METHOD get_vend_items.
      Get vendor line items(Open items)
        SELECT bukrs belnr gjahr blart
               buzei budat dmbtr shkzg
          FROM bsik
          INTO TABLE gt_bsik
           FOR ALL ENTRIES IN gt_bsis_bsas
         WHERE bukrs = gt_bsis_bsas-bukrs
           AND gjahr = gt_bsis_bsas-gjahr
           AND belnr = gt_bsis_bsas-belnr.
        DEFINE m_blart.
          wa_blart-sign   = 'I'.
          wa_blart-option = 'EQ'.
          wa_blart-low    = &1.
          append wa_blart to lr_blart.
          clear wa_blart.
        END-OF-DEFINITION.
        m_blart lc_k3.
        m_blart lc_k4.
        m_blart lc_k5.
        m_blart lc_k6.
        m_blart lc_k7.
        m_blart lc_kb.
        m_blart lc_kd.
        IF NOT gt_bsik[] IS INITIAL AND NOT lr_blart[] IS INITIAL.
          DELETE gt_bsik WHERE blart NOT IN lr_blart[].
        ENDIF.
      ENDMETHOD.                    "get_vend_items
      METHOD sum_gl_accounts.
        FIELD-SYMBOLS: <fs_bsis_bsas>       LIKE LINE OF gt_bsis_bsas,
                       <fs_bsis>            LIKE LINE OF gt_bsis,
                       <fs_bsid_bsad>       LIKE LINE OF gt_bsid_bsad,
                       <fs_bsik>            LIKE LINE OF gt_bsik,
                       <fs_outs_rel_checks> LIKE LINE OF gt_outs_rel_checks.
        SORT gt_bsis_bsas BY bukrs hkont belnr.
        LOOP AT gt_bsis_bsas ASSIGNING <fs_bsis_bsas>.
          IF <fs_bsis_bsas>-shkzg = lc_credit.   "H
            MULTIPLY <fs_bsis_bsas>-dmbtr BY -1.
          ENDIF.
    */Routine for cash in bank
          IF <fs_bsis_bsas>-hkont CP lc_gl_zero.
            MOVE-CORRESPONDING <fs_bsis_bsas> TO wa_cash_in_bank.
            COLLECT wa_cash_in_bank INTO gt_cash_in_bank.
            CLEAR wa_cash_in_bank.
          ENDIF.
    */Routine for miscellaneous collection
          IF <fs_bsis_bsas>-blart = lc_nt AND
             <fs_bsis_bsas>-shkzg = lc_debit AND
             <fs_bsis_bsas>-hkont CP lc_gl_one.
            READ TABLE gt_bsid_bsad ASSIGNING <fs_bsid_bsad> WITH TABLE KEY bukrs = <fs_bsis_bsas>-bukrs
                                                                            belnr = <fs_bsis_bsas>-belnr
                                                                            gjahr = <fs_bsis_bsas>-gjahr
                                                                            blart = <fs_bsis_bsas>-blart.
            IF sy-subrc = 0.
              MOVE-CORRESPONDING <fs_bsis_bsas> TO wa_misc_collection.
              COLLECT wa_misc_collection INTO gt_misc_collection.
              CLEAR wa_misc_collection.
            ENDIF.
          ENDIF.
    */Routine for outstanding released checks
          IF <fs_bsis_bsas>-hkont CP lc_gl_three AND <fs_bsis_bsas>-shkzg = lc_debit.
            MOVE-CORRESPONDING <fs_bsis_bsas> TO wa_outs_rel_checks.
            COLLECT wa_outs_rel_checks INTO gt_outs_rel_checks.
            CLEAR wa_outs_rel_checks.
          ENDIF.
    */Routine for importation docs.due
          IF <fs_bsis_bsas>-shkzg = lc_credit.
            READ TABLE gt_bsik ASSIGNING <fs_bsik> WITH TABLE KEY bukrs = <fs_bsis_bsas>-bukrs
                                                                  belnr = <fs_bsis_bsas>-belnr
                                                                  gjahr = <fs_bsis_bsas>-gjahr
                                                                  blart = <fs_bsis_bsas>-blart.
            IF sy-subrc = 0.
              MOVE-CORRESPONDING <fs_bsis_bsas> TO wa_importation_docs_due.
              COLLECT wa_importation_docs_due INTO gt_importation_docs_due.
              CLEAR gt_importation_docs_due.
            ENDIF.
          ENDIF.
        ENDLOOP.
    */Routine for outstanding trade collection
        IF NOT gt_bsis[] IS INITIAL.
          DELETE gt_bsis WHERE shkzg = lc_credit.
          DELETE gt_bsis WHERE blart = lc_nt.
          IF NOT gt_bsis[] IS INITIAL.
            lv_budat = p_budat.
            CALL FUNCTION 'DATE_TO_DAY'
              EXPORTING
                date    = lv_budat
              IMPORTING
                weekday = lv_day.
            LOOP AT gt_bsis ASSIGNING <fs_bsis>.
              IF lv_day = lc_monday.
                CALL METHOD me->monday_routines
                  EXPORTING
                    im_date  = p_budat
                    im_bukrs = <fs_bsis>-bukrs
                    im_hkont = <fs_bsis>-hkont
                    im_budat = <fs_bsis>-budat
                    im_dmbtr = <fs_bsis>-dmbtr.
              ELSEIF lv_day = lc_sunday.
                CALL METHOD me->sunday_routines
                  EXPORTING
                    im_date  = p_budat
                    im_bukrs = <fs_bsis>-bukrs
                    im_hkont = <fs_bsis>-hkont
                    im_budat = <fs_bsis>-budat
                    im_dmbtr = <fs_bsis>-dmbtr.
              ELSEIF lv_day = lc_tuesday.
                CALL METHOD me->tuesday_routines
                  EXPORTING
                    im_date  = p_budat
                    im_bukrs = <fs_bsis>-bukrs
                    im_hkont = <fs_bsis>-hkont
                    im_budat = <fs_bsis>-budat
                    im_dmbtr = <fs_bsis>-dmbtr.
              ELSE.
                CALL METHOD me->other_days_routines
                  EXPORTING
                    im_date  = p_budat
                    im_bukrs = <fs_bsis>-bukrs
                    im_hkont = <fs_bsis>-hkont
                    im_budat = <fs_bsis>-budat
                    im_dmbtr = <fs_bsis>-dmbtr.
              ENDIF.
            ENDLOOP.
          ENDIF.
        ENDIF.
    */Routine for outstanding released check/s
    */this routine will get all records from custom table zcheck_monitor
    */where status is released to vendor
        CALL METHOD me->outs_check_released.
        IF NOT gt_outs_rel_checks[] IS INITIAL.
          LOOP AT gt_outs_rel_checks ASSIGNING <fs_outs_rel_checks>.
            CLEAR wa_zcheck_monitor_collect.
            READ TABLE gt_zcheck_monitor_collect INTO wa_zcheck_monitor_collect
                                                 WITH TABLE KEY zzbukr = <fs_outs_rel_checks>-bukrs
                                                                zubhkt = <fs_outs_rel_checks>-hkont.
            IF sy-subrc = 0.
              <fs_outs_rel_checks>-dmbtr = <fs_outs_rel_checks>-dmbtr - ABS( wa_zcheck_monitor_collect-zrwbtr ).
            ENDIF.
          ENDLOOP.
        ENDIF.
      Move records to output table
        CALL METHOD me->process_data.
      ENDMETHOD.                    "sum_gl_accounts
      METHOD monday_routines.
        wa_outs_trade_coll-bukrs   = im_bukrs.
        wa_outs_trade_coll-hkont   = im_hkont.
        CLEAR lv_date.
        CALL METHOD me->difference_in_days
          EXPORTING
            im_date  = im_date
            im_budat = im_budat
          IMPORTING
            ex_diff  = lv_date.
      One day
        IF lv_date = 3.
          wa_outs_trade_coll-one_day = im_dmbtr.
      Two days
        ELSEIF lv_date = 4.
          wa_outs_trade_coll-two_days = im_dmbtr.
      More than two days
        ELSEIF lv_date > 4.
          wa_outs_trade_coll-more_than_two_days = im_dmbtr.
        ENDIF.
        COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
        CLEAR wa_outs_trade_coll.
      ENDMETHOD.                    "monday_routines
      METHOD sunday_routines.
        wa_outs_trade_coll-bukrs   = im_bukrs.
        wa_outs_trade_coll-hkont   = im_hkont.
        CLEAR lv_date.
        CALL METHOD me->difference_in_days
          EXPORTING
            im_date  = im_date
            im_budat = im_budat
          IMPORTING
            ex_diff  = lv_date.
      One day
        IF lv_date = 2.
          wa_outs_trade_coll-one_day = im_dmbtr.
      Two days
        ELSEIF lv_date = 3.
          wa_outs_trade_coll-two_days = im_dmbtr.
      More than two days
        ELSEIF lv_date > 3.
          wa_outs_trade_coll-more_than_two_days = im_dmbtr.
        ENDIF.
        COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
        CLEAR wa_outs_trade_coll.
      ENDMETHOD.                    "sunday_routines
      METHOD tuesday_routines.
        wa_outs_trade_coll-bukrs   = im_bukrs.
        wa_outs_trade_coll-hkont   = im_hkont.
        CLEAR lv_date.
        CALL METHOD me->difference_in_days
          EXPORTING
            im_date  = im_date
            im_budat = im_budat
          IMPORTING
            ex_diff  = lv_date.
      One day
        IF lv_date = 1.
          wa_outs_trade_coll-one_day = im_dmbtr.
      Two days
        ELSEIF lv_date = 4.
          wa_outs_trade_coll-two_days = im_dmbtr.
      More than two days
        ELSEIF lv_date > 4.
          wa_outs_trade_coll-more_than_two_days = im_dmbtr.
        ENDIF.
        COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
        CLEAR wa_outs_trade_coll.
      ENDMETHOD.                    "tuesday_routines
      METHOD other_days_routines.
        wa_outs_trade_coll-bukrs   = im_bukrs.
        wa_outs_trade_coll-hkont   = im_hkont.
        CLEAR lv_date.
        CALL METHOD me->difference_in_days
          EXPORTING
            im_date  = im_date
            im_budat = im_budat
          IMPORTING
            ex_diff  = lv_date.
      One day
        IF lv_date = 1.
          wa_outs_trade_coll-one_day = im_dmbtr.
      Two days
        ELSEIF lv_date = 2.
          wa_outs_trade_coll-two_days = im_dmbtr.
      More than two days
        ELSEIF lv_date > 3.
          wa_outs_trade_coll-more_than_two_days = im_dmbtr.
        ENDIF.
        COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
        CLEAR wa_outs_trade_coll.
      ENDMETHOD.                    "other_days_routines
      METHOD difference_in_days.
        CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
          EXPORTING
            i_date_from          = im_budat
          I_KEY_DAY_FROM       =
            i_date_to            = im_date
          I_KEY_DAY_TO         =
          I_FLG_SEPARATE       = ' '
          IMPORTING
            e_days               = ex_diff.
          E_MONTHS             =
          E_YEARS              =
      ENDMETHOD.                    "difference_in_days
      METHOD outs_check_released.
        FIELD-SYMBOLS: <fs_zcheck_monitor>         LIKE LINE OF gt_zcheck_monitor.
        SELECT zzbukr zhbkid zhktid
               zubhkt zrwbtr zrlsvd
               zrlsdt
          FROM zcheck_monitor
          INTO TABLE gt_zcheck_monitor
         WHERE zrlsvd <> space.
        IF NOT gt_zcheck_monitor[] IS INITIAL.
          LOOP AT gt_zcheck_monitor ASSIGNING <fs_zcheck_monitor>.
            MOVE-CORRESPONDING <fs_zcheck_monitor> TO wa_zcheck_monitor_collect.
            COLLECT wa_zcheck_monitor_collect INTO gt_zcheck_monitor_collect.
            CLEAR wa_zcheck_monitor_collect.
          ENDLOOP.
        ENDIF.
      ENDMETHOD.                    "outs_check_released
      METHOD process_data.
        FIELD-SYMBOLS: <fs_t012k>           LIKE LINE OF gt_t012k,
                       <fs_company>         LIKE LINE OF gt_company,
                       <fs_cash_in_bank>    LIKE LINE OF gt_cash_in_bank,
                       <fs_outs_trade_coll> LIKE LINE OF gt_outs_trade_coll,
                       <fs_misc_collection> LIKE LINE OF gt_misc_collection,
                       <fs_outs_rel_checks> LIKE LINE OF gt_outs_rel_checks.
        LOOP AT gt_t012k ASSIGNING <fs_t012k>.
          READ TABLE gt_company ASSIGNING <fs_company>
                                WITH TABLE KEY bukrs = <fs_t012k>-bukrs.
          IF sy-subrc = 0.
            wa_header-bukrs = <fs_company>-bukrs.
            wa_header-butxt = <fs_company>-butxt.
            wa_header-hbkid = <fs_t012k>-hbkid.
            APPEND wa_header TO gt_header.
            CLEAR wa_header.
          ENDIF.
          wa_output-bukrs = <fs_t012k>-bukrs.
          wa_output-hktid = <fs_t012k>-hktid.
        Move cash in bank
          READ TABLE gt_cash_in_bank ASSIGNING <fs_cash_in_bank>
                                     WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                    hkont = <fs_t012k>-hkont.
          IF sy-subrc = 0.
            wa_output-cash_in_bank = <fs_cash_in_bank>-dmbtr.
            ADD wa_output-cash_in_bank TO wa_output-tot_cash_bal.
          ENDIF.
          CLEAR lv_hkont.
          lv_hkont = <fs_t012k>-hkont.
          ADD 1 TO lv_hkont.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = lv_hkont
            IMPORTING
              output = lv_hkont.
        Move outstanding trade collection(Deposit in transit)
          READ TABLE gt_outs_trade_coll ASSIGNING <fs_outs_trade_coll>
                                        WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                       hkont = lv_hkont.
          IF sy-subrc = 0.
            wa_output-one_day            = <fs_outs_trade_coll>-one_day.
            ADD wa_output-one_day TO wa_output-tot_cash_bal.
            wa_output-two_days           = <fs_outs_trade_coll>-two_days.
            ADD wa_output-two_days TO wa_output-tot_cash_bal.
            wa_output-more_than_two_days = <fs_outs_trade_coll>-more_than_two_days.
            ADD wa_output-more_than_two_days TO wa_output-tot_cash_bal.
          ENDIF.
        Move miscellaneous collection
          READ TABLE gt_misc_collection ASSIGNING <fs_misc_collection>
                                        WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                       hkont = lv_hkont.
          IF sy-subrc = 0.
            wa_output-misc_collection = <fs_misc_collection>-dmbtr.
            ADD wa_output-misc_collection TO wa_output-tot_cash_bal.
          ENDIF.
        Move outstanding checks released
          CLEAR lv_hkont.
          lv_hkont = <fs_t012k>-hkont.
          ADD 3 TO lv_hkont.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = lv_hkont
            IMPORTING
              output = lv_hkont.
          READ TABLE gt_outs_rel_checks ASSIGNING <fs_outs_rel_checks>
                                        WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                       hkont = <fs_t012k>-hkont.
          IF sy-subrc = 0.
            wa_output-outs_rel_checks = <fs_outs_rel_checks>-dmbtr.
          ENDIF.
        Move outstanding unreleased checks
          CLEAR wa_zcheck_monitor_collect.
          READ TABLE gt_zcheck_monitor_collect INTO wa_zcheck_monitor_collect
                                               WITH TABLE KEY zzbukr = <fs_t012k>-bukrs
                                                              zubhkt = lv_hkont
                                                                       TRANSPORTING zrwbtr.
          IF sy-subrc = 0.
            wa_output-outs_unrel_checks = wa_zcheck_monitor_collect-zrwbtr.
          ENDIF.
        Move importation docs. due
          CLEAR wa_importation_docs_due.
          READ TABLE gt_importation_docs_due INTO wa_importation_docs_due
                                             WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                            hkont = <fs_t012k>-hkont
                                                                    TRANSPORTING dmbtr.
          IF sy-subrc = 0.
            wa_output-imp_docs_due = wa_importation_docs_due-dmbtr.
          ENDIF.
          APPEND wa_output TO gt_output.
          CLEAR wa_output.
        ENDLOOP.
        IF NOT gt_output[] IS INITIAL.
          CREATE OBJECT o_lcl_alv_routines.
          CALL METHOD o_lcl_alv_routines->display_data
            EXPORTING
              im_header = gt_header
              im_output = gt_output.
        ENDIF.
      ENDMETHOD.                    "process_data
    ENDCLASS.                    "lcl_get_data IMPLEMENTATION
          CLASS alv_routines IMPLEMENTATION
    CLASS lcl_alv_routines IMPLEMENTATION.
      METHOD alv_init.
        gv_repid = sy-repid.
        gs_layout-subtotals_text   = text-a01.
        gs_layout-key_hotspot      = 'X'.
        gs_layout-expand_fieldname = text-a02.
        gs_keyinfo-header01 = text-a03.
        gs_keyinfo-item01   = text-a03.
      ENDMETHOD.                    "alv_init
      METHOD build_fieldcat.
        DEFINE m_fieldcat.
          add 1 to wa_fieldcat-col_pos.
          wa_fieldcat-fieldname   = &1.
          wa_fieldcat-tabname     = &2.
          wa_fieldcat-rollname    = &3.
          wa_fieldcat-outputlen   = &4.
          wa_fieldcat-fix_column  = &5.
          wa_fieldcat-just        = &6.
          wa_fieldcat-do_sum      = &7.
          wa_fieldcat-emphasize   = &8.
          wa_fieldcat-hotspot     = &9.
          append wa_fieldcat to gt_fieldcat.
          clear wa_fieldcat.
        END-OF-DEFINITION.
        m_fieldcat 'BUKRS'              'gt_output'  text-a04  '' '' '' '' '' ''.
        m_fieldcat 'HKTID'              'gt_output'  text-a05  '' '' '' '' '' ''.
        m_fieldcat 'CASH_IN_BANK'       'gt_output'  text-a06  '' '' '' '' '' ''.
        m_fieldcat 'ONE_DAY'            'gt_output'  text-a07  '' '' '' '' '' ''.
        m_fieldcat 'TWO_DAYS'           'gt_output'  text-a08  '' '' '' '' '' ''.
        m_fieldcat 'MORE_THAN_TWO_DAYS' 'gt_output'  text-a09  '' '' '' '' '' ''.
        m_fieldcat 'MISC_COLLECTION'    'gt_output'  text-a10  '' '' '' '' '' ''.
        m_fieldcat 'OUTS_REL_CHECKS'    'gt_output'  text-a11  '' '' '' '' '' ''.
        m_fieldcat 'TREAS_TRANSACTIONS' 'gt_output'  text-a12  '' '' '' '' '' ''.
        m_fieldcat 'TOT_CASH_BAL'       'gt_output'  text-a13  '' '' '' '' '' ''.
        m_fieldcat 'TOTS_UNREL_CHECKS'  'gt_output'  text-a14  '' '' '' '' '' ''.
        m_fieldcat 'IMP_DOCS_DUE'       'gt_output'  text-a15  '' '' '' '' '' ''.
        m_fieldcat 'EST_CASH_BALANCE'   'gt_output'  text-a16  '' '' '' '' '' ''.
      ENDMETHOD.                    "build_fieldcat
      METHOD display_data.
        CALL METHOD me->alv_init.
        CALL METHOD me->build_fieldcat.
        gv_tabname_header = 'GT_HEADER'.
        gv_tabname_item   = 'GT_OUTPUT'.
        gt_header[] = im_header[].
        gt_output[] = im_output[].
        CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
          EXPORTING
          I_INTERFACE_CHECK              = ' '
            i_callback_program             = gv_repid
          I_CALLBACK_PF_STATUS_SET       = ' '
          I_CALLBACK_USER_COMMAND        = ' '
            is_layout                      = gs_layout
            it_fieldcat                    = gt_fieldcat
          IT_EXCLUDING                   =
          IT_SPECIAL_GROUPS              =
          IT_SORT                        =
          IT_FILTER                      =
          IS_SEL_HIDE                    =
          I_SCREEN_START_COLUMN          = 0
          I_SCREEN_START_LINE            = 0
          I_SCREEN_END_COLUMN            = 0
          I_SCREEN_END_LINE              = 0
          I_DEFAULT                      = 'X'
          I_SAVE                         = ' '
          IS_VARIANT                     =
          IT_EVENTS                      =
          IT_EVENT_EXIT                  =
            i_tabname_header               = gv_tabname_header
            i_tabname_item                 = gv_tabname_item
          I_STRUCTURE_NAME_HEADER        =
          I_STRUCTURE_NAME_ITEM          =
            is_keyinfo                     = gs_keyinfo
          IS_PRINT                       =
          IS_REPREP_ID                   =
          I_BYPASSING_BUFFER             =
          I_BUFFER_ACTIVE                =
          IR_SALV_HIERSEQ_ADAPTER        =
          IT_EXCEPT_QINFO                =
          I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
        IMPORTING
          E_EXIT_CAUSED_BY_CALLER        =
          ES_EXIT_CAUSED_BY_USER         =
          TABLES
            t_outtab_header                = gt_header
            t_outtab_item                  = gt_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.
      ENDMETHOD.                    "display_data
    ENDCLASS.                    "alv_routines IMPLEMENTATION
    START-OF-SELECTION                           *
    START-OF-SELECTION.
      DATA: o_lcl_get_data TYPE REF TO lcl_get_data.
      CREATE OBJECT o_lcl_get_data.
      CALL METHOD o_lcl_get_data->get_bank_details.
    [/code]

    Thanks anyways...

  • Example/help for CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY' editable

    hello experts,
    are there any example using function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'  with editable columns.
    Or, have somebody an idea to resolve my problem.
    I can edit the fields in the alv-grid, but I don't see the changes in the internal table using 'LVC_TRANSFER_FROM_SLIS' function.
    thanks and regards.
    K. WErner

    hi,
    here is the code for editable Hieararchical ALV
    TYPE-POOLS : slis.
    TABLES : mseg.
    DATA : BEGIN OF itab_head OCCURS 0,
            mat LIKE mseg-matnr,
    *        matnr LIKE mseg-matnr,
            werks LIKE mseg-werks,
           END OF itab_head.
    DATA : BEGIN OF itab_item OCCURS 0,
    *        mat LIKE mseg-matnr,
            matnr LIKE mseg-matnr,
            werks LIKE mseg-werks,
            mblnr LIKE mseg-mblnr,
            menge LIKE mseg-menge,
           END OF itab_item.
    DATA : t_fcat TYPE slis_t_fieldcat_alv,
           key_info TYPE slis_keyinfo_alv,
           t_eve TYPE slis_t_event,
           gt_subtot TYPE slis_t_sortinfo_alv,
           subtot LIKE LINE OF gt_subtot,
           t_listhead TYPE slis_t_listheader,
           st_line TYPE slis_listheader.
    DATA : lin_no TYPE i.
    DATA : t_mtdoc LIKE mseg-mblnr.
    SELECT-OPTIONS : mat FOR mseg-matnr.
    INITIALIZATION.
      PERFORM build_cat USING t_fcat.
      PERFORM build_eve.
    START-OF-SELECTION.
      PERFORM get_data.
      PERFORM dis_data.
    *&      Form  build_cat
    *       text
    *      -->TEMP_FCAT  text
    FORM build_cat USING temp_fcat TYPE slis_t_fieldcat_alv.
      DATA : wa_fcat TYPE slis_fieldcat_alv.
      wa_fcat-tabname = 'ITAB_HEAD'.
      wa_fcat-fieldname = 'MAT'.
      wa_fcat-seltext_m = 'Material'.
      APPEND wa_fcat TO temp_fcat.
      CLEAR wa_fcat.
      wa_fcat-tabname = 'ITAB_HEAD'.
      wa_fcat-fieldname = 'WERKS'.
      wa_fcat-seltext_m = 'Plant'.
      wa_fcat-edit = 'X'.
      wa_fcat-input = 'X'.
      APPEND wa_fcat TO temp_fcat.
      CLEAR wa_fcat.
      wa_fcat-tabname = 'ITAB_ITEM'.
      wa_fcat-fieldname = 'MBLNR'.
      wa_fcat-seltext_m = 'Material Doc.'.
      APPEND wa_fcat TO temp_fcat.
      CLEAR wa_fcat.
      wa_fcat-tabname = 'ITAB_ITEM'.
      wa_fcat-fieldname = 'MENGE'.
      wa_fcat-seltext_m = 'Quantity'.
      wa_fcat-edit = 'X'.
      wa_fcat-input = 'X'.
      wa_fcat-do_sum = 'Y'.
      APPEND wa_fcat TO temp_fcat.
      CLEAR wa_fcat.
      subtot-spos = 1.
      subtot-fieldname = 'MAT'.
      subtot-tabname = 'ITAB_HEAD'.
      subtot-up = 'X'.
      subtot-group = 'X'.
      subtot-subtot = 'X'.
      subtot-expa = 'X'.
      APPEND subtot TO gt_subtot.
    ENDFORM.                    "build_cat
    *&      Form  build_eve
    *       text
    FORM build_eve.
      DATA : wa_eve TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         i_list_type           = 0
       IMPORTING
         et_events             = t_eve
    *   EXCEPTIONS
    *     LIST_TYPE_WRONG       = 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.
      READ TABLE t_eve INTO wa_eve WITH KEY name = 'TOP_OF_PAGE'.
      IF sy-subrc = 0.
        wa_eve-form = 'TOP_OF_PAGE'.
        MODIFY t_eve FROM wa_eve INDEX sy-tabix.
      ENDIF.
    ENDFORM.                    "build_eve
    *&      Form  get_data
    *       text
    FORM get_data.
      SELECT matnr werks mblnr menge FROM mseg INTO CORRESPONDING FIELDS OF TABLE itab_item
      WHERE matnr IN mat.
    ENDFORM.                    "get_data
    *&      Form  dis_data
    *       text
    FORM dis_data.
      key_info-header01 = 'MAT'.
      key_info-item01 = 'MATNR'.
      key_info-header02 = 'WERKS'.
      key_info-item02 = 'WERKS'.
      REFRESH itab_head.
      LOOP AT itab_item.
        ON CHANGE OF itab_item-matnr OR itab_item-werks.
          MOVE-CORRESPONDING itab_item TO itab_head.
          itab_head-mat = itab_item-matnr.
          APPEND itab_head.
        ENDON.
      ENDLOOP.
      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
          i_callback_program             = 'ZALV_PRDS'
          it_fieldcat                    = t_fcat
          it_sort                        = gt_subtot
          it_events                      = t_eve[]
          i_tabname_header               = 'ITAB_HEAD'
          i_tabname_item                 = 'ITAB_ITEM'
          is_keyinfo                     = key_info
        TABLES
          t_outtab_header                = itab_head
          t_outtab_item                  = itab_item
    * 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.                    "dis_data
    *&      Form  top_of_page
    *       text
    FORM top_of_page.
      CLEAR st_line.
      st_line-typ = 'H'.
      st_line-info = 'Dhwani Shah'.
      APPEND st_line TO t_listhead.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary       = t_listhead
    *   I_LOGO                   =
    *   I_END_OF_LIST_GRID       =
    *   I_ALV_FORM               =
    ENDFORM.                    "top_of_page
    reward if usefull.....

  • Fields in ALV that is showing FM REUSE_ALV_HIERSEQ_LIST_DISPLAY

    Hello:
    I have problems with ALV that FM ALV FM <b>REUSE_ALV_HIERSEQ_LIST_DISPLAY </b>is showing.
    Problem 1:
    I have got a input field (fieldcat-input = 'X') but when this field is modified in ALV (in screen) it is not modified in internal table!.
    Problem 2:
    When user select or deselect a checkbox in ALV's any rows I need verify  some things, but after this, no event is executed where I could set my source code.
    Checkbox is a field of the ALV.
      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
    * I_INTERFACE_CHECK = ' '
      i_callback_program             = g_repid
    * I_CALLBACK_PF_STATUS_SET = ' '
    <b>I_CALLBACK_USER_COMMAND = 'USER_COMMAND' </b>
    is_layout                      = gs_layout
    it_fieldcat                    = gt_fieldcat[]
    * IT_EXCLUDING =
    * IT_SPECIAL_GROUPS =
    * IT_SORT =
    * IT_FILTER =
    * IS_SEL_HIDE =
    * I_DEFAULT = 'X'
    I_SAVE = 'A'
    * IS_VARIANT =
    IT_EVENTS = d_eventcat
    * IT_EVENT_EXIT =
    i_tabname_header               = 'GT_HEADER'
    i_tabname_item                 = 'GT_ITEM'
    * I_STRUCTURE_NAME_HEADER =
    * I_STRUCTURE_NAME_ITEM =
    is_keyinfo                     = gs_key
    * IS_PRINT =
    * IS_REPREP_ID =
    * I_BUFFER_ACTIVE =
    * I_BYPASSING_BUFFER =
    * IMPORTING
    * E_EXIT_CAUSED_BY_CALLER =
    * ES_EXIT_CAUSED_BY_USER =
        TABLES
          t_outtab_header                = gt_header[]
          t_outtab_item                  = gt_item[]
    * 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.
    FORM user_command  USING r_ucomm     LIKE sy-ucomm
                             rs_selfield TYPE slis_selfield.
      MESSAGE S398(00) WITH r_ucomm.
      CASE r_ucomm.
      ENDCASE.
    ENDFORM.                    "user_command
    <b>I have tried with 'LIST_MODIFY' event and 'DATA_CHANGED' event too:</b>
    d_eventcat-name = 'LIST_MODIFY'.
    d_eventcat-form  =  'LIST_MODIFY'.
    APPEND d_eventca.
    d_eventcat-name = 'DATA_CHANGED'.
    d_eventcat-form  =  'DATA_CHANGED'.
    APPEND d_eventca.
    <b>Are OK these definitions? :</b>
    FORM LIST_MODIFY
                     USING P_tabname               TYPE SLIS_TABNAME
                                P_index                 type sy-tabix
                                P_index_slave           type sy-tabix
                                P_index_sum             type sy-tabix.
    endform.                    "LIST_MODIFY
    FORM DATA_CHANGED USING rr_data_changed TYPE REF TO
                                          cl_alv_changed_data_protocol.
    ENDFORM.
    Help me please!. Thank's
    Jose

    In field catalog pass:
    wa_alv_fieldcat-outputlen   = p_len
    Set p_len as 30.
    'FIELD'            text-001   '01' 'X'  '30'  'L'

  • Error in REUSE_ALV_HIERSEQ_LIST_DISPLAY.....

    Hi,
    unable to see output....
    Please help me where is the error ..
    Thanks in Advance,
    kiran.
    TABLES:EKKO,EKPO.
    TYPE-POOLS:SLIS.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: SO_EKORG FOR EKKO-EKORG,
                    SO_EBELN FOR EKKO-EBELN,
                    SO_AEDAT FOR EKKO-AEDAT.
    PARAMETERS: R1  RADIOBUTTON GROUP RAD1,
                R2  RADIOBUTTON GROUP RAD1,
                R3  RADIOBUTTON GROUP RAD1.
    SELECTION-SCREEN END OF BLOCK B1.
    TYPES:BEGIN OF TY_EKKO,
          EBELN TYPE EKKO-EBELN,
          EKORG TYPE EKKO-EKORG,
          AEDAT TYPE EKKO-AEDAT,
          LIFNR TYPE EKKO-LIFNR,
          END OF TY_EKKO.
    TYPES:BEGIN OF TY_EKPO,
          EBELP TYPE EKPO-EBELP,
          MATNR TYPE EKPO-MATNR,
          WERKS TYPE EKPO-WERKS,
          TXZ01 TYPE EKPO-TXZ01,
          MENGE TYPE EKPO-MENGE,
          END OF TY_EKPO.
    DATA: IT_EKPO TYPE TABLE OF TY_EKPO,
          WA_EKPO TYPE TY_EKPO.
    DATA: IT_EKKO TYPE TABLE OF TY_EKKO,
          WA_EKKO TYPE TY_EKKO.
    DATA: IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
          WA_FCAT TYPE SLIS_FIELDCAT_ALV.
    DATA: REPID LIKE SY-REPID,
          KEY TYPE SLIS_KEYINFO_ALV.
    DATA: G_EKKO TYPE SLIS_TABNAME VALUE 'IT_EKKO',
          G_EKPO TYPE SLIS_TABNAME VALUE 'IT_EKPO'.
    INITIALIZATION.
    REPID = 'ZSAP1_PRAC'.
    START-OF-SELECTION.
    PERFORM GET_DATA.
    PERFORM FIELD_CAT.
    PERFORM FM_HIR_DIS.
    *&      Form  GET_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM GET_DATA .
    SELECT EBELN
           EKORG
           AEDAT
           LIFNR
           FROM EKKO
           INTO TABLE IT_EKKO
           WHERE EKORG IN SO_EKORG AND
                 EBELN IN SO_EBELN AND
                 AEDAT IN SO_AEDAT.
    SELECT EBELP
           MATNR
           WERKS
           TXZ01
           MENGE
           FROM EKPO
           INTO TABLE IT_EKPO
           FOR ALL ENTRIES IN IT_EKKO
           WHERE EBELN = IT_EKKO-EBELN.
    ENDFORM.                    " GET_DATA
    *&      Form  FIELD_CAT
          text
    -->  p1        text
    <--  p2        text
    FORM FIELD_CAT .
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKKO'.
    WA_FCAT-FIELDNAME = 'EBELN'.
    WA_FCAT-COL_POS = '1'.
    WA_FCAT-KEY = 'X'.
    WA_FCAT-SELTEXT_L = 'PO ORDER NUMBER'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKKO'.
    WA_FCAT-FIELDNAME = 'EKORG'.
    WA_FCAT-COL_POS = '2'.
    WA_FCAT-SELTEXT_L = 'PO ORG'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKKO'.
    WA_FCAT-FIELDNAME = 'AEDAT'.
    WA_FCAT-COL_POS = '3'.
    WA_FCAT-SELTEXT_L = 'DATE'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKKO'.
    WA_FCAT-FIELDNAME = 'LIFNR'.
    WA_FCAT-COL_POS = '4'.
    WA_FCAT-SELTEXT_L = 'VENDOR'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKKO'.
    WA_FCAT-FIELDNAME = 'NAME1'.
    WA_FCAT-COL_POS = '5'.
    WA_FCAT-SELTEXT_L = 'NAME OF VENDOR'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKPO'.
    WA_FCAT-FIELDNAME = 'EBELP'.
    WA_FCAT-COL_POS = '6'.
    WA_FCAT-KEY = 'X'.
    WA_FCAT-SELTEXT_L = 'ITEMS'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKPO'.
    WA_FCAT-FIELDNAME = 'MATNR'.
    WA_FCAT-COL_POS = '7'.
    WA_FCAT-SELTEXT_L = 'MATERIAL'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKPO'.
    WA_FCAT-FIELDNAME = 'WERKS'.
    WA_FCAT-COL_POS = '8'.
    WA_FCAT-SELTEXT_L = 'PLANT'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKPO'.
    WA_FCAT-FIELDNAME = 'TXZ01'.
    WA_FCAT-COL_POS = '9'.
    WA_FCAT-SELTEXT_L = 'SHORT TEXT'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKPO'.
    WA_FCAT-FIELDNAME = 'MENGE'.
    WA_FCAT-COL_POS = '10'.
    WA_FCAT-SELTEXT_L = 'QUANTITY'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    ENDFORM.                    " FIELD_CAT
    *&      Form  FM_HIR_DIS
          text
    -->  p1        text
    <--  p2        text
    FORM FM_HIR_DIS .
    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
      EXPORTING
      I_INTERFACE_CHECK              = ' '
       I_CALLBACK_PROGRAM             = REPID
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
      IS_LAYOUT                      =
       IT_FIELDCAT                    = IT_FCAT
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
      IT_SORT                        =
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     =
      IT_EVENTS                      =
      IT_EVENT_EXIT                  =
        I_TABNAME_HEADER               = 'G_EKKO'
        I_TABNAME_ITEM                 = 'G_EKPO'
      I_STRUCTURE_NAME_HEADER        =
      I_STRUCTURE_NAME_ITEM          =
        IS_KEYINFO                     = KEY
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
      TABLES
        T_OUTTAB_HEADER                = IT_EKKO
        T_OUTTAB_ITEM                  = IT_EKPO
    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.                    " FM_HIR_DIS
    Edited by: Kiran B on May 14, 2009 8:50 AM

    TABLES:EKKO,EKPO.
    TYPE-POOLS:SLIS.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: SO_EKORG FOR EKKO-EKORG,
                    SO_EBELN FOR EKKO-EBELN,
                    SO_AEDAT FOR EKKO-AEDAT.
    PARAMETERS: R1  RADIOBUTTON GROUP RAD1,
                R2  RADIOBUTTON GROUP RAD1,
                R3  RADIOBUTTON GROUP RAD1.
    SELECTION-SCREEN END OF BLOCK B1.
    TYPES:BEGIN OF TY_EKKO,
          EBELN TYPE EKKO-EBELN,
          EKORG TYPE EKKO-EKORG,
          AEDAT TYPE EKKO-AEDAT,
          LIFNR TYPE EKKO-LIFNR,
          END OF TY_EKKO.
    TYPES:BEGIN OF TY_EKPO,
          EBELP TYPE EKPO-EBELP,
          MATNR TYPE EKPO-MATNR,
          WERKS TYPE EKPO-WERKS,
          TXZ01 TYPE EKPO-TXZ01,
          MENGE TYPE EKPO-MENGE,
          END OF TY_EKPO.
    DATA: IT_EKPO TYPE TABLE OF TY_EKPO,
          WA_EKPO TYPE TY_EKPO.
    DATA: IT_EKKO TYPE TABLE OF TY_EKKO,
          WA_EKKO TYPE TY_EKKO.
    DATA: IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
          WA_FCAT TYPE SLIS_FIELDCAT_ALV.
    DATA: REPID LIKE SY-REPID,
          KEY TYPE SLIS_KEYINFO_ALV.
    DATA: G_EKKO TYPE SLIS_TABNAME VALUE 'IT_EKKO',
          G_EKPO TYPE SLIS_TABNAME VALUE 'IT_EKPO'.
    INITIALIZATION.
    REPID = 'ZSAP1_PRAC'.
    START-OF-SELECTION.
    PERFORM GET_DATA.
    PERFORM FIELD_CAT.
    PERFORM FM_HIR_DIS.
    *&      Form  GET_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM GET_DATA .
    SELECT EBELN
           EKORG
           AEDAT
           LIFNR
           FROM EKKO
           INTO TABLE IT_EKKO
           WHERE EKORG IN SO_EKORG AND
                 EBELN IN SO_EBELN AND
                 AEDAT IN SO_AEDAT.
    SELECT EBELP
           MATNR
           WERKS
           TXZ01
           MENGE
           FROM EKPO
           INTO TABLE IT_EKPO
           FOR ALL ENTRIES IN IT_EKKO
           WHERE EBELN = IT_EKKO-EBELN.
    ENDFORM.                    " GET_DATA
    *&      Form  FIELD_CAT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM FIELD_CAT .
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKKO'.
    WA_FCAT-FIELDNAME = 'EBELN'.
    WA_FCAT-COL_POS = '1'.
    WA_FCAT-KEY = 'X'.
    WA_FCAT-SELTEXT_L = 'PO ORDER NUMBER'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKKO'.
    WA_FCAT-FIELDNAME = 'EKORG'.
    WA_FCAT-COL_POS = '2'.
    WA_FCAT-SELTEXT_L = 'PO ORG'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKKO'.
    WA_FCAT-FIELDNAME = 'AEDAT'.
    WA_FCAT-COL_POS = '3'.
    WA_FCAT-SELTEXT_L = 'DATE'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKKO'.
    WA_FCAT-FIELDNAME = 'LIFNR'.
    WA_FCAT-COL_POS = '4'.
    WA_FCAT-SELTEXT_L = 'VENDOR'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKKO'.
    WA_FCAT-FIELDNAME = 'NAME1'.
    WA_FCAT-COL_POS = '5'.
    WA_FCAT-SELTEXT_L = 'NAME OF VENDOR'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKPO'.
    WA_FCAT-FIELDNAME = 'EBELP'.
    WA_FCAT-COL_POS = '6'.
    WA_FCAT-KEY = 'X'.
    WA_FCAT-SELTEXT_L = 'ITEMS'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKPO'.
    WA_FCAT-FIELDNAME = 'MATNR'.
    WA_FCAT-COL_POS = '7'.
    WA_FCAT-SELTEXT_L = 'MATERIAL'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKPO'.
    WA_FCAT-FIELDNAME = 'WERKS'.
    WA_FCAT-COL_POS = '8'.
    WA_FCAT-SELTEXT_L = 'PLANT'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKPO'.
    WA_FCAT-FIELDNAME = 'TXZ01'.
    WA_FCAT-COL_POS = '9'.
    WA_FCAT-SELTEXT_L = 'SHORT TEXT'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    WA_FCAT-TABNAME = 'EKPO'.
    WA_FCAT-FIELDNAME = 'MENGE'.
    WA_FCAT-COL_POS = '10'.
    WA_FCAT-SELTEXT_L = 'QUANTITY'.
    APPEND WA_FCAT TO IT_FCAT.
    CLEAR WA_FCAT.
    ENDFORM.                    " FIELD_CAT
    *&      Form  FM_HIR_DIS
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM FM_HIR_DIS .
    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
      EXPORTING
    *   I_INTERFACE_CHECK              = ' '
       I_CALLBACK_PROGRAM             = REPID
    *   I_CALLBACK_PF_STATUS_SET       = ' '
    *   I_CALLBACK_USER_COMMAND        = ' '
    *   IS_LAYOUT                      =
       IT_FIELDCAT                    = IT_FCAT
    *   IT_EXCLUDING                   =
    *   IT_SPECIAL_GROUPS              =
    *   IT_SORT                        =
    *   IT_FILTER                      =
    *   IS_SEL_HIDE                    =
    *   I_SCREEN_START_COLUMN          = 0
    *   I_SCREEN_START_LINE            = 0
    *   I_SCREEN_END_COLUMN            = 0
    *   I_SCREEN_END_LINE              = 0
    *   I_DEFAULT                      = 'X'
    *   I_SAVE                         = ' '
    *   IS_VARIANT                     =
    *   IT_EVENTS                      =
    *   IT_EVENT_EXIT                  =
        I_TABNAME_HEADER               = 'G_EKKO'
        I_TABNAME_ITEM                 = 'G_EKPO'
    *   I_STRUCTURE_NAME_HEADER        =
    *   I_STRUCTURE_NAME_ITEM          =
        IS_KEYINFO                     = KEY
    *   IS_PRINT                       =
    *   IS_REPREP_ID                   =
    *   I_BYPASSING_BUFFER             =
    *   I_BUFFER_ACTIVE                =
    * IMPORTING
    *   E_EXIT_CAUSED_BY_CALLER        =
    *   ES_EXIT_CAUSED_BY_USER         =
      TABLES
        T_OUTTAB_HEADER                = IT_EKKO
        T_OUTTAB_ITEM                  = IT_EKPO
    * 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.                    " FM_HIR_DIS

  • REUSE_ALV_HIERSEQ_LIST_DISPLAY

    Hi,
    I have developed a report using REUSE_ALV_HIERSEQ_LIST_DISPLAY .
    I need to include checkbox at the header level.
    Can anyone help me with an example?
    Thanks

    Hi Prabha,
    Go through this hope u can find ur solution.
    TYPE-POOLS: slis.
    DATA: BEGIN OF itab OCCURS 0,
            vbeln TYPE vbeln,
            expand,
          END OF itab.
    DATA: BEGIN OF itab1 OCCURS 0,
            vbeln TYPE vbeln,
            posnr TYPE posnr,
            matnr TYPE matnr,
            netpr TYPE netpr,
          END OF itab1.
    DATA: t_fieldcatalog TYPE slis_t_fieldcat_alv.
    DATA: s_fieldcatalog TYPE slis_fieldcat_alv.
    s_fieldcatalog-col_pos = '1'.
    s_fieldcatalog-fieldname = 'VBELN'.
    s_fieldcatalog-tabname   = 'ITAB'.
    s_fieldcatalog-rollname  = 'VBELN'.
    s_fieldcatalog-outputlen = '12'.
    APPEND s_fieldcatalog TO t_fieldcatalog.
    CLEAR: s_fieldcatalog.
    s_fieldcatalog-col_pos = '1'.
    s_fieldcatalog-fieldname = 'VBELN'.
    s_fieldcatalog-tabname   = 'ITAB1'.
    s_fieldcatalog-rollname  = 'VBELN'.
    s_fieldcatalog-outputlen = '12'.
    APPEND s_fieldcatalog TO t_fieldcatalog.
    CLEAR: s_fieldcatalog.
    s_fieldcatalog-col_pos = '2'.
    s_fieldcatalog-fieldname = 'POSNR'.
    s_fieldcatalog-tabname   = 'ITAB1'.
    s_fieldcatalog-rollname  = 'POSNR'.
    APPEND s_fieldcatalog TO t_fieldcatalog.
    CLEAR: s_fieldcatalog.
    s_fieldcatalog-col_pos = '3'.
    s_fieldcatalog-fieldname = 'MATNR'.
    s_fieldcatalog-tabname   = 'ITAB1'.
    s_fieldcatalog-rollname  = 'MATNR'.
    APPEND s_fieldcatalog TO t_fieldcatalog.
    CLEAR: s_fieldcatalog.
    s_fieldcatalog-col_pos = '4'.
    s_fieldcatalog-fieldname = 'NETPR'.
    s_fieldcatalog-tabname   = 'ITAB1'.
    s_fieldcatalog-rollname  = 'NETPR'.
    s_fieldcatalog-do_sum    = 'X'.
    APPEND s_fieldcatalog TO t_fieldcatalog.
    CLEAR: s_fieldcatalog.
    DATA: s_layout TYPE slis_layout_alv.
    s_layout-subtotals_text            = 'SUBTOTAL TEXT'.
    s_layout-key_hotspot = 'X'.
    s_layout-expand_fieldname = 'EXPAND'.
    SELECT vbeln UP TO 100 ROWS
           FROM
           vbak
           INTO TABLE itab.
    IF NOT itab[] IS INITIAL.
      SELECT vbeln posnr matnr netpr
             FROM vbap
             INTO TABLE itab1
             FOR ALL ENTRIES IN itab
             WHERE vbeln = itab-vbeln.
    ENDIF.
    DATA: v_repid TYPE syrepid.
    v_repid = sy-repid.
    DATA: s_keyinfo TYPE slis_keyinfo_alv.
    s_keyinfo-header01 = 'VBELN'.
    s_keyinfo-item01   = 'VBELN'.
    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
         EXPORTING
              i_callback_program = v_repid
              is_layout          = s_layout
              it_fieldcat        = t_fieldcatalog
              i_tabname_header   = 'ITAB'
              i_tabname_item     = 'ITAB1'
              is_keyinfo         = s_keyinfo
         TABLES
              t_outtab_header    = itab
              t_outtab_item      = itab1
         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.
    Reward points if helpful.
    Thanks
    Naveen khan

  • REUSE_ALV_HIERSEQ_LIST_DISPLAY field underline

    Hi All,
    Im displaying a list using the ALV function module
    REUSE_ALV_HIERSEQ_LIST_DISPLAY. I need a field to be underlined while displaying. I triedusing hotspot with fieldcat.It works with grid display but not with hier display.. Can somebody help me with this.
    Thanks,
    Kiran

    Hi Kathrin,
    you need to do few things, in user_command you need to refresh the table and repopulate the itab. and need to use <b>selfield-refresh = 'X'</b>.
    then the list will be updated.
    Regards
    Vjay

  • REUSE_ALV_HIERSEQ_LIST_DISPLAY and new Page

    Hi all,
    I am using FM REUSE_ALV_HIERSEQ_LIST_DISPLAY to display ALV List. Now, i want to print a New page on every Header record , is it possible?if Yes, then how?
    thanks in advance.

    Hi VIpin,
    Please find the code and function module ..
    *& Report  Z8AS_PROGRAM_ALV
    REPORT  Z8AS_PROGRAM_ALV.
    TABLES : STKO,STPO,MAKT,MAST.
    TYPE-POOLS : SLIS.
    DATA : BEGIN OF ISTKO OCCURS 0,
           STLNR LIKE STKO-STLNR,
           DATUV LIKE STKO-DATUV,
           MATNR LIKE MAST-MATNR,
           BMENG LIKE STKO-BMENG,
           BMEIN LIKE STKO-BMEIN,
           END OF ISTKO.
    DATA : BEGIN OF ISTPO OCCURS 0,
           STLNR LIKE STPO-STLNR,
           IDNRK LIKE STPO-IDNRK,
           MENGE LIKE STPO-MENGE,
           MEINS LIKE STPO-MEINS,
           MAKTX LIKE MAKT-MAKTX,
           END OF ISTPO.
    DATA : BEGIN OF IMAKT OCCURS 0,
           MATNR LIKE MAKT-MATNR,
           MAKTX LIKE MAKT-MAKTX,
           END OF IMAKT.
    DATA : BEGIN OF IMAST OCCURS 0,
           MATNR LIKE MAST-MATNR,
           STLNR LIKE MAST-STLNR,
           END OF IMAST.
    DATA : IFIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
           WFIELDCAT TYPE SLIS_FIELDCAT_ALV,
           ILAYOUT   TYPE SLIS_LAYOUT_ALV,
           IKEYINFO  TYPE SLIS_KEYINFO_ALV,
           IEVENT    TYPE SLIS_T_EVENT,
           WEVENT    TYPE SLIS_ALV_EVENT.
    PARAMETERS : P_NUM TYPE I .
    START-OF-SELECTION.
      PERFORM GETDATA.
      PERFORM GETHEADERMAT.
      PERFORM GET_MAT_DESC.
      PERFORM BUILD_FCAT_HEAD.
      PERFORM BUILD_FCAT_ITEM.
      PERFORM BUILD_KEYINFO.
      PERFORM BUILD_EVENT_TAB.
      PERFORM BUILD_LAYOUT.
      PERFORM DISPLAY_DATA.
    *&      Form  GETDATA
          text
    -->  p1        text
    <--  p2        text
    FORM GETDATA .
      SELECT STLNR DATUV BMENG BMEIN INTO CORRESPONDING FIELDS OF TABLE ISTKO
                                     FROM STKO UP TO P_NUM ROWS.
      IF NOT ISTKO[]  IS INITIAL.
        SELECT STLNR IDNRK MENGE MEINS INTO TABLE ISTPO FROM STPO FOR ALL ENTRIES IN ISTKO
                      WHERE STLNR = ISTKO-STLNR AND POSTP = 'L'.
      ENDIF.
    ENDFORM.                    " GETDATA
    *&      Form  BUILD_FCAT_HEAD
          text
    -->  p1        text
    <--  p2        text
    FORM BUILD_FCAT_HEAD .
      WFIELDCAT-TABNAME   = 'ISTKO'.
      WFIELDCAT-FIELDNAME = 'STLNR'.
      WFIELDCAT-SELTEXT_L = 'BOM no'.
      WFIELDCAT-OUTPUTLEN = 15.
      APPEND WFIELDCAT TO IFIELDCAT.
      CLEAR WFIELDCAT.
      WFIELDCAT-TABNAME   = 'ISTKO'.
      WFIELDCAT-FIELDNAME = 'DATUV'.
      WFIELDCAT-SELTEXT_L = 'BOM date'.
      WFIELDCAT-OUTPUTLEN = 15.
      APPEND WFIELDCAT TO IFIELDCAT.
      CLEAR WFIELDCAT.
      WFIELDCAT-TABNAME   = 'ISTKO'.
      WFIELDCAT-FIELDNAME = 'MATNR'.
      WFIELDCAT-SELTEXT_L = 'Header mat no'.
      WFIELDCAT-OUTPUTLEN = 18.
      APPEND WFIELDCAT TO IFIELDCAT.
      CLEAR WFIELDCAT.
      WFIELDCAT-TABNAME   = 'ISTKO'.
      WFIELDCAT-FIELDNAME = 'BMENG'.
      WFIELDCAT-SELTEXT_L = 'Base qty'.
      WFIELDCAT-OUTPUTLEN = 15.
      APPEND WFIELDCAT TO IFIELDCAT.
      CLEAR WFIELDCAT.
      WFIELDCAT-TABNAME   = 'ISTKO'.
      WFIELDCAT-FIELDNAME = 'BMEIN'.
      WFIELDCAT-SELTEXT_L = 'UOM'.
      WFIELDCAT-OUTPUTLEN = 3.
      APPEND WFIELDCAT TO IFIELDCAT.
      CLEAR WFIELDCAT.
    ENDFORM.                    " BUILD_FCAT_HEAD
    *&      Form  BUILD_FCAT_ITEM
          text
    -->  p1        text
    <--  p2        text
    FORM BUILD_FCAT_ITEM .
      WFIELDCAT-TABNAME   = 'ISTPO'.
      WFIELDCAT-FIELDNAME = 'IDNRK'.
      WFIELDCAT-SELTEXT_L = 'Material no'.
    *WFIELDCAT-HOTSPOT   = 'X'.
      WFIELDCAT-OUTPUTLEN = 18.
      APPEND WFIELDCAT TO IFIELDCAT.
      CLEAR WFIELDCAT.
      WFIELDCAT-TABNAME   = 'ISTPO'.
      WFIELDCAT-FIELDNAME = 'MAKTX'.
      WFIELDCAT-SELTEXT_L = 'Material desc'.
      WFIELDCAT-JUST      = 'C'.
      WFIELDCAT-OUTPUTLEN = 30.
      APPEND WFIELDCAT TO IFIELDCAT.
      CLEAR WFIELDCAT.
      WFIELDCAT-TABNAME   = 'ISTPO'.
      WFIELDCAT-FIELDNAME = 'MENGE'.
      WFIELDCAT-SELTEXT_L = 'Item qty'.
      WFIELDCAT-OUTPUTLEN = 15.
      APPEND WFIELDCAT TO IFIELDCAT.
      CLEAR WFIELDCAT.
      WFIELDCAT-TABNAME   = 'ISTPO'.
      WFIELDCAT-FIELDNAME = 'MEINS'.
      WFIELDCAT-SELTEXT_L = 'UOM'.
      WFIELDCAT-OUTPUTLEN = 3.
      APPEND WFIELDCAT TO IFIELDCAT.
      CLEAR WFIELDCAT.
    ENDFORM.                    " BUILD_FCAT_ITEM
    *&      Form  BUILD_KEYINFO
          text
    -->  p1        text
    <--  p2        text
    FORM BUILD_KEYINFO .
      IKEYINFO-HEADER01 = 'STLNR'.
      IKEYINFO-ITEM01   = 'STLNR'.
    ENDFORM.                    " BUILD_KEYINFO
    *&      Form  DISPLAY_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM DISPLAY_DATA .
      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
      I_INTERFACE_CHECK              = ' '
         I_CALLBACK_PROGRAM             = SY-REPID
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = 'USER_COM'
         IS_LAYOUT                      = ILAYOUT
         IT_FIELDCAT                    = IFIELDCAT[]
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
      IT_SORT                        =
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     =
         IT_EVENTS                      = IEVENT[]
      IT_EVENT_EXIT                  =
          I_TABNAME_HEADER               = 'ISTKO'
          I_TABNAME_ITEM                 = 'ISTPO'
      I_STRUCTURE_NAME_HEADER        =
      I_STRUCTURE_NAME_ITEM          =
          IS_KEYINFO                     = IKEYINFO
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
        TABLES
          T_OUTTAB_HEADER                = ISTKO
          T_OUTTAB_ITEM                  = ISTPO
    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_DATA
    *&      Form  GET_MAT_DESC
          text
    -->  p1        text
    <--  p2        text
    FORM GET_MAT_DESC .
      IF NOT ISTPO[] IS INITIAL.
        SELECT MATNR MAKTX INTO TABLE IMAKT FROM MAKT FOR ALL ENTRIES IN ISTPO
                                WHERE MATNR = ISTPO-IDNRK.
      ENDIF.
      LOOP AT ISTPO.
        READ TABLE IMAKT WITH KEY MATNR = ISTPO-IDNRK.
        IF SY-SUBRC = 0.
          ISTPO-MAKTX = IMAKT-MAKTX.
        ENDIF.
        MODIFY ISTPO.
      ENDLOOP.
    ENDFORM.                    " GET_MAT_DESC
    *&      Form  BUILD_LAYOUT
          text
    -->  p1        text
    <--  p2        text
    FORM BUILD_LAYOUT .
      ILAYOUT-ZEBRA             = 'X'.
      ILAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    ENDFORM.                    " BUILD_LAYOUT
    *FORM USER_COM USING PUCOM LIKE SY-UCOMM PSELFIELD TYPE SLIS_SELFIELD.
    *CASE PUCOM.
    *WHEN '&IC1'.
    SET PARAMETER ID 'MAT' FIELD PSELFIELD-VALUE.
    CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
    *ENDCASE.
    *ENDFORM.
    *&      Form  BUILD_EVENT_TAB
          text
    -->  p1        text
    <--  p2        text
    FORM BUILD_EVENT_TAB .
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = IEVENT
      EXCEPTIONS
        LIST_TYPE_WRONG       = 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.
      READ TABLE IEVENT INTO WEVENT WITH KEY NAME = 'TOP_OF_PAGE'.
      IF SY-SUBRC = 0.
        WEVENT-FORM = 'TOPOFPAGE'.
        MODIFY IEVENT FROM WEVENT INDEX SY-TABIX.
      ENDIF.
    ENDFORM.                    " BUILD_EVENT_TAB
    *&      Form  TOPOFPAGE
          text
    FORM TOPOFPAGE.
      DATA : ILISTHEAD TYPE SLIS_T_LISTHEADER,
             WLISTHEAD TYPE SLIS_LISTHEADER.
      WLISTHEAD-INFO = 'Its a test hierarchical sequential alv dispaly'.
      WLISTHEAD-TYP = 'H'.
      APPEND WLISTHEAD TO ILISTHEAD.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = ILISTHEAD
        I_LOGO                   =  ''
        I_END_OF_LIST_GRID       =
      ENDFORM.
    *&      Form  GETHEADERMAT
          text
    -->  p1        text
    <--  p2        text
    FORM GETHEADERMAT .
    IF NOT ISTKO[] IS INITIAL.
      SELECT MATNR STLNR INTO TABLE IMAST FROM MAST FOR ALL ENTRIES IN ISTKO
                                    WHERE STLNR = ISTKO-STLNR.
    ENDIF.
    LOOP AT ISTKO.
    READ TABLE IMAST WITH KEY STLNR = ISTKO-STLNR.
    IF SY-SUBRC = 0.
      ISTKO-MATNR = IMAST-MATNR.
    ENDIF.
    MODIFY ISTKO.
    ENDLOOP.
    ENDFORM.                    " GETHEADERMAT
    What more you can do is go to that function module in se37 , and inside that function module you can use At New
    command , like at new matnr or ebeln .
    Reward points if helpful
    Regards,
    Amber S
    Message was edited by:
            Amber Soni

  • REUSE_ALV_HIERSEQ_LIST_DISPLAY i_interface_check

    hello,
    I the function "REUSE_ALV_HIERSEQ_LIST_DISPLAY" exists an parameter "i_interface_check" to check the interface.
    It doesn´t work, when I use the function "REUSE_ALV_GRID_DISPLAY", but when I use "REUSE_ALV_LIST_DISPLAY" it works.
    Has anyone an idea?
    Kind regards
    Jens

    Hi
    I am attaching a code which uses both "REUSE_ALV_GRID_DISPLAY and  "REUSE_ALV_LIST_DISPLAY
    I think it will be helpful if you investigate the code.
    tables used -
    tables: mkpf,
            mseg,
            lfa1,
            makt.
    global hashed tables used
    data: begin of wa_mkpf, "header
          mblnr like mkpf-mblnr,
          mjahr like mkpf-mjahr,
          budat like mkpf-budat,
          xblnr like mkpf-xblnr,
          end of wa_mkpf.
    data: ht_mkpf like hashed table of wa_mkpf
          with unique key mblnr mjahr
          with header line.
    data: st_mkpf like standard table of wa_mkpf
          with header line.
    data: begin of wa_mseg, " line items
          mblnr like mseg-mblnr,
          mjahr like mseg-mjahr,
          zeile like mseg-zeile,
          bwart like mseg-bwart,
          charg like mseg-charg,
          matnr like mseg-matnr,
          lifnr like mseg-lifnr,
          erfmg like mseg-erfmg,
          erfme like mseg-erfme,
          end of wa_mseg.
    data ht_mseg like hashed table of wa_mseg
          with unique key mblnr mjahr zeile
          with header line.
    data st_mseg like standard table of wa_mseg
          with header line.
    cache structure for lfa1 records
    data: begin of wa_lfa1,
          lifnr like lfa1-lifnr,
          name1 like lfa1-name1,
          end of wa_lfa1.
    data ht_lfa1 like hashed table of wa_lfa1
          with unique key lifnr
          with header line.
    cache structure for material related data
    data: begin of wa_material,
          matnr like makt-matnr,
          maktx like makt-maktx,
          end of wa_material.
    data: ht_material like hashed table of wa_material
            with unique key matnr
            with header line.
    result table
    data: begin of wa_lst, "
          budat like mkpf-budat,
          mblnr like mseg-mblnr,
          lifnr like mseg-lifnr,
          name1 like lfa1-name1,     
          xblnr like mkpf-xblnr,
          zeile like mseg-zeile,
          charg like mseg-charg,
          matnr like mseg-matnr,
          maktx like makt-maktx,
          erfmg like mseg-erfmg,
          erfme like mseg-erfme,
          mjahr like mseg-mjahr,
          end of wa_lst.
    data: ht_lst like hashed table of wa_lst
            with unique key mblnr mjahr zeile
            with header line.
    data: begin of wa_lst1, " sumary by material
          matnr like mseg-matnr,
          maktx like makt-maktx,
          erfmg like mseg-erfmg,
          erfme like mseg-erfme,
          color_line(4) TYPE c,           " Line color
          color_cell    TYPE lvc_t_scol,  " Cell color
          celltab type LVC_T_STYL,
          end of wa_lst1.
    data: ht_lst1 like hashed table of wa_lst1
            with unique key matnr
            with header line.
    structures for alv grid display.
    itabs
    type-pools: slis.
    data: it_lst            like standard table of wa_lst with header line,
          it_fieldcat_lst   type slis_t_fieldcat_alv with header line,
          it_sort_lst       type slis_t_sortinfo_alv,
          it_lst1           like standard table of wa_lst1 with header line,
          it_fieldcat_lst1  type slis_t_fieldcat_alv with header line,
          it_sort_lst1      type slis_t_sortinfo_alv.
    structures
    data: wa_sort         type slis_sortinfo_alv,
          ls_layout       type slis_layout_alv.
    color management.
    DATA  : wa_color    TYPE lvc_s_scol.
    Internal table for color management.
    DATA : it_color    TYPE TABLE          OF lvc_s_scol.
    itab for input enabling.
    DATA: lt_celltab TYPE lvc_t_styl. "
    global varialbes
    data: g_lines type i.
    data: g_repid like sy-repid,
          ok_code       like sy-ucomm.
    selection-screen
    "text: Dates:
    select-options: so_budat for mkpf-budat default sy-datum.
    "text: Material numbers.
    select-options: so_matnr for mseg-matnr.
    selection-screen uline.
    selection-screen skip 1.
    "Text: show summary by material.
    parameters: gp_bymat as checkbox default ''.
    parameters: gp_hier  as checkbox default 'X'.
    start-of-selection.
      perform get_data.
      perform show_data.
    end-of-selection.
          FORM get_data                                                 *
    form get_data.
           select mblnr mjahr budat xblnr
                into table ht_mkpf
               from mkpf
              where budat in so_budat. " make use of std index.
    have we retrieved data from mkpf?
      describe table ht_mkpf lines g_lines.
      if g_lines > 0.
    if true then retrieve all related records from mseg.
    Doing this way we make sure that the access is by primary key
    of mseg.
    The reason is that is faster to filter them in memory
    than to allow the db server to do it.
        select mblnr mjahr zeile bwart charg
                 matnr lifnr erfmg erfme
          into table ht_mseg
          from mseg
            for all entries in ht_mkpf
         where mblnr = ht_mkpf-mblnr
           and mjahr = ht_mkpf-mjahr.
      endif.
    fill t_lst or t_lst1 according to user's choice.
      if gp_bymat = ' '.
        perform fill_ht_lst.
      else.
        perform fill_ht_lst1.
      endif.
    endform.
    form fill_ht_lst.
      refresh ht_lst.
    Example: how to discard unwanted data in an efficient way.
      loop at ht_mseg.
      filter unwanted data
        check ht_mseg-bwart = '101' or ht_mseg-bwart = '901'.
        check ht_mseg-matnr in so_matnr.
      read header line.
        read table ht_mkpf with table key mblnr = ht_mseg-mblnr
        mjahr = ht_mseg-mjahr.
        clear ht_lst.
    * note : this may be faster if you specify field by field.
        move-corresponding ht_mkpf to ht_lst.
        move-corresponding ht_mseg to ht_lst.
        perform read_lfa1 using ht_mseg-lifnr changing ht_lst-name1.
        perform read_material using ht_mseg-matnr changing ht_lst-maktx.
        insert table ht_lst.
      endloop.
    endform.
    form fill_ht_lst1.
    data: colorear.
      refresh ht_lst1.
    Example: how to discard unwanted data in an efficient way.
             hot to simulate a collect in a faster way
      loop at ht_mseg.
      filter unwanted data
        check ht_mseg-bwart = '101' or ht_mseg-bwart = '901'.
        check ht_mseg-matnr in so_matnr.
    * note : this may be faster if you specify field by field.
        read table ht_lst1 with table key matnr = ht_mseg-matnr
        transporting erfmg.
        if sy-subrc <> 0. " if matnr doesn't exist in sumary table
        " insert a new record
          clear ht_lst1.
          ht_lst1-matnr = ht_mseg-matnr.
          perform read_material using ht_mseg-matnr changing ht_lst1-maktx.
          ht_lst1-erfmg = ht_mseg-erfmg.
          ht_lst1-erfme = ht_mseg-erfme.
          if colorear = ''.
            colorear = 'X'.
            refresh it_color.
            ht_lst1-color_cell[] = it_color[].
            MOVE 'C410' TO ht_lst1-color_line.
          else.
            colorear = ' '.
            refresh it_color. clear it_color.
            MOVE 'MATNR' TO wa_color-fname.
            MOVE '6'         TO wa_color-color-col.
            MOVE '1'         TO wa_color-color-int.
            MOVE '1'         TO wa_color-color-inv.
            APPEND wa_color TO it_color.
            MOVE 'MAKTX' TO wa_color-fname.
            MOVE '3'         TO wa_color-color-col.
            MOVE '1'         TO wa_color-color-int.
            MOVE '1'         TO wa_color-color-inv.
            APPEND wa_color TO it_color.
            MOVE 'ERFMG' TO wa_color-fname.
            MOVE '5'         TO wa_color-color-col.
            MOVE '1'         TO wa_color-color-int.
            MOVE '1'         TO wa_color-color-inv.
            APPEND wa_color TO it_color.
            ht_lst1-color_cell[] = it_color[].
            clear ht_lst1-color_line.
          endif.
          insert table ht_lst1.
        else." a record was found.
        " collect erfmg.  To do so, fill in the unique key and add
        " the numeric fields.
          ht_lst1-matnr = ht_mseg-matnr.
          add ht_mseg-erfmg to ht_lst1-erfmg.
          modify table ht_lst1 transporting erfmg.
        endif.
      endloop.
    endform.
    implementation of cache for lfa1.
    form read_lfa1 using p_lifnr changing p_name1.
           read table ht_lfa1 with table key lifnr = p_lifnr
            transporting name1.
      if sy-subrc <> 0.
        clear ht_lfa1.
        ht_lfa1-lifnr = p_lifnr.
        select single name1
           into ht_lfa1-name1
          from lfa1
        where lifnr = p_lifnr.
        if sy-subrc <> 0. ht_lfa1-name1 = 'n/a in lfa1'. endif.
        insert table ht_lfa1.
      endif.
      p_name1 = ht_lfa1-name1.
    endform.
    implementation of cache for material data
    form read_material using p_matnr changing p_maktx.
      read table ht_material with table key matnr = p_matnr
      transporting maktx.
      if sy-subrc <> 0.
        ht_material-matnr = p_matnr.
        select single maktx into  ht_material-maktx
          from makt
         where spras = sy-langu
           and matnr = p_matnr.
        if sy-subrc <> 0. ht_material-maktx = 'n/a in makt'. endif.
        insert table ht_material.
      endif.
      p_maktx = ht_material-maktx.
    endform.
    form show_data.
      if gp_hier = 'X'. "no anda.
       perform show_hierarchicalALV.
      else.
        if gp_bymat = ' '.
          perform show_ht_lst.
        else.
          perform show_ht_lst1.
        endif.
      endif.
    endform.
    form show_hierarchicalALV.
    st_mkpf[] = ht_mkpf[].
    st_mseg[] = ht_mseg[].
    call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
    exporting
      I_INTERFACE_CHECK              = ' '
      I_CALLBACK_PROGRAM             =
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
      IS_LAYOUT                      =
      IT_FIELDCAT                    =
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
      IT_SORT                        =
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     =
      IT_EVENTS                      =
      IT_EVENT_EXIT                  =
       i_tabname_header               =
       i_tabname_item                 =
      I_STRUCTURE_NAME_HEADER        =
      I_STRUCTURE_NAME_ITEM          =
       is_keyinfo                     =
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_BUFFER_ACTIVE                =
      I_BYPASSING_BUFFER             =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
      tables
        t_outtab_header                = st_mkpf
        t_outtab_item                  = st_mseg
    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.
    form show_ht_lst.
      "needed because the FM can't use a hashed table.
      it_lst[] = ht_lst[].
      perform fill_layout using 'full display'
                           changing ls_layout.
      perform fill_columns_lst.
    perform sort_lst.
      g_repid = sy-repid.
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program       = g_repid
                i_callback_pf_status_set = 'SET_PF_STATUS'
                is_layout                = ls_layout
                it_fieldcat              = it_fieldcat_lst[]
               it_sort                  = it_sort_lst
           tables
                t_outtab                 = it_lst
           exceptions
                program_error            = 1
                others                   = 2.
    endform.
    form show_ht_lst1.
      "needed because the FM can't use a hashed table.
      it_lst1[] = ht_lst1[].
      perform fill_layout using 'Sumary by matnr'
                           changing ls_layout.
      perform fill_columns_lst1.
    perform sort_lst.
      g_repid = sy-repid.
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program       = g_repid
                i_callback_pf_status_set = 'SET_PF_STATUS'
                is_layout                = ls_layout
                it_fieldcat              = it_fieldcat_lst1[]
               it_sort                  = it_sort_lst
           tables
                t_outtab                 = it_lst1
           exceptions
                program_error            = 1
                others                   = 2.
    endform.
    form fill_layout using p_window_titlebar
                   changing cs_layo type slis_layout_alv.
      clear cs_layo.
      cs_layo-window_titlebar        = p_window_titlebar.
      cs_layo-edit                   = 'X'.
      cs_layo-edit_mode              = space.
      MOVE 'COLOR_LINE' TO cs_layo-info_fieldname.
    Field that identify cell color in inetrnal table
      MOVE 'COLOR_CELL' TO cs_layo-coltab_fieldname.
    move 'CELLTAB' TO cs_layo-stylefname.
    endform.                    " armar_layout_stock
    form set_pf_status using rt_extab type slis_t_extab.
    create a new status
    and then select extras -> adjust template -> listviewer
      set pf-status 'VISTA'.
    endform.        "set_pf_status
    define add_lst.
      clear it_fieldcat_lst.
      it_fieldcat_lst-fieldname     = &1.
      it_fieldcat_lst-outputlen     = &2.
      it_fieldcat_lst-ddictxt       = 'L'.
      it_fieldcat_lst-seltext_l       = &1.
      it_fieldcat_lst-seltext_m       = &1.
      it_fieldcat_lst-seltext_m       = &1.
      if &1 = 'MATNR'.
        it_fieldcat_lst-emphasize = 'C111'.
      endif.
      append it_fieldcat_lst.
    end-of-definition.
    define add_lst1.
      clear it_fieldcat_lst.
      it_fieldcat_lst1-fieldname     = &1.
      it_fieldcat_lst1-outputlen     = &2.
      it_fieldcat_lst1-ddictxt       = 'L'.
      it_fieldcat_lst1-seltext_l       = &1.
      it_fieldcat_lst1-seltext_m       = &1.
      it_fieldcat_lst1-seltext_m       = &1.
      append it_fieldcat_lst1.
    end-of-definition.
    form fill_columns_lst.
    set columns for output.
      refresh it_fieldcat_lst.
      add_lst 'BUDAT' 10.
      add_lst   'MBLNR' 10.
      add_lst  'LIFNR' 10.
      add_lst  'NAME1' 35.
      add_lst  'XBLNR' 15.
      add_lst    'ZEILE' 5.
      add_lst    'CHARG' 10.
      add_lst   'MATNR' 18.
      add_lst   'MAKTX' 30.
      add_lst   'ERFMG' 17.
      add_lst   'ERFME' 5.
      add_lst   'MJAHR' 4.
    endform.
    form fill_columns_lst1.
    set columns for output.
      refresh it_fieldcat_lst1.
      add_lst1 'MATNR' 18.
      add_lst1 'MAKTX' 30.
      add_lst1 'ERFMG' 17.
      add_lst1 'ERFME' 5..
    endform.
    Regards
    Praneeth
    Reward helpful answers

  • How to color particular cell while working REUSE_ALV_HIERSEQ_LIST_DISPLAY

    Hi All,
    I am working with REUSE_ALV_HIERSEQ_LIST_DISPLAY  function module to diaplay hierarchial list. Now my requirement is to color particular cells in the output based on condition. Can any one help me in this regard.
    Thanks and Regards,
    Srinadh.

    hi ,
    try this..
    * FIELD CATALOG
    DATA : it_field TYPE slis_t_fieldcat_alv,                       "internal table for field catalog
           wa_field TYPE slis_fieldcat_alv.                         "work area for field catalog
    * FOR LAYOUT OF ALV GRID
    DATA : wa_layout TYPE slis_layout_alv.                          "work area for layout design
    *&      Form  SET_LAYOUT
    *       SUB-ROUTINE SET_LAYOUT IS USED TO SET THE DISPLAY OF THE
    *       ALV GRID LINES IN ALTERNATIVE COLOURS
    FORM set_layout .
      wa_layout-zebra = 'X'.
    ENDFORM.                    " SET_LAYOUT
    *&      Form  ALV_DISPLAY
    *       SUB-ROUTINE ALV_DISPLAY IS USED TO SET THE PARAMETERS
    *       FOR THE FUNCTION MODULE REUSE_ALV_GRID_DISPLAY
    *       AND PASS THE INTERNAL TABLE EXISTING THE RECORDS TO BE
    *       DISPLAYED IN THE GRID FORMAT
    FORM alv_display .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
    *     I_INTERFACE_CHECK                 = ' '
    *     I_BYPASSING_BUFFER                = ' '
    *     I_BUFFER_ACTIVE                   = ' '
         i_callback_program                = 'SY-REPID '
    *     I_CALLBACK_PF_STATUS_SET          = ' '
    *     I_CALLBACK_USER_COMMAND           = ' '
    *     I_CALLBACK_TOP_OF_PAGE            = ' '
    *     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
    *     I_CALLBACK_HTML_END_OF_LIST       = ' '
    *     I_STRUCTURE_NAME                  =
    *     I_BACKGROUND_ID                   = ' '
    *     I_GRID_TITLE                      =
    *     I_GRID_SETTINGS                   =
         is_layout                         = wa_layout
         it_fieldcat                       = it_field
    *     IT_EXCLUDING                      =
    *     IT_SPECIAL_GROUPS                 =
    *     IT_SORT                           =
    *     IT_FILTER                         =
    *     IS_SEL_HIDE                       =
    *     I_DEFAULT                         = 'X'
    *     I_SAVE                            = ' '
    *     IS_VARIANT                        =
    *     IT_EVENTS                         =
    *     IT_EVENT_EXIT                     =
    *     IS_PRINT                          =
    *     IS_REPREP_ID                      =
    *     I_SCREEN_START_COLUMN             = 0
    *     I_SCREEN_START_LINE               = 0
    *     I_SCREEN_END_COLUMN               = 0
    *     I_SCREEN_END_LINE                 = 0
    *     I_HTML_HEIGHT_TOP                 = 0
    *     I_HTML_HEIGHT_END                 = 0
    *     IT_ALV_GRAPHICS                   =
    *     IT_HYPERLINK                      =
    *     IT_ADD_FIELDCAT                   =
    *     IT_EXCEPT_QINFO                   =
    *     IR_SALV_FULLSCREEN_ADAPTER        =
    *   IMPORTING
    *     E_EXIT_CAUSED_BY_CALLER           =
    *     ES_EXIT_CAUSED_BY_USER            =
        TABLES
          t_outtab                          = it_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.                    "alv_display
    regards
    Ritesh J

  • Need the classes for fm REUSE_ALV_HIERSEQ_LIST_DISPLAY  does.

    I have a requirement where  I need to display header and item using alv classes..  (the same functionality that REUSE_ALV_HIERSEQ_LIST_DISPLAY function module does).  If any one worked on this please guide.

    Hi
    Hope it will help you.
    Reward if ehlp.
    Many a times there is a requirement to display ALV Grid (not ALV List) in the background Job. I have checked the SDN Forum for the same and it has been mentioned that ALV Grid cannot be displayed in Background, but the list output of ALV is possible. So user won’t have the actual Grid interface but the List interface.
    There is a workaround to display ALV Grid in Background Job. The only restriction is you can’t schedule the job through SM36. You need to execute the transaction of the report program, fill in the selection screen data and hit Execute.
    The job would be executed in background. User will be able to see the Job Log and Job Status after executing the program. User doesn’t have to go to SM37 to view the job status/log. Once the Job Status is changed to “COMPLETED”, user can click on “DISPLAY SPOOL” to view the ALV Grid.
    Limitations:
    Can’t schedulea background job
    The session should be active until the background job is completed. If the session is closed, then user won’t be able to check the output in ALV Grid. User would be able to check the output through spool or SM37
    Advantages:
    If the spool width is greater than 255 characters, then the entire width could be seen in the output because the output is directed to an ALV Grid and not to spool
    Interface of ALV Grid is available instead of ALV List even though it’s a background job.
    Program won’t give the TIME OUT error
    Steps Required:
    1. Once you execute the program, the following screen would be displayed
    2. Click “Display Job Status” to check the Status of the Background Job
    3. Click on “Display the Job Log” to check the Log
    4. Click on “Display Job Status” to check the Job Status
    5. Click on “DISPLAY SPOOL” to check the spool content once the Job Status is changed to “COMPLETED”. Output is displayed in ALV Grid
    Programs:
    1.  Two different programs needs to be created
    ZPROGRAM_ONE: This is the 1st program, where the selection screen and all the data validations would be done. Error handling for invalid data should be done in this program.
    Once the data validation is done, this program would call the 2nd program ZPROGEAM_TWO. Build the logic to display ALV Grid in this program. The logic will only display ALV in foreground and it won’t be reflected in the spool.
    ZPROGRAM_TWO: This program would fetch all the data and do all the processing. If you want the spool output along with ALV Grid output, then build the logic in this program to display ALV Grid.
    *& Report  ZPROGRAM_ONE                                                *
    REPORT  zprogram_one                            .
    PRASHANT PATIL
    TABLES : mara,
             tsp01.
    type-pools:slis.
    TYPES : BEGIN OF t_mara,
              matnr   TYPE mara-matnr,
              ersda   TYPE mara-ersda,
              ernam   TYPE mara-ernam,
              laeda   TYPE mara-laeda,
            END OF t_mara.
    DATA : i_mara       TYPE STANDARD TABLE OF t_mara,
           wa_mara      TYPE t_mara,
           wa_index     TYPE indx,        " For Index details
           wa_index_key TYPE indx-srtfd VALUE 'PRG_ONE',
           i_jobsteplist     TYPE STANDARD TABLE OF tbtcstep, " For spool number
           wa_params         TYPE pri_params,  " To Get Print Parameters
           wa_jobhead        TYPE tbtcjob,     " To know the status of job
           wa_jobsteplist    TYPE tbtcstep,    " To know the spool
           w_jobname         TYPE tbtco-jobname,  " Job name for bckgrnd job
           w_jobcount        TYPE tbtco-jobcount, " Unique id for bckgrd job
           w_path            TYPE string,         " Upload path
           w_lsind           TYPE sy-lsind,       " Index
           wa_seltab         TYPE rsparams,
           i_seltab          TYPE STANDARD TABLE OF rsparams,
           wa_index1         TYPE indx,        " For Index details
           wa_index_key1     TYPE indx-srtfd VALUE 'PRG_TWO',
           i_fieldcat        TYPE slis_t_fieldcat_alv,
           wa_fieldcat       LIKE LINE OF i_fieldcat.
            CONSTANTS DECLARATION                                        *
    CONSTANTS :
             c_a(1) TYPE c VALUE 'A',
             c_m(1) TYPE c VALUE 'M',
             c_l(1) TYPE c VALUE 'L',
             c_c(1) TYPE c VALUE 'C',
             c_zfdr(4) TYPE c VALUE 'ZFDR',
             c_x(1)    TYPE c VALUE 'X',
             c_locl(4) TYPE c VALUE 'LOCL', " Destination is LOCAL
             c_f(1)    TYPE c VALUE 'F',   " Job Status - Failed
             c_s(1)    TYPE c VALUE 'S',
             c_p(1)    TYPE c VALUE 'P'.
    SELECTION SCREEN PARAMETERS
    SELECT-OPTIONS : s_matnr FOR mara-matnr.
    START-OF-SELECTION.
    Before the export, fill the data fields before CLUSTR
      wa_index-aedat = sy-datum.
      wa_index-usera = sy-uname.
      EXPORT s_matnr
           TO DATABASE indx(st) FROM wa_index ID wa_index_key.
    To Open the Job for background processing
      PERFORM open_job.
    To get the print parameters
      PERFORM get_print_parameters.
    Submit the job in background
      PERFORM job_submit.
    Close the background job
      PERFORM job_close.
    This is the output screen with the buttons ********
    Create 3 buttons DISPLAY SPOOL, STATUS, JOBLOG
      SET PF-STATUS 'ZS001'.
      WRITE: / 'The program is submitted in Background'.
      WRITE: / 'Press DISPLAY SPOOL to see the spool'.
      WRITE: / 'Press STATUS to see the status of the background'.
    AT USER-COMMAND.
    If user presses the 'BACK' button
      IF sy-ucomm = 'BAK'.
        IF  wa_jobhead-status = c_f OR
            wa_jobhead-status = c_a.
          LEAVE TO SCREEN 0.
        ENDIF.
      ENDIF.
    If the user presses the 'DISPLAY SPOOL' Button
      IF sy-ucomm = 'DISPLAY'.
        PERFORM display_spool.
      ENDIF.
    If the user presses the 'JOB STATUS' Button
      IF sy-ucomm = 'STATUS'.
        PERFORM display_status.
      ENDIF.
    If the user presses the 'JOB LOG' Button
      IF sy-ucomm = 'JOBLOG'.
        PERFORM display_job_log.
      ENDIF.
    *&      Form  open_job
          text
    -->  p1        text
    <--  p2        text
    FORM open_job .
    This is to Create a new job which is to be submitted in background to
    process sales order/delivery/invoice
    Here we would get a unique id ( Jobcount ) which identifies our job
    along with the job name which we have assigned to our job
      CONCATENATE sy-uname
                  sy-datum
                  sy-uzeit
                          INTO w_jobname .  " Assign unique jobname
      CALL FUNCTION 'JOB_OPEN'
       EXPORTING
      DELANFREP              = ' '
      JOBGROUP               = ' '
        jobname                = w_jobname
      SDLSTRTDT              = NO_DATE
      SDLSTRTTM              = NO_TIME
      JOBCLASS               =
      IMPORTING
       jobcount                = w_jobcount
    CHANGING
      RET                    =
    EXCEPTIONS
       cant_create_job        = 1
       invalid_job_data       = 2
       jobname_missing        = 3
       OTHERS                 = 4
      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.                    " open_job
    *&      Form  get_print_parameters
          text
    -->  p1        text
    <--  p2        text
    FORM get_print_parameters .
      DATA : l_valid TYPE c.
    This is to get the Print Parameters for the job which is to be
    submitted in background to process sales order/delivery/invoice
      CALL FUNCTION 'GET_PRINT_PARAMETERS'
       EXPORTING
      ARCHIVE_ID                   = C_CHAR_UNKNOWN
      ARCHIVE_INFO                 = C_CHAR_UNKNOWN
      ARCHIVE_MODE                 = C_CHAR_UNKNOWN
      ARCHIVE_TEXT                 = C_CHAR_UNKNOWN
      AR_OBJECT                    = C_CHAR_UNKNOWN
      ARCHIVE_REPORT               = C_CHAR_UNKNOWN
      AUTHORITY                    = C_CHAR_UNKNOWN
      COPIES                       = C_NUM3_UNKNOWN
      COVER_PAGE                   = C_CHAR_UNKNOWN
      DATA_SET                     = C_CHAR_UNKNOWN
      DEPARTMENT                   = C_CHAR_UNKNOWN
          destination                  = c_locl " LOCL
      EXPIRATION                   = C_NUM1_UNKNOWN
          immediately                  = space
      IN_ARCHIVE_PARAMETERS        = ' '
      IN_PARAMETERS                = ' '
      LAYOUT                       = C_CHAR_UNKNOWN
      LINE_COUNT                   = C_INT_UNKNOWN
      LINE_SIZE                    = C_INT_UNKNOWN
      LIST_NAME                    = C_CHAR_UNKNOWN
      LIST_TEXT                    = C_CHAR_UNKNOWN
      MODE                         = ' '
          new_list_id                  = c_x
      PROTECT_LIST                 = C_CHAR_UNKNOWN
          no_dialog                    = c_x
      RECEIVER                     = C_CHAR_UNKNOWN
      RELEASE                      = C_CHAR_UNKNOWN
      REPORT                       = C_CHAR_UNKNOWN
      SAP_COVER_PAGE               = C_CHAR_UNKNOWN
      HOST_COVER_PAGE              = C_CHAR_UNKNOWN
      PRIORITY                     = C_NUM1_UNKNOWN
      SAP_OBJECT                   = C_CHAR_UNKNOWN
      TYPE                         = C_CHAR_UNKNOWN
          user                         = sy-uname
      USE_OLD_LAYOUT               = ' '
      UC_DISPLAY_MODE              = C_CHAR_UNKNOWN
      DRAFT                        = C_CHAR_UNKNOWN
      ABAP_LIST                    = ' '
      USE_ARCHIVENAME_DEF          = ' '
      DEFAULT_SPOOL_SIZE           = C_CHAR_UNKNOWN
      PO_FAX_STORE                 = ' '
      NO_FRAMES                    = C_CHAR_UNKNOWN
       IMPORTING
      OUT_ARCHIVE_PARAMETERS       =
          out_parameters               = wa_params
       valid                        = l_valid
       EXCEPTIONS
         archive_info_not_found       = 1
         invalid_print_params         = 2
         invalid_archive_params       = 3
         OTHERS                       = 4
      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.                    " get_print_parameters
    *&      Form  job_submit
          text
    -->  p1        text
    <--  p2        text
    FORM job_submit .
    The job which we have created & the unique id ( jobcount ) which we
    have got identifies our job. Hence those parameters are passed along
    with the name of the background program "ZPROGRAM_TWO"
    The job is submitted in background.
      CALL FUNCTION 'JOB_SUBMIT'
        EXPORTING
      ARCPARAMS                         =
        authcknam                         = sy-uname
      COMMANDNAME                       = ' '
      OPERATINGSYSTEM                   = ' '
      EXTPGM_NAME                       = ' '
      EXTPGM_PARAM                      = ' '
      EXTPGM_SET_TRACE_ON               = ' '
      EXTPGM_STDERR_IN_JOBLOG           = 'X'
      EXTPGM_STDOUT_IN_JOBLOG           = 'X'
      EXTPGM_SYSTEM                     = ' '
      EXTPGM_RFCDEST                    = ' '
      EXTPGM_WAIT_FOR_TERMINATION       = 'X'
        jobcount                          = w_jobcount
        jobname                           = w_jobname
      LANGUAGE                          = SY-LANGU
        priparams                         = wa_params
        report                            = 'ZPROGRAM_TWO'
      VARIANT                           = ' '
    IMPORTING
      STEP_NUMBER                       =
       EXCEPTIONS
         bad_priparams                     = 1
         bad_xpgflags                      = 2
         invalid_jobdata                   = 3
         jobname_missing                   = 4
         job_notex                         = 5
         job_submit_failed                 = 6
         lock_failed                       = 7
         program_missing                   = 8
         prog_abap_and_extpg_set           = 9
         OTHERS                            = 10
      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.                    " job_submit
    *&      Form  job_close
          text
    -->  p1        text
    <--  p2        text
    FORM job_close .
    Once the job is submitted in background then the job is closed
      CALL FUNCTION 'JOB_CLOSE'
        EXPORTING
      AT_OPMODE                         = ' '
      AT_OPMODE_PERIODIC                = ' '
      CALENDAR_ID                       = ' '
      EVENT_ID                          = ' '
      EVENT_PARAM                       = ' '
      EVENT_PERIODIC                    = ' '
        jobcount                          = w_jobcount
        jobname                           = w_jobname
      LASTSTRTDT                        = NO_DATE
      LASTSTRTTM                        = NO_TIME
      PRDDAYS                           = 0
      PRDHOURS                          = 0
      PRDMINS                           = 0
      PRDMONTHS                         = 0
      PRDWEEKS                          = 0
      PREDJOB_CHECKSTAT                 = ' '
      PRED_JOBCOUNT                     = ' '
      PRED_JOBNAME                      = ' '
      SDLSTRTDT                         = NO_DATE
      SDLSTRTTM                         = NO_TIME
      STARTDATE_RESTRICTION             = BTC_PROCESS_ALWAYS
        strtimmed                         = c_x
      TARGETSYSTEM                      = ' '
      START_ON_WORKDAY_NOT_BEFORE       = SY-DATUM
      START_ON_WORKDAY_NR               = 0
      WORKDAY_COUNT_DIRECTION           = 0
      RECIPIENT_OBJ                     =
      TARGETSERVER                      = ' '
      DONT_RELEASE                      = ' '
      TARGETGROUP                       = ' '
      DIRECT_START                      =
    IMPORTING
      JOB_WAS_RELEASED                  =
    CHANGING
      RET                               =
       EXCEPTIONS
         cant_start_immediate              = 1
         invalid_startdate                 = 2
         jobname_missing                   = 3
         job_close_failed                  = 4
         job_nosteps                       = 5
         job_notex                         = 6
         lock_failed                       = 7
         invalid_target                    = 8
         OTHERS                            = 9
      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.                    " job_close
    *&      Form  display_spool
          text
    -->  p1        text
    <--  p2        text
    FORM display_spool .
    To Read the Job to get the spool details
      DATA : l_rqident TYPE tsp01-rqident, " Spool Number
             l_spoolno TYPE tsp01_sp0r-rqid_char.
      CLEAR : l_rqident,
              w_lsind,
              wa_jobsteplist.
      REFRESH : i_jobsteplist.
      SET PF-STATUS 'ZAR02'.
    Get the Spool Number
      CALL FUNCTION 'BP_JOB_READ'
        EXPORTING
          job_read_jobcount           = w_jobcount
          job_read_jobname            = w_jobname
          job_read_opcode             = '20'
        JOB_STEP_NUMBER             =
       IMPORTING
         job_read_jobhead            = wa_jobhead
       TABLES
         job_read_steplist           = i_jobsteplist
    CHANGING
       RET                         =
       EXCEPTIONS
         invalid_opcode              = 1
         job_doesnt_exist            = 2
         job_doesnt_have_steps       = 3
         OTHERS                      = 4
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    Read the Job Step list to get the spool number
      READ TABLE i_jobsteplist INTO wa_jobsteplist INDEX 1.
      CHECK wa_jobsteplist-listident <> space.
    Spool Number
      l_rqident = wa_jobsteplist-listident.
      MOVE l_rqident TO l_spoolno.
    Check the spool in TSP01
      SELECT SINGLE * FROM tsp01 WHERE rqident = l_rqident.
      IF  sy-subrc = 0.
        LEAVE TO LIST-PROCESSING.
        CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
          EXPORTING
            spoolid       = l_spoolno
        IMPORTING
          RC            =
          STATUS        =
        PERFORM show_alv.
      ENDIF.
      w_lsind = sy-lsind.
      IF sy-lsind GE 19.
        sy-lsind = 1.
      ENDIF.
    ENDFORM.                    " display_spool
    *&      Form  show_alv
          text
    -->  p1        text
    <--  p2        text
    FORM show_alv .
    Before the import, fill the data fields before CLUSTR.
      wa_index1-aedat = sy-datum.
      wa_index1-usera = sy-uname.
    To Import the selection screen data from Calling Program
      IMPORT i_mara
      FROM DATABASE indx(st) ID wa_index_key1 TO wa_index1.
      FREE MEMORY ID wa_index_key1.
    This prepares the field-catalog for ALV.
      PERFORM prepare_fieldcatalog.
    This displays the output in  ALV format .
      PERFORM display_alv.
    ENDFORM.                    " show_alv
    *&      Form  display_status
          text
    -->  p1        text
    <--  p2        text
    FORM display_status .
    To Display the STATUS of the JOB which is exectued in background
      CLEAR : wa_jobsteplist.
      REFRESH : i_jobsteplist.
      WRITE:/ 'DISPLAYING JOB STATUS'.
      CALL FUNCTION 'BP_JOB_READ'
        EXPORTING
          job_read_jobcount           = w_jobcount
          job_read_jobname            = w_jobname
          job_read_opcode             = '20'
        JOB_STEP_NUMBER             =
       IMPORTING
         job_read_jobhead            = wa_jobhead
       TABLES
         job_read_steplist           = i_jobsteplist
    CHANGING
       RET                         =
       EXCEPTIONS
         invalid_opcode              = 1
         job_doesnt_exist            = 2
         job_doesnt_have_steps       = 3
         OTHERS                      = 4
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    To Display the status text as per the status type
      CASE wa_jobhead-status.
        WHEN 'S'. WRITE: / 'Scheduled'.
        WHEN 'R'. WRITE: / 'Released'.
        WHEN 'F'. WRITE: / 'Completed'.
        WHEN 'A'. WRITE: / 'Cancelled'.
        WHEN OTHERS.
      ENDCASE.
      IF sy-lsind GE 19.
        sy-lsind = 1.
      ENDIF.
    ENDFORM.                    " display_status
    *&      Form  display_job_log
          text
    -->  p1        text
    <--  p2        text
    FORM display_job_log .
    To display the log of the background program
      LEAVE TO LIST-PROCESSING.
      CALL FUNCTION 'BP_JOBLOG_SHOW_SM37B'
        EXPORTING
          client                    = sy-mandt
          jobcount                  = w_jobcount
          joblogid                  = ' '
          jobname                   = w_jobname
        EXCEPTIONS
          error_reading_jobdata     = 1
          error_reading_joblog_data = 2
          jobcount_missing          = 3
          joblog_does_not_exist     = 4
          joblog_is_empty           = 5
          joblog_show_canceled      = 6
          jobname_missing           = 7
          job_does_not_exist        = 8
          no_joblog_there_yet       = 9
          no_show_privilege_given   = 10
          OTHERS                    = 11.
      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_job_log
    *&      Form  prepare_fieldcatalog
          text
    -->  p1        text
    <--  p2        text
    FORM prepare_fieldcatalog .
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'MATNR'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-reptext_ddic = 'Material no.'.
      wa_fieldcat-outputlen    = '18'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'ERSDA'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-reptext_ddic = 'Creation date'.
      wa_fieldcat-outputlen    = '10'.
      APPEND  wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'ERNAM'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-reptext_ddic = 'Name of Person'.
      wa_fieldcat-outputlen    = '10'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'LAEDA'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-reptext_ddic = ' Last Change'.
      wa_fieldcat-outputlen    = '10'.
      APPEND  wa_fieldcat TO i_fieldcat.
    ENDFORM.                    " prepare_fieldcatalog
    *&      Form  display_alv
          text
    -->  p1        text
    <--  p2        text
    FORM display_alv .
    Call ABAP List Viewer (ALV)
      call function 'REUSE_ALV_GRID_DISPLAY'
        exporting
          it_fieldcat  = i_fieldcat
        tables
          t_outtab     = i_mara.
    ENDFORM.                    " display_alv
    •     ZPROGRAM_TWO: This is the 2nd program which would be called from program ZPROGRAM_ONE.
    *& Report  ZPROGRAM_TWO                                                *
    REPORT  zprogram_two                            .
    PRASHANT PATIL
    TABLES : mara.
    TYPE-POOLS:slis.
    TYPES : BEGIN OF t_mara,
              matnr   TYPE mara-matnr,
              ersda   TYPE mara-ersda,
              ernam   TYPE mara-ernam,
              laeda   TYPE mara-laeda,
            END OF t_mara.
    DATA : i_mara        TYPE STANDARD TABLE OF t_mara,
           wa_mara       TYPE t_mara,
           wa_index      TYPE indx,        " For Index details
           wa_index_key  TYPE indx-srtfd VALUE 'PRG_ONE',
           wa_index1     TYPE indx,        " For Index details
           wa_index_key1 TYPE indx-srtfd VALUE 'PRG_TWO',
           i_fieldcat        TYPE slis_t_fieldcat_alv,
           wa_fieldcat       LIKE LINE OF i_fieldcat.
    SELECT-OPTIONS : s_matnr FOR mara-matnr.
    Before the import, fill the data fields before CLUSTR.
    wa_index-aedat = sy-datum.
    wa_index-usera = sy-uname.
    To Import the selection screen data from Calling Program
    IMPORT s_matnr
    FROM DATABASE indx(st) ID wa_index_key TO wa_index.
    FREE MEMORY ID wa_index_key.
    SELECT matnr
           ersda
           ernam
           laeda
           FROM mara
           INTO TABLE i_mara
           WHERE matnr IN s_matnr.
    PERFORM prepare_fieldcatalog.
    PERFORM display_alv.
    Before the export, fill the data fields before CLUSTR
    wa_index1-aedat = sy-datum.
    wa_index1-usera = sy-uname.
    EXPORT i_mara
    TO DATABASE indx(st) FROM wa_index1 ID wa_index_key1.
    *&      Form  prepare_fieldcatalog
          text
    -->  p1        text
    <--  p2        text
    FORM prepare_fieldcatalog .
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'MATNR'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-outputlen    = '18'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'ERSDA'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-outputlen    = '10'.
      APPEND  wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'ERNAM'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-outputlen    = '10'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'LAEDA'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-outputlen    = '10'.
      APPEND  wa_fieldcat TO i_fieldcat.
    ENDFORM.                    " prepare_fieldcatalog
    *&      Form  display_alv
          text
    -->  p1        text
    <--  p2        text
    FORM display_alv .
    Call ABAP List Viewer (ALV)
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          it_fieldcat = i_fieldcat
        TABLES
          t_outtab    = i_mara.
    ENDFORM.                    " display_alv
    its possible to display ALV Grid using OO ALV. Following code can be used instead of FM.
    In the PBO, add following code
    SET PF-STATUS 'ZSTAT'.
    If program is executed in background
    CALL METHOD cl_gui_alv_grid=>offline
    RECEIVING
    e_offline = off.
    IF off IS INITIAL.
    IF container1 IS INITIAL.
    CREATE OBJECT container1
    EXPORTING
    container_name = 'CC_ALV1' .
    ENDIF.
    ENDIF.
    CREATE OBJECT g_grid1
    EXPORTING
    i_parent = container1.
    CALL METHOD g_grid1->set_table_for_first_display
    EXPORTING
    I_BUFFER_ACTIVE =
    I_BYPASSING_BUFFER =
    I_CONSISTENCY_CHECK =
    I_STRUCTURE_NAME =
    IS_VARIANT =
    i_save = 'A'
    i_default = ' '
    is_layout =
    is_print =
    IT_SPECIAL_GROUPS =
    it_toolbar_excluding =
    IT_HYPERLINK =
    IT_ALV_GRAPHICS =
    IT_EXCEPT_QINFO =
    CHANGING
    it_outtab = i_output
    it_fieldcatalog = i_fieldcatalog
    IT_SORT =
    IT_FILTER =
    EXCEPTIONS
    invalid_parameter_combination = 1
    program_error = 2
    too_many_lines = 3
    OTHERS = 4
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

  • Error when calling FM REUSE_ALV_HIERSEQ_LIST_DISPLAY...

    Hello Experts,
    I am having problems using the said FM. It says MOVE_TO_LIT_NOTALLOWED_NODATA. Below is my
    code:
    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
          EXPORTING
    *       I_INTERFACE_CHECK              = ' '
            i_callback_program             = gv_repid
    *       I_CALLBACK_PF_STATUS_SET       = ' '
    *       I_CALLBACK_USER_COMMAND        = ' '
            is_layout                      = gs_layout
            it_fieldcat                    = gt_fieldcat
    *       IT_EXCLUDING                   =
    *       IT_SPECIAL_GROUPS              =
    *       IT_SORT                        =
    *       IT_FILTER                      =
    *       IS_SEL_HIDE                    =
    *       I_SCREEN_START_COLUMN          = 0
    *       I_SCREEN_START_LINE            = 0
    *       I_SCREEN_END_COLUMN            = 0
    *       I_SCREEN_END_LINE              = 0
    *       I_DEFAULT                      = 'X'
    *       I_SAVE                         = ' '
    *       IS_VARIANT                     =
    *       IT_EVENTS                      =
    *       IT_EVENT_EXIT                  =
            i_tabname_header               = gv_tabname_header
            i_tabname_item                 = gv_tabname_item
    *       I_STRUCTURE_NAME_HEADER        =
    *       I_STRUCTURE_NAME_ITEM          =
            is_keyinfo                     = gs_keyinfo
    *       IS_PRINT                       =
    *       IS_REPREP_ID                   =
    *       I_BYPASSING_BUFFER             =
    *       I_BUFFER_ACTIVE                =
    *       IR_SALV_HIERSEQ_ADAPTER        =
    *       IT_EXCEPT_QINFO                =
    *       I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
    *     IMPORTING
    *       E_EXIT_CAUSED_BY_CALLER        =
    *       ES_EXIT_CAUSED_BY_USER         =
          TABLES
            t_outtab_header                = im_header
            t_outtab_item                  = im_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.
    Hope you can help me guys. Thank you and take care!

    ...

  • Rounding decimals using FM REUSE_ALV_HIERSEQ_LIST_DISPLAY

    Hi all.
    I am having no luck get values to round in FM REUSE_ALV_HIERSEQ_LIST_DISPLAY.  I have managed to get them to round in REUSE_ALV_GRID_DISPLAY by setting DECIMALS_OUT to a value of 0.
    Any help would be very much appreciated.
    Anthony

    Hi Anthony,
    <b>1</b>.
    If DECIMALS_OUT is working properly for REUSE_ALV_GRID_DISPLAY,it should work for REUSE_ALV_HIERSEQ_LIST_DISPLAY.Becoz there is no difference between two fieldcatalogs .
    <b>Thanks,
    Venkat.O</b>

  • ALV ( REUSE_ALV_HIERSEQ_LIST_DISPLAY )

    Hi.
    I'm working with Function  REUSE_ALV_HIERSEQ_LIST_DISPLAY.
    This Function has parameter is_keyinfo  written about relation between HEAD and ITEMS.
    EX)
          cs_keyinfo-header01 = 'MANDT'.
          cs_keyinfo-item01   = 'MANDT'.
    I Entered five foreign keys in fields KEYINFO-HEADER01 ~ KEYINFO-ITEM05.
    Of course it was working.
    Now, I wanna enter one more foreign key in field.
    but, there is no fields named KEYINFO-HEADER06
    Does it mean only five keys I can enter ?
    I think I can do that with class interface cl_salv_hierseq_table.
    but, our system is not on Netweaver framework.
    we're using old version.
    Can you help me?
    I WANT TO ENTER THE 6th KEY IN FIELD.
    P.S : Our system is
    - SAP R/3 Enterprise
    - SAP_BASIS     620     0064     SAPKB62064
    - SAP_ABA     620     0064     SAPKA62064

    Hi.
    I'm working with Function  REUSE_ALV_HIERSEQ_LIST_DISPLAY.
    This Function has parameter is_keyinfo  written about relation between HEAD and ITEMS.
    EX)
          cs_keyinfo-header01 = 'MANDT'.
          cs_keyinfo-item01   = 'MANDT'.
    I Entered five foreign keys in fields KEYINFO-HEADER01 ~ KEYINFO-ITEM05.
    Of course it was working.
    Now, I wanna enter one more foreign key in field.
    but, there is no fields named KEYINFO-HEADER06
    Does it mean only five keys I can enter ?
    I think I can do that with class interface cl_salv_hierseq_table.
    but, our system is not on Netweaver framework.
    we're using old version.
    Can you help me?
    I WANT TO ENTER THE 6th KEY IN FIELD.
    P.S : Our system is
    - SAP R/3 Enterprise
    - SAP_BASIS     620     0064     SAPKB62064
    - SAP_ABA     620     0064     SAPKA62064

Maybe you are looking for