Application Development and Automation 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: 
Read only

alv-grid

Former Member
0 Likes
447

i have a internal table

i have to make alv grid display same as internal table structure

and in that field there is a perticular field if u double click

i have to excute some code and that grid display must be display mode.

i have a internal table

i have to make alv grid display same as internal table structure

and in that field there is a perticular field if u double click

i have to excute some code and that grid display must be display mode.

3 REPLIES 3
Read only

Former Member
0 Likes
430

Hello,

Pleas go through this likk for ALV Interactive Grid dispaly

http://www.sapfans.com/forums/viewtopic.php?t=11601

http://www.sapfans.com/forums/viewtopic.php?t=23010

Thanks

PK

Read only

Former Member
0 Likes
430

Hi,

You can pass the internal table to the function SET_TABLE_FOR_FIRST_DISPLAY.

Also you can use LVC_FIELDCATALOG_MERGE and pass the structure name.

Then you can send this field catelog to the above mentioned FM.

Then that alv will display same contents as that of internal table.

To capture the double click event, you wil have to provide the event handler for your alv grid and capture the DOUBLE_CLICK event.

hope this will help you.

~ Ramanath.

Read only

Former Member
0 Likes
430

Please check this code.

Shreekant

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.
DATA : IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA : I_SAVE(1) TYPE C.
DATA: ITAB2_TEMP LIKE ITAB2 OCCURS 0 WITH HEADER LINE.


*Selection-Screen.
SELECTION-SCREEN : BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-001.
PARAMETERS : P_BUKRS LIKE BSIS-BUKRS.
SELECTION-SCREEN : END OF BLOCK 1.

INITIALIZATION.
  V_REPID = SY-REPID.

START-OF-SELECTION.
* 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.

END-OF-SELECTION.

  PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM      = V_REPID
      I_CALLBACK_USER_COMMAND = 'DISPLAY_DETAIL'
      I_CALLBACK_TOP_OF_PAGE  = 'TOP_OF_PAGE'
      I_GRID_TITLE            = 'SHREEKANT'
      IT_FIELDCAT             = T_FIELDCATALOG1
      I_SAVE                  = 'A'
    TABLES
      T_OUTTAB                = ITAB1.

*&---------------------------------------------------------------------

*&      Form  build_listheader
*&---------------------------------------------------------------------

FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

  DATA HLINE TYPE SLIS_LISTHEADER.
  HLINE-INFO = 'Rich products Corporation'.
  HLINE-TYP = 'H'.
  APPEND HLINE TO I_LISTHEADER.

  HLINE-INFO = 'Company Code - 5400'.
  HLINE-TYP = 'H'.
  APPEND HLINE TO I_LISTHEADER.

ENDFORM.                    " build_listheader

*&--------------------------------------------------------------------*
*&      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 display_detail *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> UCOMM *
* --> SELFIELD *
*---------------------------------------------------------------------*
FORM DISPLAY_DETAIL USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.

  REFRESH ITAB2_TEMP.

  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
          I_CALLBACK_USER_COMMAND = 'DRILL_DETAIL'
          IT_FIELDCAT             = T_FIELDCATALOG2
        TABLES
          T_OUTTAB                = ITAB2_TEMP.
    ENDIF.
  ENDIF.
ENDFORM.                    "display_detail

*&--------------------------------------------------------------------*
*&      Form  drill_detail
*&--------------------------------------------------------------------*
*      Secondary List is Displayed based on the user selection.
*---------------------------------------------------------------------*
*      -->UCOMM      text
*      -->SELFIELD   text
*---------------------------------------------------------------------*
FORM DRILL_DETAIL USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.

  IF UCOMM = '&IC1'.
    READ TABLE ITAB2_TEMP INDEX SELFIELD-TABINDEX.
    IF SY-SUBRC = 0.
      SET PARAMETER ID 'MAT' FIELD ITAB2_TEMP-MATNR.
      CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
    ENDIF.
  ENDIF.
  
ENDFORM.                    "drill_detail


*---------------------------------------------------------------------*
* 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.                    "get_fieldcat1
*
*---------------------------------------------------------------------*
* 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.                    "get_fieldcat2