Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

interactive ALV code

Former Member
0 Kudos

Hi All,

Please help me in sample code to write interactive alv where I have two list indexes.

In first page I should get the text like "count of number 1 --> 20"

like this 10 records will be there and in second page I will have details of that count when I double click on that.

Regards,

Akanksha

8 REPLIES 8

Former Member
0 Kudos

REPORT Z50651_ALV_INTERACTIVE MESSAGE-ID ZMSG_50651

LINE-SIZE 100

LINE-COUNT 60

NO STANDARD PAGE HEADING.

******************TABLES DECLARATION*****************

TABLES : VBAP,MARA.

*****************TYPE POOLS**************************

TYPE-POOLS : SLIS.

****************INTERNAL TABLES**********************

DATA : BEGIN OF IT_VBAP OCCURS 0,

VBELN LIKE VBAP-VBELN, "SALES DOCUMENT

POSNR LIKE VBAP-POSNR, "SALES DOCUMENT ITEM

MATNR LIKE VBAP-MATNR, "MATERIAL NUMBER

END OF IT_VBAP.

****************TEMPORARY VARIABLES******************

DATA : V_VBELN LIKE VBAP-VBELN."SALES DOCUMENT

DATA : V_MTART LIKE MARA-MTART. "MATERIAL TYPE

*****************FIELD CATALOG***********************

DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

****************LAYOUT*******************************

DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

***************VARIANT*******************************

DATA : G_VARIANT LIKE DISVARIANT.

****************SAVE*********************************

DATA : G_SAVE(1) TYPE C.

*****************EVENTS******************************

DATA : XS_EVENTS TYPE SLIS_ALV_EVENT,

G_EVENTS TYPE SLIS_T_EVENT.

******************PF STATUS**************************

DATA : PF_STATUS TYPE SLIS_FORMNAME VALUE 'SET_PF_STATUS'.

******************USER COMMAND************************

DATA : USER_COMMAND TYPE SLIS_FORMNAME VALUE 'SET_USER_COMMAND',

R_UCOMM LIKE SY-UCOMM.

****************SELECTION SCREEN************************

SELECT-OPTIONS : S_VBELN FOR VBAP-VBELN.

***************AT SELECTION SCREEN*********************

AT SELECTION-SCREEN.

PERFORM VALIDATE.

**************START-OF-SELECTION**************************

START-OF-SELECTION.

PERFORM GET_DETAILS.

PERFORM FIELDCAT.

PERFORM LAYOUT.

PERFORM VARIANT.

PERFORM SAVE.

PERFORM EVENTS.

PERFORM ALV_DISPLAY.

*********************FORMS*******************************************

&----


*& Form validate

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VALIDATE .

SELECT SINGLE VBELN

FROM VBAP

INTO V_VBELN

WHERE VBELN IN S_VBELN.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'enter valid vbeln'.

ENDIF.

ENDFORM. " validate

&----


*& Form get_details

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DETAILS .

SELECT VBELN

POSNR

MATNR

FROM VBAP

INTO TABLE IT_VBAP

WHERE VBELN IN S_VBELN.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'no details found'.

ENDIF.

ENDFORM. " get_details

&----


*& Form fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FIELDCAT .

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-OUTPUTLEN = 10.

WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'POSNR'.

WA_FIELDCAT-OUTPUTLEN = 6.

WA_FIELDCAT-SELTEXT_L = 'ITEM'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-OUTPUTLEN = 18.

WA_FIELDCAT-SELTEXT_L = 'MATERIAL NO'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. " fieldcat

&----


*& Form LAYOUT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM LAYOUT .

WA_LAYOUT-ZEBRA = 'X'.

ENDFORM. " LAYOUT

&----


*& Form VARIANT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VARIANT .

CLEAR G_VARIANT.

G_VARIANT-REPORT = SY-REPID.

ENDFORM. " VARIANT

&----


*& Form SAVE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SAVE .

CLEAR G_SAVE.

G_SAVE = 'A'.

ENDFORM. " SAVE

&----


*& Form EVENTS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM EVENTS .

CLEAR XS_EVENTS.

XS_EVENTS-NAME = SLIS_EV_TOP_OF_PAGE.

XS_EVENTS-FORM = 'TOP_OF_PAGE'.

APPEND XS_EVENTS TO G_EVENTS.

ENDFORM. " EVENTS

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM TOP_OF_PAGE.

WRITE 😕 ' INTELLI GROUP'.

ENDFORM. "TOP_OF_PAGE

&----


*& Form ALV_DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM ALV_DISPLAY .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = PF_STATUS

I_CALLBACK_USER_COMMAND = USER_COMMAND

  • I_STRUCTURE_NAME =

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

I_SAVE = G_SAVE

IS_VARIANT = G_VARIANT

IT_EVENTS = G_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

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IT_VBAP

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " ALV_DISPLAY

&----


*& Form SET_PF_STATUS

&----


  • text

----


FORM SET_PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'STANDARD' EXCLUDING EXTAB.

ENDFORM. "SET_PF_STATUS

&----


*& Form SET_USER_COMMAND

&----


  • text

----


FORM SET_USER_COMMAND USING R_UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN 'DC'.

READ TABLE IT_VBAP INDEX RS_SELFIELD-TABINDEX.

IF SY-SUBRC = 0.

SELECT SINGLE MTART

FROM MARA

INTO V_MTART

WHERE MATNR = IT_VBAP-MATNR.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'NO MATERIAL DESCRIPTION FOR SELECTED MATERIAL NO'.

ELSE.

WRITE 😕 'MATERIAL NO :',IT_VBAP-MATNR.

WRITE 😕 'MATERIAL TYPE :' , V_MTART.

  • SUBMIT SLIS_DUMMY WITH P_MATNR EQ IT_VBAP-MATNR

  • WITH P_MTART EQ V_MTART.

ENDIF.

ENDIF.

WHEN 'BACK'.

LEAVE TO SCREEN 0.

WHEN 'EXIT'.

LEAVE TO SCREEN 0.

WHEN 'CLOSE'.

CALL TRANSACTION 'SE38'.

ENDCASE.

0 Kudos

Hi All,

Thank you for your reply.

I have one more query regarding this.I hope Everyone will help me in this also.

In the interactive ALV,I have in first screen,One internal table with fields text and count.

In the next screen,I have internal table with fields,vbeln,kunnr and name1.

I want the number of records according to the count in the first internal table.

If in the first list,the value of text is 'xxx' and count is 20,I want the 20 records in second list.

Hope you all understood my problem.

Please tell me the possible solution soon because I am in hurry.

Please try to help me........

Regards,

Akanksha

rahulkavuri
Active Contributor
0 Kudos

<b>Award points if found helpful</b>

*&---------------------------------------------------------------------*
*& Report  Z_50657_ALV_EX5                                             *
*&                                                                     *
*&---------------------------------------------------------------------*
*& Program Name: Test Program for ALV                                  *
*  Developer Name: ADCDEV (Rahul Kavuri )                              *
*  Description: This program demonstrates interactive lists
*& Date:13th April 2006                                                *
*&---------------------------------------------------------------------*


REPORT  Z_50657_ALV_EX5 NO STANDARD PAGE HEADING
        LINE-COUNT 65(3)
        LINE-SIZE 220
        MESSAGE-ID ZZ.

************************************************************************
*                             Type Pools                               *
************************************************************************

TYPE-POOLS: SLIS, ICON.

************************************************************************
*                              Tables                                  *
************************************************************************

TABLES : VBRK,  "Billing Master table
         VBRP.  "Billing Item table


************************************************************************
*                         VARIABLES DECLARATION                        *
************************************************************************

DATA: STR_DATE LIKE SY-DATUM.

DATA: X_FIELDCAT_VBRK TYPE SLIS_FIELDCAT_ALV,
      IT_FIELDCAT_VBRK TYPE SLIS_T_FIELDCAT_ALV.

DATA: X_FIELDCAT_VBRP TYPE SLIS_FIELDCAT_ALV,
      IT_FIELDCAT_VBRP TYPE SLIS_T_FIELDCAT_ALV.

DATA: L_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA: CUR_VBELN(15), CUR_VBELN_VALUE(15).

DATA: TEMP_VBELN(10).

DATA: CTAB LIKE SY-TABIX.


************************************************************************
*                         Internal Tables                              *
************************************************************************

* Internal table to hold data from VBRK

DATA: BEGIN OF IT_VBRK OCCURS 0,
      VBELN LIKE VBRK-VBELN,
      WAERK LIKE VBRK-WAERK,
      VKORG LIKE VBRK-VKORG,
            FKDAT(8),
*      FKDAT LIKE VBRK-FKDAT,
      BUKRS LIKE VBRK-BUKRS,
      BUTXT LIKE T001-BUTXT,
      CHECK(1) TYPE C,
      END OF IT_VBRK.

* Internal table to hold data from VBRP

DATA: BEGIN OF IT_VBRP OCCURS 0,
      VBELN LIKE VBRP-VBELN,
      POSNR LIKE VBRP-POSNR,
      FKIMG LIKE VBRP-FKIMG,
      VRKME LIKE VBRP-VRKME,
      NETWR LIKE VBRP-NETWR,
      MATNR LIKE VBRP-MATNR,
      ARKTX LIKE VBRP-ARKTX,
      END OF IT_VBRP.

DATA: BEGIN OF IT_T001 OCCURS 0,
      BUKRS LIKE T001-BUKRS,
      BUTXT LIKE T001-BUTXT,
      END OF IT_T001.
************************************************************************
*                       Selection-Screen                               *
************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: S_VBELN FOR VBRK-VBELN,
                S_FKDAT FOR VBRK-FKDAT,
                S_MATNR FOR VBRP-MATNR.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.

PARAMETERS : LIST RADIOBUTTON GROUP G1,
             GRID  RADIOBUTTON GROUP G1 DEFAULT 'X'.

PARAMETERS : P_FKDAT(8).

SELECTION-SCREEN END OF BLOCK B2.

************************************************************************
*****************            INITIALIZATION         ********************
************************************************************************

INITIALIZATION.

  STR_DATE = SY-DATUM - 200.
  S_FKDAT-LOW = STR_DATE.
  S_FKDAT-HIGH = SY-DATUM.
  S_FKDAT-SIGN = 'I'.
  APPEND S_FKDAT.


************************************************************************
*                     At  Selection-Screen Output                      *
************************************************************************
AT SELECTION-SCREEN OUTPUT .

  LOOP AT SCREEN.

    IF SCREEN-NAME = 'S_FKDAT-HIGH'.
      SCREEN-INPUT = 0.
      MODIFY SCREEN.
    ENDIF.

  ENDLOOP.

************************************************************************
*                     At  Selection-Screen                             *
************************************************************************
AT SELECTION-SCREEN.

  PERFORM VALIDATION.

************************************************************************
*                       Start of Selection                             *
************************************************************************

START-OF-SELECTION.

*POPULATION OF DATA INTO INTERNAL TABLE IT_VBRK AND IT_VBRP
  PERFORM GET_DATA_VBRK.

  PERFORM FIELDCATALOG_CHANGE.

*ALV GRID/LIST DISPLAY
  PERFORM FIRST_SCREEN_DISPLAY.


*&--------------------------------------------------------------------*
*&      Form  VALIDATION
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM VALIDATION.

  IF S_VBELN[] IS NOT INITIAL.

    SELECT SINGLE VBELN
                  FROM VBRK
                  INTO VBRK-VBELN
                  WHERE VBELN IN S_VBELN.

    IF SY-SUBRC <> 0.
      MESSAGE I000 WITH 'PLEASE ENTER CORRECT BILLING DOCUMENT'.
      STOP.
    ENDIF.

  ENDIF.

  IF S_FKDAT[] IS INITIAL.

    MESSAGE I000 WITH 'PLEASE ENTER ALL THE MANDATORY FIELDS'.
    STOP.

  ENDIF.

  IF S_MATNR[] IS NOT INITIAL.

    SELECT SINGLE MATNR
                  FROM MARA
                  INTO VBRP-MATNR
                  WHERE MATNR IN S_MATNR.

    IF SY-SUBRC <> 0.
      MESSAGE I000 WITH 'PLEASE ENTER CORRECT MATERIAL NUMBER'.
      STOP.
    ENDIF.


  ENDIF.

ENDFORM.                    "VALIDATION

*&--------------------------------------------------------------------*
*&      Form  GET_DATA_VBRK
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM GET_DATA_VBRK.

  SELECT VBELN
         WAERK
         VKORG
         FKDAT
         BUKRS
         FROM VBRK INTO TABLE IT_VBRK
         WHERE VBELN IN S_VBELN
               AND FKDAT IN S_FKDAT.

  SORT IT_VBRK BY VBELN BUKRS.

  SELECT BUKRS
         BUTXT
         FROM T001 INTO TABLE IT_T001
         FOR ALL ENTRIES IN IT_VBRK
         WHERE BUKRS = IT_VBRK-BUKRS.

  LOOP AT IT_VBRK.

    CTAB = SY-TABIX.

    LOOP AT IT_T001 WHERE BUKRS = IT_VBRK-BUKRS.

      IF SY-SUBRC  = 0.
        IT_VBRK-BUTXT = IT_T001-BUTXT.
        MODIFY IT_VBRK INDEX CTAB.
        CLEAR CTAB.
      ENDIF.

    ENDLOOP.

  ENDLOOP.

ENDFORM.                    "GET_DATA

*&--------------------------------------------------------------------*
*&      Form  FIELDCATALOG_CHANGE
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*

FORM FIELDCATALOG_CHANGE.

*Layout Change
  L_LAYOUT-ZEBRA = 'X'.
*  L_LAYOUT-BOX_FIELDNAME = 'CHECK'.

*Define seperate Color for the fields

  X_FIELDCAT_VBRK-COL_POS = 1.
  X_FIELDCAT_VBRK-FIELDNAME = 'CHECK'.
  X_FIELDCAT_VBRK-SELTEXT_M = 'chek'.
  X_FIELDCAT_VBRK-CHECKBOX = 'X'.
  X_FIELDCAT_VBRK-INPUT = 'X'.
  X_FIELDCAT_VBRK-EDIT = 'X'.
  APPEND X_FIELDCAT_VBRK TO  IT_FIELDCAT_VBRK.
  CLEAR X_FIELDCAT_VBRK.

  X_FIELDCAT_VBRK-COL_POS = 2.
  X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.
  X_FIELDCAT_VBRK-FIELDNAME = 'VBELN'.
  X_FIELDCAT_VBRK-EMPHASIZE = 'C301'.
  X_FIELDCAT_VBRK-OUTPUTLEN = 15.
  APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.
  CLEAR X_FIELDCAT_VBRK.

  X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.
  X_FIELDCAT_VBRK-FIELDNAME = 'WAERK'.
  X_FIELDCAT_VBRK-EMPHASIZE = 'C201'.
  X_FIELDCAT_VBRK-OUTPUTLEN = 15.
  APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.
  CLEAR X_FIELDCAT_VBRK.

  X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.
  X_FIELDCAT_VBRK-FIELDNAME = 'VKORG'.
  X_FIELDCAT_VBRK-EMPHASIZE = 'C300'.
  X_FIELDCAT_VBRK-OUTPUTLEN = 15.
  APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.
  CLEAR X_FIELDCAT_VBRK.

  X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.
  X_FIELDCAT_VBRK-FIELDNAME = 'FKDAT'.
  X_FIELDCAT_VBRK-EMPHASIZE = 'C600'.
  X_FIELDCAT_VBRK-OUTPUTLEN = 15.
  APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.
  CLEAR X_FIELDCAT_VBRK.


  X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.
  X_FIELDCAT_VBRK-FIELDNAME = 'BUKRS'.
  X_FIELDCAT_VBRK-EMPHASIZE = 'C400'.
  X_FIELDCAT_VBRK-OUTPUTLEN = 15.
  APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.
  CLEAR X_FIELDCAT_VBRK.


  X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.
  X_FIELDCAT_VBRK-FIELDNAME = 'BUTXT'.
  X_FIELDCAT_VBRK-EMPHASIZE = 'C500'.
  X_FIELDCAT_VBRK-OUTPUTLEN = 15.
  APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.
  CLEAR X_FIELDCAT_VBRK.

ENDFORM.                    "FIELDCATALOG_CHANGE


*&--------------------------------------------------------------------*
*&      Form  FIRST_SCREEN_DISPLAY
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM FIRST_SCREEN_DISPLAY.


  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      I_PROGRAM_NAME         = SY-REPID
      I_INTERNAL_TABNAME     = 'IT_VBRK'
      I_INCLNAME             = SY-REPID
    CHANGING
      CT_FIELDCAT            = IT_FIELDCAT_VBRK
    EXCEPTIONS
      INCONSISTENT_INTERFACE = 1
      PROGRAM_ERROR          = 2
      OTHERS                 = 3.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

* CHECK RADIO BUTTON SELECTION AND ACCORDINGLY DISPLAY LIST OR GRID ALV


  IF LIST = 'X'.

    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
     EXPORTING
       I_CALLBACK_PROGRAM             = SY-REPID
       I_CALLBACK_PF_STATUS_SET       = 'STATUS'
       I_CALLBACK_USER_COMMAND        = 'USER_COMMAND'
       IS_LAYOUT                      = L_LAYOUT
       IT_FIELDCAT                    = IT_FIELDCAT_VBRK
*       IT_EVENTS                      =

      TABLES
        T_OUTTAB                       = IT_VBRK

     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.

    CLEAR LIST.

  ENDIF.


  IF GRID = 'X'.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        I_CALLBACK_PROGRAM             = SY-REPID
       I_CALLBACK_PF_STATUS_SET       = 'STATUS'
       I_CALLBACK_USER_COMMAND        = 'USER_COMMAND'
        IS_LAYOUT                      = L_LAYOUT
        IT_FIELDCAT                    = IT_FIELDCAT_VBRK
*       IT_EVENTS                      =

       TABLES
         T_OUTTAB                       = IT_VBRK

      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.

    CLEAR GRID.

  ENDIF.


ENDFORM.                    "FIRST_SCREEN_DISPLAY

*&--------------------------------------------------------------------*
*&      Form  STATUS
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      -->P_EXTAB    text
*---------------------------------------------------------------------*
FORM STATUS USING P_EXTAB TYPE SLIS_T_EXTAB.

  SET PF-STATUS 'STATUS' EXCLUDING P_EXTAB.

ENDFORM.                    "STATUS

*&---------------------------------------------------------------------*
*&      Form  USER_COMMAND
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->R_UCOMM      text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*

FORM USER_COMMAND USING R_UCOMM     LIKE SY-UCOMM
                               RS_SELFIELD TYPE SLIS_SELFIELD.

  CASE R_UCOMM.

    WHEN 'BACK' OR 'CANC' OR 'EXIT'.

      LEAVE TO SCREEN 0.

    WHEN '&IC1'.

      IF RS_SELFIELD-FIELDNAME = 'VBELN'.

        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            INPUT  = RS_SELFIELD-VALUE
          IMPORTING
            OUTPUT = TEMP_VBELN.


*      TEMP_VBELN = RS_SELFIELD-VALUE.
        PERFORM GET_DATA_VBRP.
        PERFORM GET_SECOND_SCREEN_DISPLAY.

      ENDIF.

  ENDCASE.

ENDFORM.                    "USER_COMMAND

*&--------------------------------------------------------------------*
*&      Form  GET_DATA_VBRP
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM GET_DATA_VBRP.

  SELECT VBELN
         POSNR
         FKIMG
         VRKME
         NETWR
         MATNR
         ARKTX
         FROM VBRP INTO TABLE IT_VBRP
         WHERE VBELN = TEMP_VBELN.

  IF SY-SUBRC <> 0.

    MESSAGE E000 WITH ' NO BILLING DETAILS FOUND'.
    EXIT.

  ENDIF.

ENDFORM.                    "GET_DATA_VBRP

*&--------------------------------------------------------------------*
*&      Form  GET_SECOND_SCREEN_DISPLAY
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM GET_SECOND_SCREEN_DISPLAY.

* FIELDCATALOG CALL

  X_FIELDCAT_VBRP-TABNAME = 'IT_VBRP'.
  X_FIELDCAT_VBRP-FIELDNAME = 'VRKME'.
  X_FIELDCAT_VBRP-EMPHASIZE = 'C500'.
  X_FIELDCAT_VBRP-OUTPUTLEN = 10.
  APPEND X_FIELDCAT_VBRP TO IT_FIELDCAT_VBRP.
  CLEAR X_FIELDCAT_VBRP.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      I_PROGRAM_NAME         = SY-REPID
      I_INTERNAL_TABNAME     = 'IT_VBRP'
      I_INCLNAME             = SY-REPID
    CHANGING
      CT_FIELDCAT            = IT_FIELDCAT_VBRP
    EXCEPTIONS
      INCONSISTENT_INTERFACE = 1
      PROGRAM_ERROR          = 2
      OTHERS                 = 3.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* CHECK RADIO BUTTON SELECTION AND ACCORDINGLY DISPLAY LIST OR GRID ALV


  IF LIST = 'X'.

    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
     EXPORTING
       I_CALLBACK_PROGRAM             = SY-REPID
       I_CALLBACK_PF_STATUS_SET       = 'STATUS'
       I_CALLBACK_USER_COMMAND        = 'USER_COMMAND'
       IS_LAYOUT                      = L_LAYOUT
       IT_FIELDCAT                    = IT_FIELDCAT_VBRP
       I_SCREEN_START_COLUMN          = 1
       I_SCREEN_START_LINE            = 1
       I_SCREEN_END_COLUMN            = 100
       I_SCREEN_END_LINE              = 10
*       IT_EVENTS                      =

      TABLES
        T_OUTTAB                       = IT_VBRP

     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.


  ENDIF.


  IF GRID = 'X'.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
       I_CALLBACK_PROGRAM             = SY-REPID
       I_CALLBACK_PF_STATUS_SET       = 'STATUS'
       I_CALLBACK_USER_COMMAND        = 'USER_COMMAND'
       IS_LAYOUT                      = L_LAYOUT
       IT_FIELDCAT                    = IT_FIELDCAT_VBRP
       I_SCREEN_START_COLUMN          = 1
       I_SCREEN_START_LINE            = 1
       I_SCREEN_END_COLUMN            = 100
       I_SCREEN_END_LINE              = 10
*       IT_EVENTS                      =

       TABLES
         T_OUTTAB                       = IT_VBRP

      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.

  ENDIF.


ENDFORM.                    "GET_SECOND_SCREEN_DISPLAY

Former Member
0 Kudos

Hi Akanksha,

check this sample code.

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.

award points if helpful.

regards,

keerthi.

Former Member
0 Kudos

Hi akanksha,

1. There are some parameters

in the FM which are passed,

and a new FORM has to be written.

2. Just copy paste this code in new program.

3. It will display list of company.

On double-clicking on the alv,

it will again display the clicked company code.

Important code has been marked.

4.

REPORT abc.

TYPE-POOLS : slis.

*----


Data

DATA : BEGIN OF itab OCCURS 0.

INCLUDE STRUCTURE t001.

DATA : END OF itab.

DATA : alvfc TYPE slis_t_fieldcat_alv.

*----


Select Data

SELECT * FROM t001 INTO TABLE itab.

*------- Field Catalogue

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'ITAB'

i_inclname = sy-repid

CHANGING

ct_fieldcat = alvfc

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

*----


Display

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

it_fieldcat = alvfc

i_callback_program = sy-repid "<-------Important

i_callback_user_command = 'ITAB_USER_COMMAND' "<------ Important

TABLES

t_outtab = itab

EXCEPTIONS

program_error = 1

OTHERS = 2.

*----


  • CALL BACK FORM

*----


FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE

slis_selfield.

READ TABLE itab INDEX whatrow-tabindex.

WRITE itab-bukrs.

ENDFORM. "ITAB_user_command

regards,

amit m.

Former Member
0 Kudos

HI Akanksha,

Just check it.

REPORT ZLAXMI_ALVEXER5 .

TYPE-POOLS:SLIS.

*FIELDCATALOG

DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV.

*BILLING MASTER TABLE

DATA: BEGIN OF ITAB OCCURS 0,

VBELN LIKE VBRK-VBELN,

WAERK LIKE VBRK-WAERK,

VKORG LIKE VBRK-VKORG,

FKDAT LIKE VBRK-FKDAT,

NETWR LIKE VBRK-NETWR,

END OF ITAB.

DATA: BEGIN OF ITAB1 OCCURS 0,

VBELN LIKE VBRP-VBELN,

POSNR LIKE VBRP-POSNR,

FKIMG LIKE VBRP-FKIMG,

VRKME LIKE VBRP-VRKME,

NETWR LIKE VBRP-NETWR,

MATNR LIKE VBRP-MATNR,

ARKTX LIKE VBRP-ARKTX,

END OF ITAB1.

DATA: IT_VBRP LIKE ITAB1 OCCURS 0 WITH HEADER LINE.

SELECT VBELN

WAERK

VKORG

FKDAT

NETWR

UP TO 100 ROWS

FROM VBRK

INTO TABLE ITAB.

IF SY-SUBRC = 0.

SORT ITAB BY VBELN .

SELECT

VBELN

POSNR

FKIMG

VRKME

NETWR

MATNR

ARKTX

INTO TABLE ITAB1

FROM VBRP

FOR ALL ENTRIES IN ITAB

WHERE VBELN = ITAB-VBELN.

ENDIF.

DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

X_FIELDCAT-FIELDNAME = 'VBELN'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 1.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'WAERK'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 2.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'VKORG'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 3.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'FKDAT'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 4.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'NETWR'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 5.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = 'POPUP'

I_CALLBACK_USER_COMMAND = 'HANDLE_USER_COMMAND'

IT_FIELDCAT = IT_FIELDCAT

TABLES

T_OUTTAB = ITAB

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

IF SY-SUBRC = 0.

ENDIF.

&----


*& Form POPUP

&----


  • text

----


  • -->P_EXTAB text

----


FORM POPUP USING P_EXTAB TYPE SLIS_T_EXTAB.

*- Pf status

SET PF-STATUS 'POPUP'.

ENDFORM. " POPUP

&----


*& Form HANDLE_USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->RS_SELFIELD text

----


FORM HANDLE_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

CLEAR IT_VBRP[]

.

IF RS_SELFIELD-FIELDNAME = 'VBELN'.

READ TABLE ITAB INDEX RS_SELFIELD-TABINDEX.

LOOP AT ITAB1 WHERE VBELN = ITAB-VBELN.

MOVE-CORRESPONDING ITAB1 TO IT_VBRP.

APPEND IT_VBRP.

ENDLOOP.

PERFORM INTERACTIVE_REPORT.

ENDIF.

ENDCASE.

ENDFORM. "HANDLE_USER_COMMAND

&----


*& Form interactive_report

&----


  • text

----


FORM INTERACTIVE_REPORT .

X_FIELDCAT-FIELDNAME = 'VBELN'.

X_FIELDCAT-SELTEXT_L = 'BILLING DOC'.

X_FIELDCAT-TABNAME = 'IT_VBRP'.

X_FIELDCAT-COL_POS = 1.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'POSNR'.

X_FIELDCAT-SELTEXT_L = 'ITEM'.

X_FIELDCAT-TABNAME = 'IT_VBRP'.

X_FIELDCAT-COL_POS = 2.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'FKIMG'.

X_FIELDCAT-SELTEXT_M = 'INV QTY'.

X_FIELDCAT-TABNAME = 'IT_VBRP'.

X_FIELDCAT-COL_POS = 3.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'VRKME'.

X_FIELDCAT-SELTEXT_M = 'SALES UNIT'.

X_FIELDCAT-TABNAME = 'IT_VBRP'.

X_FIELDCAT-COL_POS = 4.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'NETWR'.

X_FIELDCAT-SELTEXT_M = 'NET PRICE'.

X_FIELDCAT-TABNAME = 'IT_VBRP'.

X_FIELDCAT-COL_POS = 5.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'MATNR'.

X_FIELDCAT-SELTEXT_M = 'MATERIAL'.

X_FIELDCAT-TABNAME = 'IT_VBRP'.

X_FIELDCAT-COL_POS = 6.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'ARKTX'.

X_FIELDCAT-SELTEXT_M = 'SALES ORDER'.

X_FIELDCAT-TABNAME = 'IT_VBRP'.

X_FIELDCAT-COL_POS = 7.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

IT_FIELDCAT = IT_FIELDCAT1

TABLES

T_OUTTAB = IT_VBRP

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

IF SY-SUBRC = 0.

ENDIF.

ENDFORM. " interactive_report

if it helps plz reward.

Regards

Laxmi

Former Member
0 Kudos

hai Akash

go through the following Link

http://www.geocities.com/mpioud/Abap_programs.html

Thanks & regards

Sreeni

Former Member
0 Kudos

Hii

look at this code and put your code when sy-lsind = 1 and sy-lsind = 2

REPORT ZS_INTERACTIVE_REPORT message-id abc .

----


  • TABLES

----


TABLES : MARA.

----


  • INTERNAL TABLES

----


DATA : BEGIN OF ITAB OCCURS 0,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

END OF ITAB.

DATA : V_FIELD(20),

V_VALUE TYPE MARA-MATNR.

----


  • SELECTION SCREEN

----


SELECT-OPTIONS : S_MATNR FOR MARA-MATNR.

----


  • START OF SELECTION

----


START-OF-SELECTION.

SELECT MATNR

ERSDA

ERNAM

INTO TABLE ITAB

FROM MARA

WHERE MATNR IN S_MATNR.

if sy-subrc <> 0.

message e001 with 'no data'.

endif.

----


  • AT LINE SELECTION

----


AT LINE-SELECTION.

GET CURSOR FIELD V_FIELD VALUE V_VALUE.

if sy-lsind = 1.

cASE : v_field.

WHEN 'ITAB-MATNR'.

LOOP AT ITAB.

WRITE : / ITAB-MATNR.

ENDLOOP.

WHEN OTHERS.

message i000 with 'no nagiation'.

ENDCASE.

elseif sy-lsind = 2.

read table itab with key matnr = v_value.

if sy-subrc = 0.

write:/1 itab-matnr,

itab-ernam.

endif.

endif.

----


  • END OF SELECTION

----


END-OF-SELECTION.

LOOP AT ITAB.

WRITE : / SY-VLINE ,(18) ITAB-MATNR,

sy-vline(1), ITAB-ERSDA,

sy-vline(1), (12) ITAB-ERNAM,SY-VLINE.

Regards

Naresh