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 interactive reports

Former Member
0 Likes
428

HI ALL,

Anybody can plz tell me when i double click on sales order no it is not showing secondary list.

REPORT ZMAHI1.

TYPE-POOLS : SLIS.

TYPES : BEGIN OF I_VBAK,

VBELN TYPE VBAK-VBELN,

ERDAT TYPE VBAK-ERDAT,

ERNAM TYPE VBAK-ERNAM,

ERZET TYPE VBAK-ERZET,

VTWEG TYPE VBAK-VTWEG,

VKORG TYPE VBAK-VKORG,

END OF I_VBAK.

DATA : IT_VBAK TYPE STANDARD TABLE OF I_VBAK INITIAL SIZE 0,

WA_VBAK TYPE I_VBAK.

*

TYPES : BEGIN OF I_VBAP,

VBELN TYPE VBAP-VBELN,

MATNR TYPE VBAP-MATNR,

ERZET TYPE VBAP-ERZET,

POSNR TYPE VBAP-POSNR,

END OF I_VBAP.

DATA : IT_VBAP TYPE STANDARD TABLE OF I_VBAP INITIAL SIZE 0,

WA_VBAP TYPE I_VBAP.

*

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

******

DATA: I_TITLE_VBAK TYPE LVC_TITLE VALUE 'ALV LIST FIRST'.

DATA: I_TITLE_VBAP TYPE LVC_TITLE VALUE 'ALV LIST SECOND'.

****

DATA: V_REPID LIKE SY-REPID .

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

PARAMETERS : P_VBELN TYPE VBAK-VBELN.

SELECTION-SCREEN END OF BLOCK B1.

INITIALIZATION.

V_REPID = SY-REPID.

START-OF-SELECTION.

PERFORM GET_DATA.

PERFORM BUILT_FIELDCATALOG.

PERFORM GRID_DISPLAY.

&----


*& Form GET_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA.

SELECT VBELN

ERDAT

ERNAM

ERZET

VTWEG

VKORG

FROM VBAK

INTO TABLE IT_VBAK

WHERE VBELN EQ P_VBELN.

ENDFORM. " GET_DATA

&----


*& Form BUILT_FIELDCATALOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILT_FIELDCATALOG.

WA_FIELDCAT-TABNAME = 'IT_VBAK'.

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-SELTEXT_M = 'SALES DOC NO'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

*

WA_FIELDCAT-TABNAME = 'IT_VBAK'.

WA_FIELDCAT-FIELDNAME = 'ERDAT'.

WA_FIELDCAT-SELTEXT_M = 'Creation Date'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

*

WA_FIELDCAT-TABNAME = 'IT_VBAK'.

WA_FIELDCAT-FIELDNAME = 'ERNAM'.

WA_FIELDCAT-SELTEXT_M = 'NAME'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

*

WA_FIELDCAT-TABNAME = 'IT_VBAK'.

WA_FIELDCAT-FIELDNAME = 'ERZET'.

WA_FIELDCAT-SELTEXT_M = 'TIME'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

*

WA_FIELDCAT-TABNAME = 'IT_VBAK'.

WA_FIELDCAT-FIELDNAME = 'VTWEG'.

WA_FIELDCAT-SELTEXT_M = 'DIS CHANNEL'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

*

WA_FIELDCAT-TABNAME = 'IT_VBAK'.

WA_FIELDCAT-FIELDNAME = 'VKORG'.

WA_FIELDCAT-SELTEXT_M = 'SALES ORG'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. " BUILT_FIELDCATALOG

&----


*& Form GRID_DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GRID_DISPLAY.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = ' '

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_CALLBACK_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_VBAK

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IT_EXCEPT_QINFO =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IT_VBAK

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDFORM. " GRID_DISPLAY

&----


*& Form 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_VBAK INTO WA_VBAK INDEX RS_SELFIELD-TABINDEX.

PERFORM GETDATA_FROM_VBAP.

PERFORM BUILD_FIELDCATLOG_IT_VBAP.

PERFORM GRID_DISPLAY1.

  • 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 GETDATA_FROM_VBAP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GETDATA_FROM_VBAP.

SELECT VBELN

MATNR

POSNR

ERZET

FROM VBAP

INTO TABLE IT_VBAP

FOR ALL ENTRIES IN IT_VBAK

WHERE VBELN = IT_VBAK-VBELN.

ENDFORM. " GETDATA_FROM_VBAP

&----


*& Form BUILD_FIELDCATLOG_IT_VBAP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FIELDCATLOG_IT_VBAP.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-SELTEXT_M = 'SALES DOC NO'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

*

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'POSNR'.

WA_FIELDCAT-SELTEXT_M = 'ITEM NO'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

*

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_M = 'MAT NO'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

*

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'ERZET'.

WA_FIELDCAT-SELTEXT_M = 'TIME'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. " BUILD_FIELDCATLOG_IT_VBAP

&----


*& Form GRID_DISPLAY1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GRID_DISPLAY1.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = ' '

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_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_VBAP

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IT_EXCEPT_QINFO =

  • 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. " GRID_DISPLAY1

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
404

Hello,

Pass the interface parameter I_CALLBACK_PROGRAM to the first grid. (Pass V_REPID to I_CALLBACK_PROGRAM in the form GRID_DISPLAY). You have already assigned sy-repid to V_REPID.

Regards,

Manoj

3 REPLIES 3
Read only

Former Member
0 Likes
405

Hello,

Pass the interface parameter I_CALLBACK_PROGRAM to the first grid. (Pass V_REPID to I_CALLBACK_PROGRAM in the form GRID_DISPLAY). You have already assigned sy-repid to V_REPID.

Regards,

Manoj

Read only

former_member199581
Active Participant
0 Likes
404

First of all, refresh fieldcat before calling the new grid.

When calling the first REUSE_ALV_GRID_DISPLAY, pass the reportname in parameter I_CALLBACK_PROGRAM, <b>but declare a variable, do not use sy-repid</b>.

It might be useful to create your own GUI status instead.

Read only

Former Member
0 Likes
404

hi,

In your code i didn't find the link between the basic list & secondary list.

In both the getdata performs you are just retrieving the data.

here u need to select basing on the sy-ucomm and basing the value u need to pass that to the VBAP table.

here in ALV u can get the line-selection value by using the field SLIS-SELFIELD.