How to Use mulitple fieldcatlogs in ALV.

Hello Abapers,
I need to display my output in the given format.
LOCAL CUSTOMER STATEMENT                    
Customer  Code :     11111                         
Customer :     ABC                          
Include Paid invoices :Y                         
Date||MTK Ref||SAP Inv No||Payment Doc No||Payment Date||Dr||Cr||Payment
Ageing :                                                                 
0-30 days      31-60 days 61-90 days  91-120 days> 120 days Total          
     61,550.00      231,825.000  293,375.000                
For this,how can i achieve this format by using ALV.
Waiting for your favourable replies
Regards
Maruthi

+Hi Maruthi,
I think you need to use the split screen to display multiple alv on the same screen.
Please see below for the demo program for the multiple alv on the single screen.
For any more queries feel free to contact me.+
Cheers,
Chidanand.
*& Report  Z7CC_ALV_OOPS_TWO_ALV_SCREENS                               *
REPORT  z7cc_alv_oops_two_alv_screens           .
* TEMP DECLARATION TYPE DECLARATIONS
* Structure for Sales Order
TYPES: BEGIN OF y_vbak      ,
        vbeln TYPE vbeln_va ,
       END OF y_vbak        ,
* Structure for Sales Order Details.
       BEGIN OF y_vbap           ,
          vbeln TYPE vbeln_va    ,
          posnr TYPE posnr_va    ,
          matnr TYPE matnr       ,
          charg TYPE charg_d     ,
          arktx TYPE arktx       ,
       END OF y_vbap             ,
*& Structure of line item ----------
    BEGIN OF  y_po_item,
        ebeln TYPE ekko-ebeln, " PO NUMBER
        ebelp TYPE ekpo-ebelp,  "LINE ITEM
        matnr LIKE ekpo-matnr,  " Material Number
        netpr LIKE ekpo-netpr,  " Price per unit.
        menge LIKE ekpo-menge,  " Purchase order quantity.
        netwr LIKE ekpo-netwr,  " Net order in Purchase order currency
        meins LIKE ekpo-meins,  " UOM
    END OF y_po_item.
DATA: t_y_po_item TYPE STANDARD TABLE OF y_po_item.
DATA:  w_container_1        TYPE REF TO cl_gui_container        .
DATA: t_vbap      TYPE STANDARD TABLE OF y_vbap.
*--------- END OF TEMP DECLARATION ------------
DATA: ok_code LIKE sy-ucomm.
*-- Global data definitions for ALV
*--- ALV Grid instance reference
DATA gr_alvgrid TYPE REF TO cl_gui_alv_grid .
*--- Name of the custom control added on the screen
DATA gc_custom_control_name TYPE scrfname VALUE 'Z7CC_ALV2' .
*--- Custom container instance reference
DATA gr_ccontainer TYPE REF TO cl_gui_custom_container .
*--- Field catalog table
DATA gt_fieldcat TYPE lvc_t_fcat .
DATA gt_fieldcat_2 TYPE lvc_t_fcat .
*--- Layout structure
DATA gs_layout TYPE lvc_s_layo .
*&------- DECLARATION FOR THE NEXT SCREEN ------------------
*--- ALV Grid instance reference
DATA gr_alvgrid_2 TYPE REF TO cl_gui_alv_grid .
*--- Name of the custom control added on the screen-----------
DATA gc_custom_control_name_2 TYPE scrfname VALUE 'Z7CC_ALV' .
*--- Custom container instance reference
DATA gr_ccontainer_2 TYPE REF TO cl_gui_custom_container .
*Declare your internal table which is supposed to hold the list data.
*&Let’s name it “gt_list”.
*Here is an example declaration.
*--- Internal table holding list data
DATA BEGIN OF gt_list OCCURS 0.
DATA   matnr LIKE mara-matnr.
DATA   maktx LIKE makt-maktx.
DATA END OF gt_list .
DATA: BEGIN OF gt_list_2 OCCURS 0.
        INCLUDE STRUCTURE  z7cc_po_header.
DATA: linecolor(4) TYPE c, "Color for corresponding line
END OF gt_list_2.
DATA: t_gt_list_2   TYPE STANDARD TABLE OF z7cc_po_header.
*----- CLASS DECLARATION ------
* FIELD-SYMBOLS
FIELD-SYMBOLS <fs_vbap> TYPE y_vbap.
FIELD-SYMBOLS <fs_gt_list_2> TYPE z7cc_po_header.
CLASS lcl_event_receiver DEFINITION DEFERRED.
DATA w_event_receiver TYPE REF TO lcl_event_receiver.
* Creating a class definition for handling events on the ALV Grid.
CLASS lcl_event_receiver DEFINITION.
  PUBLIC SECTION.
    METHODS: handle_top_of_page FOR EVENT top_of_page
                                 OF cl_gui_alv_grid
                          IMPORTING e_dyndoc_id,
             handle_hotspot_click FOR EVENT hotspot_click
                                   OF cl_gui_alv_grid
                            IMPORTING e_row_id,
             handle_toolbar_event FOR EVENT toolbar
                                   OF cl_gui_alv_grid
                            IMPORTING e_object,
             handle_user_command  FOR EVENT user_command
                                   OF cl_gui_alv_grid
                            IMPORTING e_ucomm.
ENDCLASS.                    "lcl_event_receiver  DEFINATION
* Implementing the Class for handling events on the ALV Grid.
CLASS lcl_event_receiver IMPLEMENTATION.
  METHOD handle_top_of_page.
    PERFORM show_top_of_page USING e_dyndoc_id   w_container_1.
  ENDMETHOD.                    "handle_top_of_page
  METHOD handle_hotspot_click.
    PERFORM show_hotspot_click_details USING e_row_id.
  ENDMETHOD.                    "lcl_event_receiver
  METHOD handle_toolbar_event.
    PERFORM create_alv_toolbar USING e_object.
  ENDMETHOD.                    "handle_toolbar_event
  METHOD handle_user_command.
    PERFORM handle_user_command USING e_ucomm.
  ENDMETHOD.                    "handle_user_command
ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
DATA:   w_grid               TYPE REF TO cl_gui_alv_grid         .
*-------- END OF CLASS DECLARATION -------------
START-OF-SELECTION.
  PERFORM populate_table.
  CALL SCREEN 100.
*&      Module  STATUS_0100  OUTPUT
*       text
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'Z7CC_ALV1'.
*  SET TITLEBAR 'xxx'.
ENDMODULE.                 " STATUS_0100  OUTPUT
*&      Module  DISPLAY_ALV  OUTPUT
*       text
MODULE display_alv OUTPUT.
  PERFORM display_alv.
ENDMODULE.                 " DISPLAY_ALV  OUTPUT
*&      Form  POPULATE_TABLE
*       text
*  -->  p1        text
*  <--  p2        text
FORM populate_table .
  SELECT ebeln ebelp matnr  netpr menge netwr meins INTO CORRESPONDING FIELDS OF TABLE t_y_po_item
      FROM ekpo.
  SELECT ekko~ebeln ekko~bukrs ekko~aedat ekko~ernam
         ekko~lifnr ekko~zterm ekko~angnr  INTO CORRESPONDING FIELDS OF
TABLE t_gt_list_2    FROM ekko .
ENDFORM.                    " POPULATE_TABLE
*&      Form  DISPLAY_ALV
*       text
*  -->  p1        text
*  <--  p2        text
FORM display_alv .
  IF gr_alvgrid IS INITIAL .
    PERFORM create_first_obj_container.
*&----------- ONE MORE CONTROL ON THE SCREEN-------------------
    PERFORM create_second_obj_container.
    " DISPLAY_ALV
*   Creating ALV Grid instance
    PERFORM create_first_alvgrid.
    PERFORM create_second_alvgrid.
*  PERFORM FIELD_CATALOG.  " CREATE A FIELD CATALOG.
    PERFORM field_cat CHANGING gt_fieldcat.
    PERFORM field_cat_1 CHANGING gt_fieldcat_2.
*----Here will be additional preparations
*--e.g. initial sorting criteria, initial filtering criteria, excluding
*--functions
    PERFORM call_mthd_display_both_grid.
*&---------  create a field catalog.------------
    PERFORM event_handling.
  ELSE.
*&-----------CALL ALV GRID REFRESH  TABLE DISPLAY
    PERFORM call_mthd_alv_refresh.
  ENDIF.
ENDFORM.                    "DISPLAY_ALV
*&      Module  USER_COMMAND_0100  INPUT
*       text
MODULE user_command_0100 INPUT.
ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&      Form  EXIT_PROGRAM
*       text
*  -->  p1        text
*  <--  p2        text
FORM exit_program .
  LEAVE PROGRAM.
ENDFORM.                    " EXIT_PROGRAM
*&      Module  PAI  INPUT
*       text
MODULE pai INPUT.
  CASE ok_code.
    WHEN '&EXT'.
      PERFORM exit_program.
    WHEN OTHERS.
*     do nothing
  ENDCASE.
  CLEAR ok_code.
ENDMODULE.                 " PAI  INPUT
*&      Form  CREATE_FIRST_OBJ_CONTAINER
*       text
*  -->  p1        text
*  <--  p2        text
FORM create_first_obj_container .
  CREATE OBJECT gr_ccontainer
      EXPORTING
              container_name              = gc_custom_control_name
  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.                    " CREATE_FIRST_OBJ_CONTAINER
*&      Form  CREATE_SECOND_OBJ_CONTAINER
*       text
*  -->  p1        text
*  <--  p2        text
FORM create_second_obj_container .
  CREATE OBJECT gr_ccontainer_2
       EXPORTING
               container_name     =  gc_custom_control_name_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.                    " CREATE_SECOND_OBJ_CONTAINER
*&      Form  CREATE_FIRST_ALVGRID
*       text
*  -->  p1        text
*  <--  p2        text
FORM create_first_alvgrid .
  CREATE OBJECT gr_alvgrid
      EXPORTING
        i_parent          =   gr_ccontainer
  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.                    " CREATE_FIRST_ALVGRID
*&      Form  CREATE_SECOND_ALVGRID
*       text
*  -->  p1        text
*  <--  p2        text
FORM create_second_alvgrid .
*   Creating ALV Grid instance
  CREATE OBJECT gr_alvgrid_2
    EXPORTING
      i_parent          =   gr_ccontainer_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.                    " CREATE_SECOND_ALVGRID
*&      Form  CALL_MTHD_DISPLAY_BOTH_GRID
*       text
*  -->  p1        text
*  <--  p2        text
FORM call_mthd_display_both_grid .
  CALL METHOD gr_alvgrid->set_table_for_first_display
    EXPORTING
      i_structure_name = 'Y_PO_ITEM'
    CHANGING
      it_outtab        = t_y_po_item[]
      it_fieldcatalog  = gt_fieldcat.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  CALL METHOD gr_alvgrid_2->set_table_for_first_display
    EXPORTING
      i_structure_name = 'Z7CC_PO_HEADER'
    CHANGING
      it_outtab        = t_gt_list_2[]
      it_fieldcatalog  = gt_fieldcat_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.                    " CALL_MTHD_DISPLAY_BOTH_GRID
*&      Form  CALL_MTHD_ALV_REFRESH
*       text
*  -->  p1        text
*  <--  p2        text
FORM call_mthd_alv_refresh .
  CALL METHOD gr_alvgrid->refresh_table_display
  IF sy-subrc <> 0.
*       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  CALL METHOD gr_alvgrid_2->refresh_table_display
  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.                    " CALL_MTHD_ALV_REFRESH
*&      Form  FIELD_CATALOG
*       text
*  -->  p1        text
*  <--  p2        text
*FORM field_catalog .
*  FIELD-SYMBOLS <l_fieldcat> TYPE lvc_s_fcat.
*  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
* EXPORTING
**     I_BUFFER_ACTIVE              =
*   i_structure_name             = 'Y_PO_ITEM'
**     I_CLIENT_NEVER_DISPLAY       = 'X'
**     I_BYPASSING_BUFFER           =
**     I_INTERNAL_TABNAME           =
*  CHANGING
*    ct_fieldcat                  =  gt_fieldcat[]
**   EXCEPTIONS
**     INCONSISTENT_INTERFACE       = 1
**     PROGRAM_ERROR                = 2
**     OTHERS                       = 3
*  IF sy-subrc <> 0.
** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
**         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*  ELSE.
**        Assigining hotspot to certain columns on the report.
*    LOOP AT gt_fieldcat ASSIGNING <l_fieldcat>.
*      CASE <l_fieldcat>-fieldname.
*        WHEN 'EBELN'.
*          <l_fieldcat>-hotspot = 'X'.
*        WHEN 'BUKRS'.
*          <l_fieldcat>-edit    = 'X'.
*      ENDCASE.
*    ENDLOOP.
*  ENDIF.
*ENDFORM.                    " FIELD_CATALOG
*&      Form  FIELD_CAT
*       text
*      <--P_GT_FIELDCAT  text
FORM field_cat  CHANGING p_gt_fieldcat TYPE lvc_t_fcat.
  DATA ls_fcat TYPE lvc_s_fcat .
  ls_fcat-fieldname = 'EBELN' .
  ls_fcat-inttype = 'C' .
  ls_fcat-outputlen = '20' .
  ls_fcat-hotspot = 'X'.
  ls_fcat-coltext = 'PO Number' .
  ls_fcat-seltext = 'PO Number' .
  APPEND ls_fcat TO p_gt_fieldcat .
  CLEAR ls_fcat .
  ls_fcat-fieldname = 'EBELP' .
*    ls_fcat-ref_table = 'Z7CC_PO_HEADER' .
  ls_fcat-ref_table = 'EBELP' .
  ls_fcat-outputlen = '10' .
  ls_fcat-coltext = 'LINE ITEMS' .
  ls_fcat-seltext = 'LINE ITEMS'.
  APPEND ls_fcat TO p_gt_fieldcat .
  ls_fcat-fieldname = 'MATNR' .
  ls_fcat-ref_table = 'MATNR' .
  ls_fcat-outputlen = '18' .
  ls_fcat-coltext = 'MATERIAL NUMBER' .
  ls_fcat-seltext = 'MATERIAL NUMBER'.
  APPEND ls_fcat TO p_gt_fieldcat .
  ls_fcat-fieldname = 'NETPR' .
  ls_fcat-ref_table = 'NETPR' .
  ls_fcat-outputlen = '10' .
  ls_fcat-coltext = 'PRICE / UNIT' .
  ls_fcat-seltext = 'PRICE / UNIT'.
  APPEND ls_fcat TO p_gt_fieldcat .
  ls_fcat-fieldname = 'MENGE' .
  ls_fcat-ref_table = 'MENGE' .
  ls_fcat-outputlen = '10' .
  ls_fcat-coltext = 'QUANTITY' .
  ls_fcat-seltext = 'QUANTITY'.
  APPEND ls_fcat TO p_gt_fieldcat .
  ls_fcat-fieldname = 'NETWR' .
  ls_fcat-ref_table = 'NETWR' .
  ls_fcat-outputlen = '10' .
  ls_fcat-coltext = 'NET ORDER' .
  ls_fcat-seltext = 'NET ORDER'.
  APPEND ls_fcat TO p_gt_fieldcat .
  ls_fcat-fieldname = 'MEINS' .
  ls_fcat-ref_table = 'MEINS' .
  ls_fcat-outputlen = '10' .
  ls_fcat-coltext = 'UOM' .
  ls_fcat-seltext = 'UOM'.
  APPEND ls_fcat TO p_gt_fieldcat .
ENDFORM.                    " FIELD_CAT
*&------------DECLAREATION OF THE SUBROUTINES OF CLASS -----------------
*&      Form  show_top_of_page
*       text
*      -->P_E_DYNDOC_ID  text
*      -->P_W_CONTAINER_1  text
FORM show_top_of_page  USING    p_e_dyndoc_id
                                p_w_container_1.
  WRITE:/.
ENDFORM.                    " show_top_of_page
*&      Form  show_hotspot_click_details
*       text
*      -->P_E_ROW_ID  text
FORM show_hotspot_click_details  USING    p_e_row_id.
  READ TABLE t_gt_list_2 ASSIGNING <fs_gt_list_2> INDEX p_e_row_id.
  DATA: v_ebeln LIKE z7cc_po_header-ebeln.
  v_ebeln  = <fs_gt_list_2>-ebeln.
  REFRESH t_y_po_item.
  SELECT ebeln ebelp matnr  netpr menge netwr meins INTO CORRESPONDING FIELDS OF TABLE t_y_po_item
         FROM ekpo WHERE ebeln = v_ebeln.
  CALL METHOD gr_alvgrid->refresh_table_display
    EXPORTING
      i_soft_refresh = 'X'.
*  SET PARAMETER ID 'AUN' FIELD <fs_vbap>-vbeln.
*  CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
ENDFORM.                    " show_hotspot_click_details
*&      Form  create_alv_toolbar
*       text
*      -->P_E_OBJECT  text
FORM create_alv_toolbar  USING    p_e_object.
  WRITE:/.
ENDFORM.                    " create_alv_toolbar
*&      Form  EVENT_HANDLING
*       text
*  -->  p1        text
*  <--  p2        text
FORM event_handling .
*    *   Create a object for event receiver.
  CREATE OBJECT w_event_receiver.
  SET HANDLER : w_event_receiver->handle_hotspot_click FOR gr_alvgrid_2.
  SET HANDLER : w_event_receiver->handle_top_of_page   FOR gr_alvgrid_2.
  SET HANDLER : w_event_receiver->handle_toolbar_event FOR gr_alvgrid_2.
  SET HANDLER : w_event_receiver->handle_user_command  FOR gr_alvgrid_2.
ENDFORM.                    " EVENT_HANDLING
*&      Form  handle_user_command
*       Description :
*       Handling user actions performed on the ALV grid.
FORM handle_user_command USING p_e_ucomm TYPE sy-ucomm.
  DATA : wal_et_row_no       TYPE   lvc_t_roid  ,
         wal_selected_row    TYPE   lvc_s_roid  .
  FIELD-SYMBOLS <l_selected_row> TYPE   lvc_s_roid .
* Get the row number selected by the user on the screen.
  CALL METHOD w_grid->get_selected_rows
    IMPORTING
      et_row_no = wal_et_row_no.
ENDFORM.              " handle_user_command
*&      Form  FIELD_CAT_1
*       text
*      <--P_GT_FIELDCAT  text
FORM field_cat_1  CHANGING p_gt_fieldcat_2 TYPE lvc_t_fcat.
  DATA ls_fcat TYPE lvc_s_fcat .
  ls_fcat-fieldname = 'EBELN' .
  ls_fcat-inttype = 'C' .
  ls_fcat-outputlen = '20' .
  ls_fcat-hotspot = 'X'.
  ls_fcat-coltext = 'PO Number' .
  ls_fcat-seltext = 'PO Number' .
  APPEND ls_fcat TO p_gt_fieldcat_2 .
  CLEAR ls_fcat .
  ls_fcat-fieldname = 'EBELP' .
*    ls_fcat-ref_table = 'Z7CC_PO_HEADER' .
  ls_fcat-ref_table = 'BUKRS' .
  ls_fcat-outputlen = '10' .
  ls_fcat-coltext = 'COMPANY CODE' .
  ls_fcat-seltext = 'COMPANY CODE'.
  APPEND ls_fcat TO p_gt_fieldcat_2 .
  ls_fcat-fieldname = 'AEDAT' .
  ls_fcat-ref_table = 'AEDAT' .
  ls_fcat-outputlen = '18' .
  ls_fcat-coltext = 'CREATION DATE' .
  ls_fcat-seltext = 'CREATION DATE'.
  APPEND ls_fcat TO p_gt_fieldcat_2 .
  ls_fcat-fieldname = 'ERNAM' .
  ls_fcat-ref_table = 'ERNAM' .
  ls_fcat-outputlen = '10' .
  ls_fcat-coltext = 'NAME OF PERSON' .
  ls_fcat-seltext = 'NAME OF PERSON'.
  APPEND ls_fcat TO p_gt_fieldcat_2 .
  ls_fcat-fieldname = 'ZTERM' .
  ls_fcat-ref_table = 'ZTERM' .
  ls_fcat-outputlen = '10' .
  ls_fcat-coltext = 'TERMS OF PAYMENT' .
  ls_fcat-seltext = 'QUANTITY'.
  APPEND ls_fcat TO p_gt_fieldcat_2 .
  ls_fcat-fieldname = 'ANGNR' .
  ls_fcat-ref_table = 'ANGNR' .
  ls_fcat-outputlen = '10' .
  ls_fcat-coltext = 'QUOTATION NO' .
  ls_fcat-seltext = 'QUOTATION NO'.
  APPEND ls_fcat TO p_gt_fieldcat_2 .
ENDFORM.                    " FIELD_CAT_1

Similar Messages

  • How to use intractive list in Alv REPORT

    how to use intractive list in Alv REPORT with example.
    thangs
    venki.......

    Hi
    using the USER_COMMAND we can move to the Secondary(interactive) list in the ALV
    see the sample code
    report yh645_secndry_alv.
    type-pools: slis.
    data: fieldcat type slis_t_fieldcat_alv,
    fieldcat_ln like line of fieldcat,
    fs_layout type slis_layout_alv,
    t_layoout like standard table
    of fs_layout.
    data: begin of fs_spfli,
    carrid type spfli-carrid,
    connid type spfli-connid,
    countryfr type spfli-countryfr,
    cityfrom type spfli-cityfrom,
    airpfrom type spfli-airpfrom,
    countryto type spfli-countryto,
    cityto type spfli-cityto,
    airpto type spfli-airpto,
    fltime type spfli-fltime,
    deptime type spfli-deptime,
    arrtime type spfli-arrtime,
    distance type spfli-distance,
    distid type spfli-distid,
    fltype type spfli-fltype,
    period type spfli-period,
    checkbox,
    color(3),
    end of fs_spfli.
    data:
    begin of fs_table,
    carrid type spfli-carrid,
    connid type spfli-connid,
    end of fs_table.
    data: begin of fs_sflight,
    check,
    color(3).
    include type sflight.
    data:end of fs_sflight.
    data:
    begin of fs_table1,
    carrid type sflight-carrid,
    connid type sflight-connid,
    fldate type sflight-fldate,
    end of fs_table1.
    data:
    t_spfli like standard table
    of fs_spfli.
    data:
    t_table like standard table
    of fs_table.
    data:
    t_table1 like standard table
    of fs_table1.
    data:
    t_sflight like standard table
    of fs_sflight.
    data:
    t_sbook like standard table
    of sbook.
    data t_layout type slis_layout_alv.
    select *
    into corresponding fields of table t_spfli
    from spfli.
    perform start_list_viewer.
    perform get_spfli_details.
    *& Form SUB1
    text
    -->RT_EXTAB text
    form sub1 using rt_extab type slis_t_extab.
    data: flight type slis_extab.
    flight-fcode = 'SFLIGHT'.
    append flight to rt_extab.
    set pf-status 'SFLIGHT'. " EXCLUDING RT_EXTAB.
    endform. "SUB1
    *& Form START_LIST_VIEWER
    text
    --> p1 text
    <-- p2 text
    form start_list_viewer .
    data: pgm like sy-repid.
    pgm = sy-repid.
    fs_layout-box_fieldname = 'CHECKBOX'.
    fs_layout-info_fieldname = 'COLOR'.
    call function 'REUSE_ALV_LIST_DISPLAY'
    exporting
    i_callback_program = pgm
    i_callback_pf_status_set = 'SUB1'
    i_callback_user_command = 'USER_COMMAND'
    i_structure_name = 'SPFLI'
    is_layout = fs_layout
    tables
    t_outtab = t_spfli
    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. " START_LIST_VIEWER
    *******Process Call Back Events (Begin)**************************
    form user_command using ucomm like sy-ucomm
    selfield type slis_selfield.
    case ucomm.
    when 'SFLIGHT'.
    selfield-refresh = 'X'.
    perform get_spfli_details.
    select *
    from sflight
    into corresponding fields of table t_sflight
    for all entries in t_table
    where carrid eq t_table-carrid
    and connid eq t_table-connid.
    perform display_sflight.
    when 'SBOOK'.
    selfield-refresh = 'X'.
    perform get_sflight_details.
    select *
    from sbook
    into corresponding fields of table t_sbook
    for all entries in t_table1
    where carrid eq t_table1-carrid
    and connid eq t_table1-connid
    and fldate eq t_table1-fldate.
    perform display_sbook.
    endcase.
    endform. "USER_COMMAND
    *& Form SUB2
    text
    -->RT_EXTAB text
    form sub2 using rt_extab type slis_t_extab.
    data: flight type slis_extab.
    flight-fcode = 'SBOOK'.
    append flight to rt_extab.
    set pf-status 'SBOOK'. " EXCLUDING RT_EXTAB.
    endform. "SUB2
    *& Form DISPLAY_SFLIGHT
    text
    --> p1 text
    <-- p2 text
    form display_sflight .
    data: pgm like sy-repid.
    pgm = sy-repid.
    clear t_layout.
    fs_layout-box_fieldname = 'CHECK'.
    fs_layout-info_fieldname = 'COLOR'.
    call function 'REUSE_ALV_LIST_DISPLAY'
    exporting
    i_callback_program = pgm
    i_callback_pf_status_set = 'SUB2'
    i_callback_user_command = 'USER_COMMAND'
    i_structure_name = 'SFLIGHT'
    is_layout = fs_layout
    tables
    t_outtab = t_sflight
    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_SFLIGHT
    *& Form GET_SPFLI_DETAILS
    text
    --> p1 text
    <-- p2 text
    form get_spfli_details .
    loop at t_spfli into fs_spfli.
    if fs_spfli-checkbox = 'X'.
    fs_spfli-color = 'C51'.
    fs_spfli-checkbox = '1'.
    fs_table-carrid = fs_spfli-carrid.
    fs_table-connid = fs_spfli-connid.
    append fs_table to t_table.
    modify t_spfli from fs_spfli.
    endif.
    endloop.
    endform. " GET_SFLIGHT_DETAILS
    *& Form GET_SFLIGHT_DETAILS
    text
    --> p1 text
    <-- p2 text
    form get_sflight_details .
    loop at t_sflight into fs_sflight.
    if fs_sflight-check = 'X'.
    fs_sflight-color = 'C71'.
    fs_sflight-check = '1'.
    fs_table1-carrid = fs_sflight-carrid.
    fs_table1-connid = fs_sflight-connid.
    fs_table1-fldate = fs_sflight-fldate.
    append fs_table1 to t_table1.
    modify t_sflight from fs_sflight.
    endif.
    endloop.
    endform. " GET_SFLIGHT_DETAILS
    *& Form DISPLAY_SBOOK
    text
    --> p1 text
    <-- p2 text
    form display_sbook .
    data: pgm like sy-repid.
    pgm = sy-repid.
    call function 'REUSE_ALV_LIST_DISPLAY'
    exporting
    i_callback_program = pgm
    i_structure_name = 'SBOOK'
    tables
    t_outtab = t_sbook
    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_SBOOK
    Reward points for useful Answers
    Regards
    Anji

  • How to use Standard Text in ALV

    How to use Standard Text in ALV header part? Can you please help me by giving the answer?

    Hi ,
           You can read the Standard text using read_text function module and then print in LV header part.

  • Can anyone tell me how to use GUI status in ALV report.

    Can anyone tell me how to use GUI status in ALV report. I want to use  buttons in ALV report.

    Juheb,
    see the link
    http://help.sap.com/saphelp_nw2004s/helpdata/en/5e/88d440e14f8431e10000000a1550b0/frameset.htm
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVALV/BCSRVALV.pdf
    Adding a button on the ALV grid using OOPs
    check these sites.
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/snippets/webDynproABAP-ALVControllingStandard+Buttons&
    chk this.
    alv-pfstatus:
    http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_pfstatus.htm
    then how to capture that button click.
    http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_ucomm.htm
    REPORT ZTESTALV.
    TYPE-POOLS: SLIS.
    *- Fieldcatalog
    DATA: IT_FIELDCAT  TYPE LVC_T_FCAT,
          IT_FIELDCAT1  TYPE SLIS_T_FIELDCAT_ALV..
    *- For Events
    DATA:IT_EVENTS TYPE SLIS_T_EVENT.
    DATA:  X_FIELDCAT  TYPE LVC_S_FCAT,
            X_FIELDCAT1  TYPE SLIS_FIELDCAT_ALV.
    DATA:X_LAYOUT TYPE LVC_S_LAYO.
    "{ FOR DISABLE
    DATA: LS_EDIT TYPE LVC_S_STYL,
          LT_EDIT TYPE LVC_T_STYL.
    "} FOR DISABLE
    DATA: BEGIN OF IT_VBAP OCCURS 0,
          VBELN LIKE VBAP-VBELN,
          POSNR LIKE VBAP-POSNR,
          HANDLE_STYLE TYPE LVC_T_STYL, "FOR DISABLE
       <b>   BUTTON(10),</b>
         END OF IT_VBAP.
    DATA: LS_OUTTAB LIKE LINE OF IT_VBAP.
    SELECT VBELN
           POSNR
           UP TO 10 ROWS
          INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
          FROM VBAP.
    DATA:L_POS TYPE I VALUE 1.
    CLEAR: L_POS.
    L_POS = L_POS + 1.
    <b>X_FIELDCAT-SELTEXT = 'Button'.
    x_fieldcat-fieldname = 'BUTTON'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS    = L_POS.
    X_FIELDCAT-OUTPUTLEN = '10'.
    X_FIELDCAT-style = X_FIELDCAT-style bit-xor
                      cl_gui_alv_grid=>MC_STYLE_BUTTON bit-xor
                      cl_gui_alv_grid=>MC_STYLE_ENABLEd.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.</b>
    L_POS = L_POS + 1.
    X_FIELDCAT-SELTEXT = 'VBELN'.
    X_FIELDCAT-FIELDNAME = 'VBELN'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS    = L_POS.
    X_FIELDCAT-EDIT = 'X'.
    X_FIELDCAT-OUTPUTLEN = '10'.
    x_fieldcat-ref_field = 'VBELN'.
    x_fieldcat-ref_table = 'VBAK'.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    L_POS = L_POS + 1.
    X_FIELDCAT-SELTEXT = 'POSNR'.
    X_FIELDCAT-FIELDNAME = 'POSNR'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS    = L_POS.
    X_FIELDCAT-EDIT = 'X'.
    X_FIELDCAT-OUTPUTLEN = '5'.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    L_POS = L_POS + 1.
    "{FOR DISABLE HERE 6ROW IS DISABLED
    SY-TABIX = 6.
    LS_EDIT-FIELDNAME = 'VBELN'.
    LS_EDIT-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
    LS_EDIT-STYLE2 = SPACE.
    LS_EDIT-STYLE3 = SPACE.
    LS_EDIT-STYLE4 = SPACE.
    LS_EDIT-MAXLEN = 10.
    INSERT LS_EDIT INTO TABLE LT_EDIT.
    *LS_EDIT-FIELDNAME = 'POSNR'.
    *LS_EDIT-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
    *LS_EDIT-STYLE2 = SPACE.
    *LS_EDIT-STYLE3 = SPACE.
    *LS_EDIT-STYLE4 = SPACE.
    *LS_EDIT-MAXLEN = 6.
    *INSERT LS_EDIT INTO TABLE LT_EDIT.
    INSERT LINES OF LT_EDIT INTO TABLE LS_OUTTAB-HANDLE_STYLE.
    MODIFY IT_VBAP INDEX SY-TABIX FROM LS_OUTTAB  TRANSPORTING
                                      HANDLE_STYLE .
    X_LAYOUT-STYLEFNAME = 'HANDLE_STYLE'.
    "} UP TO HERE
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
      EXPORTING
        I_CALLBACK_PROGRAM = SY-REPID
        IS_LAYOUT_LVC      = X_LAYOUT
        IT_FIELDCAT_LVC    = IT_FIELDCAT
      TABLES
        T_OUTTAB           = IT_VBAP[]
      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.
    Don't forget to reward if useful....

  • HOW TO USE FUNCTION MODULE IN ALV

    hi guyz
    I developed an alv report using join statements .But i got all that fields in a function module. so how can i use function module in alv .
    if i got a function module with all the fileds do i need to use select statement.
    plz help me.
    thanks
    sudheer

    Hi,
    Hope the following helps..
    1)
    LOOP AT IT_OUTPUT.
    Call the function module to get the tracking number and store the output in the
    variable V_TRACKINGNO.
      IT_OUTPUT-TRACKING_NO = V_TRACKINGNO.
      MODIFY IT_OUTPUT TRANSPORTING TRACKING_NO.
    ENDLOOP.
    2) Date conversion
    DATA: V_CHAR(10) VALUE '2006.11.17'.
    DATA: V_DATE       TYPE SYDATUM.
    CONCATENATE V_CHAR(4) V_CHAR5(2) V_CHAR8(2) INTO V_DATE.
    WRITE: V_DATE TO V_CHAR MM/DD/YYYY.
    WRITE: / 'MM/DD/YYY Format - ',  V_CHAR.
    Please make sure to reward points for helpful answers..
    Thanks,
    Naren

  • How to use Mulitple DAQs with a single triggered event on only one of the DAQs

    I have three PXI6115 and would like to tie all these to a single triggered event on one of the DAQs. I've scaned the examples and any assistance would be greatly appreciated....

    TCjr,
    Please refer to your other post:
    How to use Multiple DAQs with a single triggered event on only one of the DAQs

  • How to use at new in alv report

    Hi Experts,
    I am creating a ALV report in which i have to sorted the data with 1 field like " if there the one division that have multiple department , so i have to show the output like division name then next row contain the releted dept of that"
    can you plz suggest me how to i do this.
    Thanks....

    Hi Asamadhi,
    Using control break statement(At new or at end of)you can do this.
    At first sort the internal table by key field(for your case i think division).
    at first field(division)
    write:/  data.
    endat.
    Regards,
    Tutun

  • How to use ABAP objects in ALV

    Can u give me the steps for doing ALV with ABAP objects

    Hello Mohammed
    Here are a few simplified version of the SAP sample reports that I have posted within SDN.
    This is a variant of my previously posted report ZUS_SDN_ALVGRID_EVENTS. Both dynpros (100 & 200) do not contain any elements. For simplicity I used the same flow logic for both dynpros:
    PROCESS BEFORE OUTPUT.
      MODULE STATUS_0100.
    PROCESS AFTER INPUT.
      MODULE USER_COMMAND_0100.
    <b>&----
    *& Report  ZUS_SDN_ALVGRID_EVENTS_1
    &----</b>
    REPORT  zus_sdn_alvgrid_events_1.
    DATA:
      gd_okcode        TYPE ui_func,
      gt_fcat          TYPE lvc_t_fcat,
      go_docking       TYPE REF TO cl_gui_docking_container,
      go_docking2      TYPE REF TO cl_gui_docking_container,
      go_grid1         TYPE REF TO cl_gui_alv_grid,
      go_grid2         TYPE REF TO cl_gui_alv_grid.
    DATA:
      gt_t001          TYPE STANDARD TABLE OF t001,
      gt_knb1          TYPE STANDARD TABLE OF knb1.
    *       CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-METHODS:
          handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
            IMPORTING
              e_row
              e_column
              es_row_no
              sender.
    ENDCLASS.                    "lcl_eventhandler DEFINITION
    *       CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_double_click.
    *   define local data
        DATA:
          ls_t001     TYPE t001,
          ls_col_id   TYPE lvc_s_col.
        CHECK ( sender = go_grid1 ).
        READ TABLE gt_t001 INTO ls_t001 INDEX e_row-index.
        CHECK ( ls_t001-bukrs IS NOT INITIAL ).
        SELECT * FROM knb1 INTO TABLE gt_knb1
          WHERE bukrs = ls_t001-bukrs.
        IF ( syst-subrc NE 0 ).
          MESSAGE 'No customers found' TYPE 'S'.
        ELSE.
    *     Trigger PAI of dynpro '0100' and set new ok-code
          CALL METHOD cl_gui_cfw=>set_new_ok_code( 'CALL_SCREEN_0200' ).
        ENDIF.
      ENDMETHOD.                    "handle_hotspot_click
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    START-OF-SELECTION.
      SELECT * FROM t001 INTO TABLE gt_t001.
      REFRESH: gt_knb1.
    * Create docking container
      CREATE OBJECT go_docking
        EXPORTING
          parent                      = cl_gui_container=>screen0
          ratio                       = 90
        EXCEPTIONS
          OTHERS                      = 6.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT go_docking2
        EXPORTING
          parent                      = cl_gui_container=>screen0
          ratio                       = 90
        EXCEPTIONS
          OTHERS                      = 6.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Create ALV grid
      CREATE OBJECT go_grid1
        EXPORTING
          i_parent          = go_docking
        EXCEPTIONS
          OTHERS            = 5.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT go_grid2
        EXPORTING
          i_parent          = go_docking2
        EXCEPTIONS
          OTHERS            = 5.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Set event handler
      SET HANDLER:
        lcl_eventhandler=>handle_double_click FOR go_grid1.
    * Display data
      CALL METHOD go_grid1->set_table_for_first_display
        EXPORTING
          i_structure_name = 'T001'
        CHANGING
          it_outtab        = gt_t001
        EXCEPTIONS
          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.
      CALL METHOD go_grid2->set_table_for_first_display
        EXPORTING
          i_structure_name = 'KNB1'
        CHANGING
          it_outtab        = gt_knb1
        EXCEPTIONS
          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.
    * Link the docking container to the target dynpro
      CALL METHOD go_docking->link
        EXPORTING
          repid                       = syst-repid
          dynnr                       = '0100'
    *      CONTAINER                   =
        EXCEPTIONS
          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.
      CALL METHOD go_docking2->link
        EXPORTING
          repid                       = syst-repid
          dynnr                       = '0200'
    *      CONTAINER                   =
        EXCEPTIONS
          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.
    * ok-code field = GD_OKCODE
      CALL SCREEN '0100'.
    END-OF-SELECTION.
    *&      Module  STATUS_0100  OUTPUT
    *       text
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'STATUS_0100'.
    *  SET TITLEBAR 'xxx'.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
    *       text
    MODULE user_command_0100 INPUT.
      CASE gd_okcode.
        WHEN 'BACK' OR
             'END'  OR
             'CANC'.
          SET SCREEN 0. LEAVE SCREEN.
        WHEN 'CALL_SCREEN_0200'.
          go_grid2->refresh_table_display( ).  " necessary
          CALL SCREEN '0200'.
        WHEN OTHERS.
      ENDCASE.
      CLEAR: gd_okcode.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    The following sample report ZUS_SDN_ALVGRID_EVENTS shows how to call a transaction when event HOTSPOT_CLICK was raised:
    <b>&----
    *& Report  ZUS_SDN_TWO_ALV_GRIDS
    &----</b>
    REPORT  ZUS_SDN_ALVGRID_EVENTS.
    DATA:
      gd_okcode        TYPE ui_func,
      gt_fcat          TYPE lvc_t_fcat,
      go_docking       TYPE REF TO cl_gui_docking_container,
      go_grid1         TYPE REF TO cl_gui_alv_grid.
    DATA:
      gt_knb1          TYPE STANDARD TABLE OF knb1.
    PARAMETERS:
      p_bukrs      TYPE bukrs  DEFAULT '1000'  OBLIGATORY.
    *       CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-METHODS:
          handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
            IMPORTING
              e_row_id
              e_column_id
              es_row_no
              sender.
    ENDCLASS.                    "lcl_eventhandler DEFINITION
    *       CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_hotspot_click.
    *   define local data
        DATA:
          ls_knb1     TYPE knb1,
          ls_col_id   type lvc_s_col.
        READ TABLE gt_knb1 INTO ls_knb1 INDEX e_row_id-index.
        CHECK ( ls_knb1-kunnr IS NOT INITIAL ).
        SET PARAMETER ID 'KUN' FIELD ls_knb1-kunnr.
        SET PARAMETER ID 'BUK' FIELD ls_knb1-bukrs.
        CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
    *   Set active cell to field BUKRS otherwise the focus is still on
    *   field KUNNR which will always raise event HOTSPOT_CLICK
        ls_col_id-fieldname = 'BUKRS'.
        CALL METHOD go_grid1->set_current_cell_via_id
          EXPORTING
            IS_ROW_ID    = e_row_id
            IS_COLUMN_ID = ls_col_id.
      ENDMETHOD.                    "handle_hotspot_click
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    START-OF-SELECTION.
      SELECT        * FROM  knb1 INTO TABLE gt_knb1
             WHERE  bukrs  = p_bukrs.
    * Create docking container
      CREATE OBJECT go_docking
        EXPORTING
          parent                      = cl_gui_container=>screen0
          ratio                       = 90
        EXCEPTIONS
          OTHERS                      = 6.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Create ALV grid
      CREATE OBJECT go_grid1
        EXPORTING
          i_parent          = go_docking
        EXCEPTIONS
          OTHERS            = 5.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Set event handler
      SET HANDLER:
        lcl_eventhandler=>handle_hotspot_click FOR go_grid1.
    * Build fieldcatalog and set hotspot for field KUNNR
      PERFORM build_fieldcatalog_knb1.
    * Display data
      CALL METHOD go_grid1->set_table_for_first_display
        CHANGING
          it_outtab       = gt_knb1
          it_fieldcatalog = gt_fcat
        EXCEPTIONS
          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.
    * Link the docking container to the target dynpro
      CALL METHOD go_docking->link
        EXPORTING
          repid                       = syst-repid
          dynnr                       = '0100'
    *      CONTAINER                   =
        EXCEPTIONS
          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.
    * ok-code field = GD_OKCODE
      CALL SCREEN '0100'.
    END-OF-SELECTION.
    *&      Module  STATUS_0100  OUTPUT
    *       text
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'STATUS_0100'.
    *  SET TITLEBAR 'xxx'.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
    *       text
    MODULE user_command_0100 INPUT.
      CASE gd_okcode.
        WHEN 'BACK' OR
             'END'  OR
             'CANC'.
          SET SCREEN 0. LEAVE SCREEN.
        WHEN OTHERS.
      ENDCASE.
      CLEAR: gd_okcode.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Form  BUILD_FIELDCATALOG_KNB1
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM build_fieldcatalog_knb1 .
    * define local data
      DATA:
        ls_fcat        TYPE lvc_s_fcat.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
    *     I_BUFFER_ACTIVE              =
          i_structure_name             = 'KNB1'
    *     I_CLIENT_NEVER_DISPLAY       = 'X'
    *     I_BYPASSING_BUFFER           =
    *     I_INTERNAL_TABNAME           =
        CHANGING
          ct_fieldcat                  = gt_fcat
        EXCEPTIONS
          inconsistent_interface       = 1
          program_error                = 2
          OTHERS                       = 3.
      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 gt_fcat INTO ls_fcat
           WITH KEY fieldname = 'KUNNR'.
      IF ( syst-subrc = 0 ).
        ls_fcat-hotspot = abap_true.
        MODIFY gt_fcat FROM ls_fcat INDEX syst-tabix.
      ENDIF.
    ENDFORM.                    " BUILD_FIELDCATALOG_KNB1
    Please note that the direct CALL TRANSACTION does not check the user's authority. To do so you could call the transaction using function module ABAP4_CALL_TRANSACTION.
    Here is a sample program for OO-based ALV grids (CL_GUI_ALV_GRID) that simulates radio buttons by using icons with hotspots.
    <b>PROGRAM ZUS_SDN_BCALV_GRID_DEMO_2.</b>
    * Based on: BCALV_GRID_DEMO.
    TYPE-POOLS: icon.
    TYPES: BEGIN OF ty_s_sflight.
    INCLUDE TYPE sflight.
    TYPES: button1    TYPE lvc_emphsz.
    TYPES: button2    TYPE lvc_emphsz.
    TYPES: button3    TYPE lvc_emphsz.
    TYPES: button4    TYPE lvc_emphsz.
    TYPES: END OF ty_s_sflight.
    DATA:
      gt_sflight    TYPE STANDARD TABLE OF ty_s_sflight,
      gt_fcat       TYPE lvc_t_fcat.
    DATA: ok_code LIKE sy-ucomm,
    *      gt_sflight TYPE TABLE OF sflight,
          g_container TYPE scrfname VALUE 'BCALV_GRID_DEMO_0100_CONT1',
          grid1  TYPE REF TO cl_gui_alv_grid,
          g_custom_container TYPE REF TO cl_gui_custom_container.
    *       CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-DATA:
          md_cnt    TYPE i.
        CLASS-METHODS:
          handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
            IMPORTING
              e_row_id
              e_column_id
              es_row_no
              sender.
    ENDCLASS.                    "lcl_eventhandler DEFINITION
    *       CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_hotspot_click.
    * define local data
        FIELD-SYMBOLS:
          <ls_entry>    TYPE ty_s_sflight,
          <ld_fld>      TYPE ANY.
        READ TABLE gt_sflight ASSIGNING <ls_entry> INDEX es_row_no-row_id.
        CHECK ( <ls_entry> IS ASSIGNED ).
    *   Set all radio buttons "unselected"
        <ls_entry>-button1 =  icon_wd_radio_button_empty.
        <ls_entry>-button2 =  icon_wd_radio_button_empty.
        <ls_entry>-button3 =  icon_wd_radio_button_empty.
        <ls_entry>-button4 =  icon_wd_radio_button_empty.
        ASSIGN COMPONENT e_column_id-fieldname OF STRUCTURE <ls_entry>
                                                  TO <ld_fld>.
        IF ( <ld_fld> IS ASSIGNED ).
    *     Set selected radio button "selected".
          <ld_fld> = icon_wd_radio_button.
        ENDIF.
    *   Force PAI followed by refresh of table display in PBO
        CALL METHOD cl_gui_cfw=>set_new_ok_code
          EXPORTING
            new_code = 'DUMMY'
    *      IMPORTING
    *        RC       =
      ENDMETHOD.                    "handle_hotspot_click
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    START-OF-SELECTION.
    *       MAIN                                                          *
      PERFORM select_data.
      CALL SCREEN 100.
    *       MODULE PBO OUTPUT                                             *
    MODULE pbo OUTPUT.
      SET PF-STATUS 'MAIN100'.
      IF g_custom_container IS INITIAL.
        CREATE OBJECT g_custom_container
               EXPORTING container_name = g_container.
        CREATE OBJECT grid1
               EXPORTING i_parent = g_custom_container.
        PERFORM build_fieldcatalog.
        CALL METHOD grid1->set_table_for_first_display
    *      EXPORTING
    *        i_structure_name = 'SFLIGHT'
          CHANGING
            it_fieldcatalog  = gt_fcat
            it_outtab        = gt_sflight.
    *   Set event handler for event TOOLBAR
        SET HANDLER:
          lcl_eventhandler=>handle_hotspot_click FOR grid1.
      else.
        CALL METHOD grid1->refresh_table_display
    *      EXPORTING
    *        IS_STABLE      =
    *        I_SOFT_REFRESH =
          EXCEPTIONS
            FINISHED       = 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.
      ENDIF.
    ENDMODULE.                    "PBO OUTPUT
    *       MODULE PAI INPUT                                              *
    MODULE pai INPUT.
    *   to react on oi_custom_events:
      CALL METHOD cl_gui_cfw=>dispatch.
      CASE ok_code.
        WHEN 'EXIT'.
          PERFORM exit_program.
        WHEN OTHERS.
    *     do nothing
      ENDCASE.
      CLEAR ok_code.
    ENDMODULE.                    "PAI INPUT
    *       FORM EXIT_PROGRAM                                             *
    FORM exit_program.
    *  CALL METHOD G_CUSTOM_CONTAINER->FREE.
    *  CALL METHOD CL_GUI_CFW=>FLUSH.
      LEAVE PROGRAM.
    ENDFORM.                    "EXIT_PROGRAM
    *&      Form  BUILD_FIELDCATALOG
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM build_fieldcatalog .
    * define local data
      DATA:
        ls_fcat        TYPE lvc_s_fcat,
        ls_hype        TYPE lvc_s_hype.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
    *     I_BUFFER_ACTIVE              =
          i_structure_name             = 'LVC_S_FCAT'
    *     I_CLIENT_NEVER_DISPLAY       = 'X'
    *     I_BYPASSING_BUFFER           =
    *     I_INTERNAL_TABNAME           =
        CHANGING
          ct_fieldcat                  = gt_fcat
        EXCEPTIONS
          inconsistent_interface       = 1
          program_error                = 2
          OTHERS                       = 3.
      IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      DELETE gt_fcat WHERE ( fieldname <> 'EMPHASIZE' ).
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
    *     I_BUFFER_ACTIVE              =
          i_structure_name             = 'SFLIGHT'
    *     I_CLIENT_NEVER_DISPLAY       = 'X'
    *     I_BYPASSING_BUFFER           =
    *     I_INTERNAL_TABNAME           =
        CHANGING
          ct_fieldcat                  = gt_fcat
        EXCEPTIONS
          inconsistent_interface       = 1
          program_error                = 2
          OTHERS                       = 3.
      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 gt_fcat INTO ls_fcat
           WITH KEY fieldname = 'EMPHASIZE'.
      IF ( syst-subrc = 0 ).
        DELETE gt_fcat INDEX syst-tabix.
      ENDIF.
      ls_fcat-fieldname = 'BUTTON4'.
      ls_fcat-icon    = 'X'.
      ls_fcat-hotspot = 'X'.
      INSERT ls_fcat INTO gt_fcat INDEX 4.
      ls_fcat-fieldname = 'BUTTON3'.
      INSERT ls_fcat INTO gt_fcat INDEX 4.
      ls_fcat-fieldname = 'BUTTON2'.
      INSERT ls_fcat INTO gt_fcat INDEX 4.
      ls_fcat-fieldname = 'BUTTON1'.
      INSERT ls_fcat INTO gt_fcat INDEX 4.
      LOOP AT gt_fcat INTO ls_fcat.
        ls_fcat-col_pos = syst-tabix.
        MODIFY gt_fcat FROM ls_fcat INDEX syst-tabix.
      ENDLOOP.
    ENDFORM.                    " BUILD_FIELDCATALOG
    *&      Form  SELECT_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM select_data .
    * define local data
      DATA:
        ls_sflight    TYPE ty_s_sflight.
      SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_sflight.
      ls_sflight-button1 = icon_wd_radio_button.
      ls_sflight-button2 = icon_wd_radio_button_empty.
      ls_sflight-button3 = icon_wd_radio_button_empty.
      ls_sflight-button4 = icon_wd_radio_button_empty.
      MODIFY gt_sflight FROM ls_sflight
          TRANSPORTING button1 button2 button3 button4
        WHERE ( carrid IS NOT INITIAL ).
    ENDFORM.                    " SELECT_DATA
    The various aspects of ALV list programming are collected within the reuse library (transaction <b>SE83</b>).
    And do not miss to look at <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907">Easy Reference to ALV Grid Control</a>
    Regards
    Uwe

  • How to use Style in LVC_S_LAYO (ALV Grid Layout)

    Hi Experts,
    I am trying to set field 'STYLEFNAME' of LVC_S_LAYO while setting up layout for ALV GRID using 'SET_TABLE_FOR_FIRST_DISPLAY' . I'm passing the field name contain the styles for each row. I am setting it in the same way we set 'INFO_FNAME' by passing color field name for coloring the rows. Styles are available in include <CL_ALV_CONTROL> .
    Please note styles are working properly when I am setting it at field cat level by setting fieldcat field LVC_S_FCAT-STYLE. But set sets style for entire column. I want to set style for few rows. I want to use style 'ALV_STYLE_BUTTON' .
    Please advice how to do this.
    Regards,
    Sushant.

    I'll try to understand your question.
    You have a 'new-style' alv and want to show some fields as pushbutton.
    To make a cell to be displayed as a pushbutton, we have two steps.
    Firstly, insert a new inner table of type u201CLVC_T_STYLu201D into your list data table.
    *--- Internal table holding list data
    DATA BEGIN OF gt_list OCCURS 0 .
    INCLUDE STRUCTURE SFLIGHT .
    DATA rowcolor(4) TYPE c .
    DATA cellcolors TYPE lvc_t_scol .
    DATA carrid_handle TYPE int4 .
    DATA connid_handle TYPE int4 .
    DATA cellstyles TYPE lvc_t_styl .
    DATA END OF gt_list .
    Fill this inner table for each field to be displayed as pushbutton.
    DATA ls_style TYPE lvc_s_styl .
    READ TABLE gt_list INDEX 7 .
    ls_style-fieldname = 'SEATSMAX' .
    ls_style-style = cl_gui_alv_grid=>mc_style_button .
    APPEND ls_style TO gt_list-cellstyles .
    MODIFY gt_list INDEX 7 .
    As usual, we state our list data table field related with styles in the layout structure at field u2018STYLEFNAMEu2019.
    e.g. ps_layout-stylefname = 'CELLSTYLES' .
    Button click event is handled like hotspot click via the event u201Cbutton_clicku201D through its parameters u201Ces_col_idu201D and u201Ces_row_nou201D which contain the address of the clicked pushbutton cell.

  • How to use Editable Fields in ALV

    Hi,
    i am using alv with checkbox at extream right and one field date which is  editable.
    now i am executing program,selecing the checkbox and changing the date.
    i want to store the new value of the date field of the selected row in the internal table.
    anyone can tell me how can i store the new value of date field of the selected rows in the internal table.
    Thanks in advance.
    Chintan

    Hi Chintan,
    Please check this code:
    there is sample code for it...
    REPORT  ZTESTDFALV1                             .
    *Data Declaration
    DATA: BEGIN OF T_EKKO,
      EBELN TYPE EKPO-EBELN,
      EBELP TYPE EKPO-EBELP,
    FLAG TYPE C,
    HANDLE_STYLE TYPE LVC_T_STYL,
    END OF T_EKKO.
      DATA: GD_REPID LIKE SY-REPID, "Exists
      REF_GRID TYPE REF TO CL_GUI_ALV_GRID. "new
    DATA: BEGIN OF IT_EKKO OCCURS 0.
            INCLUDE STRUCTURE T_EKKO.
    DATA: END OF IT_EKKO.
    DATA: BEGIN OF IT_BACKUP OCCURS 0.
            INCLUDE STRUCTURE T_EKKO.
    DATA: END OF IT_BACKUP.
    *ALV data declarations
    TYPE-POOLS: SLIS.                                 "ALV Declarations
    DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          GD_LAYOUT    TYPE SLIS_LAYOUT_ALV.
    *Start-of-selection.
    START-OF-SELECTION.
      PERFORM DATA_RETRIEVAL.
      PERFORM BUILD_FIELDCATALOG.
      PERFORM BUILD_LAYOUT.
      IT_BACKUP[] = IT_EKKO[].
      PERFORM DISPLAY_ALV_REPORT.
    *&      Form  build_fieldcatalog
          text
    FORM BUILD_FIELDCATALOG.
      REFRESH FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME   = 'EBELN'.
      FIELDCATALOG-SELTEXT_M   = 'Purchase Order'.
      FIELDCATALOG-INPUT     = 'X'.
      FIELDCATALOG-EDIT     = 'X'.
      FIELDCATALOG-COL_POS     = 2.
      APPEND FIELDCATALOG.
      CLEAR  FIELDCATALOG.
      FIELDCATALOG-FIELDNAME   = 'EBELP'.
      FIELDCATALOG-SELTEXT_M   = 'PO Item'.
      FIELDCATALOG-COL_POS     = 3.
      APPEND FIELDCATALOG.
      CLEAR  FIELDCATALOG.
    ENDFORM.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
          Build layout for ALV grid report
    FORM BUILD_LAYOUT.
      "Permet d'ajuster les colonnes au text
    gd_layout-colwidth_optimize = 'X'.
    GD_LAYOUT-TOTALS_TEXT       = 'Totals'(201).
    gd_layout-box_fieldname = 'SELECT'.
    gd_layout-box_tabname   = 'IT_EKKO'.
    ENDFORM.                    " BUILD_LAYOUT
    *&      Form  DISPLAY_ALV_REPORT
          Display report using ALV grid
    FORM DISPLAY_ALV_REPORT .
      GD_REPID = SY-REPID.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                I_CALLBACK_PROGRAM        = GD_REPID
               i_callback_top_of_page   = 'TOP-OF-PAGE'
                I_CALLBACK_PF_STATUS_SET  = 'SET_PF_STATUS'
                I_CALLBACK_USER_COMMAND   = 'USER_COMMAND'
               i_grid_title             = 'My Title'
                IS_LAYOUT                 = GD_LAYOUT
                IT_FIELDCAT               = FIELDCATALOG[]
           TABLES
                T_OUTTAB                  = IT_EKKO
           EXCEPTIONS
                PROGRAM_ERROR             = 1
                OTHERS                    = 2.
      IF SY-SUBRC <> 0.
        WRITE:/ SY-SUBRC.
      ENDIF.
    ENDFORM.                    " DISPLAY_ALV_REPORT
    *&      Form  DATA_RETRIEVAL
          Retrieve data form EKPO table and populate itab it_ekko
    FORM DATA_RETRIEVAL.
      SELECT EBELN EBELP
       UP TO 10 ROWS
        FROM EKPO
        INTO CORRESPONDING FIELDS OF TABLE  IT_EKKO.
    ENDFORM.                    " DATA_RETRIEVAL
                         FORM SET_PF_STATUS                              *
    FORM SET_PF_STATUS USING RT_EXTAB   TYPE  SLIS_T_EXTAB.
      SET PF-STATUS 'STANDARD_FULLSCREEN1' EXCLUDING RT_EXTAB.
    ENDFORM.                    "set_pf_status
    *&      Form  user_command
          text
         -->R_UCOMM    text
         -->RS_SELFIELDtext
    FORM USER_COMMAND  USING R_UCOMM LIKE SY-UCOMM
                             RS_SELFIELD TYPE SLIS_SELFIELD.
    *then insert the following code in your USER_COMMAND routine...
      IF REF_GRID IS INITIAL.
        CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
          IMPORTING
            E_GRID = REF_GRID.
      ENDIF.
      IF NOT REF_GRID IS INITIAL.
        CALL METHOD REF_GRID->CHECK_CHANGED_DATA
      ENDIF.
    *modify
      CASE R_UCOMM.
        WHEN '&IC1'.
          CHECK RS_SELFIELD-TABINDEX > 0.
          IF RS_SELFIELD-VALUE EQ '6000000001'.
            CALL TRANSACTION 'ZDF2'.
          ENDIF.
        WHEN 'REFRESH'.
          READ TABLE IT_EKKO INDEX  RS_SELFIELD-TABINDEX.
          IF SY-SUBRC = 0.
            READ TABLE IT_BACKUP INDEX RS_SELFIELD-TABINDEX.
            IF SY-SUBRC = 0.
              IF IT_EKKO <> IT_BACKUP.
    then do your check
              ENDIF.
            ENDIF.
          ENDIF.
          PERFORM DATA_RETRIEVAL.
          RS_SELFIELD-REFRESH = 'X'.
      ENDCASE.
    ENDFORM.                    "user_command
    and also check this thread in which i gave the solution....
    REUSE_ALV_GRID EDITABLE
    This should help u out...
    Mark useful answers...

  • How to use this USER_COMMAND and ALV grid

    hi all,
    I have requirement.
    there are 2 radiobutton in selection screen.
        when rad1 is clicked,
          some plain report display with button 'SUM" at the application toolbar.
          when i click this SUM button , ALV grid report opens
    when rad2 is clicked,
          ALV grid report opens directly without plain report.
    my code:
    start-of-selection
    if rad1 = 'X"
       write """"
       at user-command.
         case sy-ucomm.
         ..perform ALV_report.
         endcase.
    elseif rad2 = 'X"
      perform ALV_report.
    endif.
    I am getting an error " Incorrect nesting: Before the statement "AT, the structure introduced by IF must be concluded by ENDIF"..
    kindly help.
    points will be rewarded
    thanks in advance

    Hi Jayasree,
    As AT User-Command is an event which cannot be used under some condition. Check this sample code.
    START-OF-SELECTION.
    Perform select_data.
    AT USER-COMMAND.
    IF l_rad1 EQ 'X'.
      CASE sy-ucomm.
        WHEN 'ENTR'. "Use your Fcode.
          PERFORM alv_report.
      ENDCASE.
    ELSEIF l_rad2 EQ 'X'.
      PERFORM ALV_report.
    ENDIF.
    Reqard if useful.
    Regards,
    Ramkumar.K

  • How to use this function call function 'REUSE_ALV_COMMENTARY_WRITE' in alv

    hi all
    thanks in advance
    how to use this function in alv programming
    call function 'REUSE_ALV_COMMENTARY_WRITE'
    why use and what purpose use this function plz tell me details
    plz guide me
    thanks

    Hi
    see this exmaple code where i had inserted a LOGO by useing this FM
    *& Report  ZTEST_ALV_LOGO
    REPORT  ztest_alv_logo.
    TYPE-POOLS : slis.
    *ALV Formatting tables /structures
    DATA: gt_fieldcat TYPE slis_t_fieldcat_alv.
    DATA: gt_events   TYPE slis_t_event.
    DATA: gs_layout   TYPE slis_layout_alv.
    DATA: gt_page     TYPE slis_t_listheader.
    DATA: gs_page     TYPE slis_listheader.
    DATA: v_repid     LIKE sy-repid.
    *ALV Formatting work area
    DATA: w_fieldcat TYPE slis_fieldcat_alv.
    DATA: w_events   TYPE slis_alv_event.
    DATA: gt_bsid TYPE TABLE OF bsid WITH HEADER LINE.
    INITIALIZATION.
      PERFORM build_events.
      PERFORM build_page_header.
    START-OF-SELECTION.
    *perform build_comment.     "top_of_page - in initialization at present
      SELECT * FROM bsid INTO TABLE gt_bsid UP TO 10 ROWS.
    *perform populate_for_fm using '1' '3' 'BUKRS' '8' 'GT_BSID' 'Whee'.
    *USING = Row, Column, Field name, display length, table name, heading
    *OR
      PERFORM build_fieldcat.
      gs_layout-zebra = 'X'.
    *top of page event does not work without I_callback_program
      v_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program                = v_repid
          i_structure_name                  = 'BSID'
       i_background_id                   = 'ALV_BACKGROUND'
          i_grid_title                      = 'This is the grid title'
      I_GRID_SETTINGS                   =
          is_layout                         = gs_layout
          it_fieldcat                       = gt_fieldcat[]
          it_events                         = gt_events[]
        TABLES
          t_outtab                          = gt_bsid.
    Form..............:  populate_for_fm
    Description.......:  Populates fields for function module used in ALV
    FORM populate_for_fm USING p_row
                               p_col
                               p_fieldname
                               p_len
                               p_table
                               p_desc.
      w_fieldcat-row_pos      = p_row.          "Row Position
      w_fieldcat-col_pos      = p_col.          "Column Position
      w_fieldcat-fieldname    = p_fieldname.    "Field name
      w_fieldcat-outputlen    = p_len.          "Column Lenth
      w_fieldcat-tabname      = p_table.        "Table name
      w_fieldcat-reptext_ddic = p_desc.         "Field Description
      w_fieldcat-input        = '1'.
      APPEND w_fieldcat TO gt_fieldcat.
      CLEAR w_fieldcat.
    ENDFORM.                    " populate_for_fm
    *&      Form  build_events
    FORM build_events.
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = gt_events.
      READ TABLE gt_events
                 WITH KEY name =  slis_ev_user_command
                 INTO ls_event.
      IF sy-subrc = 0.
        MOVE slis_ev_user_command TO ls_event-form.
        APPEND ls_event TO gt_events.
      ENDIF.
      READ TABLE gt_events
                 WITH KEY name =  slis_ev_top_of_page
                 INTO ls_event.
      IF sy-subrc = 0.
        MOVE slis_ev_top_of_page TO ls_event-form.
        APPEND ls_event TO gt_events.
      ENDIF.
    ENDFORM.                    " build_events
    *&      Form  USER_COMMAND
    When user command is called it uses 2 parameters. The itab
    passed to the ALV is in whatever order it currently is on screen.
    Therefore, you can read table itab index rs_selfield-tabindex to get
    all data from the table. You can also check r_ucomm and code
    accordingly.
    FORM user_command USING  r_ucomm     LIKE sy-ucomm
                             rs_selfield TYPE slis_selfield.
      READ TABLE gt_bsid INDEX rs_selfield-tabindex.
    error checking etc.
      SET PARAMETER ID 'KUN' FIELD gt_bsid-kunnr.
      CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
    ENDFORM.                    "user_command
    *&      Form  top_of_page
    Your own company logo can go here if it has been saved (OAOR)
    If the logo is larger than the size of the headings in gt_page,
    the window will not show full logo and will have a scroll bar. Thus,
    it is a good idea to have a standard ALV header if you are going to
    use logos in your top of page.
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = gt_page
          i_logo             = 'ENJOYSAP_LOGO'.
    ENDFORM.                    "top_of_page
    *&      Form  build_fieldcat
    *Many and varied fields are available here. Have a look at documentation
    *for FM REUSE_ALV_LIST_DISPLAY and REUSE_ALV_FIELDCATALOG_MERGE
    FORM build_fieldcat.
      w_fieldcat-fieldname  = 'BUDAT'.
      w_fieldcat-seltext_m  = 'Dte pst'.
      w_fieldcat-ddictxt(1) = 'M'.
      w_fieldcat-edit = 'x'.
    Can change the position of fields if you do not want them in order
    of the DDIC or itab
    w_fieldcat-row_pos = '1'.
    w_fieldcat-col_pos = '10'.
      APPEND w_fieldcat TO gt_fieldcat.
      CLEAR w_fieldcat.
    ENDFORM.                    " build_fieldcat
    *&      Form  build_page_header
          gt_page is used in top of page (ALV subroutine - NOT event)
          *H = Header, S = Selection, A = Action
    FORM build_page_header.
    For Headers, Key is not printed and is irrelevant. Will not cause
    a syntax error, but is not used.
      gs_page-typ  = 'H'.
      gs_page-info = 'Header 1'.
      APPEND gs_page TO gt_page.
      gs_page-typ  = 'H'.
      gs_page-info = 'Header 2'.
      APPEND gs_page TO gt_page.
    For Selections, the Key is printed (bold). It can be anything up to 20
    bytes. It gets printed in order of code here, not by key value.
      gs_page-typ  = 'S'.
      gs_page-key  = 'And the winner is:'.
      gs_page-info = 'Selection 1'.
      APPEND gs_page TO gt_page.
      gs_page-typ  = 'S'.
      gs_page-key  = 'Runner up:'.
      gs_page-info = 'Selection 2'.
      APPEND gs_page TO gt_page.
    For Action, Key is also irrelevant.
      gs_page-typ  = 'A'.
      gs_page-info = 'Action goes here'.
      APPEND gs_page TO gt_page.
    ENDFORM.                    " build_page_header

  • Use of Icon in alv report

    Hi Experts,
        How to use icon in the ALV Report ...?
    Suppose My Scenario is i have a Pending PR Report if any line item in the PR is Deleated i want to display delete icon
    Please guide me on this....
    any Kind help would be highly appricated.

    Hello friend,
    please try following codes, it works.
    types: begin of gs_outtab.
       types:   lights               type char1,
                color                type i,
                tabcol               type lvc_t_scol,
                id                   type char25, " Already exist in ICON, Flat Structure
                name                 type icon-name,
                symbol               type icon-id,
           end   of gs_outtab.
    data: gt_outtab type standard table of gs_outtab.
    data: gr_grid   type ref to cl_gui_alv_grid.
    data: gr_container type ref to cl_gui_custom_container,
          gs_layout type lvc_s_layo,
          gt_fieldcat type lvc_t_fcat.
    data: ls_vari   type disvariant.
    data: g_okcode type syucomm.
    data: gt_exc type table of ALV_S_QINF.
    data: text type string.
    selection-screen begin of block gen with frame.
    parameters:
    p_amount type i default 20.
    selection-screen end of block gen.
    selection-screen begin of block dsp with frame.
    parameters:
    p_full   radiobutton group dsp,
    p_grid   radiobutton group dsp.
    selection-screen end of block dsp.
    START-OF-SELECTION.
    END-OF-SELECTION.
       perform select_data.
       IF p_full = 'X'.
         perform display_fullscreen.
       ELSE.
         perform display_grid.
       ENDIF.
    STEP 1: load data *******************************************
    form select_data.
      select * from icon into corresponding fields of table gt_outtab
               up to p_amount rows.
    endform.
    STEP2: build full screen **************************************
    form display_fullscreen .
      data: ls_layout type slis_layout_alv,
            lt_fcat type slis_t_fieldcat_alv,
            ls_fcat type slis_fieldcat_alv.
          ls_layout-lights_tabname   = '1'.
          ls_layout-lights_fieldname = 'LIGHTS'.
          ls_layout-coltab_fieldname =  'TABCOL'.
          clear ls_fcat.
          ls_fcat-fieldname = 'LIGHTS'.
          ls_fcat-inttype = 'C'.
          ls_fcat-seltext_l = ls_fcat-seltext_m = ls_fcat-seltext_s = 'Lights'.
          append ls_fcat to lt_fcat.
          clear ls_fcat.
          ls_fcat-fieldname = 'COLOR'.
          ls_fcat-inttype = 'I'.
          ls_fcat-seltext_l = ls_fcat-seltext_m = ls_fcat-seltext_s = 'Color'.
          append ls_fcat to lt_fcat.
          clear ls_fcat.
          ls_fcat-fieldname = 'ID'.
          ls_fcat-inttype = 'C'.
          ls_fcat-seltext_l = ls_fcat-seltext_m = ls_fcat-seltext_s = 'Icon'.
          ls_fcat-icon = abap_true.
          append ls_fcat to lt_fcat.
          clear ls_fcat.
          ls_fcat-fieldname = 'SYMBOL'.
          ls_fcat-inttype = 'C'.
          ls_fcat-seltext_l = ls_fcat-seltext_m = ls_fcat-seltext_s = 'Symbol'.
          ls_fcat-symbol = abap_true.
          append ls_fcat to lt_fcat.
          clear ls_fcat.
          ls_fcat-fieldname = 'NAME'.
          ls_fcat-tech = abap_true.
          append ls_fcat to lt_fcat.
          perform select_data.
          perform set_tooltips.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         IS_LAYOUT                         = ls_layout
         IT_FIELDCAT                       = lt_fcat
         IT_EXCEPT_QINFO                   = gt_exc
        TABLES
          T_OUTTAB                          = gt_outtab
       EXCEPTIONS
         PROGRAM_ERROR                     = 1
         OTHERS                            = 2
       ASSERT sy-subrc = 0.
    endform.
    STEP3: display grid ******************************************
    form display_grid.
      call screen 100.
    endform.
    STEP4: PBO ***************************************************
    module d0100_pbo output.
      perform d0100_pbo.
    endmodule.
    STEP5: PAI ***************************************************
    module d0100_pai input.
      perform d0100_pai.
    endmodule.
    STEP6: PBO form ***********************************************
    form d0100_pbo .
      set pf-status 'D0100'.
      if gr_container is not bound.
        create object gr_container
          exporting
            container_name = 'CONTAINER'.
        create object gr_grid
            exporting i_parent = gr_container.
      data: ls_layout type lvc_s_layo,
            lt_fcat type lvc_t_fcat,
            ls_fcat type lvc_s_fcat.
          ls_layout-excp_fname = 'LIGHTS'.
          ls_layout-ctab_fname =  'TABCOL'.
          clear ls_fcat.
          ls_fcat-fieldname = 'LIGHTS'.
          ls_fcat-inttype = 'C'.
          ls_fcat-scrtext_l = ls_fcat-scrtext_m = ls_fcat-scrtext_s = 'Lights'.
          append ls_fcat to lt_fcat.
          clear ls_fcat.
          ls_fcat-fieldname = 'COLOR'.
          ls_fcat-inttype = 'I'.
          ls_fcat-scrtext_l = ls_fcat-scrtext_m = ls_fcat-scrtext_s = 'Color'.
          append ls_fcat to lt_fcat.
          clear ls_fcat.
          ls_fcat-fieldname = 'ID'.
          ls_fcat-inttype = 'C'.
          ls_fcat-scrtext_l = ls_fcat-scrtext_m = ls_fcat-scrtext_s = 'Icon'.
          ls_fcat-icon = abap_true.
          append ls_fcat to lt_fcat.
          clear ls_fcat.
          ls_fcat-fieldname = 'SYMBOL'.
          ls_fcat-inttype = 'C'.
          ls_fcat-scrtext_l = ls_fcat-scrtext_m = ls_fcat-scrtext_s = 'Symbol'.
          ls_fcat-symbol = abap_true.
          append ls_fcat to lt_fcat.
          clear ls_fcat.
          ls_fcat-fieldname = 'NAME'.
          ls_fcat-tech = abap_true.
          append ls_fcat to lt_fcat.
      perform select_data.
      perform set_tooltips.
      data: lt_tooltips type lvc_t_qinf,
            lt_toolb type ui_functions,
            ls_toolb type UI_FUNC.
      ls_toolb = CL_GUI_ALV_GRID=>mc_fc_call_crbatch.
      append ls_toolb to lt_toolb.
      lt_tooltips = gt_exc.
      call method gr_grid->set_table_for_first_display
            exporting is_layout   = ls_layout
                 it_except_qinfo  = lt_tooltips
                 it_toolbar_excluding = lt_toolb
            changing
                  it_fieldcatalog = lt_fcat
                  it_outtab       = gt_outtab.
      endif.
    endform.
    STEP7: PAI form ******************************************************
    form d0100_pai .
      case g_okcode.
        when 'BACK' or 'EXIT' or 'CANC'.
          set screen 0.
          leave screen.
      endcase.
    endform.
    STEP8: Set Tooltip *************************************************
    FORM set_tooltips .
      field-symbols: <outtab> type gs_outtab.
      data: tooltips type ref to cl_salv_tooltips,
            settings type ref to cl_salv_functional_settings,
            ls_styl type lvc_s_styl,
            value type char128,
            text type char40,
            ls_symbol type icon,
            lt_symbol type standard table of icon,
            ls_exc type ALV_S_QINF,
            tabix type sy-tabix,
            col type lvc_s_scol.
      loop at gt_outtab assigning <outtab>.
        tabix = sy-tabix.
        read table lt_symbol index sy-tabix into ls_symbol.
        <outtab>-symbol = ls_symbol-id.
        value = <outtab>-id(3).
        text = <outtab>-name.
        concatenate value '\Q' text '@' into value.
        <outtab>-id = value.
        value = ls_symbol-id.
        text  = ls_symbol-name.
        ls_exc-type = cl_salv_tooltip=>c_type_symbol.
        ls_exc-value = value.
        ls_exc-text = text.
        append ls_exc to gt_exc.
        <outtab>-color = tabix mod 7 + 1.
        <outtab>-lights = tabix mod 3 + 1.
        col-fname = 'COLOR'.
        col-color-col = tabix mod 7 + 1.
        if tabix ge 7.
          col-color-inv = 1.
        endif.
        if tabix ge 14.
          col-color-int = 1.
        endif.
        append col to <outtab>-tabcol.
      endloop.
    ENDFORM.

  • How to include tool bar in alv table?

    Dear All,
        I want to know how to use tool bar in alv table? Is there any seperate interfaces available for it?
    Thanks,
    Gopi.

    Hi,
    1.To deactivate the Standard buttons:
    Data: lr_config_table TYPE REF TO cl_salv_wd_config_table,
    lo_value = lo_interfacecontroller->get_model( ).
    lr_config_table ?= lo_value .
    Wd_this->lr_config_table  ?= lo_value .
      lr_config_table->if_salv_wd_std_functions~set_edit_append_row_allowed( abap_false ).
      lr_config_table->if_salv_wd_std_functions~set_edit_insert_row_allowed( abap_false ).
      lr_config_table->if_salv_wd_std_functions~set_edit_delete_row_allowed( abap_false ).
    2.To create the customized buttons:
    Create the a method initilaze_buttons.
    Data:lv_function_add_record_sap          TYPE REF TO cl_salv_wd_function,
          lv_button_add_record_sap             TYPE REF TO cl_salv_wd_fe_button,
           R_ALV_TABLE_COMP  type ref to CL_SALV_WD_CONFIG_TABLE.
    r_alv_table_comp = wd_this->lr_config_table.
    Generate Function Objects
    lv_function_add_record_sap = wd_this->lr_config_table->if_salv_wd_function_settings~create_function( 'ADD_RECORD_SAP' ).
    Generate Buttons
      CREATE OBJECT lv_button_add_record_sap.
      lv_button_add_record_sap->set_image_source( 'ICON_INSERT_ROW' ).
    lv_button_add_record_sap->set_text( 'Add Record' ).
    Assign Buttons to Functions
    lv_function_add_record_sap->set_editor( lv_button_add_record_sap ).
    Set positions of the buttons
      lv_function_add_record_sap->set_position( value = 1 ).
    Set Alignment of the buttons
    lv_function_add_record_sap->set_alignment( value = if_salv_wd_c_function_settings=>align_left ).
    Call this method initilaze_buttons in WDDOINIT .
    3.To find out which button is clicked an dhandling that function
    A)Go to methods tab.
    B)give the name of the method as on_button select the method type as Eventhandler.
    In the event coulmn select the event ON_FUNCTION of the ALV comp.
    METHOD on_button .
      DATA index  TYPE i.
      index = wd_this->sort_index .
      CASE r_param->id."r_param->id is importing paramter which comes automatically once u use the event handler
        WHEN 'DELETE_ROW'.  "Delete row
          wd_this->delete_row( )."methods you need to create and call them here.(your own customized button functionality
        WHEN 'ADD_RECORD_SAP'.
          wd_this->add_record_sap( ).
    ENDCASE.
    r_param->id holds the value which button is clicked.
    Priya

  • How to use alv in progrmm

    hi all
    thanks in advance
    how to use alv in programm please can any one send me simple example of alv
    thanks

    Hi,
    Refer this code. If u find it useful, reward points.
    TYPE-POOLS: slis.
         Data Declaration
    DATA: wa_layout       TYPE slis_layout_alv, "Layout structure
          it_fieldcatalog TYPE slis_t_fieldcat_alv, " Fieldcatlog IT
          wa_fieldcatalog TYPE slis_fieldcat_alv, " Fieldcatlog WA
          lt_event TYPE slis_t_event, "for capturing page events
          ls_event TYPE slis_alv_event. " WA for Page Events
    Data: l_syrep type sy-repid,
          l_tcode type sy-tcode.
    *& I N I T I A L I Z A T I O N                                         *
    INITIALIZATION .
    l_syrep = sy-repid.
    l_tcode = sy-tcode.
    *&               AT SELECTION-SCREEN                                   *
    AT SELECTION-SCREEN.
    *&               START-OF-SELECTION                                    *
    START-OF-SELECTION.
    *&               END-OF-SELECTION                                      *
    END-OF-SELECTION.
       PERFORM build_layout.
       PERFORM build_catlog.
       PERFORM build_events.
    *&               AT LINE-SELECTION                                     *
    AT LINE-SELECTION.
    *&      Form  build_layout
          Building the Layout
    FORM build_layout .
    wa_layout-ZEBRA = 'X'.
    wa_layout-NO_VLINE = 'X'.
    wa_layout-NO_HLINE = 'X'.
    wa_layout-CELL_MERGE = 'X'.
    wa_layout-EDIT = 'X'.
    wa_layout-WINDOW_TITLEBAR = ''.
    wa_layout-NO_ULINE_HS = 'X'.
    wa_layout-LIGHTS_FIELDNAME = ''.
    wa_layout-LIGHTS_TABNAME = ''.
    wa_layout-LIGHTS_ROLLNAME = ''.
    wa_layout-LIGHTS_CONDENSE = 'X'.
    wa_layout-NO_TOTALLINE = 'X'.
    wa_layout-NO_SUBTOTALS = 'X'.
    wa_layout-TOTALS_BEFORE_ITEMS = 'X'.
    wa_layout-TOTALS_ONLY = 'X'.
    wa_layout-TOTALS_TEXT = ''.
    wa_layout-SUBTOTALS_TEXT = ''.
    wa_layout-BOX_FIELDNAME = ''.
    wa_layout-BOX_TABNAME = ''.
    wa_layout-BOX_ROLLNAME = ''.
    wa_layout-CONFIRMATION_PROMPT = 'X'.
    wa_layout-HEADER_TEXT = ''.
    ENDFORM.                    " build_layout
    *&      Form  build_catlog
          Building the Field Catlog
    FORM build_catlog .
    wa_fieldcatalog-ROW_POS = 0.
    wa_fieldcatalog-COL_POS = 0.
    wa_fieldcatalog-FIELDNAME = ''.
    wa_fieldcatalog-TABNAME = ''.
    wa_fieldcatalog-CHECKBOX = 'X'.
    wa_fieldcatalog-DO_SUM = 'X'.
    wa_fieldcatalog-OUTPUTLEN = ''.
    wa_fieldcatalog-wa_fieldcatalog-OFFSET = ''.
    wa_fieldcatalog-SELTEXT_L = ''.
    wa_fieldcatalog-SELTEXT_M =''.
    wa_fieldcatalog-SELTEXT_S =''.
    wa_fieldcatalog-REF_FIELDNAME =''.
    wa_fieldcatalog-REF_TABNAME = ''.
    wa_fieldcatalog-NO_SUM ='X'.
    wa_fieldcatalog-EDIT ='X'.
    wa_fieldcatalog-HOTSPOT = 'X'.
    APPEND  wa_fieldcatalog TO it_fieldcatalog.
    CLEAR   wa_fieldcatalog.
    ENDFORM.                    " build_catlog
    *&      Form  build_events
          Building the Events
    FORM build_events .
    Get all possible events
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type     = 0
        IMPORTING
          et_events       = lt_event
        EXCEPTIONS
          list_type_wrong = 1
          OTHERS          = 2.
      IF sy-subrc <> 0.
      ENDIF.
    Specify events used in selection screen
      READ TABLE lt_event WITH KEY name = slis_ev_top_of_page
                         INTO ls_event.
      IF sy-subrc = 0.
        ls_event-form = 'TOP_OF_PAGE'.
        MODIFY lt_event FROM ls_event INDEX sy-tabix.
        CLEAR ls_event.
      ENDIF.
      READ TABLE lt_event WITH KEY name = slis_ev_end_of_list
                         INTO ls_event.
      IF sy-subrc = 0.
        ls_event-form = 'END_OF_LIST'.
        MODIFY lt_event FROM ls_event INDEX sy-tabix.
        CLEAR ls_event.
      ENDIF.
    ENDFORM.                    " build_events
    *&      Form  TOP_OF_PAGE
    To display top of the page
    FORM top_of_page .
    data: lt_top_of_page type slis_t_listheader,
           ls_line type slis_listheader.
      clear ls_line.
      ls_line-typ  = 'H'.
      ls_line-info = ''.
      append ls_line to lt_top_of_page.
      clear ls_line.
      ls_line-typ  = 'S'.
      ls_line-key  = ''.
      ls_line-info = ''.
      append ls_line to lt_top_of_page.
      clear ls_line.
      ls_line-typ  = 'A'.
      ls_line-info = ''.
      append ls_line to  lt_top_of_page.
      clear ls_line.
       CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary       = lt_top_of_page
      I_LOGO                   =
      I_END_OF_LIST_GRID       =
    ENDFORM.                    " TOP_OF_PAGE
    *&      Form  end-of-list
    To display the totals at the end of the list
    FORM end_of_list .
    ENDFORM.                    " end-of-list
    *&      Form  set_pf_status
          Set the Pf Status
    FORM pf_status USING pa_extab TYPE slis_t_extab.
       SET PF-STATUS 'ZXXXX'.
    ENDFORM.                    "SET_PF_STATUS
    *&      Form  user_command
          To Catch the User Events
         -->PA_UCOMM     text
         -->PA_SELFIELD  text
    FORM user_command USING pa_ucomm TYPE syucomm
                            pa_selfield TYPE slis_selfield.
      CASE pa_ucomm.
          WHEN '&IC1'.
              CLEAR gs_output .
              READ TABLE gt_output INTO gs_output INDEX pa_selfield-tabindex .
              CASE pa_selfield-fieldname .
              ENDCASE.
          WHEN 'XXX'.
          WHEN 'XXX'.
      ENDCASE.
    ENDFORM.                    "USER_COMMAND

Maybe you are looking for