ALV Interactive report! Need Simple Logic

Hi!
   Can any one tell me the simple logic (steps) to be followed in developing alv interactive report
  NO CODING PLEASE
  Thanks
  Imran

Hi Imran,
    Here i am trying to explain through the standard ALV FMs...
1) You will do the same coding as how you will do for normal ALV through FMs.
2)  Create an event type variable of type - SLIS_T_EVENT
3) Call function module REUSE_ALV_EVENTS_GET to get all the events like 'USER COMMAND'
4) Fill the internal table with the form name against USER COMMAND event.
5) create FORM & ENDFORM for the USER COMMAND event.
6) With in the form which you created in 5th step, create a variable of type - SLIS_SELFIELD, to capture user click information like on which field name & value user clicked.
7) When you press on Base list of ALV, SY-UCOMM value will be &IC1, based on that you can validate whether user clicked or not on base list.
8) Again you will populate the internal tables with required entries for the interactive list and we will call REUSE_ALV fm once again.
I hope you understand the process, if not please get back to me.
Regards,
Donepudi
Reward if its helpful.

Similar Messages

  • SIMPLE DOUBT IN ALV INTERACTIVE REPORTING

    HI EXPERETS,
    This is part of code in alv interactive reporting.
    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
    RS_SELFIELD TYPE SLIS_SELFIELD.
      CASE R_UCOMM.
        WHEN '&IC1'.
          READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
          PERFORM BUILD_FIELDCATLOG_EKPO.
          PERFORM EVENT_CALL_EKPO.
          PERFORM POPULATE_EVENT_EKPO.
          PERFORM DATA_RETRIEVAL_EKPO.
          PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
          PERFORM DISPLAY_ALV_EKPO.
      ENDCASE.
    ENDFORM.                    "user_command
    In This i didn't get wat's the meaning of    WHEN '&IC1'.What is
    actually &IC1 means.
    plz help me.
    Regards
    Suresh kumar

    HI
    PLZ REFER TO THIS
    *& Report  ZTESTDEMO_INTERACTIVE_LIST_2
    REPORT  ZTESTDEMO_INTERACTIVE_LIST_2.
    TABLES: MARA,MARC,MARD.
    * internal table itab_mara 3 fields matnr, ernam,mtart
    DATA: BEGIN OF ITAB_MARA OCCURS 0,
    MATNR LIKE MARA-MATNR,  " material number
    ERNAM LIKE MARA-ERNAM,  " name of person who create
    MTART LIKE MARA-MTART,  " Material Type
    END OF ITAB_MARA.
    * internal table itab_marc 3 fields matnr, werks,lvorm
    DATA: BEGIN OF ITAB_MARC OCCURS 0,
    MATNR LIKE MARC-MATNR,
    WERKS LIKE MARC-WERKS,  " Plant
    LVORM LIKE MARC-LVORM,  " Flag Material for Deletion at Plant Level
    END OF ITAB_MARC.
    * internal table itab_mard 2 fields
    DATA: BEGIN OF ITAB_MARD OCCURS 0,
    MATNR LIKE MARD-MATNR,
    LGORT LIKE MARD-LGORT,  " Storage Location
    END OF ITAB_MARD.
    SELECT-OPTIONS: S_MTART FOR MARA-MTART.
    INITIALIZATION.
    S_MTART-LOW = 'HALB'.
    S_MTART-HIGH = 'HAWA'.
    S_MTART-OPTION = 'BT'.
    APPEND S_MTART.
    START-OF-SELECTION.
    SELECT MATNR ERNAM MTART FROM MARA INTO TABLE ITAB_MARA WHERE MTART IN
    S_MTART.
    PERFORM DISPLAY.
    TOP-OF-PAGE.
    WRITE:/2(15) 'MATERIAL NO',20(20) 'CREATED BY',45(15) 'MATERIAL TYPE'.
    FORM DISPLAY.
    LOOP AT ITAB_MARA.
    WRITE:/ ITAB_MARA-MATNR UNDER 'MATERIAL NO' HOTSPOT ON,ITAB_MARA-ERNAM
    UNDER 'CREATED BY',ITAB_MARA-MTART UNDER 'MATERIAL TYPE'.
    HIDE: ITAB_MARA-MATNR.
    ENDLOOP.
    ENDFORM.
    AT LINE-SELECTION.
    CASE SY-LSIND.
    WHEN 1.
    SELECT MATNR WERKS LVORM FROM MARC INTO TABLE ITAB_MARC WHERE MATNR =
    ITAB_MARA-MATNR.
    PERFORM DISPLAY1.
    WHEN 2.
    SELECT MATNR LGORT FROM MARD INTO TABLE ITAB_MARD WHERE MATNR =
    ITAB_MARC-MATNR.
    PERFORM DISPLAY2.
    when 3.
    sy-lsind = 0.
    ENDCASE.
    FORM DISPLAY1.
    LOOP AT ITAB_MARC.
    WRITE:/ ITAB_MARC-MATNR HOTSPOT ON, ITAB_MARC-WERKS,ITAB_MARC-LVORM.
    HIDE: ITAB_MARC-MATNR.
    ENDLOOP.
    WRITE:/ SY-LSIND.
    ENDFORM.
    FORM DISPLAY2.
    LOOP AT ITAB_MARD.
    WRITE:/ ITAB_MARD-MATNR, ITAB_MARD-LGORT.
    ENDLOOP.
    WRITE:/ SY-LSIND.
    ENDFORM.
    regards
    ravish
    <b>plz dont forget to reward points if useful</b>

  • Need unique Variants in ALV interactive report

    Hello Experts,
                          I have a ALV interactive report in which a layout variant  created in one layout is been reflecting in all other layouts, which i dont want. I want to create different variants for different layouts in interactive report.How can i achieve this.

    Hi,
        Event form names are appended to an internal table and passed to the ALV. And whatever you write inside that form
    can be called through the function module.
    What you are trying to do is modify the internal table with the form name, which does not exsist. Instead of this append it.
    There are lot of example of this ALV list events.
    DATA:     T_EVENT TYPE SLIS_T_EVENT,
         W_EVENT TYPE SLIS_ALV_EVENT.
    CLEAR W_EVENT.
    W_EVENT-FORM = SLIS_EV_AFTER_LINE_OUTPUT.
    W_EVENT-NAME = SLIS_EV_AFTER_LINE_OUTPUT."AFTER_LINE_OUTPUT event
    APPEND W_EVENT TO T_EVENT.
    Thanks & Regards,
    Tapodipta Khan

  • Alv interactive report  for secondary list

    Hi All,
    This is my code for ALV interactive report. Its working Properly for me when i select material number iam able to display the secondary list properly . if i sorted the basic list other than material number for ex . created date . iam uable to display correct secondary list . Can any one help me in this issue?
    REPORT  ZWRLOMDMM_PMG_PHWEB_PLD   NO STANDARD PAGE HEADING
            LINE-SIZE 120
            LINE-COUNT 65
            MESSAGE-ID 00.
    TABLES                                                              *
    TABLES: MARA ,      "General Material Data
            ZWPBPH.     " Published Product Hierarchy
    TYPE-POOLS                                                          *
    TYPE-POOLS:SLIS .
    DATA:FIELDCATALOG_BASIC TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
         FIELDCATALOG_SECONDARY TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
         GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
         GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
         GD_REPID LIKE SY-REPID.
    INTERNAL TABLES                                                     *
    *Internal Tables to Get Data.
    *Internal Table For MARA Table.
    DATA:BEGIN OF T_MARA OCCURS 0 ,
            MATNR LIKE MARA-MATNR,
            MTART LIKE MARA-MTART,
            ERSDA LIKE MARA-ERSDA,
            ERNAM LIKE MARA-ERNAM,
            AENAM LIKE MARA-AENAM,
            SPART LIKE MARA-SPART,
         END OF T_MARA.
    *Internal Table For ZWPBPH Table.
    DATA:BEGIN OF T_ZWPBPH OCCURS 0 ,
           PBPINO LIKE ZWPBPH-PBPINO,
           PBPAPINO LIKE ZWPBPH-PBPAPINO,
         END OF T_ZWPBPH.
    *Internal Table For Basic List Field Catalog.
    DATA:BEGIN OF T_ALV OCCURS 0 ,
           MATNR LIKE MARA-MATNR,
           MTART LIKE MARA-MTART,
           ERSDA LIKE MARA-ERSDA,
           ERNAM LIKE MARA-ERNAM,
           SPART LIKE MARA-SPART,
           SPART1(3),
         END OF T_ALV.
    *Internal Table For Secondary List Field Catalog.
    DATA: BEGIN OF T_ALVS OCCURS 0 ,
            MATNR LIKE MARA-MATNR,
            AENAM LIKE MARA-AENAM,
            LAEDA LIKE MARA-LAEDA,
          END OF T_ALVS.
    *Internal Table For Model
    DATA:T_MODEL LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.
    *Internal Table For Product
    DATA:T_PRODUCT LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.
    *Internal Table For Family
    DATA:T_FAMILY LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.
    *Internal Table For Line
    DATA:T_LINE LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.
    *Internal Table For Type
    DATA:T_TYPE LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.
    SELECTION SCREEN                                                    *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: P_MATN RADIOBUTTON GROUP R1  USER-COMMAND run default 'X'.
    SELECT-OPTIONS: P_MATNR FOR MARA-MATNR MODIF ID SC1 .
    PARAMETERS: P_DAT RADIOBUTTON GROUP R1  .
    SELECT-OPTIONS: : P_DATE FOR MARA-LAEDA  MODIF ID SC2.
    PARAMETERS: P_DIV RADIOBUTTON GROUP R1  .
    SELECT-OPTIONS: : P_DIVIS for mara-spart  MODIF ID SC3.
    SELECTION-SCREEN END OF BLOCK b1.
    INITIALIZATION                                                      *
    INITIALIZATION.
      REFRESH: T_MARA,
               T_ZWPBPH,
               T_ALV,
               T_ALVS,
               T_MODEL,
               T_PRODUCT,
               T_FAMILY,
               T_LINE,
               T_TYPE.
      CLEAR:   T_MARA,
               T_ZWPBPH,
               T_ALV,
               T_ALVS,
               T_MODEL,
               T_PRODUCT,
               T_FAMILY,
               T_LINE,
               T_TYPE.
      GD_REPID = SY-REPID.
    *AT SELECTION-SCREEN OUTPUT.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF P_MATN = 'X'.
          FREE : P_DIVIS,P_DATE.
          IF SCREEN-GROUP1 = 'SC2' or SCREEN-GROUP1 = 'SC3'.
            SCREEN-INPUT  = 0.
            MODIFY SCREEN.
            CONTINUE.
          ENDIF .
        ENDIF.
        IF P_DAT = 'X'.
          FREE : P_MATNR,P_DIVIS.
          IF SCREEN-GROUP1 = 'SC1' or  SCREEN-GROUP1 = 'SC3'.
            SCREEN-INPUT  = 0.
            MODIFY SCREEN.
            CONTINUE.
          ENDIF .
        ENDIF.
        IF P_DIV = 'X'.
          FREE : P_DATE,P_MATNR.
          IF SCREEN-GROUP1 = 'SC1' or SCREEN-GROUP1 = 'SC2'.
            SCREEN-INPUT = 0.
            MODIFY SCREEN.
            CONTINUE.
          ENDIF .
        ENDIF.
      ENDLOOP.
    START-OF-SELECTION                                                  *
    START-OF-SELECTION.
      PERFORM GET_FIELDCATALOG_BASIC.
      PERFORM GET_FIELDCATALOG_SECONDARY.
      PERFORM POPULATE_DATA.
    END-OF-SELECTION                                                    *
    END-OF-SELECTION.
    *&      FORM GET_FIELDCATALOG_BASIC.
    Get Fieldcatalog For Basic List
    FORM GET_FIELDCATALOG_BASIC.
      FIELDCATALOG_BASIC-FIELDNAME = 'MATNR'.
      FIELDCATALOG_BASIC-SELTEXT_M = 'Material Number'.
      FIELDCATALOG_BASIC-COL_POS   = 0.
      FIELDCATALOG_BASIC-OUTPUTLEN = 20.
      FIELDCATALOG_BASIC-HOTSPOT   = 'X'.
      FIELDCATALOG_BASIC-EMPHASIZE = 'X'.
      FIELDCATALOG_BASIC-KEY       = 'X'.
      APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.
      CLEAR FIELDCATALOG_BASIC.
      FIELDCATALOG_BASIC-FIELDNAME = 'MTART'.
      FIELDCATALOG_BASIC-SELTEXT_M = 'Material Type'.
      FIELDCATALOG_BASIC-COL_POS   = 0.
      FIELDCATALOG_BASIC-OUTPUTLEN = 20.
      FIELDCATALOG_BASIC-EMPHASIZE = 'X'.
      FIELDCATALOG_BASIC-KEY       = 'X'.
      APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.
      CLEAR FIELDCATALOG_BASIC.
      FIELDCATALOG_BASIC-FIELDNAME = 'ERSDA'.
      FIELDCATALOG_BASIC-SELTEXT_M = 'Created Date'.
      FIELDCATALOG_BASIC-COL_POS   = 0.
      FIELDCATALOG_BASIC-OUTPUTLEN = 12.
      FIELDCATALOG_BASIC-EMPHASIZE = 'X'.
      FIELDCATALOG_BASIC-KEY       = 'X'.
      APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.
      CLEAR FIELDCATALOG_BASIC.
      FIELDCATALOG_BASIC-FIELDNAME = 'ERNAM'.
      FIELDCATALOG_BASIC-SELTEXT_M = 'Created By'.
      FIELDCATALOG_BASIC-COL_POS   = 0.
      FIELDCATALOG_BASIC-OUTPUTLEN = 15.
      FIELDCATALOG_BASIC-EMPHASIZE = 'X'.
      FIELDCATALOG_BASIC-KEY       = 'X'.
      APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.
      CLEAR FIELDCATALOG_BASIC.
      FIELDCATALOG_BASIC-FIELDNAME = 'SPART'.
      FIELDCATALOG_BASIC-SELTEXT_M = 'Division PMG'.
      FIELDCATALOG_BASIC-COL_POS   = 0.
      FIELDCATALOG_BASIC-OUTPUTLEN = 14.
      FIELDCATALOG_BASIC-EMPHASIZE = 'X'.
      FIELDCATALOG_BASIC-KEY       = 'X'.
      APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.
      CLEAR FIELDCATALOG_BASIC.
      FIELDCATALOG_BASIC-FIELDNAME = 'SPART1'.
      FIELDCATALOG_BASIC-SELTEXT_M = 'Division PhWEB'.
      FIELDCATALOG_BASIC-COL_POS   = 0.
      FIELDCATALOG_BASIC-OUTPUTLEN = 14.
      FIELDCATALOG_BASIC-EMPHASIZE = 'X'.
      FIELDCATALOG_BASIC-KEY       = 'X'.
      APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.
      CLEAR FIELDCATALOG_BASIC.
    ENDFORM.                    "GET_FIELDCATALOG_BASIC
    *&      FORM GET_FIELDCATALOG_SECONDARY
    Get Fieldcatalog For Secondary List
    FORM GET_FIELDCATALOG_SECONDARY.
      FIELDCATALOG_SECONDARY-FIELDNAME = 'MATNR'.
      FIELDCATALOG_SECONDARY-SELTEXT_M = 'Material Number'.
      FIELDCATALOG_SECONDARY-COL_POS   = 0.
      FIELDCATALOG_SECONDARY-OUTPUTLEN = 20.
      FIELDCATALOG_SECONDARY-EMPHASIZE = 'X'.
      FIELDCATALOG_SECONDARY-KEY       = 'X'.
      APPEND FIELDCATALOG_SECONDARY TO FIELDCATALOG_SECONDARY.
      CLEAR FIELDCATALOG_SECONDARY.
      FIELDCATALOG_SECONDARY-FIELDNAME = 'AENAM'.
      FIELDCATALOG_SECONDARY-SELTEXT_M = 'Changed By'.
      FIELDCATALOG_SECONDARY-COL_POS   = 0.
      FIELDCATALOG_SECONDARY-OUTPUTLEN = 20.
      FIELDCATALOG_SECONDARY-EMPHASIZE = 'X'.
      FIELDCATALOG_SECONDARY-KEY       = 'X'.
      APPEND FIELDCATALOG_SECONDARY TO FIELDCATALOG_SECONDARY.
      CLEAR FIELDCATALOG_SECONDARY.
      FIELDCATALOG_SECONDARY-FIELDNAME = 'LAEDA'.
      FIELDCATALOG_SECONDARY-SELTEXT_M = 'Changed ON'.
      FIELDCATALOG_SECONDARY-COL_POS   = 0.
      FIELDCATALOG_SECONDARY-OUTPUTLEN = 20.
      FIELDCATALOG_SECONDARY-EMPHASIZE = 'X'.
      FIELDCATALOG_SECONDARY-KEY       = 'X'.
      APPEND FIELDCATALOG_SECONDARY TO FIELDCATALOG_SECONDARY.
      CLEAR FIELDCATALOG_SECONDARY.
    ENDFORM.                    "GET_FIELDCATALOG_SECONDARY
    *&      FORM POPULATE_DATA
    FORM POPULATE_DATA.
    *Get Data From MARA And ZWPBPH Tables
      IF P_MATN = 'X'.
    SELECT MATNR MTART ERSDA ERNAM AENAM SPART FROM MARA INTO TABLE T_MARA
    where MATNR IN P_MATNR .
        IF SY-SUBRC <> 0.
          MESSAGE E001(0) WITH 'Invalid Material Number'.
        ENDIF.
      ELSEIF P_DAT = 'X'.
    SELECT MATNR MTART ERSDA ERNAM AENAM SPART FROM MARA INTO TABLE T_MARA
    where LAEDA IN P_DATE .
        IF SY-SUBRC <> 0.
          MESSAGE E001(0) WITH 'Invalid Date Range'.
        ENDIF.
      ELSEIF P_DIV = 'X'.
    SELECT MATNR MTART ERSDA ERNAM AENAM SPART FROM MARA INTO TABLE T_MARA
    where SPART IN P_DIVIS .
        IF SY-SUBRC <> 0.
          MESSAGE E001(0) WITH 'Invalid Division'.
        ENDIF.
      ELSEIF P_MATN = ' ' AND P_DAT = ' ' AND  P_DIV = ' '.
    SELECT MATNR MTART ERSDA ERNAM AENAM SPART FROM MARA INTO TABLE T_MARA.
      ENDIF.
      DELETE ADJACENT DUPLICATES FROM T_MARA COMPARING MATNR.
      SORT T_MARA BY MATNR.
      IF T_MARA[] IS NOT INITIAL .
    SELECT PBPINO PBPAPINO FROM ZWPBPH INTO TABLE T_ZWPBPH FOR ALL ENTRIES
    IN T_MARA WHERE PBPINO = T_MARA-MATNR.
      ENDIF.
      IF SY-SUBRC = 0.
        LOOP AT  T_ZWPBPH.
          SELECT SINGLE PBPINO PBPAPINO FROM ZWPBPH INTO  T_MODEL   WHERE
          PBPINO = T_ZWPBPH-PBPAPINO.
          IF SY-SUBRC = 0.
          SELECT SINGLE PBPINO PBPAPINO FROM ZWPBPH  INTO T_PRODUCT   WHERE
          PBPINO
          = T_MODEL-PBPAPINO.
          ENDIF.
          IF SY-SUBRC = 0.
           SELECT SINGLE PBPINO PBPAPINO FROM ZWPBPH  INTO T_FAMILY   WHERE
           PBPINO = T_PRODUCT-PBPAPINO.
          ENDIF.
          IF SY-SUBRC = 0.
            SELECT SINGLE PBPINO PBPAPINO FROM ZWPBPH  INTO T_LINE   WHERE
            PBPINO = T_FAMILY-PBPAPINO.
          ENDIF.
          IF SY-SUBRC = 0.
       SELECT SINGLE PBPINO PBPAPINO FROM ZWPBPH INTO T_TYPE   WHERE PBPINO
        = T_LINE-PBPAPINO.
          ENDIF.
          IF SY-SUBRC = 0.
         SELECT SINGLE MTART ERSDA ERNAM SPART FROM MARA INTO CORRESPONDING
          FIELDS OF T_ALV WHERE MATNR = T_ZWPBPH-PBPINO AND SPART <>
        T_TYPE-PBPAPINO+1(2).
          ENDIF.
          IF SY-SUBRC = 0.
            MOVE T_ZWPBPH-PBPINO TO T_ALV-MATNR.
            MOVE T_TYPE-PBPAPINO+1(2) TO T_ALV-SPART1.
            APPEND T_ALV.
            SELECT SINGLE MATNR AENAM LAEDA FROM MARA INTO CORRESPONDING
            FIELDS OF T_ALVS WHERE MATNR = T_ZWPBPH-PBPINO.
            APPEND T_ALVS.
            CLEAR T_ALVS.
          ENDIF.
        ENDLOOP.
      ENDIF.
      SORT T_ALV BY MATNR.
      SORT T_ALVS BY MATNR.
      call function 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = GD_REPID
          i_callback_user_command = 'DISPLAY_DETAIL'
          it_fieldcat             = FIELDCATALOG_BASIC[]
          i_save                  = 'X'
        TABLES
          t_outtab                = T_ALV
        EXCEPTIONS
          program_error           = 1
          others                  = 2.
    ENDFORM.                    "POPULATE_DATA
    *&      Form  DISPLAY_DETAIL
          text
         -->UCOMM      text
         -->SELFIELD   text
    FORM DISPLAY_DETAIL USING UCOMM LIKE SY-UCOMM
    SELFIELD TYPE SLIS_SELFIELD.
    Select Material Number For Secondary List
      DATA: T_ALV_TEMP LIKE T_ALVS OCCURS 0 WITH HEADER LINE.
      IF UCOMM = '&IC1'.
        READ TABLE T_ALVS INDEX SELFIELD-TABINDEX.
        IF SY-SUBRC = 0.
          MOVE T_ALVS TO T_ALV_TEMP.
          APPEND T_ALV_TEMP.
        ENDIF.
        CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
          EXPORTING
            i_callback_program = GD_REPID
            it_fieldcat        = FIELDCATALOG_SECONDARY[]
          TABLES
            t_outtab           = T_ALV_TEMP.
      ENDIF.
    ENDFORM.                    "DISPLAY_DETAIL

    Hi,
    Try this in the routine display details
    READ TABLE T_ALV INDEX SELFIELD-TABINDEX.
    READ TABLE T_ALVS with key matnr = T_ALV-MATNR
    thanks

  • What i sthe diff b/w   Interactive Report  and ALV Interactive report

    Hi All,
    I want to know the basic diff b/w Interactive  report and ALV interactive report.
    Can any one tell me the exact diif.
    Thanks in Advance,
    Jd

    hi jagadish,
    both are used for same purpose
    interactive report means an output list which displays basic details & allows user to interact, so that a new list is populated based on user-selection. With interactive list, the user can actively control data retrieval and display during the session. a total no of 21 lists including main list are genearetd in interactive lists.
    I suggest to use ALV.by using ALV we can display in Grid as well as list format.
    Output format will be good . Sorting,Filtering facilities are provided by itself.We can have column headings also. using oops we can also do alv reporting.
    if helpful reward some points.
    with regards,
    suresh babu aluri.

  • Difference between Interactive report and ALV Interactive report.

    What is the difference between Interactive report and ALV Interactive report.
    i think there is no much difference the same Interactive report Events and functionality we will implement with ALV.
    Experts guide me.

    Hi,
    ALV interactive report gives many advantages than interactive report like sorting, summing and getting graphics.
    An interactive report generally basic list displayed. User double clicks on any valid line or user selects a line and presses as button on the tool bar. Then the corresponding event is triggered
    refer
    http://www.sapgenie.com/abap/drill_down_reports.htm
    You can find a interactive ALV report here
    http://www.sap-img.com/abap/an-interactive-alv-report.htm
    also refer
    Below threads consist of number of interactive ALV codes:
    interactive ALV code
    ALV-INTERACTIVE.
    Interactive ALV
    Regards

  • ALV Interactive Report  using oops

    Hi All ,
                   Pls anybody send me the code for ALV interactive report using OOPS  , that reports covers the following things like Header , Logo , Total& subtotals  .....etc  ,
                   with this i can complete my object .
    thanks in Adv
    Rgds
    Rafi .

    Hi
    this code is helpful for u.check it.
    REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650
    MESSAGE-ID ZZ_9838 .
    TYPE-POOLS: SLIS.
    *type declaration for values from ekko
    TYPES: BEGIN OF I_EKKO,
    EBELN LIKE EKKO-EBELN,
    AEDAT LIKE EKKO-AEDAT,
    BUKRS LIKE EKKO-BUKRS,
    BSART LIKE EKKO-BSART,
    LIFNR LIKE EKKO-LIFNR,
    END OF I_EKKO.
    DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
    WA_EKKO TYPE I_EKKO.
    *type declaration for values from ekpo
    TYPES: BEGIN OF I_EKPO,
    EBELN LIKE EKPO-EBELN,
    EBELP LIKE EKPO-EBELP,
    MATNR LIKE EKPO-MATNR,
    MENGE LIKE EKPO-MENGE,
    MEINS LIKE EKPO-MEINS,
    NETPR LIKE EKPO-NETPR,
    END OF I_EKPO.
    DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
    WA_EKPO TYPE I_EKPO .
    *variable for Report ID
    DATA: V_REPID LIKE SY-REPID .
    *declaration for fieldcatalog
    DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
    WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
    declaration for events table where user comand or set PF status will
    be defined
    DATA: V_EVENTS TYPE SLIS_T_EVENT,
    WA_EVENT TYPE SLIS_ALV_EVENT.
    declartion for layout
    DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
    declaration for variant(type of display we want)
    DATA: I_VARIANT TYPE DISVARIANT,
    I_VARIANT1 TYPE DISVARIANT,
    I_SAVE(1) TYPE C.
    *PARAMETERS : p_var TYPE disvariant-variant.
    *Title displayed when the alv list is displayed
    DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
    DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
    INITIALIZATION.
    V_REPID = SY-REPID.
    PERFORM BUILD_FIELDCATLOG.
    PERFORM EVENT_CALL.
    PERFORM POPULATE_EVENT.
    START-OF-SELECTION.
    PERFORM DATA_RETRIEVAL.
    PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
    PERFORM DISPLAY_ALV_REPORT.
    *& Form BUILD_FIELDCATLOG
    Fieldcatalog has all the field details from ekko
    FORM BUILD_FIELDCATLOG.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
    WA_FIELDCAT-FIELDNAME = 'EBELN'.
    WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
    WA_FIELDCAT-FIELDNAME = 'AEDAT'.
    WA_FIELDCAT-SELTEXT_M = 'DATE.'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
    WA_FIELDCAT-FIELDNAME = 'BUKRS'.
    WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
    WA_FIELDCAT-FIELDNAME = 'BUKRS'.
    WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
    WA_FIELDCAT-FIELDNAME = 'LIFNR'.
    WA_FIELDCAT-NO_OUT = 'X'.
    WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    ENDFORM. "BUILD_FIELDCATLOG
    *& Form EVENT_CALL
    we get all events - TOP OF PAGE or USER COMMAND in table v_events
    FORM EVENT_CALL.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
    I_LIST_TYPE = 0
    IMPORTING
    ET_EVENTS = V_EVENTS
    EXCEPTIONS
    LIST_TYPE_WRONG = 1
    OTHERS = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. "EVENT_CALL
    *& Form POPULATE_EVENT
    Events populated for TOP OF PAGE & USER COMAND
    FORM POPULATE_EVENT.
    READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
    IF SY-SUBRC EQ 0.
    WA_EVENT-FORM = 'TOP_OF_PAGE'.
    MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-FORM.
    ENDIF.
    READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
    IF SY-SUBRC EQ 0.
    WA_EVENT-FORM = 'USER_COMMAND'.
    MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-NAME.
    ENDIF.
    ENDFORM. "POPULATE_EVENT
    *& Form data_retrieval
    retreiving values from the database table ekko
    FORM DATA_RETRIEVAL.
    SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
    ENDFORM. "data_retrieval
    *& Form bUild_listheader
    text
    -->I_LISTHEADEtext
    FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
    DATA HLINE TYPE SLIS_LISTHEADER.
    HLINE-INFO = 'this is my first alv pgm'.
    HLINE-TYP = 'H'.
    ENDFORM. "build_listheader
    *& Form display_alv_report
    text
    FORM DISPLAY_ALV_REPORT.
    V_REPID = SY-REPID.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = V_REPID
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
    I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
    I_GRID_TITLE = I_TITLE_EKKO
    I_GRID_SETTINGS =
    IS_LAYOUT = ALV_LAYOUT
    IT_FIELDCAT = I_FIELDCAT[]
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    i_default = 'ZLAY1'
    I_SAVE = 'A'
    is_variant = i_variant
    IT_EVENTS = V_EVENTS
    TABLES
    T_OUTTAB = IT_EKKO
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. "display_alv_report
    *& Form TOP_OF_PAGE
    text
    FORM TOP_OF_PAGE.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = IT_LISTHEADER
    i_logo =
    I_END_OF_LIST_GRID =
    ENDFORM. "TOP_OF_PAGE
    *& Form USER_COMMAND
    text
    -->R_UCOMM text
    -->, text
    -->RS_SLEFIELDtext
    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
    RS_SELFIELD TYPE SLIS_SELFIELD.
    CASE R_UCOMM.
    WHEN '&IC1'.
    READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
    PERFORM BUILD_FIELDCATLOG_EKPO.
    PERFORM EVENT_CALL_EKPO.
    PERFORM POPULATE_EVENT_EKPO.
    PERFORM DATA_RETRIEVAL_EKPO.
    PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
    PERFORM DISPLAY_ALV_EKPO.
    ENDCASE.
    ENDFORM. "user_command
    *& Form BUILD_FIELDCATLOG_EKPO
    text
    FORM BUILD_FIELDCATLOG_EKPO.
    WA_FIELDCAT-TABNAME = 'IT_EKPO'.
    WA_FIELDCAT-FIELDNAME = 'EBELN'.
    WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKPO'.
    WA_FIELDCAT-FIELDNAME = 'EBELP'.
    WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
    WA_FIELDCAT-FIELDNAME = 'MATNR'.
    WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
    WA_FIELDCAT-FIELDNAME = 'MENGE'.
    WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
    WA_FIELDCAT-FIELDNAME = 'MEINS'.
    WA_FIELDCAT-SELTEXT_M = 'UOM'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
    WA_FIELDCAT-FIELDNAME = 'NETPR'.
    WA_FIELDCAT-SELTEXT_M = 'PRICE'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    ENDFORM. "BUILD_FIELDCATLOG_EKPO
    *& Form event_call_ekpo
    we get all events - TOP OF PAGE or USER COMMAND in table v_events
    FORM EVENT_CALL_EKPO.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
    I_LIST_TYPE = 0
    IMPORTING
    ET_EVENTS = V_EVENTS
    EXCEPTIONS
    LIST_TYPE_WRONG = 1
    OTHERS = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. "event_call_ekpo
    *& Form POPULATE_EVENT
    Events populated for TOP OF PAGE & USER COMAND
    FORM POPULATE_EVENT_EKPO.
    READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
    IF SY-SUBRC EQ 0.
    WA_EVENT-FORM = 'TOP_OF_PAGE'.
    MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-FORM.
    ENDIF.
    ENDFORM. "POPULATE_EVENT
    *& Form TOP_OF_PAGE
    text
    FORM F_TOP_OF_PAGE.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = IT_LISTHEADER
    i_logo =
    I_END_OF_LIST_GRID =
    ENDFORM. "TOP_OF_PAGE
    *& Form USER_COMMAND
    text
    -->R_UCOMM text
    -->, text
    -->RS_SLEFIELDtext
    *retreiving values from the database table ekko
    FORM DATA_RETRIEVAL_EKPO.
    SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
    ENDFORM.
    FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
    DATA: HLINE1 TYPE SLIS_LISTHEADER.
    HLINE1-TYP = 'H'.
    HLINE1-INFO = 'CHECKING PGM'.
    ENDFORM.
    FORM DISPLAY_ALV_EKPO.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER = ' '
    I_BUFFER_ACTIVE = ' '
    I_CALLBACK_PROGRAM = V_REPID
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'
    I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
    I_CALLBACK_HTML_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_END_OF_LIST = ' '
    I_STRUCTURE_NAME =
    I_BACKGROUND_ID = ' '
    I_GRID_TITLE = I_TITLE_EKPO
    I_GRID_SETTINGS =
    IS_LAYOUT =
    IT_FIELDCAT = I_FIELDCAT[]
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    I_DEFAULT =
    I_SAVE = 'A'
    IS_VARIANT =
    IT_EVENTS = V_EVENTS
    TABLES
    T_OUTTAB = IT_EKPO
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.
    Regards,
    Sree

  • Interactive Report Need total of aggregate (sums) where break format used

    I have an interactive report that uses break formatting. When I do an aggregate (sum) for the Quantity Column I get the sums for each campaign_id (used for the break format column). This is great. However, at the bottom of the report I need a grand total for all campaign ids (a sum of the sums) in a new row at the bottom of the report. Is this possible?
    I can't paste a screenshot here to show but her is a simple one column example - I can't make the columns stay lined up but I think you can see what I need.
    {code
    Campaign Hand Addressed (break format column)
    Quantity
    100
    200
    Sum:300
    Campaign Travel Check
    Quantity
    100
    500
    Sum:600
    Sum:900 This is row I need to add
    Oracle 11GR2
    APEX 3.2.1

    This works when I run it in SQL Developer. Now I enter this for my report query in APEX and I get the "not a GROUP BY expression.
    {code
    SELECT *
    FROM t3_mail_piece t
    WHERE t.week_id = 11
    GROUP BY ROLLUP(t.campaign_id, t.market_id)
    ORDER BY t.campaign_id
    , SUM(t.quantity);
    What is different?

  • Interactive report(need example)

    I want complete example of interactive report using all the events in proper sequence. Any one could help me out. Plz use three to four tables.
    Thanks & regards......

    REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650
    MESSAGE-ID ZZ_9838 .
    TYPE-POOLS: SLIS.
    *type declaration for values from ekko
    TYPES: BEGIN OF I_EKKO,
    EBELN LIKE EKKO-EBELN,
    AEDAT LIKE EKKO-AEDAT,
    BUKRS LIKE EKKO-BUKRS,
    BSART LIKE EKKO-BSART,
    LIFNR LIKE EKKO-LIFNR,
    END OF I_EKKO.
    DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
    WA_EKKO TYPE I_EKKO.
    *type declaration for values from ekpo
    TYPES: BEGIN OF I_EKPO,
    EBELN LIKE EKPO-EBELN,
    EBELP LIKE EKPO-EBELP,
    MATNR LIKE EKPO-MATNR,
    MENGE LIKE EKPO-MENGE,
    MEINS LIKE EKPO-MEINS,
    NETPR LIKE EKPO-NETPR,
    END OF I_EKPO.
    DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
    WA_EKPO TYPE I_EKPO .
    *variable for Report ID
    DATA: V_REPID LIKE SY-REPID .
    *declaration for fieldcatalog
    DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
    WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
    declaration for events table where user comand or set PF status will
    be defined
    DATA: V_EVENTS TYPE SLIS_T_EVENT,
    WA_EVENT TYPE SLIS_ALV_EVENT.
    declartion for layout
    DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
    declaration for variant(type of display we want)
    DATA: I_VARIANT TYPE DISVARIANT,
    I_VARIANT1 TYPE DISVARIANT,
    I_SAVE(1) TYPE C.
    *PARAMETERS : p_var TYPE disvariant-variant.
    *Title displayed when the alv list is displayed
    DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
    DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
    INITIALIZATION.
    V_REPID = SY-REPID.
    PERFORM BUILD_FIELDCATLOG.
    PERFORM EVENT_CALL.
    PERFORM POPULATE_EVENT.
    START-OF-SELECTION.
    PERFORM DATA_RETRIEVAL.
    PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
    PERFORM DISPLAY_ALV_REPORT.
    *& Form BUILD_FIELDCATLOG
    Fieldcatalog has all the field details from ekko
    FORM BUILD_FIELDCATLOG.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
    WA_FIELDCAT-FIELDNAME = 'EBELN'.
    WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
    WA_FIELDCAT-FIELDNAME = 'AEDAT'.
    WA_FIELDCAT-SELTEXT_M = 'DATE.'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
    WA_FIELDCAT-FIELDNAME = 'BUKRS'.
    WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
    WA_FIELDCAT-FIELDNAME = 'BUKRS'.
    WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
    WA_FIELDCAT-FIELDNAME = 'LIFNR'.
    WA_FIELDCAT-NO_OUT = 'X'.
    WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    ENDFORM. "BUILD_FIELDCATLOG
    *& Form EVENT_CALL
    we get all events - TOP OF PAGE or USER COMMAND in table v_events
    FORM EVENT_CALL.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
    I_LIST_TYPE = 0
    IMPORTING
    ET_EVENTS = V_EVENTS
    EXCEPTIONS
    LIST_TYPE_WRONG = 1
    OTHERS = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. "EVENT_CALL
    *& Form POPULATE_EVENT
    Events populated for TOP OF PAGE & USER COMAND
    FORM POPULATE_EVENT.
    READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
    IF SY-SUBRC EQ 0.
    WA_EVENT-FORM = 'TOP_OF_PAGE'.
    MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-FORM.
    ENDIF.
    READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
    IF SY-SUBRC EQ 0.
    WA_EVENT-FORM = 'USER_COMMAND'.
    MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-NAME.
    ENDIF.
    ENDFORM. "POPULATE_EVENT
    *& Form data_retrieval
    retreiving values from the database table ekko
    FORM DATA_RETRIEVAL.
    SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
    ENDFORM. "data_retrieval
    *& Form bUild_listheader
    text
    -->I_LISTHEADEtext
    FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
    DATA HLINE TYPE SLIS_LISTHEADER.
    HLINE-INFO = 'this is my first alv pgm'.
    HLINE-TYP = 'H'.
    ENDFORM. "build_listheader
    *& Form display_alv_report
    text
    FORM DISPLAY_ALV_REPORT.
    V_REPID = SY-REPID.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = V_REPID
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
    I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
    I_GRID_TITLE = I_TITLE_EKKO
    I_GRID_SETTINGS =
    IS_LAYOUT = ALV_LAYOUT
    IT_FIELDCAT = I_FIELDCAT[]
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    i_default = 'ZLAY1'
    I_SAVE = 'A'
    is_variant = i_variant
    IT_EVENTS = V_EVENTS
    TABLES
    T_OUTTAB = IT_EKKO
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. "display_alv_report
    *& Form TOP_OF_PAGE
    text
    FORM TOP_OF_PAGE.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = IT_LISTHEADER
    i_logo =
    I_END_OF_LIST_GRID =
    ENDFORM. "TOP_OF_PAGE
    *& Form USER_COMMAND
    text
    -->R_UCOMM text
    -->, text
    -->RS_SLEFIELDtext
    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
    RS_SELFIELD TYPE SLIS_SELFIELD.
    CASE R_UCOMM.
    WHEN '&IC1'.
    READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
    PERFORM BUILD_FIELDCATLOG_EKPO.
    PERFORM EVENT_CALL_EKPO.
    PERFORM POPULATE_EVENT_EKPO.
    PERFORM DATA_RETRIEVAL_EKPO.
    PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
    PERFORM DISPLAY_ALV_EKPO.
    ENDCASE.
    ENDFORM. "user_command
    *& Form BUILD_FIELDCATLOG_EKPO
    text
    FORM BUILD_FIELDCATLOG_EKPO.
    WA_FIELDCAT-TABNAME = 'IT_EKPO'.
    WA_FIELDCAT-FIELDNAME = 'EBELN'.
    WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKPO'.
    WA_FIELDCAT-FIELDNAME = 'EBELP'.
    WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
    WA_FIELDCAT-FIELDNAME = 'MATNR'.
    WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
    WA_FIELDCAT-FIELDNAME = 'MENGE'.
    WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
    WA_FIELDCAT-FIELDNAME = 'MEINS'.
    WA_FIELDCAT-SELTEXT_M = 'UOM'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
    WA_FIELDCAT-FIELDNAME = 'NETPR'.
    WA_FIELDCAT-SELTEXT_M = 'PRICE'.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    ENDFORM. "BUILD_FIELDCATLOG_EKPO
    *& Form event_call_ekpo
    we get all events - TOP OF PAGE or USER COMMAND in table v_events
    FORM EVENT_CALL_EKPO.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
    I_LIST_TYPE = 0
    IMPORTING
    ET_EVENTS = V_EVENTS
    EXCEPTIONS
    LIST_TYPE_WRONG = 1
    OTHERS = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. "event_call_ekpo
    *& Form POPULATE_EVENT
    Events populated for TOP OF PAGE & USER COMAND
    FORM POPULATE_EVENT_EKPO.
    READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
    IF SY-SUBRC EQ 0.
    WA_EVENT-FORM = 'TOP_OF_PAGE'.
    MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-FORM.
    ENDIF.
    ENDFORM. "POPULATE_EVENT
    *& Form TOP_OF_PAGE
    text
    FORM F_TOP_OF_PAGE.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = IT_LISTHEADER
    i_logo =
    I_END_OF_LIST_GRID =
    ENDFORM. "TOP_OF_PAGE
    *& Form USER_COMMAND
    text
    -->R_UCOMM text
    -->, text
    -->RS_SLEFIELDtext
    *retreiving values from the database table ekko
    FORM DATA_RETRIEVAL_EKPO.
    SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
    ENDFORM.
    FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
    DATA: HLINE1 TYPE SLIS_LISTHEADER.
    HLINE1-TYP = 'H'.
    HLINE1-INFO = 'CHECKING PGM'.
    ENDFORM.
    FORM DISPLAY_ALV_EKPO.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER = ' '
    I_BUFFER_ACTIVE = ' '
    I_CALLBACK_PROGRAM = V_REPID
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'
    I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
    I_CALLBACK_HTML_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_END_OF_LIST = ' '
    I_STRUCTURE_NAME =
    I_BACKGROUND_ID = ' '
    I_GRID_TITLE = I_TITLE_EKPO
    I_GRID_SETTINGS =
    IS_LAYOUT =
    IT_FIELDCAT = I_FIELDCAT[]
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    I_DEFAULT =
    I_SAVE = 'A'
    IS_VARIANT =
    IT_EVENTS = V_EVENTS
    TABLES
    T_OUTTAB = IT_EKPO
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.
    regards
    aswin

  • ALV OOPS report - Need help

    Hi Friends,
    I just want to convert a normal alv grid report to ALV OOPS report using classes,methods and objects, can you please help me on it.
    *I have sent a sample ALV grid report program.
    REPORT  YSDB_ALV_ECC NO STANDARD PAGE HEADING LINE-SIZE 260 LINE-COUNT 58.
    TABLES:
                    VBRK,
                    VBRP.
    TYPE-POOLS: SLIS.
    TYPES:
                  BEGIN OF Y_VBRK_STRUCT ,
                        VBELN TYPE VBRK-VBELN,
                        FKART TYPE VBRK-FKART,
                        FKDAT TYPE VBRK-FKDAT,
                        BUKRS TYPE VBRK-BUKRS,
                        NETWR TYPE VBRK-NETWR,
                  END OF Y_VBRK_STRUCT.
    TYPES:
                     BEGIN OF Y_VBRP_STRUCT,
                            VBELN TYPE VBRP-VBELN,
                            POSNR TYPE VBRP-POSNR,
                            MATNR TYPE VBRP-MATNR,
                            FKIMG TYPE VBRP-FKIMG,
                            AUBEL TYPE VBRP-AUBEL,
                            KOSTL TYPE VBRP-KOSTL,
                            PS_PSP_PNR TYPE VBRP-PS_PSP_PNR,
                            ARKTX TYPE VBRP-ARKTX,
                     END OF Y_VBRP_STRUCT.
    TYPES:
                  BEGIN OF Y_DISPLAY_STRUCT,
                        VBELN TYPE VBRK-VBELN,
                        FKART TYPE VBRK-FKART,
                        FKDAT TYPE VBRK-FKDAT,
                        BUKRS TYPE VBRK-BUKRS,
                        NETWR TYPE VBRK-NETWR,
                        POSNR TYPE VBRP-POSNR,
                        MATNR TYPE VBRP-MATNR,
                        FKIMG TYPE VBRP-FKIMG,
                        AUBEL TYPE VBRP-AUBEL,
                        KOSTL TYPE VBRP-KOSTL,
                        PS_PSP_PNR TYPE VBRP-PS_PSP_PNR,
                        ARKTX TYPE VBRP-ARKTX,
                  END OF Y_DISPLAY_STRUCT .
    DATA: W_INDEX LIKE SY-TABIX.
    DATA:  W_FIELDCATALOG TYPE SLIS_FIELDCAT_ALV.
    DATA:  T_FIELDCATALOG1 TYPE SLIS_T_FIELDCAT_ALV.
    DATA:  W_REPID TYPE SY-REPID.
    DATA: T_VBRK_ITAB TYPE STANDARD TABLE OF Y_VBRK_STRUCT .
    DATA: T_VBRP_ITAB TYPE STANDARD TABLE OF Y_VBRP_STRUCT .
    DATA: T_DISPLAY_ITAB TYPE STANDARD TABLE OF Y_DISPLAY_STRUCT.
    DATA: E_DISPLAY TYPE Y_DISPLAY_STRUCT.
    SELECT-OPTIONS S_VBELN FOR VBRK-VBELN.
    SELECT-OPTIONS S_BUKRS FOR VBRK-BUKRS.
    SELECT-OPTIONS S_FKDAT FOR VBRK-FKDAT.
    START-OF-SELECTION.
      PERFORM F_GET_DATA1.
      PERFORM F_PROCESS_DATA.
      PERFORM F_FIELDCATLOG.
      PERFORM F_DISPLAY_DATA.
      PERFORM F_CLEAR_FIELDS.
    *&      Form  get_data1
          text
    FORM F_GET_DATA1 .
      SELECT VBELN  FKART FKDAT BUKRS NETWR
        FROM VBRK
        INTO  TABLE T_VBRK_ITAB
       WHERE BUKRS IN S_BUKRS
         AND FKDAT IN S_FKDAT
         AND VBELN IN S_VBELN.
      IF SY-SUBRC NE 0.
        FREE: T_VBRK_ITAB.
      ENDIF.
      IF NOT T_VBRK_ITAB IS INITIAL.
        SELECT VBELN POSNR MATNR FKIMG AUBEL
               KOSTL PS_PSP_PNR ARKTX
          FROM VBRP
          INTO TABLE T_VBRP_ITAB
          FOR ALL ENTRIES IN T_VBRK_ITAB
         WHERE VBELN EQ T_VBRK_ITAB-VBELN.
        IF SY-SUBRC NE 0.
          FREE: T_VBRK_ITAB.
        ENDIF.
      ENDIF.
    ENDFORM.                                                    " GET_DATA1
          text
    -->  p1        text
    <--  p2        text
    FORM F_PROCESS_DATA .
      SORT T_VBRK_ITAB  BY VBELN.
      SORT T_VBRP_ITAB  BY VBELN.
      CLEAR: W_INDEX.
      UNASSIGN <FS_STRUCT1>.
      UNASSIGN <FS_STRUCT2>.
      LOOP AT T_VBRK_ITAB ASSIGNING <FS_STRUCT1>.
        READ TABLE T_VBRP_ITAB ASSIGNING <FS_STRUCT2> WITH KEY VBELN = <FS_STRUCT1>-VBELN BINARY SEARCH.
        IF SY-SUBRC EQ 0.
          MOVE  SY-TABIX TO W_INDEX.
          WHILE SY-SUBRC  IS INITIAL AND <FS_STRUCT1>-VBELN = <FS_STRUCT2>-VBELN.
    *Header Items Moving
            MOVE:
                   <FS_STRUCT1>-FKART TO E_DISPLAY-FKART,
                   <FS_STRUCT1>-FKDAT TO E_DISPLAY-FKDAT,
                   <FS_STRUCT1>-BUKRS TO E_DISPLAY-BUKRS,
                   <FS_STRUCT1>-NETWR TO E_DISPLAY-NETWR.
    *Line items Moving
            MOVE: <FS_STRUCT2>-VBELN TO E_DISPLAY-VBELN,
                  <FS_STRUCT2>-POSNR TO E_DISPLAY-POSNR,
                  <FS_STRUCT2>-MATNR TO E_DISPLAY-MATNR,
                  <FS_STRUCT2>-FKIMG TO E_DISPLAY-FKIMG,
                  <FS_STRUCT2>-AUBEL TO E_DISPLAY-AUBEL,
                  <FS_STRUCT2>-KOSTL TO E_DISPLAY-KOSTL,
                  <FS_STRUCT2>-PS_PSP_PNR TO E_DISPLAY-PS_PSP_PNR,
                  <FS_STRUCT2>-ARKTX TO E_DISPLAY-ARKTX.
            APPEND E_DISPLAY TO T_DISPLAY_ITAB.
            CLEAR  E_DISPLAY.
                      ADD 1 TO W_INDEX.
            READ TABLE T_VBRP_ITAB ASSIGNING <FS_STRUCT2> INDEX  W_INDEX.
            IF SY-SUBRC NE 0.
              EXIT.
            ENDIF.
          ENDWHILE.
        ENDIF.
      ENDLOOP.
    ENDFORM.                                                    " GET_DATA3
    *&      Form  Fieldcatlog
          text
    -->  p1        text
    <--  p2        text
    FORM F_FIELDCATLOG .
      W_FIELDCATALOG-FIELDNAME = TEXT-001.
      W_FIELDCATALOG-SELTEXT_L = TEXT-002.
      MOVE : 1 TO W_FIELDCATALOG-COL_POS,
             20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-003.
      W_FIELDCATALOG-SELTEXT_L = TEXT-004.
      MOVE : 2 TO W_FIELDCATALOG-COL_POS,
               20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-005.
      W_FIELDCATALOG-SELTEXT_L = TEXT-006.
      MOVE : 3 TO W_FIELDCATALOG-COL_POS,
              20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-007.
      W_FIELDCATALOG-SELTEXT_L = TEXT-008.
      MOVE : 4 TO W_FIELDCATALOG-COL_POS,
             20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-009.
      W_FIELDCATALOG-SELTEXT_L = TEXT-010.
      MOVE : 5 TO W_FIELDCATALOG-COL_POS,
              20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-011.
      W_FIELDCATALOG-SELTEXT_L = TEXT-012.
      MOVE : 6 TO W_FIELDCATALOG-COL_POS,
             20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-013.
      W_FIELDCATALOG-SELTEXT_L = TEXT-014.
      MOVE : 7 TO W_FIELDCATALOG-COL_POS,
            20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-015.
      W_FIELDCATALOG-SELTEXT_L = TEXT-016.
      MOVE : 8 TO W_FIELDCATALOG-COL_POS,
             20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-017.
      W_FIELDCATALOG-SELTEXT_L = TEXT-018.
      MOVE : 9 TO W_FIELDCATALOG-COL_POS,
             20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
    ENDFORM.                    " Fieldcatlog
    *&      Form  DISPLAY_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM F_DISPLAY_DATA .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM     = W_REPID
          I_CALLBACK_TOP_OF_PAGE = 'AAAAAAAAADDAADA' "TEXT-021
          I_GRID_TITLE           = TEXT-020
          IT_FIELDCAT            = T_FIELDCATALOG1
        TABLES
          T_OUTTAB               = T_DISPLAY_ITAB.
      IF SY-SUBRC NE 0.
        EXIT.
      ENDIF.
      CLEAR: W_REPID.
      CLEAR: T_FIELDCATALOG1.
    ENDFORM.                    " DISPLAY_DATA
    *&      Form  F_Clear_fields
          text
    -->  p1        text
    <--  p2        text
    FORM F_CLEAR_FIELDS .
      FREE: T_VBRK_ITAB.
      FREE: T_VBRP_ITAB.
      FREE: T_DISPLAY_ITAB.
      CLEAR: W_FIELDCATALOG.
    ENDFORM.                    " F_Clear_fields
    Regards
    Dinesh

    In ALV oops,
    1. You need screen on which you must create a custom container. - screen 100
    2. In PBO of 100, create module for displaying ALV
    MODULE DISPLAY_ALV OUTPUT
    PERFORM CREATE_CONTAINER "IN WHICH YOU USE THE CREATE OBJECT METHOD OF CL_GUI_CUSTOM_CONTAINER
    PERFORM CREATE_ALV "IN WHICH YOU USE CREATE_OBJECT METHOD OF CL_GUI_ALV_GRID.
    PERFORM PREPARE_FIELDCAT "creating fcat using LVC_S_FCAT structure
    PERFORM DISPLAY "here you use the SET_TABLE_FOR_FIRST_DISPLAY method of CL_GUI_ALV_GRID class,
    where you provide the internal table name and fieldcat internal table
    ENDMODULE

  • Saved interactive reports - need a way to migrate to updated application

    APEX version 4.1
    We had an application (APP_ID =20) in operational environment that users had saved many reports.
    Recently we made enhancements to the application and promoted the development version of the application into our operational database. When importing we picked a new APP_ID =21. After several weeks on Operational system users have noticed there saved interactive reports are no longer showing up in pull down list.
    I have seen several posts talking about keeping the application IDs the same ensures the saved reports are preserved. For our situation I am not sure the best route to take to get us back to where users have there reports. Can I export APP_ID =21 on OPS, import this back into a dev environment setting its number back to 20, then export this from Dev and re-import onto OPS using the re-use APP_ID=20 option. Was not sure if this would work since APP_ID =21 on OPS has no saved report now??
    Any ideas would be appreciated, thanks in advance.
    JAF

    APEX version 4.1
    We had an application (APP_ID =20) in operational environment that users had saved many reports.
    Recently we made enhancements to the application and promoted the development version of the application into our operational database. When importing we picked a new APP_ID =21. After several weeks on Operational system users have noticed there saved interactive reports are no longer showing up in pull down list.
    I have seen several posts talking about keeping the application IDs the same ensures the saved reports are preserved. For our situation I am not sure the best route to take to get us back to where users have there reports. Can I export APP_ID =21 on OPS, import this back into a dev environment setting its number back to 20, then export this from Dev and re-import onto OPS using the re-use APP_ID=20 option. Was not sure if this would work since APP_ID =21 on OPS has no saved report now??
    Any ideas would be appreciated, thanks in advance.
    JAF

  • ALV interactive reporting

    hello abap studs,
    cud anyone pls tell me how to implement interactive ALVs with a realtime examples as soon as posible.its very urgent..explanation with examples wud be rewared higher points

    Hi,
    REPORT  z_alv_so  MESSAGE-ID z7new .
    *TABLE DECLARATION*
    TABLES: vbak ,             "Sales Document: Header Data
            vbap ,             "Sales Document: Item Data
            makt ,             "Material Descriptions
            lips .             "SD document: Delivery: Item data
    *DECLARATION OF TYPE-POOL*
    *THIS TYPE-POOL CONTAINS THE EVENTS,
    TYPE-POOLS : slis.
    *DECLARATION OF EVENTS*
    DATA: i_event TYPE slis_t_event.
    DATA: t_event TYPE slis_alv_event.
    *DECLARATION OF LIST HEADER*
    DATA: i_listheader TYPE slis_t_listheader.
    *DECLARATION OF FIELD CATALOG FOR SCREEN 1*
    DATA: i_fldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
    *DECLARATION OF FIELD CATALOG FOR SCREEN 2*
    DATA: i_fldcat2 TYPE slis_t_fieldcat_alv WITH HEADER LINE.
    *DECLARATION OF FIELD LAYOUT*
    DATA: i_layout TYPE slis_layout_alv.
    *SORTING OF OUTPUT*
    DATA: i_sort TYPE slis_t_sortinfo_alv.
    *DATA DECLARATION
    DATA: v_auart TYPE tvak-auart,
          v_vkorg TYPE tvko-vkorg,
          v_kunnr TYPE kna1-kunnr,
          v_matnr TYPE mara-matnr ,
          v_spart TYPE tvta-spart .
    TYPES: BEGIN OF it_so ,
           vbeln TYPE vbeln_va ,          "SALES ORDER NO.
           auart TYPE auart ,             "SALES DOC. TYPE
           vkorg TYPE vkorg ,             "SALES ORG.
           spart TYPE spart ,             "DIVISION
           kunnr TYPE kunag ,             "SOLD TO PARTY
           posnr TYPE posnr_va ,          "SALES DOC. ITEM
           matnr TYPE matnr ,             "MATERIAL NO
           maktx TYPE maktx ,             "DESCRIPTION
           kwmeng TYPE kwmeng ,           "QUANTITY
           vrkme TYPE vrkme ,             "SALES UNIT
           line_color(4) TYPE c ,
           END OF it_so .
    TYPES: BEGIN OF it_del ,
           vbeln TYPE vbeln_vl ,         "SALES ORDER NO.
           posnr TYPE posnr_vl ,         "SALES DOC. ITEM
           matnr TYPE matnr ,            "MATERIAL NO
           werks TYPE werks_d ,          "PLANT
           lgort TYPE lgort_d ,          "STORAGE LOCATION
           charg TYPE charg_d ,          "BATCH NO.
           lfimg TYPE lfimg ,            "ACTUAL DELIVERY QTY.
           vrkme TYPE vrkme ,            "SALES UNIT
           END OF it_del .
    TYPES: BEGIN OF type_vbfa ,
          vbelv TYPE vbeln_von , "Preceding sales and distribution document
          posnv TYPE posnr_von , "Preceding item of an SD document
          vbeln TYPE vbeln_nach, "Subsequent sales and distribution document
          posnn TYPE posnr_nach, "Document category of subsequent document
          vbtyp_n TYPE vbtyp_n ,
          END OF type_vbfa .
    DATA: it_so1 TYPE STANDARD TABLE OF it_so ,
          it_del1 TYPE STANDARD TABLE OF it_del ,
          it_vbfa TYPE STANDARD TABLE OF type_vbfa,
          it_del_ful TYPE STANDARD TABLE OF it_del.
    DATA: wa_so TYPE it_so ,
          wa_del TYPE it_del ,
          wa_vbfa TYPE type_vbfa,
          wa_it_del_ful TYPE it_del.
    DATA:  i_title_vbfa TYPE lvc_title VALUE 'SALES ORDER LIST DISPLAYED'.
    DATA:  i_title_vbpa TYPE lvc_title VALUE
    'DELIVERY DETAILS DISPLAYED AGAINST GIVEN SALES ORDER'.
    *SELECTION SCREEN                                                      *
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-004 .
    SELECT-OPTIONS: s_vbeln FOR vbak-vbeln ,
                    s_auart FOR v_auart ,
                    s_vkorg FOR v_vkorg ,
                    s_spart FOR v_spart ,
                    s_kunnr FOR v_kunnr ,
                    s_matnr FOR v_matnr .
    SELECTION-SCREEN END OF BLOCK blk1 .
    *AT SELECTION SCREEN                                                   *
    AT SELECTION-SCREEN.
      SELECT SINGLE vbeln
                     FROM vbak INTO vbak-vbeln
                     WHERE vbeln IN s_vbeln.
      IF sy-subrc <> 0.
        MESSAGE e202.
      ENDIF.
    *START OF SELECTION                                                    *
    START-OF-SELECTION .
      PERFORM data_select.
      PERFORM t_sort USING i_sort .
      PERFORM event_cat USING i_event .
      PERFORM fld_cat USING i_fldcat[] .
      PERFORM t_layout USING i_layout .
      PERFORM fld_cat2 USING i_fldcat2[] .
      PERFORM call_alv.
    * DATA SELECT                                                          *
    *&      Form  DATA_SELECT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM data_select .
      REFRESH: it_vbfa, it_so1, it_del_ful ,it_del1 .
      BREAK-POINT.
      SELECT
            a~vbeln
            a~auart
            a~vkorg
            a~spart
            a~kunnr
            b~posnr
            b~matnr
            c~maktx
            b~kwmeng
            b~vrkme
            INTO TABLE it_so1 FROM vbak AS a
                  JOIN vbap AS b ON b~vbeln = a~vbeln
                  JOIN makt AS c ON c~matnr = b~matnr
                  AND c~spras = sy-langu
                  WHERE a~vbeln IN s_vbeln .
    * COLURING DISPLAY                                                     *
      DATA: ld_color(1) TYPE  c .
      LOOP AT it_so1 INTO wa_so.
    * Populate color variable with colour properties
    * Char 1 = C (This is a color property)
    * Char 2 = 3 (Color codes: 1 - 7)
    * Char 3 = Intensified on/off ( 1 or 0 )
    * Char 4 = Inverse display on/off ( 1 or 0 )
    *           i.e. wa_ekko-line_color = 'C410'
        ld_color = ld_color + 1.
    * Only 7 colours so need to reset color value
        IF ld_color = 8.
          ld_color = 1.
        ENDIF.
        CONCATENATE 'C' ld_color '10' INTO wa_so-line_color.
    *  wa_ekko-line_color = 'C410'.
        MODIFY it_so1 FROM wa_so.
      ENDLOOP .
      IF sy-subrc = 0.
        SELECT vbelv
               posnv
               vbeln
               posnn
               vbtyp_n
               INTO TABLE it_vbfa
               FROM vbfa
               FOR ALL ENTRIES IN it_so1
               WHERE vbelv = it_so1-vbeln
               AND   posnn = it_so1-posnr
               AND vbtyp_n ='J' .
        IF sy-subrc = 0.
          SELECT vbeln
                 posnr
                 matnr
                 werks
                 lgort
                 charg
                 lfimg
                 vrkme
                 FROM lips INTO TABLE it_del_ful
                 FOR ALL ENTRIES IN it_vbfa
                 WHERE vbeln = it_vbfa-vbeln
                 AND   posnr = it_vbfa-posnn.
        ENDIF.
      ENDIF.
    ENDFORM.                    " DATA_SELECT
    **************** EVENT CATALOG ****************************************
    *&      Form  EVENT_CAT
    *       text
    *      -->P_I_EVENT  text
    FORM event_cat  USING    p_i_event TYPE slis_t_event .
      REFRESH p_i_event .
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    * EXPORTING
    *   I_LIST_TYPE           = 0
       IMPORTING
          et_events             = p_i_event
    * EXCEPTIONS
    *   LIST_TYPE_WRONG       = 1
    *   OTHERS                = 2
    *  IF sy-subrc <> 0.
    ** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    **         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    *  ENDIF.
      READ TABLE p_i_event WITH KEY name = slis_ev_top_of_page INTO t_event.
      IF sy-subrc = 0.
        MOVE 'TOP_OF_PAGE' TO t_event-form.
        MODIFY p_i_event FROM t_event INDEX sy-tabix TRANSPORTING form.
      ENDIF.
      CLEAR t_event .
    ENDFORM.                    " EVENT_CAT
    **********FORM FOR EVENT TOP_OF_PAGE**********************************
    FORM top_of_page .
      REFRESH i_listheader.
      DATA: t_header TYPE slis_listheader.
      DATA: v_text(50).
      WRITE sy-datum TO v_text.
      CLEAR t_header.
      t_header-typ = 'S'.
      t_header-key = 'Date'.
      t_header-info = v_text.
      APPEND t_header TO i_listheader.
      CLEAR t_header.
      CLEAR v_text.
    *  WRITE:  'SALES ORDER REPORT  ' TO v_text .
    *  t_header-typ = 'S'.
    *  t_header-key = 'TITLE'.
    *  t_header-info = v_text.
    *  APPEND t_header TO i_listheader.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = i_listheader
          I_LOGO             = 'ENJOYSAP_LOGO' .
    *   I_END_OF_LIST_GRID       =
    ENDFORM.                    "TOP_OF_PAGE
    ********  FIRST ALV GRID DISPLAY ***************************************
    *&      Form  CALL_ALV
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM call_alv .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         i_callback_program                = sy-repid
    *    I_CALLBACK_PF_STATUS_SET          = 'SET_PF_STATUS'
         i_callback_user_command           = 'USER_COMMAND1'
         i_callback_top_of_page            = 'TOP_OF_PAGE'
    *     I_BACKGROUND_ID                   = 'ALV_BACKGROUND'
         i_grid_title                      = i_title_vbfa
         is_layout                         = i_layout
         it_fieldcat                       = i_fldcat[]
         it_sort                           = i_sort
         it_events                         = i_event
        TABLES
         t_outtab                          = it_so1
    *  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_ALV
    ************** FIRST FIELDCATALOG *************************************
    *&      Form  FLD_CAT
    *       text
    *      -->P_I_FLDCAT[]  text
    FORM fld_cat  USING    p_i_fldcat TYPE slis_t_fieldcat_alv.
      CLEAR i_fldcat.
      i_fldcat-fieldname   = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat-tabname     = 'IT_SO1'."TABLE NAME
      i_fldcat-seltext_m   = 'SALES ORDER NO.'.
      i_fldcat-col_pos     = 1.        " POSITION OF THE COLUMN.
      i_fldcat-outputlen   = 20.       " SET THE OUTPUT LENGTH.
      i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat-just(1)     = 'C'.
      APPEND i_fldcat.
      CLEAR i_fldcat.
      i_fldcat-fieldname   = 'AUART'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat-tabname     = 'IT_SO1'."TABLE NAME
      i_fldcat-seltext_m   = 'SALES DOC. TYPE'.
      i_fldcat-col_pos     = 2.        " POSITION OF THE COLUMN.
      i_fldcat-outputlen   = 15.       " SET THE OUTPUT LENGTH.
      i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat-just(1)     = 'C'.
      APPEND i_fldcat.
      CLEAR i_fldcat.
      i_fldcat-fieldname   = 'VKORG'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat-tabname     = 'IT_SO1'.
      i_fldcat-seltext_m   = 'SALES ORG.'.
      i_fldcat-col_pos     = 3.        " POSITION OF THE COLUMN.
      i_fldcat-outputlen   = 12.       " SET THE OUTPUT LENGTH.
      i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat-just(1)     = 'C'.
      APPEND i_fldcat.
      CLEAR i_fldcat.
      i_fldcat-fieldname   = 'SPART'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat-tabname     = 'IT_SO1'.
      i_fldcat-seltext_m   = 'DIVISION'.
      i_fldcat-col_pos     = 4.        " POSITION OF THE COLUMN.
      i_fldcat-outputlen   = 10.       " SET THE OUTPUT LENGTH.
      i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat-just(1)     = 'C'.
      APPEND i_fldcat.
      CLEAR i_fldcat.
      i_fldcat-fieldname   = 'KUNNR'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat-tabname     = 'IT_SO1'.
      i_fldcat-seltext_m   = 'SOLD TO PARTY'.
      i_fldcat-col_pos     = 5.        " POSITION OF THE COLUMN.
      i_fldcat-outputlen   = 15.       " SET THE OUTPUT LENGTH.
      i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat-just(1)     = 'C'.
      APPEND i_fldcat.
      CLEAR i_fldcat.
      i_fldcat-fieldname   = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat-tabname     = 'IT_SO1'.
      i_fldcat-seltext_m   = 'SALES DOC. ITEM'.
      i_fldcat-col_pos     = 6.        " POSITION OF THE COLUMN.
      i_fldcat-outputlen   = 17.       " SET THE OUTPUT LENGTH.
      i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat-just(1)     = 'C'.
      APPEND i_fldcat.
      CLEAR i_fldcat.
      i_fldcat-fieldname   = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat-tabname     = 'IT_SO1'.
      i_fldcat-seltext_m   = 'MATERIAL NO.'.
      i_fldcat-col_pos     = 7.        " POSITION OF THE COLUMN.
      i_fldcat-outputlen   = 20.       " SET THE OUTPUT LENGTH.
      i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat-just(1)     = 'C'.
      APPEND i_fldcat.
      CLEAR i_fldcat.
      i_fldcat-fieldname   = 'MAKTX'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat-tabname     = 'IT_SO1'.
      i_fldcat-seltext_m   = 'DESCRIPTION'.
      i_fldcat-col_pos     = 8.        " POSITION OF THE COLUMN.
      i_fldcat-outputlen   = 20.       " SET THE OUTPUT LENGTH.
      i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat-just(1)     = 'C'.
      APPEND i_fldcat.
      CLEAR i_fldcat.
      i_fldcat-fieldname   = 'KWMENG'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat-tabname     = 'IT_SO1'.
      i_fldcat-seltext_m   = 'QUANTITY'.
      i_fldcat-col_pos     = 9.        " POSITION OF THE COLUMN.
      i_fldcat-outputlen   = 15.       " SET THE OUTPUT LENGTH.
      i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat-do_sum    = 'X'.        " For doing "SUM"
      i_fldcat-just(1)     = 'C'.
      APPEND i_fldcat.
      CLEAR i_fldcat.
      i_fldcat-fieldname   = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat-tabname     = 'IT_SO1'.
      i_fldcat-seltext_m   = 'SALES UNIT'.
      i_fldcat-col_pos     = 10.       " POSITION OF THE COLUMN.
      i_fldcat-outputlen   = 10.       " SET THE OUTPUT LENGTH.
      i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat-just(1)     = 'C'.
      APPEND i_fldcat.
    ENDFORM.                    " FLD_CAT
    ****************** ALV SORTING  ***************************************
    *&      Form  SORT
    *       text
    *      -->P_I_SORT  text
    FORM t_sort  USING    p_i_sort TYPE slis_t_sortinfo_alv .
      DATA: i_sort TYPE slis_sortinfo_alv .
      REFRESH p_i_sort .
      CLEAR i_sort.
      i_sort-spos = 1.
      i_sort-tabname = 'IT_SO1'.
      i_sort-fieldname = 'VBELN'.
      i_sort-up = 'X'.
      i_sort-subtot = 'X'.
      i_sort-group = '*'.
      APPEND i_sort TO p_i_sort.
    ENDFORM.                    " SORT
    *FORM SET_PF_STATUS USING rt_extab TYPE slis_t_extab.
    *  SET PF-STATUS 'ZSTANDARD'.
    *ENDFORM. "Set_pf_status
    ***********FORM FOR EVENT USER_COMMAND1********************************
    FORM user_command1 USING r_ucomm LIKE sy-ucomm
                             rs_selfield TYPE slis_selfield.
    *CASE R_UCOMM .
    *    WHEN '&IC1' .
    *    IF rs_selfield-FIELDNAME = 'VBELN' .
    *    ENDIF .
    * WHEN OTHERS .
    * ENDCASE .
      CLEAR wa_so.
      REFRESH: it_del1 .
      IF r_ucomm = '&IC1' AND rs_selfield-fieldname = 'VBELN' AND
      rs_selfield-value IS NOT INITIAL.
        READ TABLE it_so1 INTO wa_so INDEX rs_selfield-tabindex.
        IF sy-subrc = 0.
          LOOP AT it_vbfa INTO wa_vbfa WHERE vbelv = wa_so-vbeln
                                       AND   posnv = wa_so-posnr.
            READ TABLE it_del_ful INTO wa_it_del_ful
                 WITH KEY vbeln = wa_vbfa-vbelv
                          posnr = wa_vbfa-posnn.
            IF sy-subrc = 0.
              CLEAR wa_del.
              MOVE wa_it_del_ful TO wa_del.
              APPEND wa_del TO it_del1.
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
    ********* SECOND ALV GRID DISPLAY ***********************************
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
        i_callback_program                = sy-repid
    *   I_CALLBACK_PF_STATUS_SET          = 'SET_PF_STATUS'
        i_callback_user_command           = 'USER_COMMAND2'
        i_callback_top_of_page            = 'TOP_OF_PAGE'
    *    I_BACKGROUND_ID                   = 'ALV_BACKGROUND'
         i_grid_title                      = i_title_vbpa
        it_fieldcat                       = i_fldcat2[]
        it_sort                           = i_sort
        TABLES
        t_outtab                          = it_del_ful
    *  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 .                    "USER_COMMAND1
    ********** FORM FOR EVENT USER_COMMAND 2 ******************************
    FORM user_command2 USING r_ucomm LIKE sy-ucomm
                             rs_selfield TYPE slis_selfield.
      CLEAR wa_so.
      REFRESH: it_del1 .
      IF r_ucomm = '&IC1' AND rs_selfield-fieldname = 'VBELN' AND
      rs_selfield-value IS NOT INITIAL.
        READ TABLE it_so1 INTO wa_so INDEX rs_selfield-tabindex.
    *    IF SY-SUBRC = 0.
    *       LOOP AT it_vbfa INTO wa_vbfa WHERE vbelv = WA_SO-vbeln
    *                                    AND   posnv = WA_SO-posnr.
        READ TABLE it_del_ful INTO wa_it_del_ful
             WITH KEY vbeln = rs_selfield-value
                      posnr = wa_vbfa-posnn.
        IF rs_selfield-fieldname = 'VBELN'.
          SET PARAMETER ID 'VL' FIELD wa_vbfa-vbeln .
          CALL TRANSACTION 'VL03' AND SKIP FIRST SCREEN.
        ENDIF .
    *       ENDLOOP.
    *    ENDIF.
      ENDIF.
    ENDFORM .                    "USER_COMMAND2
    ********* SECOND FIELDCATALOG ******************************************
    *&      Form  FLD_CAT2
    *       text
    *      -->P_I_FLDCAT2[]  text
    FORM fld_cat2  USING    p_i_fldcat2 TYPE slis_t_fieldcat_alv .
      CLEAR i_fldcat2.
      i_fldcat2-fieldname   = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat2-tabname     = 'IT_DEL_FUL'."TABLE NAME
      i_fldcat2-seltext_m   = 'DELIVERY NO.'.
      i_fldcat2-col_pos     = 1.        " POSITION OF THE COLUMN.
      i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
      i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat2-hotspot     = 'X'.
      i_fldcat2-just(1)     = 'C'.
      APPEND i_fldcat2.
      CLEAR i_fldcat2.
      i_fldcat2-fieldname   = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat2-seltext_m   = 'DELIVERY ITEM'.
      i_fldcat2-col_pos     = 2.        " POSITION OF THE COLUMN.
      i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
      i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat2-just(1)     = 'C'.
      APPEND i_fldcat2.
      CLEAR i_fldcat2.
      i_fldcat2-fieldname   = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat2-seltext_m   = 'MATERIAL NO.'.
      i_fldcat2-col_pos     = 3.        " POSITION OF THE COLUMN.
      i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
      i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat2-just(1)     = 'C'.
      APPEND i_fldcat2.
      CLEAR i_fldcat2.
      i_fldcat2-fieldname   = 'WERKS'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat2-seltext_m   = 'PLANT.'.
      i_fldcat2-col_pos     = 4.        " POSITION OF THE COLUMN.
      i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
      i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat2-just(1)     = 'C'.
      APPEND i_fldcat2.
      CLEAR i_fldcat2.
      i_fldcat2-fieldname   = 'LGORT'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat2-seltext_m   = 'ST. LOCATION'.
      i_fldcat2-col_pos     = 5.        " POSITION OF THE COLUMN.
      i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
      i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat2-just(1)     = 'C'.
      APPEND i_fldcat2.
      CLEAR i_fldcat2.
      i_fldcat2-fieldname   = 'CHARG'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat2-seltext_m   = 'BATCH NO.'.
      i_fldcat2-col_pos     = 6.        " POSITION OF THE COLUMN.
      i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
      i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat2-just(1)     = 'C'.
      APPEND i_fldcat2.
      CLEAR i_fldcat2.
      i_fldcat2-fieldname   = 'LFIMG'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat2-seltext_m   = 'ACT. DEL. QTY.'.
      i_fldcat2-col_pos     = 7.        " POSITION OF THE COLUMN.
      i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
      i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat2-just(1)     = 'C'.
      APPEND i_fldcat2.
      CLEAR i_fldcat2.
      i_fldcat2-fieldname   = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
      i_fldcat2-seltext_m   = 'SALES UNIT.'.
      i_fldcat2-col_pos     = 8.        " POSITION OF THE COLUMN.
      i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
      i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
      i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
      "SCROLLABLE AND HIDDABLE.
      i_fldcat2-just(1)     = 'C'.
      APPEND i_fldcat2.
    ENDFORM.                                                    " FLD_CAT2
    ***************** ALV LAYOUT *******************************************
    *&      Form  LAYOUT
    *       text
    *      -->P_I_LAYOUT  text
    FORM t_layout  USING    p_i_layout TYPE slis_layout_alv .
      p_i_layout-zebra  = 'X'.
      p_i_layout-totals_text = 'GRAND TOTAL ='.
    *  p_i_layout-CONFIRMATION_PROMPT = 'X'.
    *  p_i_layout-DEF_STATUS  = ' '.
      p_i_layout-info_fieldname = 'LINE_COLOR'.
    ENDFORM.                    " LAYOUT
    reward if useful.

  • How to keep hotspot on particular field in alv interactive report

    hi all,
    i have a small requirement.i developed one interactive alv.in vasic alv wheni click on sales order number it shows secondary alv.but here i would like to keep hotspot symbol so user can understand that he has to click on this sales order number only.
    any body can send me the sam ecode please.
    thanks,
    maheedhar.t

    hi...
    here is an ALV report i did with hot spot!!
    (only a part of my entire report)
    tables: marc.
    types : begin of DISP,
            SLNO TYPE I,
            werks type MARC-WERKS,
            matnr type MARA-MATNR,
            maktx type MAKT-MAKTx,
            mtart type MARA-MTART,
            volum type MARA-VOLUM,
            ntgew type MARA-NTGEW,
            ersda type MARA-ERSDA,
            laeda type MARA-LAEDA,
            end of DISP.
    data : it_disp type table of disp,
           wa_disp type disp.
    Data: it_fcat type slis_t_fieldcat_alv,
          wa_fcat type slis_fieldcat_alv.
    parameters : p_werks type marc-werks.
    IF p_werks IS INITIAL.
    MESSAGE I000(Z_errors).
    ELSE.
    select MARC~WERKS
           MARA~MATNR
           MAKT~MAKTX
           MARA~MTART
           MARA~VOLUM
           MARA~NTGEW
           MARA~ERSDA
           MARA~LAEDA
    from
    MARC inner join MARA
    on marcmatnr = maramatnr
    inner join makt
    on marcmatnr = maktmatnr
    into corresponding fields of table IT_DISP
    where marc~werks = p_werks and spras = 'EN'.
    IF SY-SUBRC = 0.
    PERFORM display.
    ELSE.
    MESSAGE I001(Z_errors).
    ENDIF.
    ENDIF.
    form display.
    LOOP AT IT_DISP INTO WA_DISP.
    MOVE SY-TABIX TO WA_DISP-SLNO.
    MODIFY IT_DISP FROM WA_DISP TRANSPORTING SLNO.
    ENDLOOP.
    wa_fcat-col_pos = 1.
    wa_fcat-fieldname = 'SLNO'.
    WA_fcat-SELTEXT_L = 'SLNO'.
    wa_fcat-tabname = 'IT_DISP'.
    wa_fcat-ref_fieldname ='SLNO'.
    *wa_fcat-ref_tabname = ''.
    <b>wa_fcat-hotspot = 'X'.</b>
    append wa_fcat to it_fcat.
    clear wa_fcat.
    the line in bold is wat which wil enable hpt spot for ur ALV display!
    try out.
    reward if my ans is useful.

  • Example for ALV interactive report

    Do you have any example of interactive ALV report?
    My requirement is:
    First I have to display all sales orders on a ALV output. Then if the user clicks on a particular sales order among these, it will go to another ALV output containing the details related to this sales order.
    Please provide me a sample code if you can.
    I appreciate.
    Thanks,
    Krishen

    Hi,
    Check this code..To display the orders and if you click on the hotspot of the sales order it will display the line items..
    TYPE-POOLS: slis.
    DATA: BEGIN OF itab1 OCCURS 0,
            vbeln TYPE vbeln,
            bstnk TYPE vbak-bstnk,
            erdat TYPE vbak-erdat,
            kunnr TYPE vbak-kunnr,
          END OF itab1.
    DATA: BEGIN OF itab2 OCCURS 0,
            vbeln  TYPE vbeln,
            matnr  TYPE vbap-matnr,
            netpr  TYPE vbap-netpr,
            kwmeng TYPE vbap-kwmeng,
          END OF itab2.
    DATA: t_fieldcatalog1 TYPE slis_t_fieldcat_alv.
    DATA: t_fieldcatalog2 TYPE slis_t_fieldcat_alv.
    DATA: v_repid         TYPE syrepid.
    v_repid = sy-repid.
    Get the fieldcatalog1
    PERFORM get_fieldcat1.
    Get the fieldcatalog2
    PERFORM get_fieldcat2.
    SELECT vbeln bstnk erdat kunnr UP TO 10 ROWS
           INTO TABLE itab1
           FROM vbak.
    IF NOT itab1[] IS INITIAL.
      SELECT vbeln matnr netpr kwmeng UP TO 10 ROWS
             INTO TABLE itab2
             FROM vbap
             FOR ALL ENTRIES IN itab1
             WHERE vbeln = itab1-vbeln.
    ENDIF.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
         EXPORTING
              i_callback_program      = v_repid
              i_callback_user_command = 'DISPLAY_DETAIL'
              it_fieldcat             = t_fieldcatalog1
         TABLES
              t_outtab                = itab1.
          FORM display_detail                                           *
    -->  UCOMM                                                         *
    -->  SELFIELD                                                      *
    FORM display_detail USING ucomm LIKE sy-ucomm
                            selfield TYPE slis_selfield.
      DATA: itab2_temp LIKE itab2 OCCURS 0 WITH HEADER LINE.
      IF ucomm = '&IC1'.
        READ TABLE itab1 INDEX selfield-tabindex.
        IF sy-subrc = 0.
          LOOP AT itab2 WHERE vbeln = itab1-vbeln.
            MOVE itab2 TO itab2_temp.
            APPEND itab2_temp.
          ENDLOOP.
          CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
               EXPORTING
                    i_callback_program = v_repid
                    it_fieldcat        = t_fieldcatalog2
               TABLES
                    t_outtab           = itab2_temp.
        ENDIF.
      ENDIF.
    ENDFORM.
          FORM GET_FIELDCAT1                                            *
    FORM get_fieldcat1.
      DATA: s_fieldcatalog TYPE slis_fieldcat_alv.
      s_fieldcatalog-col_pos = '1'.
      s_fieldcatalog-fieldname = 'VBELN'.
      s_fieldcatalog-tabname   = 'ITAB1'.
      s_fieldcatalog-rollname  = 'VBELN'.
      s_fieldcatalog-hotspot   = 'X'.
      APPEND s_fieldcatalog TO t_fieldcatalog1.
      CLEAR s_fieldcatalog.
      s_fieldcatalog-col_pos = '2'.
      s_fieldcatalog-fieldname = 'BSTNK'.
      s_fieldcatalog-tabname   = 'ITAB1'.
      s_fieldcatalog-rollname  = 'BSTNK'.
      APPEND s_fieldcatalog TO t_fieldcatalog1.
      CLEAR s_fieldcatalog.
      s_fieldcatalog-col_pos = '3'.
      s_fieldcatalog-fieldname = 'ERDAT'.
      s_fieldcatalog-tabname   = 'ITAB1'.
      s_fieldcatalog-rollname  = 'ERDAT'.
      APPEND s_fieldcatalog TO t_fieldcatalog1.
      CLEAR s_fieldcatalog.
      s_fieldcatalog-col_pos = '4'.
      s_fieldcatalog-fieldname = 'KUNNR'.
      s_fieldcatalog-tabname   = 'ITAB1'.
      s_fieldcatalog-rollname  = 'KUNNR'.
      APPEND s_fieldcatalog TO t_fieldcatalog1.
      CLEAR s_fieldcatalog.
    ENDFORM.
          FORM GET_FIELDCAT2                                            *
    FORM get_fieldcat2.
      DATA: s_fieldcatalog TYPE slis_fieldcat_alv.
      s_fieldcatalog-col_pos = '1'.
      s_fieldcatalog-fieldname = 'VBELN'.
      s_fieldcatalog-tabname   = 'ITAB2'.
      s_fieldcatalog-rollname  = 'VBELN'.
      APPEND s_fieldcatalog TO t_fieldcatalog2.
      CLEAR s_fieldcatalog.
      s_fieldcatalog-col_pos = '2'.
      s_fieldcatalog-fieldname = 'MATNR'.
      s_fieldcatalog-tabname   = 'ITAB2'.
      s_fieldcatalog-rollname  = 'MATNR'.
      APPEND s_fieldcatalog TO t_fieldcatalog2.
      CLEAR s_fieldcatalog.
      s_fieldcatalog-col_pos = '3'.
      s_fieldcatalog-fieldname = 'NETPR'.
      s_fieldcatalog-tabname   = 'ITAB2'.
      s_fieldcatalog-rollname  = 'NETPR'.
      APPEND s_fieldcatalog TO t_fieldcatalog2.
      CLEAR s_fieldcatalog.
      s_fieldcatalog-col_pos = '4'.
      s_fieldcatalog-fieldname = 'KWMENG'.
      s_fieldcatalog-tabname   = 'ITAB2'.
      s_fieldcatalog-rollname  = 'KWMENG'.
      APPEND s_fieldcatalog TO t_fieldcatalog2.
      CLEAR s_fieldcatalog.
    ENDFORM.
    Thanks,
    Naren

  • Doubts in alv interactive report

    Hello Gurus
    i am new to abap  i have doubt regarding interactive alv .  i wrote one but it gives runtime error . i taken reference to a sample program availiable please explain this code so i can write interactive alv effectively.
    FORM POPULATE_EVENT.
    READ TABLE ITAB_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
    IF SY-SUBRC EQ 0.
    WA_EVENT-FORM = 'TOP_OF_PAGE'.
    MODIFY ITAB_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-FORM.
    ENDIF.
    IF ITAB_EMPLOY-EMPID NE ''.
    READ TABLE ITAB_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
    IF SY-SUBRC EQ 0.
    WA_EVENT-FORM = 'USER_COMMAND'. MODIFY ITAB_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-NAME.
    ENDIF.
    ENDIF.
    ENDFORM.

    Hi,
        Event form names are appended to an internal table and passed to the ALV. And whatever you write inside that form
    can be called through the function module.
    What you are trying to do is modify the internal table with the form name, which does not exsist. Instead of this append it.
    There are lot of example of this ALV list events.
    DATA:     T_EVENT TYPE SLIS_T_EVENT,
         W_EVENT TYPE SLIS_ALV_EVENT.
    CLEAR W_EVENT.
    W_EVENT-FORM = SLIS_EV_AFTER_LINE_OUTPUT.
    W_EVENT-NAME = SLIS_EV_AFTER_LINE_OUTPUT."AFTER_LINE_OUTPUT event
    APPEND W_EVENT TO T_EVENT.
    Thanks & Regards,
    Tapodipta Khan

Maybe you are looking for

  • HT1386 iphone 4S will not update due to error 3194, need help

    went to update phone to 7 and get a 3194 error and it will not update, currently stuck with usb icon and itunes icon on main screen

  • Redefine static method?

    It seems that I cannot redefine a static method in a subclass in ABAP OO, right? Is there a reason for that? Is this like this in other languages as well?

  • Problems with web client system 9.2

    <p>When I log on to the web client and select the cluster, HFM sendme the error:</p><p> </p><p> </p><table cellspacing="0" cellpadding="0" height="100%" width="100%"border="0" id="MainTable"><tr><td valign="top" align="left" height="100%"><table cell

  • Loading a grid or matrix with external data

    Hi, we have two SAP companies defined, from one company I need to perform a search on the second company and provide a grid or a matrix with the results. We are using the 2007 SDK is it possible to do this? Many thanks. Mike.

  • I don't know much about wireless so help please? (:

    okay i already had bought a WRT54G a while back and decided now to get a wireless connection. With the router, can I use an ethernet wire to connect router to internet and then use a network adapter for a second computer? In other words, I want to kn