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
445

hi all,

one small help when u ran this report intially it displays tha output in grid display. here my reqquirement is when i click on sales order number(vbeln) then only it has top display secondary list .but in my program if i click on vbeln or erdat or ernam it is showing secondary list.

ant body can send the sample code.

thanks,

maheedhar.t

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 : BEGIN OF IT_VBAK OCCURS 0,

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 IT_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 : BEGIN OF IT_VBAP OCCURS 0,

VBELN TYPE VBAP-VBELN,

MATNR TYPE VBAP-MATNR,

ERZET TYPE VBAP-ERZET,

POSNR TYPE VBAP-POSNR,

END OF IT_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 .

DATA : HEADING TYPE SLIS_T_LISTHEADER.

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.

V_REPID = SY-REPID.

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 = '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_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 = 'A'

  • 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'.

PERFORM GETDATA_FROM_VBAP.

PERFORM BUILD_FIELDCATLOG_IT_VBAP.

PERFORM GRID_DISPLAY1.

ENDCASE.

ENDFORM. "user_command

&----


*& Form GETDATA_FROM_VBAP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GETDATA_FROM_VBAP.

SELECT VBELN

MATNR

ERZET

POSNR

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
419

Hello,

Change the code for form USER_COMMAND as below:

FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

<b>IF rs_selfield-fieldname = 'VBELN'.</b>

PERFORM GETDATA_FROM_VBAP.

PERFORM BUILD_FIELDCATLOG_IT_VBAP.

PERFORM GRID_DISPLAY1.

<b>ENDIF.</b>

ENDCASE.

ENDFORM. "user_command

Regards,

Manoj

3 REPLIES 3
Read only

Former Member
0 Likes
420

Hello,

Change the code for form USER_COMMAND as below:

FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

<b>IF rs_selfield-fieldname = 'VBELN'.</b>

PERFORM GETDATA_FROM_VBAP.

PERFORM BUILD_FIELDCATLOG_IT_VBAP.

PERFORM GRID_DISPLAY1.

<b>ENDIF.</b>

ENDCASE.

ENDFORM. "user_command

Regards,

Manoj

Read only

Former Member
0 Likes
419

hi,

FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

<b>if rs_selfield-fieldname = 'VBELN'.</b>

PERFORM GETDATA_FROM_VBAP.

PERFORM BUILD_FIELDCATLOG_IT_VBAP.

PERFORM GRID_DISPLAY1.

<b>endif.</b>

ENDCASE.

ENDFORM. "user_command

regards,

priya.

Read only

Former Member
0 Likes
419

Hi,

In User_commnad routine check for the field <b>VBELN</b> and perform the action(secondary list display)..

Regards,

Srini