Classical report display from an alv list

Hi, 
I have an alv report displayed, and for this alv report have a user defined menu. Now when the Save button is clicked on the application bar then in the background we have a set of invoices which are generated for all the values selected from the alv list.
Now after this a list is to be displayed listing all the items which were selected from the alv(ie the check boxes for the alv selected and not a particular field for selection)  for which the invoices were created. how do we display the list in a classical report format considering that the write statement will not work....???

Hi
Try thsi......
You write the code in some Zreport of your own and from your ALV program pass the values to this ZReport program. You can pass via 2 ways
a) Pass via  Export to Memory and Import from Memory ID
b) Call Submit via Selection Screen and return
Hope thsi Helps
Anirban

Similar Messages

  • Can we display ICONS in ALV list?

    Hi,
       Is it possible to display icons (ICON_GREEN_LIGHT) in the ALV list using the function module REUSE_ALV_LIST_DISPLAY.
       Is there any possibility of displaying a list using object oriented ALV?
    Thanks and Regards,
    Lakshmi.

    Hi Lakshmi,
    Just check this once.
    REPORT  Zxxx  MESSAGE-ID ZZ                       .
    *& TABLES DECLARATION                                                  *
    TABLES: VBAK.
    *& TYPE POOLS DECLARATION                                              *
    TYPE-POOLS: SLIS.
    *& INTERNAL TABLE DECLARATION                                          *
    DATA: BEGIN OF ITAB OCCURS 0,
           ICON TYPE ICON-ID,
           VBELN LIKE VBAK-VBELN,
           AUDAT LIKE VBAK-AUDAT,
           VBTYP LIKE VBAK-VBTYP,
           AUART LIKE VBAK-AUART,
           AUGRU LIKE VBAK-AUGRU,
           NETWR LIKE VBAK-NETWR,
           WAERK LIKE VBAK-WAERK,
        END OF ITAB.
    *INTERNAL TABLE FOR FIELD CATALOG
    DATA: WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
        IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
    IT_FIELDCAT TYPE STANDARD TABLE OF SLIS_FIELDCAT_ALV
               WITH HEADER LINE,
    *INTERNAL TABLE FOR EVENTS
    DATA:    IT_EVENT TYPE SLIS_T_EVENT,
          WA_EVENT TYPE SLIS_ALV_EVENT,
    *INTERNAL TABLE FOR SORTING
          IT_SORT TYPE SLIS_T_SORTINFO_ALV,
          WA_SORT TYPE SLIS_SORTINFO_ALV,
    *INTERNAL TABLE FOR LAYOUT
          WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
    *& VARIABLE DECLARATION                                                *
    DATA : V_REPID TYPE SY-REPID,
           V_PAGNO(4) TYPE N,
           V_DATE(8)  TYPE C.
    *& CONSTANTS                                                           *
    CONSTANTS: C_X TYPE C VALUE 'X'.
    *& SELECTION SCREEN                                                    *
    SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN,
                    S_VBTYP FOR VBAK-VBTYP DEFAULT 'C'.
    SELECTION-SCREEN: END OF BLOCK B1.
    SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    SELECTION-SCREEN : BEGIN OF LINE.
    SELECTION-SCREEN  COMMENT 1(20) TEXT-003.
    PARAMETERS: P_LIST RADIOBUTTON GROUP RAD1 DEFAULT 'X'.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(20) TEXT-004.
    PARAMETERS: P_GRID RADIOBUTTON GROUP RAD1.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN: END OF BLOCK B2.
    AT SELECTION-SCREEN.
      PERFORM VALIDATE_SCREEN.
    *& START OF SELECTION                                               *
    START-OF-SELECTION.
      CLEAR: ITAB, ITAB[].
    V_REPID = SY-REPID.
      PERFORM GET_DATA.
      PERFORM DISPLAY_DATA.
    *& END OF SELECTION                                                    *
    END-OF-SELECTION.
    *--DO ALV Process
      V_REPID = SY-REPID.
    *--Sort the Output Fields
      PERFORM SORT_FIELDS.
    *--Build Field catalog for the Output fields
    PERFORM BUILD_FIELDCAT.
    *--Set the Layout for ALV
      PERFORM SET_LAYOUT.
    *&      Form  GET_DATA
          text
    TO GET THE DATA FROM TABLES INTO ITAB
    FORM GET_DATA .
      SELECT VBELN
             AUDAT
             VBTYP
             AUART
             AUGRU
             NETWR
             WAERK
             INTO CORRESPONDING FIELDS OF TABLE ITAB
             FROM VBAK
             WHERE VBELN IN S_VBELN AND
             AUDAT > '04.04.2005'
             AND NETWR > 0.
      LOOP AT ITAB.
        IF ITAB-NETWR < 10000.
          ITAB-ICON = '@08@'.
        ELSEIF ITAB-NETWR > 10000 AND ITAB-NETWR < 100000.
          ITAB-ICON = '@09@'.
        ELSEIF ITAB-NETWR > 100000.
          ITAB-ICON = '@0A@'.
        ENDIF.
        MODIFY ITAB INDEX SY-TABIX.
      ENDLOOP.
    ENDFORM.                    " GET_DATA
    *&      Form  sort_fields
    FORM SORT_FIELDS .
      CLEAR WA_SORT.
      WA_SORT-FIELDNAME = 'VBTYP'.
      WA_SORT-SPOS = '1'.
      WA_SORT-UP = 'X'.
      APPEND WA_SORT TO IT_SORT.
      CLEAR WA_SORT.
      WA_SORT-FIELDNAME = 'NETWR'.
      WA_SORT-SPOS = '2'.
      WA_SORT-UP = 'X'.
      WA_SORT-SUBTOT = 'X'.
      APPEND WA_SORT TO IT_SORT.
    ENDFORM.                    " sort_fields
    *&      Form  build_fieldcat
    *FORM BUILD_FIELDCAT .
    IT_FIELDCAT-COL_POS    = '1'.
    IT_FIELDCAT-FIELDNAME  = 'ICON'.
    IT_FIELDCAT-KEY        = 'X'.
    IT_FIELDCAT-OUTPUTLEN  = '10'.
    IT_FIELDCAT-SELTEXT_L  = 'LIGHT'.
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    IT_FIELDCAT-COL_POS    = '2'.
    IT_FIELDCAT-FIELDNAME  = 'VBELN'.
    IT_FIELDCAT-KEY        = 'X'.
    IT_FIELDCAT-OUTPUTLEN  = '10'.
    IT_FIELDCAT-SELTEXT_L  = 'SALES DOC NUMBER'(009).
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    IT_FIELDCAT-COL_POS    = '3'.
    IT_FIELDCAT-FIELDNAME  = 'AUDAT'.
    IT_FIELDCAT-KEY        = 'X'.
    IT_FIELDCAT-OUTPUTLEN  = '4'.
    IT_FIELDCAT-SELTEXT_L  = 'DOCUMENT DATE'(010).
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    IT_FIELDCAT-COL_POS    = '4'.
    IT_FIELDCAT-FIELDNAME  = 'VBTYP'.
    IT_FIELDCAT-KEY        = 'X'.
    IT_FIELDCAT-OUTPUTLEN  = '4'.
    IT_FIELDCAT-SELTEXT_L  = 'CATEGORY'(011).
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    IT_FIELDCAT-COL_POS    = '5'.
    IT_FIELDCAT-FIELDNAME  = 'AUART'.
    IT_FIELDCAT-OUTPUTLEN  = '4'.
    IT_FIELDCAT-SELTEXT_L  = 'DOCUMENT TYPE'(012).
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    IT_FIELDCAT-COL_POS    = '6'.
    IT_FIELDCAT-FIELDNAME  = 'AUGRU'.
    IT_FIELDCAT-OUTPUTLEN  = '12'.
    IT_FIELDCAT-SELTEXT_L  = 'Order reason'(013).
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    IT_FIELDCAT-COL_POS    = '7'.
    IT_FIELDCAT-FIELDNAME  = 'NETWR'.
    IT_FIELDCAT-OUTPUTLEN  = '12'.
    IT_FIELDCAT-SELTEXT_L  = 'NET VALUE'(014).
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    IT_FIELDCAT-COL_POS    = '8'.
    IT_FIELDCAT-FIELDNAME  = 'WAERK'.
    IT_FIELDCAT-OUTPUTLEN  = '12'.
    IT_FIELDCAT-SELTEXT_L  = 'SD DOC CURR'(015).
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    *ENDFORM.                    " build_fieldcat
    *&      Form  set_layout
    FORM SET_LAYOUT .
      IF P_LIST = C_X .
        WA_LAYOUT-WINDOW_TITLEBAR = 'LIST DISPLAY'(016).
        WA_LAYOUT-ZEBRA = 'X'.
    *-- ALV LIST DISPLAY
        PERFORM LIST_DISPLAY TABLES ITAB.
    *-- ALV GRID DISPLAY
      ELSEIF P_GRID = C_X.
        WA_LAYOUT-WINDOW_TITLEBAR = 'GRID DISPLAY'(017).
        WA_LAYOUT-ZEBRA = 'X'.
        PERFORM GRID_DISPLAY TABLES ITAB.
      ENDIF.
    ENDFORM.                    " set_layout
    *&      Form  list_display
    FORM LIST_DISPLAY  TABLES   P_ITAB .
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM = V_REPID
          IS_LAYOUT          = WA_LAYOUT
          IT_FIELDCAT        = IT_FIELDCAT[]
          IT_SORT            = IT_SORT[]
          I_SAVE             = 'U'
        TABLES
          T_OUTTAB           = ITAB
        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.                    " list_display
    *&      Form  GRID_DISPLAY
    FORM GRID_DISPLAY  TABLES   P_ITAB .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM = V_REPID
          IS_LAYOUT          = WA_LAYOUT
          IT_FIELDCAT        = IT_FIELDCAT[]
          IT_SORT            = IT_SORT[]
          IT_EVENTS          = IT_EVENT
        TABLES
          T_OUTTAB           = ITAB
        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.                    " GRID_DISPLAY
    *&      Form  VALIDATE_SCREEN
          text
    -->  p1        text
    <--  p2        text
    FORM VALIDATE_SCREEN .
      DATA: LV_VBELN LIKE VBAK-VBELN.
      IF NOT S_VBELN IS INITIAL.
        SELECT VBELN
        INTO LV_VBELN
        UP TO 1 ROWS
        FROM VBAK
        WHERE VBELN IN S_VBELN.
        ENDSELECT.
        IF SY-SUBRC <> 0.
          MESSAGE E000 WITH 'INVALID SALES DOC'.
        ENDIF.
      ENDIF.
    ENDFORM.                    " VALIDATE_SCREEN
    *&      Form  display_data
          text
    -->  p1        text
    <--  p2        text
    FORM DISPLAY_DATA .
      DEFINE M_FIELDCAT.
        ADD 1 TO WA_FIELDCAT-COL_POS.
        WA_FIELDCAT-FIELDNAME   = &1.
        WA_FIELDCAT-REF_TABNAME = 'VBAK'.
        WA_FIELDCAT-DO_SUM      = &2.
        WA_FIELDCAT-CFIELDNAME  = &3.
        APPEND WA_FIELDCAT TO IT_FIELDCAT.
      END-OF-DEFINITION.
    DATA:
        ls_fieldcat TYPE slis_fieldcat_alv,
        lt_fieldcat TYPE slis_t_fieldcat_alv.
      m_fieldcat 'ICON' ''  ''.
      m_fieldcat 'VBELN' ''  ''.
      m_fieldcat 'AUDAT' ''  ''.
      m_fieldcat 'VBTYP' ''  ''.
      m_fieldcat 'AUART' ''  ''.
      m_fieldcat 'AUGRU' ''  ''.
      m_fieldcat 'NETWR' 'C' 'WAERK'.
      m_fieldcat 'WAERK' ''  ''.
    ENDFORM.                    " display_data
    hope it helps u
    regards
    laxmi

  • Display of 2 ALV List

    Hi,
      I am trying to display 2 ALV List at a time...Can anyone please tellme what is wrong in the following code..Its not displaying any output after the selection-screen.
    Should I pass anything else in addition..Or can anyone tell me what exactly I am missing out...
    Thanks..
    REPORT  ZNNR_ALVOOPS_SCREEN.
    TABLES: MARA,SPFLI.
    *types: begin of ty_tab,
           matnr type mara-matnr,
           ernam type mara-ernam,
           ersda type mara-ersda,
          end of ty_tab.
    TYPES: BEGIN OF TYPT.
           INCLUDE STRUCTURE MARA.
    TYPES: END OF TYPT.
    TYPES: BEGIN OF TYPT1.
           INCLUDE STRUCTURE SPFLI.
    TYPES: END OF TYPT1.
    DATA IO1 TYPE SPFLI-CARRID VALUE 'AA'.
    DATA ITAB TYPE TABLE OF TYPT.
    DATA WA LIKE LINE OF ITAB.
    DATA ITAB1 TYPE TABLE OF TYPT1.
    DATA WA1 LIKE LINE OF ITAB1.
    *DATA OK_CODE TYPE SY-UCOMM.
    DATA: GRID TYPE REF TO CL_GUI_ALV_GRID,
         CONT TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
    DATA: GRID1 TYPE REF TO CL_GUI_ALV_GRID,
         CONTA TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
    CREATE OBJECT CONT EXPORTING CONTAINER_NAME = 'CONT1' .
    CREATE OBJECT GRID EXPORTING I_PARENT = CONT .
    CREATE OBJECT CONTA EXPORTING CONTAINER_NAME = 'CONT2' .
    CREATE OBJECT GRID1 EXPORTING I_PARENT = CONTA .
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-100.
    SELECT-OPTIONS: S_MATNR FOR MARA-MATNR.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECT * FROM MARA INTO TABLE
    ITAB
    WHERE MATNR IN S_MATNR .
    SELECT * FROM SPFLI INTO
          TABLE ITAB1 WHERE CARRID = IO1.
    CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
       I_BUFFER_ACTIVE               =
       I_BYPASSING_BUFFER            =
       I_CONSISTENCY_CHECK           =
       I_STRUCTURE_NAME              = 'MARA'
       IS_VARIANT                    =
       I_SAVE                        =
       I_DEFAULT                     = 'X'
       IS_LAYOUT                     =
       IS_PRINT                      =
       IT_SPECIAL_GROUPS             =
       IT_TOOLBAR_EXCLUDING          =
       IT_HYPERLINK                  =
       IT_ALV_GRAPHICS               =
       IT_EXCEPT_QINFO               =
       IR_SALV_ADAPTER               =
    CHANGING
       IT_OUTTAB                     = ITAB
       IT_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.
    CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
       I_STRUCTURE_NAME = 'SPFLI'
    CHANGING
       IT_OUTTAB        = ITAB1.

    HI
    see this program same requirement
    you can understand very easily
    *& Report  ZAMIT_ALVOOPS
    REPORT  ZNNR_ALVOOPS_SCREEN.
    tables: mara,spfli.
    types: begin of ty_tab,
            matnr type mara-matnr,
            ernam type mara-ernam,
            ersda type mara-ersda,
           end of ty_tab.
    DATA ITAB1 TYPE TABLE OF SPFLI.
    DATA WA1 LIKE LINE OF ITAB1.
    DATA IO1 TYPE SPFLI-CARRID VALUE 'AA'.
    data itab type table of ty_tab.
    data wa like line of itab.
    DATA OK_CODE TYPE SY-UCOMM.
    DATA: GRID TYPE REF TO CL_GUI_ALV_GRID,
          CONT TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
    DATA: GRID1 TYPE REF TO CL_GUI_ALV_GRID,
          CONTA TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
    CREATE OBJECT CONT EXPORTING CONTAINER_NAME = 'CONT1' .
    CREATE OBJECT GRID EXPORTING I_PARENT = CONT .
    CREATE OBJECT CONTA EXPORTING CONTAINER_NAME = 'CONT2' .
    CREATE OBJECT GRID1 EXPORTING I_PARENT = CONTA .
    selection-screen begin of block b1 with frame title text-100.
    select-options: s_matnr for mara-matnr.
    selection-screen end of block b1.
    select matnr ernam ersda from mara into corresponding fields of table itab up to 15 rows
    where matnr in s_matnr .
    call selection-screen 100.
    *&      Module  USER_COMMAND_0100  INPUT
          text
    MODULE USER_COMMAND_0100 INPUT.
    if ok_code = 'PB1'.
    leave to screen 0.
    else.
    leave to screen 100.
    endif.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Module  STATUS_0100  OUTPUT
          text
    MODULE STATUS_0100 OUTPUT.
    SET PF-STATUS 'xxxxxxxx'.
    SET TITLEBAR 'xxx'.
    SELECT * FROM SPFLI INTO
      CORRESPONDING FIELDS OF TABLE ITAB1 WHERE CARRID = IO1.
    CALL METHOD grid->SET_TABLE_FOR_FIRST_DISPLAY
      EXPORTING
       I_BUFFER_ACTIVE               =
       I_BYPASSING_BUFFER            =
       I_CONSISTENCY_CHECK           =
        I_STRUCTURE_NAME              = 'MARA'
       IS_VARIANT                    =
       I_SAVE                        =
       I_DEFAULT                     = 'X'
       IS_LAYOUT                     =
       IS_PRINT                      =
       IT_SPECIAL_GROUPS             =
       IT_TOOLBAR_EXCLUDING          =
       IT_HYPERLINK                  =
       IT_ALV_GRAPHICS               =
       IT_EXCEPT_QINFO               =
       IR_SALV_ADAPTER               =
      CHANGING
        IT_OUTTAB                     = itab.
       IT_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.
       CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
        EXPORTING
          I_STRUCTURE_NAME = 'SPFLI'
        CHANGING
          IT_OUTTAB        = ITAB1.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    <b>Reward if usefull</b>

  • Display Total in ALV-List-urgent

    Hi,
        I have an ALV-List with an amount column...I have to show the total at the end of the list..Calculation of total can be done in the internal table but how to display it neatly just below the itab-amount with a tag Total : 29000000 .Kindly help.
    Thanks..

    see this below example
    REPORT yktest.
    *& TABLES DECLARATION *
    TABLES : ekko, ekpo, t001w, t161t, lfa1.
    *& INTERNAL TABLE DECLARATION *
    TYPES : BEGIN OF tp_itab1,
    bukrs TYPE ekko-bukrs,
    lifnr TYPE ekko-lifnr,
    ebeln TYPE ekko-ebeln,
    waers TYPE ekko-waers,
    bsart TYPE ekko-bsart,
    ekorg TYPE ekko-ekorg,
    ekgrp TYPE ekko-ekgrp,
    ebelp TYPE ekpo-ebelp,
    txz01 TYPE ekpo-txz01,
    matnr TYPE ekpo-matnr,
    werks TYPE ekpo-werks,
    menge TYPE ekpo-menge,
    meins TYPE ekpo-meins,
    netpr TYPE ekpo-netpr,
    netwr TYPE ekpo-netwr,
    name1 TYPE t001w-name1,
    header_text(132),
    chk TYPE c,
    END OF tp_itab1.
    DATA : t_itab1 TYPE STANDARD TABLE OF tp_itab1,
    wa_itab1 TYPE tp_itab1,
    ws_name1 TYPE t001w-name1.
    DATA : f_itab1 TYPE STANDARD TABLE OF tp_itab1,
    wa_fitab1 TYPE tp_itab1.
    DATA : f_itab2 TYPE STANDARD TABLE OF tp_itab1,
    wa_fitab2 TYPE tp_itab1.
    TYPES : BEGIN OF tp_name1,
    werks TYPE t001w-werks,
    name1 TYPE t001w-name1,
    END OF tp_name1.
    DATA : t_name1 TYPE STANDARD TABLE OF tp_name1,
    wa_name1 TYPE tp_name1.
    DATA : t_lfa1 TYPE STANDARD TABLE OF lfa1,
    wa_lfa1 TYPE lfa1.
    DATA: hold_tabix TYPE sy-tabix.
    DATA : t_tlinetab TYPE STANDARD TABLE OF tline,
    wa_tlinetab TYPE tline.
    DATA: ws_name TYPE thead-tdname,
    ws_repid TYPE sy-repid VALUE 'YKTEST'.
    DATA : repid TYPE sy-repid.
    DATA : total TYPE p DECIMALS 2,
    quantity TYPE p DECIMALS 3.
    CONSTANTS : ws_id TYPE thead-tdid VALUE 'F01',
    ws_object TYPE thead-tdobject VALUE 'EKKO',
    lc_view(1) TYPE c VALUE 'F',
    lc_form(10) TYPE c VALUE 'YK_FORM'.
    *& ALV DECLARATION *
    TYPE-POOLS : slis.
    DATA: lt_fieldcat TYPE slis_t_fieldcat_alv,
    lf_fieldcat TYPE slis_fieldcat_alv.
    DATA: lh_index LIKE lf_fieldcat-col_pos.
    DATA: l_layout TYPE slis_layout_alv.
    DATA : l_sort TYPE slis_t_sortinfo_alv,
    w_sort TYPE slis_sortinfo_alv.
    *& SELECTION-SCREEN *
    SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.
    SELECTION-SCREEN SKIP 2.
    SELECT-OPTIONS: s_bukrs FOR ekko-bukrs OBLIGATORY.
    SELECT-OPTIONS: s_lifnr FOR ekko-lifnr OBLIGATORY.
    SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.
    PARAMETERS: p_bsart TYPE ekko-bsart.
    SELECT-OPTIONS: s_matnr FOR ekpo-matnr.
    SELECT-OPTIONS: s_ekorg FOR ekko-ekorg.
    SELECT-OPTIONS: s_ekgrp FOR ekko-ekgrp.
    SELECTION-SCREEN SKIP 2.
    SELECTION-SCREEN END OF BLOCK a1.
    *& START-OF-SELECTION *
    START-OF-SELECTION.
    FETCHING DATA
    PERFORM fetch_data.
    BUILD FIELD CATALOG
    PERFORM build_fieldcatalog.
    BUILD LAYOUT
    PERFORM build_layout.
    SORT LAYOUT
    PERFORM sort_layout.
    *& END-OF-SELECTION. *
    END-OF-SELECTION.
    *DISPLAY GRID
    PERFORM display_grid.
    *& Form fetch_data *
    FORM fetch_data.
    IF p_bsart IS INITIAL.
    SELECT ekko~bukrs
    ekko~lifnr
    ekko~ebeln
    ekko~waers
    ekko~bsart
    ekko~ekorg
    ekko~ekgrp
    ekpo~ebelp
    ekpo~txz01
    ekpo~matnr
    ekpo~werks
    ekpo~menge
    ekpo~meins
    ekpo~netpr
    ekpo~netwr
    INTO TABLE t_itab1 FROM
    ekko INNER JOIN ekpo ON ekkoebeln = ekpoebeln
    WHERE ekko~ebeln IN s_ebeln AND
    ekko~bukrs IN s_bukrs AND
    ekko~lifnr IN s_lifnr AND
    ekko~ekorg IN s_ekorg AND
    ekko~ekgrp IN s_ekgrp AND
    ekpo~matnr IN s_matnr.
    ELSE.
    SELECT ekko~bukrs
    ekko~lifnr
    ekko~ebeln
    ekko~waers
    ekko~bsart
    ekko~ekorg
    ekko~ekgrp
    ekpo~ebelp
    ekpo~txz01
    ekpo~matnr
    ekpo~werks
    ekpo~menge
    ekpo~meins
    ekpo~netpr
    ekpo~netwr
    INTO TABLE t_itab1 FROM
    ekko INNER JOIN ekpo ON ekkoebeln = ekpoebeln
    WHERE ekko~ebeln IN s_ebeln AND
    ekko~bukrs IN s_bukrs AND
    ekko~lifnr IN s_lifnr AND
    ekko~ekorg IN s_ekorg AND
    ekko~ekgrp IN s_ekgrp AND
    ekpo~matnr IN s_matnr AND
    ekko~bsart = p_bsart.
    ENDIF.
    IF NOT t_itab1[] IS INITIAL.
    FETCHING NAME1
    SELECT werks
    name1
    FROM t001w
    INTO TABLE t_name1
    FOR ALL ENTRIES IN t_itab1
    WHERE werks = t_itab1-werks.
    SORT t_itab1 BY werks.
    SORT t_name1 BY werks.
    IF sy-subrc = 0.
    LOOP AT t_itab1 INTO wa_itab1.
    hold_tabix = sy-tabix.
    READ TABLE t_name1 INTO wa_name1 WITH KEY werks = wa_itab1-werks
    BINARY SEARCH.
    IF sy-subrc = 0.
    wa_itab1-name1 = wa_name1-name1.
    MODIFY t_itab1 INDEX hold_tabix FROM wa_itab1.
    ENDIF.
    FETCHING HEADER TEXT
    MOVE wa_itab1-ebeln TO ws_name.
    CALL FUNCTION 'READ_TEXT'
    EXPORTING
    id = ws_id
    language = sy-langu
    name = ws_name
    object = ws_object
    TABLES
    lines = t_tlinetab
    EXCEPTIONS
    id = 1
    language = 2
    name = 3
    not_found = 4
    object = 5
    reference_check = 6
    wrong_access_to_archive = 7
    OTHERS = 8.
    IF sy-subrc = 0.
    LOOP AT t_tlinetab INTO wa_tlinetab.
    wa_itab1-header_text = wa_tlinetab-tdline.
    MODIFY t_itab1 FROM wa_itab1.
    ENDLOOP.
    ENDIF. " IF sy-subrc = 0.
    CLEAR : wa_itab1,
    hold_tabix,
    wa_name1.
    ENDLOOP.
    ENDIF.
    ENDIF. " IF NOT t_itab1[] IS INITIAL.
    IF t_itab1[] IS INITIAL.
    MESSAGE i000(zg) WITH text-008.
    ENDIF.
    SORT : t_itab1 BY bukrs lifnr ebeln ebelp.
    ENDFORM. " fetch_data
    *& Form build_fieldcatalog *
    FORM build_fieldcatalog .
    COMPANY CODE
    CLEAR lf_fieldcat.
    lf_fieldcat-fieldname = 'BUKRS'.
    lf_fieldcat-ref_tabname = 'EKKO'.
    lf_fieldcat-ref_fieldname = 'BUKRS'.
    lf_fieldcat-fix_column = 'X'.
    APPEND lf_fieldcat TO lt_fieldcat.
    VENDOR
    CLEAR lf_fieldcat.
    lf_fieldcat-fieldname = 'LIFNR'.
    lf_fieldcat-ref_tabname = 'EKKO'.
    lf_fieldcat-ref_fieldname = 'LIFNR'.
    lf_fieldcat-fix_column = 'X'.
    APPEND lf_fieldcat TO lt_fieldcat.
    PURCHASING DOCUMENT NUMBER
    CLEAR lf_fieldcat.
    lf_fieldcat-fieldname = 'EBELN'.
    lf_fieldcat-ref_tabname = 'EKKO'.
    lf_fieldcat-ref_fieldname = 'EBELN'.
    lf_fieldcat-key = 'X'.
    lf_fieldcat-do_sum = 'X'.
    lf_fieldcat-fix_column = 'X'.
    APPEND lf_fieldcat TO lt_fieldcat.
    ITEM NUMBER OF PURCHASING DOCUMENT
    CLEAR lf_fieldcat.
    lf_fieldcat-fieldname = 'EBELP'.
    lf_fieldcat-ref_tabname = 'EKPO'.
    lf_fieldcat-ref_fieldname = 'EBELP'.
    APPEND lf_fieldcat TO lt_fieldcat.
    SHORT TEXT
    CLEAR lf_fieldcat.
    lf_fieldcat-fieldname = 'TXZ01'.
    lf_fieldcat-ref_tabname = 'EKPO'.
    lf_fieldcat-ref_fieldname = 'TXZ01'.
    APPEND lf_fieldcat TO lt_fieldcat.
    MATERIAL NUMBER
    CLEAR lf_fieldcat.
    lf_fieldcat-fieldname = 'MATNR'.
    lf_fieldcat-ref_tabname = 'EKPO'.
    lf_fieldcat-ref_fieldname = 'MATNR'.
    APPEND lf_fieldcat TO lt_fieldcat.
    PLANT
    CLEAR lf_fieldcat.
    lf_fieldcat-fieldname = 'WERKS'.
    lf_fieldcat-ref_tabname = 'EKPO'.
    lf_fieldcat-ref_fieldname = 'WERKS'.
    APPEND lf_fieldcat TO lt_fieldcat.
    NAME
    CLEAR lf_fieldcat.
    lf_fieldcat-fieldname = 'NAME1'.
    lf_fieldcat-ref_tabname = 'T001W'.
    lf_fieldcat-ref_fieldname = 'NAME1'.
    APPEND lf_fieldcat TO lt_fieldcat.
    PURCHASE ORDER QUANTITY
    CLEAR lf_fieldcat.
    lf_fieldcat-fieldname = 'MENGE'.
    lf_fieldcat-ref_tabname = 'EKPO'.
    lf_fieldcat-ref_fieldname = 'MENGE'.
    lf_fieldcat-do_sum = 'X'.
    lf_fieldcat-qfieldname = 'MEINS'.
    APPEND lf_fieldcat TO lt_fieldcat.
    UNIT
    CLEAR lf_fieldcat.
    lf_fieldcat-fieldname = 'MEINS'.
    lf_fieldcat-ref_tabname = 'EKPO'.
    lf_fieldcat-ref_fieldname = 'MEINS'.
    APPEND lf_fieldcat TO lt_fieldcat.
    NET PRICE IN PURCHASING DOCUMENT
    CLEAR lf_fieldcat.
    lf_fieldcat-fieldname = 'NETPR'.
    lf_fieldcat-ref_tabname = 'EKPO'.
    lf_fieldcat-ref_fieldname = 'NETPR'.
    lf_fieldcat-cfieldname = 'WAERS'.
    lf_fieldcat-do_sum = 'X'.
    APPEND lf_fieldcat TO lt_fieldcat.
    NET ORDER VALUE IN PO CURRENCY
    CLEAR lf_fieldcat.
    lf_fieldcat-fieldname = 'NETWR'.
    lf_fieldcat-ref_tabname = 'EKPO'.
    lf_fieldcat-ref_fieldname = 'NETWR'.
    lf_fieldcat-cfieldname = 'WAERS'.
    lf_fieldcat-do_sum = 'X'.
    APPEND lf_fieldcat TO lt_fieldcat.
    CURRENCY
    CLEAR lf_fieldcat.
    lf_fieldcat-fieldname = 'WAERS'.
    lf_fieldcat-ref_tabname = 'EKKO'.
    lf_fieldcat-ref_fieldname = 'WAERS'.
    APPEND lf_fieldcat TO lt_fieldcat.
    HEADER TEXT
    CLEAR lf_fieldcat.
    lf_fieldcat-fieldname = 'HEADER_TEXT'.
    lf_fieldcat-seltext_m = 'Header Text'.
    APPEND lf_fieldcat TO lt_fieldcat.
    ENDFORM. " build_fieldcatalog
    *& Form display_grid *
    FORM display_grid.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = ws_repid
    i_callback_pf_status_set = 'PF_STATUS'
    i_callback_user_command = 'USER_COMMAND'
    is_layout = l_layout
    it_fieldcat = lt_fieldcat
    it_sort = l_sort
    i_save = 'X'
    IMPORTING
    TABLES
    t_outtab = t_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.
    ENDFORM. " display_grid
    *& Form build_layout *
    FORM build_layout .
    l_layout-colwidth_optimize = 'X'.
    l_layout-zebra = 'X'.
    l_layout-box_fieldname = 'CHK'.
    l_layout-box_tabname = 'T_ITAB1' .
    ENDFORM. " build_layout
    *& Form sort_layout *
    FORM sort_layout .
    CLEAR w_sort.
    w_sort-fieldname = 'BUKRS'.
    w_sort-tabname = 'T_ITAB1'.
    w_sort-spos = 1.
    w_sort-up = 'X'.
    w_sort-subtot = 'X'.
    APPEND w_sort TO l_sort.
    CLEAR w_sort.
    w_sort-fieldname = 'EBELN'.
    w_sort-tabname = 'T_ITAB1'.
    w_sort-spos = 1.
    w_sort-up = 'X'.
    w_sort-subtot = 'X'.
    APPEND w_sort TO l_sort.
    ENDFORM. " sort_layout
    *& Form PF_STATUS
    FORM pf_status USING rt_extab TYPE slis_t_extab.
    SET PF-STATUS 'STANDARD1' EXCLUDING rt_extab.
    ENDFORM. " PF_STATUS
    *& Form user_command
    FORM user_command USING s_ucomm TYPE sy-ucomm
    rs_selfield TYPE slis_selfield.
    CLEAR wa_itab1.
    READ TABLE t_itab1 INTO wa_itab1 INDEX rs_selfield-tabindex.
    CASE s_ucomm.
    WHEN 'POD'.
    SET PARAMETER ID 'BES' FIELD wa_itab1-ebeln.
    CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
    CLEAR wa_itab1.
    WHEN 'MAT'.
    SET PARAMETER ID 'MAT' FIELD wa_itab1-matnr.
    CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
    WHEN '&IC1'.
    IF rs_selfield-fieldname = 'MATNR'.
    SET PARAMETER ID 'MAT' FIELD wa_itab1-matnr.
    CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
    ELSEIF rs_selfield-fieldname = 'EBELN'.
    SET PARAMETER ID 'BES' FIELD wa_itab1-ebeln.
    CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
    ENDIF.
    WHEN 'PRINT'.
    PERFORM multiple_sel.
    PERFORM call_form.
    CLEAR : f_itab1, f_itab2.
    WHEN 'SMART'.
    PERFORM multiple_sel.
    PERFORM call_smartform.
    ENDCASE.
    ENDFORM. "user_command

  • Print Logo in Classic Report (Write Method,Not ALV)

    Hi All,
    I'm currently doing conversion of the All the Classic Report with addition of Header with 'LOGO'.
    I'm willing to find out that Function (CALL FUNCTION 'WWW_GET_MIME_OBJECT') is only able for display but not show out during printing.
    Is that any method, I can do it(Print with Logo) without conversion to SAP Script or Smartform that was exhausted.
    *Please take note is Classic Report with Write Method (Line by Line), Not ALV.
    Thank you all in advance
    Regards,
    Trevor Wong.

    Hi,
    It is possible to include logo in classical report but its not possible to print logo in classical report. It can be done in ALV's.
    Write  the code in Top-of-page event in ALV.
    The following is the code for inserting the logo in ALV.
    FORM TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
               I_LOGO             = 'ENJOYSAP_LOGO'
                IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
    ENDFORM.
    Regards
    Purnand

  • Report displayed based on Select List condition

    Hello,
    Any help would be appreciated.
    I have a report and a select list, P55_MISSING. The select list contains the column names in the table that the report displays.
    If I select one of the column names, I would like to display all records where that column name is null.
    The sql I have at the moment is:
    select
    "ID",
    "APPLICATION",
    "SHORT_DESCRIPTION",
    "DESCRIPTION",
    "OPC_NET_NAMES",
    "PROCESSING_SCHEDULE",
    "PROCESSING_REGULARITY",
    "PLATFORMS_INVOLVED",
    "UNIX_DIRECTORIES",
    "SOURCE_FILES",
    from "APP_METADATA"
    where :P55_MISSING IS NULL
    If I select 'source files' for example, I would expect to see 3 out of 4 records stored in the table. However, I receive the message 'no data found'.
    Any help would be great. Thank you.

    Hi
    In order to doe this you will have to use dynamic sql (so you have to change your report type to 'SQL Query (PL/SQL Function Body Returning SQL Query)').
    It would then look something like this...
    DECLARE
    l_sql VARCHAR2(32767);
    BEGIN
    l_sql := 'SELECT id,
                     application,
                     short_description,
                     description,
                     opc_net_names,
                     processing_schedule,
                     processing_regularity,
                     platforms_involved,
                     unix_directories,
                     source_file
              FROM   app_metadata
              WHERE ';
    l_sql := l_sql||:P55_MISSING||' IS NULL';
    RETURN l_sql;
    END;Sorry, I can't test this as I don't have your tables.
    Cheers
    Ben

  • How  2 increase line size of  classical report displayed thru  modular prog

    Hi guys,
    I have displayed a classical report through a modular program using LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 130.
    But now i want to increase the line-size of my classical report as only half of the report is getting displayed.
    I tried the following thing:-
    SY-LINSZ = 125.
    perform f_report_pass.
    *Print repost showing records which were not saved
    perform f_report_fail.
    LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 130.
    but that did not work.
    Please help me increase the line size.
    Regards
    Rahul Gambhir

    Hi Vasanth
    I am using a modular program hence there isnt any statement :-
    REPORT ZXXX NO STANDARD PAGEHEADING LINE-SIZE 255
    This is the code that I am using :-
    SY-LINSZ = 200.
    perform f_report_pass.
    *Print repost showing records which were not saved
    perform f_report_fail.
    LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 130.
    Regards
    Rahul

  • Display Logo in ALV LIST header

    Hi Experts!!
    I need the logo to be displayed in the header of ALV LIST but not the grid display. I searched for this, and got the results for ALV grid display. Kindly let me know if there's any way of printing the logo in the ALV List display. I hope that's possible with oops.
    Please help me out.
    Thanks and Regards,
    Seenu

    hello srinivas,
    Check the Examples in LIBS trxn,
    see the example One-Line List with Top of Page
    regards,
    Shweta

  • Classical Report display

    Hi,
    I need to display classical report with following layout
    Material     Jan         Feb        march        april -
    Total
    ABC
           SD     10         20             30                               60
           SE     10         20                                               30
    In my internal table I have month wise data.
    How to display it in one line under respective months.
    For e.g. in internal table I have two rows of SD with quantity is two different months. Now I need to display this in above format
    Please help.

    Hi Vanita,
    Check the following code, this is similar to your requirement...
    Row wise output:
         1.000     100.001
         1.000     100.002
         1.000     100.003
         1.000     100.003
         1.000     100.004
    Column wise output:
         1.000       1.000       1.000       1.000       1.000
       100.001     100.002     100.003     100.003     100.004
    TYPES: BEGIN OF ty_tab,
           a TYPE i,
           b TYPE i,
           END OF ty_tab.
    TYPES: BEGIN OF ty_fields,
           field TYPE c,
           END OF ty_fields.
    DATA: it_tab TYPE STANDARD TABLE OF ty_tab WITH HEADER LINE,
          it_fields TYPE STANDARD TABLE OF ty_fields, "Table which stores the field names
          wa_fields TYPE ty_fields,
          wa_tab TYPE ty_tab.
    DATA: w_value TYPE ty_fields-field.
    FIELD-SYMBOLS: <fs> TYPE ANY.
    wa_tab-a = 1000.
    wa_tab-b = 100001.
    APPEND wa_tab TO it_tab.
    wa_tab-a = 1000.
    wa_tab-b = 100002.
    APPEND wa_tab TO it_tab.
    wa_tab-a = 1000.
    wa_tab-b = 100003.
    APPEND wa_tab TO it_tab.
    wa_tab-a = 1000.
    wa_tab-b = 100003.
    APPEND wa_tab TO it_tab.
    wa_tab-a = 1000.
    wa_tab-b = 100004.
    APPEND wa_tab TO it_tab.
    wa_fields-field = 'A'. "In this example columns are A and B
    APPEND wa_fields TO it_fields.
    wa_fields-field = 'B'.
    APPEND wa_fields TO it_fields.
    WRITE:/ 'Row wise output:'.
    LOOP AT it_tab.
      WRITE: / it_tab-a,
               it_tab-b.
    ENDLOOP.
    WRITE:/,/, 'Column wise output:',/.
    LOOP AT it_fields INTO wa_fields. "Dispalying columnwise o/p
      w_value = wa_fields-field.
      LOOP AT it_tab INTO wa_tab.
        ASSIGN COMPONENT w_value OF STRUCTURE wa_tab TO <fs>.
        WRITE: <fs>.
        UNASSIGN <fs>.
      ENDLOOP.
      WRITE: /.
    ENDLOOP.
    Modify this example to ur requirement.
    Revert incase of any issues.
    Regards,
    Manoj Kumar P

  • Selecting one record to display from multiple in list

    I have a report that displays all staff names and dates of when they were checked so some staff have mulitple results as they are checked randomly.
    I need the report to only display the most recent check date from the mulitple results but there isnt a set criteria to select from - eg the last one for Joe bloggs within the past 30 days.
    How do i do this?

    Insert a group on {EMPLOYEE_TABLE.SURNAME}
    Now inorder to get the recent date you need to use group selection formula.
    Go to report>selection formula>group--> write the condition like this
    =maximum(,{EMPLOYEE_TABLE.SURNAME})
    Now the results show only the latest dates for each name.
    Regards,
    Raghavendra

  • Fields display in the ALV List

    Hi Experts,
    I am using 3.0f version, in my report i am using function module  LIST_DISPLAY.
    Newly i added 3 fields in the report. But these fileds are comming in the second row. But i want to display in the first row only. report line size is nearly 280.
    But in the 3.0f version, it not accepting more than 255( Line size).
    can any one tell me how to over come this problem.
    Thanks In Advance.
    Ur's
    Harsha.

    Hi,
    At the top of your main report program, there would be a statement
    REPORT ZTEST line-size 255.
    change it to
    REPORT ZTEST line-size 355.
    Best regards,
    Prashant

  • Classical Report Display Problem

    Dear Experts,
    I hv created a report for service order detail which contains lot of columns. To display i hv written following code:
    format color 3 intensified off.
       WRITE: /1(880) sy-uline.
       WRITE:  /1 sy-vline,2 'Sl.No.' color 3,8 sy-vline,
                9 'Maintenance Plan' color 3,25 sy-vline,
               26 'Notification No.' color 3, 42 sy-vline,
               43 'Order No.' color 3, 54 sy-vline.
          *bold* SET LEFT SCROLL-BOUNDARY.
        WRITE: 55 'Order Description' color 3, 96 sy-vline,
    But when i run the report and  scroll horizontally, it scroll to left but also display the first character of column of order description like 'O' and and all rows of the same column.
    Can anyone help me in this.
    Regards,
    Maverick

    Hi
    Try
    SET LEFT SCROLL-BOUNDARY COLUMN 54.
    Pushpraj

  • Regarding Runtime error in ALV List Display.

    am using following to display data in ALV List.
    but after executing of program am getting runtime error called 'Field Symbol has Not been assigned' .
    please tell me how to correct the error.
    Very urgent
    Suitable answers rewarded with Maximum Ponits...
    REPORT  zmatrix.
    TYPE-POOLS: slis.
    TABLES: agr_define, sza5_d0700.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-006.
    SELECT-OPTIONS: s_role FOR agr_define-agr_name OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1.
                           D A T A                                       *
    TYPES: BEGIN OF ty_agr_1251_inf,
           agr_name TYPE agr_1251-agr_name,
           object   TYPE agr_1251-object,
           field    TYPE agr_1251-field,
           low(20)  TYPE c,
           high     TYPE agr_1251-high,
           infty    TYPE t582s-infty,
           itext    TYPE t582s-itext,
           END OF ty_agr_1251_inf.
    TYPES: BEGIN OF ty_agr_1251_tcode,
           agr_name TYPE agr_1251-agr_name,
           object   TYPE agr_1251-object,
           field    TYPE agr_1251-field,
           low(20)  TYPE c,
           high     TYPE agr_1251-high,
           tcode    TYPE tstct-tcode,
           ttext    TYPE tstct-ttext,
           END OF ty_agr_1251_tcode.
    TYPES: BEGIN OF ty_t582s,
           infty TYPE agval,
           itext TYPE t582s-itext,
           END OF ty_t582s.
    TYPES: BEGIN OF ty_code,
           tcode TYPE tstct-tcode,
           ttext TYPE ttext_stct,
    END OF ty_code.
    TYPES: BEGIN OF ty_inf,
           infty TYPE t582s-infty,
           itext TYPE t582s-itext,
           END OF ty_inf.
    TYPES: BEGIN OF ty_role,
           agr_name TYPE agr_1251-agr_name,
           END OF ty_role.
    TYPES: BEGIN OF tys_role_dtls,
             agr_name  TYPE agr_name,
             value     TYPE c,
             property  TYPE c,
           END  OF tys_role_dtls.
    TYPES: BEGIN OF tys_infotype_final,
           text(60),
           text1(60),
           value(4),
           END OF tys_infotype_final.
                        I N T E R N A L   T A B L E S                    *
    DATA: wa_infotyp_final TYPE tys_infotype_final.
    DATA: t_infotyp_final TYPE TABLE OF tys_infotype_final.
    DATA: BEGIN OF wa_infotyp_dtls,
             infty     TYPE infty,
             itext     TYPE intxt,
             role_dtls TYPE TABLE OF tys_role_dtls,
          END OF wa_infotyp_dtls.
    DATA: BEGIN OF wa_tcode_dtls,
             tcode     TYPE tcode,
             ttext     TYPE ttext_stct,
             role_dtls TYPE TABLE OF tys_role_dtls,
           END OF wa_tcode_dtls.
    DATA: t_infotyp_dtls      LIKE   TABLE OF wa_infotyp_dtls,
          t_tcode_dtls        LIKE   TABLE OF wa_tcode_dtls,
          t_role_dtls         TYPE   TABLE OF tys_role_dtls,
          wa_role_dtls        TYPE   tys_role_dtls.
    DATA: wa_inf              TYPE   ty_inf,
          t_inf               TYPE   STANDARD TABLE OF ty_inf.
    DATA: wa_role             TYPE   ty_role,
          t_role              TYPE   STANDARD TABLE OF ty_role.
    DATA: wa_tcode            TYPE   ty_code,
          t_tcode             TYPE   TABLE OF ty_code.
    DATA: wa_agr_1251_inf     TYPE   ty_agr_1251_inf.
    DATA: wa_agr_1251_tcode   TYPE   ty_agr_1251_tcode.
    DATA: t_agr_1251_inf      TYPE STANDARD TABLE OF ty_agr_1251_inf.
    DATA: t_agr_1251_tc       TYPE STANDARD TABLE OF ty_agr_1251_tcode.
    DATA: wa_582s             TYPE   ty_t582s.
    DATA: t_582s              TYPE STANDARD TABLE OF ty_t582s.
    DATA: t_range_tcode       TYPE RANGE OF tcode.
    DATA: t_range_inf         TYPE RANGE OF infotyp.
    DATA: wa_range_inf        LIKE LINE OF t_range_inf.
    DATA: wa_range_tcode      LIKE LINE OF t_range_tcode.
    DATA: wa_field TYPE slis_fieldcat_alv.
    DATA: t_field TYPE slis_t_fieldcat_alv.
                      VARIABLES FOR OLE                                  *
    DATA: text(20),
          count(20).
    DATA: text1(30).
    DATA: agr_name       TYPE   agr_1251-agr_name.
    DATA: flag           TYPE   i VALUE '0'.
    DATA: string1        TYPE   string.
    DATA: str            TYPE   string VALUE 'SAP%'.
    DATA: count1         TYPE   i VALUE '0'.
    *&   Event START-OF-SELECTION
    START-OF-SELECTION.
      PERFORM f100_get_inf_data.
      PERFORM f200_process_inf_data.
      count1 = 1.
      PERFORM f300_prepare_field_catalog.
      PERFORM f110_main_data.
      PERFORM f400_display_data.
      PERFORM  f100_get_trans_data.
    *&      Form  f110_main_data
          text
    FORM f110_main_data.
      wa_infotyp_final-text = 'Access to Infotypes'.
      APPEND wa_infotyp_final TO t_infotyp_final.
      wa_infotyp_final-text = 'Infotype'.
      wa_infotyp_final-text1 = 'Description'.
      APPEND wa_infotyp_final TO t_infotyp_final.
      wa_infotyp_final-text = '*'.
      wa_infotyp_final-text1 = 'Acess to all Infotypes'.
    LOOP AT t_role INTO wa_role WHERE agr_name <> ' '.
       READ TABLE t_agr_1251_inf INTO wa_agr_1251_inf
       WITH KEY agr_name = wa_role-agr_name field = 'INFTY' low = '*'.
       IF syst-subrc = 0.
         wa_infotyp_final-value = 'X'.
       ENDIF.
    ENDLOOP.
      APPEND wa_infotyp_final TO t_infotyp_final.
      LOOP AT t_inf INTO wa_inf WHERE infty <> ' '.
        wa_infotyp_final-text = wa_inf-infty.
        wa_infotyp_final-text1 = wa_inf-itext.
        LOOP AT t_role INTO wa_role WHERE agr_name <> ' '.
       Role Name
          CLEAR wa_role_dtls.
          flag = 1.
          wa_role_dtls-agr_name =  wa_role-agr_name.
        For Value D & F
          READ TABLE t_agr_1251_inf INTO wa_agr_1251_inf
          WITH KEY agr_name = wa_role-agr_name field = 'AUTHC'..
          IF syst-subrc EQ 0.
            IF wa_agr_1251_inf-low = 'R'.
              wa_infotyp_final-value = 'D'.
            ELSE.
              wa_infotyp_final-value = 'F'.
            ENDIF.
          ENDIF.
          APPEND wa_role_dtls TO t_role_dtls.
          APPEND wa_infotyp_final TO t_infotyp_final.
        ENDLOOP.
      ENDLOOP.
    ENDFORM.                    "f110_main_data
    *&      Form  f100_get_inf_data
          text
    FORM f100_get_inf_data.
                          Logic for Infotypes                            *
      SELECT aagr_name aobject
             afield alow a~high
             INTO TABLE t_agr_1251_inf
             FROM agr_1251 AS a INNER JOIN agr_define AS b
             ON aagr_name EQ bagr_name
      WHERE ( ( aobject EQ 'P_ORGIN' OR aobject EQ 'P_PERNR' )
      AND   ( aagr_name IN s_role ) AND ( bagr_name NOT LIKE str ) ).
    ENDFORM.                    "f100_get_inf_data
    *&      Form  f200_get_inf_process_data
          text
    FORM f200_process_inf_data.
      LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.
        IF wa_agr_1251_inf-high IS INITIAL.
          CLEAR wa_range_inf.
          wa_range_inf-sign = 'I'.
          wa_range_inf-option = 'EQ'.
          wa_range_inf-low = wa_agr_1251_inf-low.
          APPEND wa_range_inf TO t_range_inf.
        ELSE.
          CLEAR wa_range_inf.
          wa_range_inf-sign = 'I'.
          wa_range_inf-option = 'BT'.
          wa_range_inf-low = wa_agr_1251_inf-low.
          wa_range_inf-high = wa_agr_1251_inf-high.
          APPEND wa_range_inf TO t_range_inf.
        ENDIF.
      ENDLOOP.
      SORT t_range_inf.
      DELETE ADJACENT DUPLICATES FROM t_range_inf.
      IF t_range_inf IS NOT INITIAL.
        SELECT infty itext FROM t582s
        INTO TABLE t_582s
        WHERE sprsl = 'EN' AND infty IN t_range_inf.
        IF syst-subrc EQ 0.
        ENDIF.
      ENDIF.
      LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.
        IF wa_agr_1251_inf-high IS INITIAL.
          READ TABLE t_582s INTO wa_582s
            WITH KEY infty = wa_agr_1251_inf-low.
          IF syst-subrc EQ 0.
            wa_agr_1251_inf-infty = wa_582s-infty.
            wa_agr_1251_inf-itext = wa_582s-itext.
            MODIFY t_agr_1251_inf FROM wa_agr_1251_inf
                         TRANSPORTING infty itext.
            IF syst-subrc EQ 0.
            ENDIF.
          ENDIF.
        ELSE.
          CLEAR count.
          LOOP AT t_582s INTO wa_582s
                  WHERE infty GE wa_agr_1251_inf-low
                    AND infty LE wa_agr_1251_inf-high.
            IF count LE 1.
              wa_agr_1251_inf-high = space.
              wa_agr_1251_inf-infty = wa_582s-infty.
              wa_agr_1251_inf-itext = wa_582s-itext.
              MODIFY t_agr_1251_inf FROM wa_agr_1251_inf
                           TRANSPORTING infty itext.
              IF syst-subrc EQ 0.
                CLEAR wa_582s.
              ENDIF.
            ELSE.
              wa_agr_1251_inf-high = space.
              wa_agr_1251_inf-infty = wa_582s-infty.
              wa_agr_1251_inf-itext = wa_582s-itext.
              APPEND wa_agr_1251_inf TO t_agr_1251_inf.
            ENDIF.
            CLEAR wa_agr_1251_inf.
            count = count + 1.
          ENDLOOP.
        ENDIF.
      ENDLOOP.
      wa_role-agr_name = ' '.
      APPEND wa_role TO t_role.
      wa_role-agr_name = ' '.
      APPEND wa_role TO t_role.
      LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.
        IF wa_agr_1251_inf IS NOT INITIAL.
          wa_role-agr_name = wa_agr_1251_inf-agr_name.
          wa_inf-infty = wa_agr_1251_inf-infty.
          wa_inf-itext = wa_agr_1251_inf-itext.
          APPEND wa_role TO t_role.
          APPEND wa_inf TO t_inf.
        ENDIF.
      ENDLOOP.
      SORT t_role BY agr_name.
      DELETE ADJACENT DUPLICATES FROM t_role.
      SORT t_inf BY infty.
      DELETE ADJACENT DUPLICATES FROM t_inf.
    ENDFORM.                    "f200_get_process_inf_data
    *&      Form  f100_get_trans_data
          text
    FORM  f100_get_trans_data.
                  Logic for Transaction Codes                            *
      SELECT aagr_name aobject
               afield alow a~high
        INTO CORRESPONDING FIELDS OF TABLE t_agr_1251_tc
        FROM agr_1251 AS a
        INNER JOIN agr_define AS b ON aagr_name EQ bagr_name
        WHERE a~agr_name IN s_role
          AND a~object EQ 'S_TCODE'.
    ENDFORM.                    "f100_get_trans_data
    *&      Form  f200_process_trans_data
          text
    FORM f200_process_trans_data.
      LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.
        IF wa_agr_1251_tcode-high IS INITIAL.
          CLEAR wa_range_tcode.
          wa_range_tcode-sign = 'I'.
          wa_range_tcode-option = 'EQ'.
          wa_range_tcode-low = wa_agr_1251_tcode-low.
          APPEND wa_range_tcode TO t_range_tcode.
        ELSE.
          CLEAR wa_range_tcode.
          wa_range_tcode-sign = 'I'.
          wa_range_tcode-option = 'BT'.
          wa_range_tcode-low = wa_agr_1251_tcode-low.
          wa_range_tcode-high = wa_agr_1251_tcode-high.
          APPEND wa_range_tcode TO t_range_tcode.
        ENDIF.
      ENDLOOP.
      SORT t_range_tcode.
      DELETE ADJACENT DUPLICATES FROM t_range_tcode.
      IF t_range_tcode IS NOT INITIAL.
        SELECT tcode
               ttext
          FROM tstct
          INTO TABLE t_tcode
          WHERE sprsl EQ 'E'
            AND tcode IN t_range_tcode.
        IF sy-subrc EQ 0.
        ENDIF.
      ENDIF.
      SORT t_agr_1251_tc BY agr_name.
      LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.
        IF wa_agr_1251_tcode-high IS INITIAL.
          READ TABLE t_tcode INTO wa_tcode
            WITH KEY tcode = wa_agr_1251_tcode-low.
          IF syst-subrc EQ 0.
            wa_agr_1251_tcode-tcode = wa_tcode-tcode.
            wa_agr_1251_tcode-ttext = wa_tcode-ttext.
            MODIFY t_agr_1251_tc FROM wa_agr_1251_tcode
                         TRANSPORTING tcode ttext.
            IF syst-subrc EQ 0.
            ENDIF.
          ENDIF.
        ELSE.
          CLEAR count.
          LOOP AT t_tcode INTO wa_tcode
                  WHERE tcode GE wa_agr_1251_tcode-low
                    AND tcode LE wa_agr_1251_tcode-high.
            IF count LE 1.
              agr_name  = wa_agr_1251_tcode-agr_name.
              wa_agr_1251_tcode-high = space.
              wa_agr_1251_tcode-tcode = wa_tcode-tcode.
              wa_agr_1251_tcode-ttext = wa_tcode-ttext.
              MODIFY t_agr_1251_tc FROM wa_agr_1251_tcode
                           TRANSPORTING tcode ttext high.
              IF syst-subrc EQ 0.
                CLEAR wa_tcode.
              ENDIF.
              count = 1.
            ELSE.
              wa_agr_1251_tcode-high = space.
              wa_agr_1251_tcode-agr_name = agr_name.
              wa_agr_1251_tcode-low =  wa_tcode-tcode.
              wa_agr_1251_tcode-tcode = wa_tcode-tcode.
              wa_agr_1251_tcode-ttext = wa_tcode-ttext.
              APPEND wa_agr_1251_tcode TO t_agr_1251_tc.
            ENDIF.
            CLEAR wa_agr_1251_tcode.
            count = count + 1.
          ENDLOOP.
        ENDIF.
      ENDLOOP.
      LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.
        wa_role-agr_name = wa_agr_1251_tcode-agr_name.
        APPEND wa_role TO t_role.
      ENDLOOP.
      SORT t_role BY agr_name.
      DELETE ADJACENT DUPLICATES FROM t_role.
      SORT t_tcode BY tcode.
      DELETE ADJACENT DUPLICATES FROM t_tcode.
    ENDFORM.                    "f200_process_trans_data
    *&      Form  f100_prepare_field_catalog
          text
    FORM f300_prepare_field_catalog.
      LOOP AT t_role INTO wa_role.
        wa_field-col_pos = count1.
        wa_field-fieldname = wa_role-agr_name.
        APPEND wa_field TO t_field.
        count1 = count1 + 1.
      ENDLOOP.
    ENDFORM.                    "f100_prepare_field_catalog
    *&      Form  f100_display_data
          text
    FORM f400_display_data.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
                EXPORTING
                I_INTERFACE_CHECK              = ' '
                I_BYPASSING_BUFFER             =
                I_BUFFER_ACTIVE                = ' '
                  i_callback_program             = sy-cprog
                I_CALLBACK_PF_STATUS_SET       = ' '
                I_CALLBACK_USER_COMMAND        = ' '
                I_STRUCTURE_NAME               =
                IS_LAYOUT                      =
                  it_fieldcat                    = t_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
                IR_SALV_LIST_ADAPTER           =
                IT_EXCEPT_QINFO                =
                I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
              IMPORTING
                E_EXIT_CAUSED_BY_CALLER        =
                ES_EXIT_CAUSED_BY_USER         =
                  TABLES
                    t_outtab                       = t_infotyp_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.                    "f100_display_data

    this are the wasy u can build a field catalog...
    1.----
    FORM fill_fieldcat .
    DATA: fld(30),
    idx(2) TYPE n.
    DEFINE no_output.
    fieldcatalog-fieldname = &1.
    fieldcatalog-no_out = 'X'.
    append fieldcatalog to fieldcatalog.
    clear fieldcatalog.
    END-OF-DEFINITION.
    DEFINE catalog.
    fieldcatalog-fieldname = &1.
    fieldcatalog-seltext_s = &2.
    if not &3 is initial.
    fieldcatalog-seltext_m = &3.
    else.
    fieldcatalog-seltext_m = fieldcatalog-seltext_s.
    endif.
    if not &4 is initial.
    fieldcatalog-seltext_l = &4.
    else.
    fieldcatalog-seltext_l = fieldcatalog-seltext_m.
    endif.
    append fieldcatalog to fieldcatalog.
    clear fieldcatalog.
    END-OF-DEFINITION.
    catalog 'AVAIL_BASE'
    'Base Qty.'
    'Base Qty. Available'
    'Base Quantity Available'.
    catalog 'AVAIL_SALES'
    'Sales Qty.'
    'Sales Qty. Available'
    'Sales Quantity Available'.
    LOOP AT t_char_data.
    idx = sy-tabix.
    CONCATENATE 'CHR' idx INTO fld.
    catalog fld
    t_char_data-atbez
    t_char_data-atbez
    t_char_data-atbez.
    ENDLOOP.
    ADD 1 TO idx.
    WHILE idx LE 15.
    CONCATENATE 'CHR' idx INTO fld.
    no_output fld.
    ADD 1 TO idx.
    ENDWHILE..
    fieldcatalog-fieldname = 'EXACT'.
    fieldcatalog-checkbox = 'X'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    2.----
    FORM fieldcatalog.
    REFRESH fc. CLEAR fc.
    fc-tabname = 'HEADER'.
    fc-fieldname = 'KUNNR'.
    fc-ref_tabname = 'MSKU'.
    APPEND fc. CLEAR fc.
    fc-tabname = 'HEADER'.
    fc-fieldname = 'NAME1_K'.
    fc-ref_tabname = 'KNA1'.
    fc-ref_fieldname = 'NAME1'.
    APPEND fc. CLEAR fc.
    fc-tabname = 'HEADER'.
    fc-fieldname = 'TOTAL'.
    fc-ref_tabname = 'MBEW'.
    fc-ref_fieldname = 'SALK3'.
    APPEND fc. CLEAR fc.
    fc-tabname = 'LIST'.
    fc-fieldname = 'MATNR'.
    fc-ref_tabname = 'MSKU'.
    APPEND fc. CLEAR fc.
    fc-tabname = 'LIST'.
    fc-fieldname = 'MAKTX'.
    fc-ref_tabname = 'MAKT'.
    fc-no_out = 'X'.
    APPEND fc. CLEAR fc.
    fc-tabname = 'LIST'.
    fc-fieldname = 'CHARG'.
    fc-ref_tabname = 'MSKU'.
    APPEND fc. CLEAR fc.
    fc-tabname = 'LIST'.
    fc-fieldname = 'WERKS'.
    fc-ref_tabname = 'MSKU'.
    fc-no_out = 'X'.
    APPEND fc. CLEAR fc.
    fc-tabname = 'LIST'.
    fc-fieldname = 'NAME1_W'.
    fc-ref_tabname = 'T001W'.
    fc-ref_fieldname = 'NAME1'.
    fc-no_out = 'X'.
    APPEND fc. CLEAR fc.

  • How to edit particular field in alv list display-urgent

    HI ALL,
    my requirement is i am displaying output using alv list display. now my rewuirement :
    i am displaying out in edit mode only. when user clicks one particular field
    for example record is like
    runrate a01 maheed  -> if user clicks on a01 this field should be editable. i have a following code
      w_field-edit = w_edit.
      w_field-input = 'X'.    -> using this code i can able to display entire colomn in edit mode. this not suits my requirement.anybody can send me the sample code please.
    thanks,
    maheedhar.t

    Can you please send me the sample code plz.
    i am sending my code below.
    type-pools : slis.
    tables : zuser_secobjects.
    data : t_header1 like zuser_secobjects.
    data : begin of it_secobjects occurs 0.
            include structure t_header1.
    data :   checkbox type c value 'X',
            action type c,
          end of it_secobjects.
    data : begin of it_secobjects1 occurs 0.
            include structure ZUSER_SECOBJECTS.
    data :   checkbox type c VALUE 'X',
          end of it_secobjects1.
    data : wa_ita like line of it_secobjects.
    data : i_field type slis_t_fieldcat_alv with header line.
    data : w_field like line of i_field.
    data : i_sort type slis_t_sortinfo_alv.
    data : w_sort like line of i_sort.
    data : it_filt1 type slis_t_filter_alv with header line.
    data:
    i_tabname type tabname,
    i_repid like sy-repid,
    is_lout type slis_layout_alv.
    data :   it_filt type slis_t_filter_alv   with header line,
             it_evts type slis_t_event        with header line.
    DATA : is_vari type disvariant.
    constants :   c_default_vari value 'X',
                  c_save_vari    value 'U',
                   c_checkfield type slis_fieldname     value 'ACTION',
                   c_f2code     type sy-ucomm           value '&ETA'.
    data : chk_box type slis_fieldname.
    selection-screen: begin of block b1 with frame title text-t01.
    parameters : p_appln type zuser_secobjects-appln.
    parameters : p_user type usr02-bname, "zuser_secobjects-appln_user,
    p_partnr type zuser_secobjects-appln_partner,
    p_ptype type zuser_secobjects-partner_type default '02',
    p_upostn type zuser_secobjects-user_position,
    p_sdate like likp-erdat default sy-datum,
    p_edate(10) default '12/31/9999',
    p_revnum type zuser_secobjects-revnum,
    p_cted type zuser_secobjects-created_by,
    p_cdate type zuser_secobjects-creation_date,
    p_ctime type zuser_secobjects-creation_time,
    p_chnby type zuser_secobjects-changed_by,
    p_cdate1 type zuser_secobjects-changed_date,
    p_ctime1 type zuser_secobjects-changed_time.
    selection-screen: end of block b1.
    form user_command using p_ucomm like sy-ucomm
    rs_selfield type slis_selfield.
      case p_ucomm.
        when 'SELECT_ALL'. " SELALL is the FCODE of ur push button
          loop at it_secobjects into wa_ita.
            wa_ita-checkbox = 'X'.
            modify it_secobjects from wa_ita.
          endloop.
      rs_selfield-refresh = 'X'.   "<-  ADD THIS
      when 'DESLCT_ALL'.
        loop at it_secobjects into wa_ita.
            wa_ita-checkbox = ' '.
            modify it_secobjects from wa_ita.
          endloop.
    rs_selfield-refresh = 'X'.   "<-  ADD THIS
       is_lout-f2code               = c_f2code.
       is_lout-box_fieldname        = c_checkfield.
       is_lout-get_selinfos         = 'X'.
       is_lout-detail_popup         = 'X'.
       is_lout-detail_initial_lines = 'X'.
    maheed-start.
    *when 'SAVE'.
    *LOOP AT IT_SECOBJECTS WHERE CHECKBOX = 'X'.
    MOVE-CORRESPONDING IT_SECOBJECTS TO IT_SECOBJECTS1.
    APPEND IT_SECOBJECTS1.
    CLEAR IT_SECOBJECTS1.
    DELETE IT_SECOBJECTS.
    *ENDLOOP.
    *DELETE ZUSER_SECOBJECTS FROM TABLE IT_SECOBJECTS1.
    WHEN 'DELETE'.
        loop at it_SECOBJECTS where checkbox eq 'X'.
            delete it_SECOBJECTS.
        endloop.
    *RS_SELFIELD-REFRESH = 'X'.
    maheed-end.
    maheed-start.  apr 13
    WHEN 'DELETE'.
    loop at it_SECOBJECTS where checkbox eq 'X'.
    MOVE-CORRESPONDING IT_SECOBJECTS TO IT_SECOBJECTS1.
    APPEND IT_SECOBJECTS1.
    delete it_SECOBJECTS.
    endloop.
    RS_SELFIELD-REFRESH = 'X'.
    when 'SAVE'.
    DELETE ZUSER_SECOBJECTS FROM TABLE IT_SECOBJECTS1.
    commit work.
    refresh :IT_SECOBJECTS1.
    maheed-end.    apr 13
    *when 'SAVE'.
    *LOOP AT IT_SECOBJECTS WHERE CHECKBOX = 'X'.
    MOVE-CORRESPONDING IT_SECOBJECTS TO IT_SECOBJECTS1.
    APPEND IT_SECOBJECTS1.
    CLEAR IT_SECOBJECTS1.
    DELETE IT_SECOBJECTS.
    *ENDLOOP.
    *DELETE ZUSER_SECOBJECTS FROM TABLE IT_SECOBJECTS1.
    ENDCASE.
    endform.
    *&      Form  delete
    form delete.
      data : begin of is_secobjects occurs 0.
              include structure zuser_secobjects.
      data : checkbox type c.
      data : end of is_secobjects.
      is_secobjects-checkbox = 'X'.
      modify is_secobjects
        from it_secobjects
        transporting checkbox
      where checkbox = 'X'.
    endform.
    *&      Form  get_data
    form get_data.
      select * from zuser_secobjects
      into table it_secobjects.
    endform.                    " get_data
    *&      Form  prepare_fieldcatalog
          text
    -->  p1        text
    <--  p2        text
    form prepare_fieldcatalog." USING w_edit TYPE any.
    data : w_edit type c.
    clear w_edit.
      clear: w_field,i_field.
      refresh:i_field.
      i_field-key = 'X'.
      i_field-col_pos = 1.
      i_field-ddictxt = 'S'.
      i_field-seltext_s = '@11@'.
    i_field-checkbox = 'X'.
      i_field-input = 'X'.
      i_field-fieldname = 'HEADER'.
      i_field-outputlen = 0.
      append i_field.
      clear i_field.
      w_field-fieldname = 'APPLN'.
      w_field-tabname = 'IT_SECOBJECTS'.
      w_field-seltext_l = text-m01.
      w_field-outputlen = '10'.
      w_field-EDIT = 'X'.      "maheed
      w_field-col_pos = 1.
      append w_field to i_field.
      clear w_field.
      w_field-fieldname = 'APPLN_USER'.
      w_field-tabname = 'IT_SECOBJECTS'.
      w_field-just = 'C'.
      w_field-seltext_l = text-m02.
      w_field-outputlen = '7'.
      w_field-col_pos = 2.
      append w_field to i_field.
      clear w_field.
      w_field-fieldname = 'APPLN_PARTNER'.
      w_field-tabname = 'IT_SECOBJECTS'.
      w_field-just = 'C'.
      w_field-seltext_l = text-m03.
      w_field-edit = w_edit.
      w_field-input = 'X'.
      w_field-outputlen = '7'.
      w_field-col_pos = 2.
      append w_field to i_field.
      clear w_field.
      w_field-fieldname = 'INACTIVE'.
      w_field-tabname = 'IT_SECOBJECTS'.
      w_field-just = 'C'.
      w_field-seltext_l = text-m02.
      w_field-outputlen = '7'.
      w_field-col_pos = 3.
      append w_field to i_field.
      clear w_field.
    endform.                    " prepare_fieldcatalog
    *&      Form  ALV_LIST_DISPLAY
          text
    -->  p1        text
    <--  p2        text
    form alv_list_display.
    DATA : LC_GLAY TYPE LVC_S_GLAY.
    LC_GLAY-EDT_CLL_CB = 'X'.
      i_repid = sy-repid.
      is_lout-box_fieldname = 'CHECKBOX'.
      it_filt-fieldname = 'ACTION'.
      call function 'REUSE_ALV_LIST_DISPLAY'
           exporting
                i_callback_program       = i_repid
                i_callback_pf_status_set = 'PF_STATUS_SET'
                i_callback_user_command  = 'USER_COMMAND'
                is_layout                = is_lout
                it_fieldcat              = i_field[]
                it_filter                = it_filt[]
                 it_events                = it_evts[]
                i_default                = c_default_vari
                i_save                   = c_save_vari
                is_variant               = is_vari
           tables
                t_outtab                 = it_secobjects.
    endform.                    " ALV_LIST_DISPLAY
    *&      Form  display
          text
         -->P_I_OBJECT  text
    form display using    object.
      case object.
    ENDCASE.
    endform.                    " display
    thanks,
    maheedhar.t

  • Refresh classic report based on select list value selected

    hello,
    can anyone please help me out with this issue. I have a parameterized classic report based on a select list and I want to refresh this report whenever the select list value is changed. I am using oracle apex version 3.2. i just want to have a javascript function onchange event for the select list which refreshes my report whenever a value is selected.
    My select list item is p1_datastore
    select distinct datastore d,datastore r from my_table1 order by 1;
    My classic report query is
    select * from my_table2 where datastore = :p1_datastore order by last_updated_dt desc;
    ****************************************************thanks,
    orton

    can anyone please help me out with this issue.
    thanks,
    orton

Maybe you are looking for