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: 

alv

Former Member
0 Kudos

I want oi display the customer master details through interactive alv. could you give me details for that. it shoulsd be like that if i select customer it should give the details of that customer.

4 REPLIES 4

Former Member
0 Kudos

HI,

Check this example.

&----


*& Report ZLAXMI_ALVEXER5 *

*& *

&----


*& *

*& *

&----


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

Regards,

Laxmi.

Former Member
0 Kudos

hi,

check this code for interactive alv.

use corresponding tables for your requirement:

&----


report zkeerthi_alv5 .

&----


*& tables declaration

&----


tables: vbrk,vbrp.

&----


*& type-pools declaration

&----


type-pools: slis.

&----


*& data declaration

&----


data: g_repid type sy-repid.

data : it_fieldcat type slis_t_fieldcat_alv, "mara

wa_fieldcat type slis_fieldcat_alv,

wa_layout type slis_layout_alv,

wa_event type slis_alv_event,

t_event type slis_t_event.

data: v_vbeln like vbrk-vbeln,

v_matnr like vbrp-matnr.

data: begin of it_vbrk occurs 0,

vbeln like vbrk-vbeln,

waerk like vbrk-waerk,

vkorg like vbrk-vkorg,

fkdat like vbrk-fkdat,

bukrs like vbrk-bukrs,

netwr like vbrk-netwr,

end of it_vbrk.

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.

&----


*& selection screen

&----


selection-screen begin of block b 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 b.

**INITIALIZATION.

initialization.

g_repid = sy-repid.

s_fkdat-low = sy-datum - 200.

s_fkdat-high = sy-datum.

append s_fkdat.

***AT SELECTION-SCREEN.

at selection-screen.

if not s_vbeln is initial.

select single vbeln from vbrk

into v_vbeln

where vbeln in s_vbeln.

if sy-subrc <> 0.

message e001(zz2).

endif.

endif.

if not s_matnr is initial.

select single matnr from mara

into v_matnr

where matnr in s_matnr.

if sy-subrc <> 0.

message e001(zz2).

endif.

endif.

***START-OF-SELECTION.

start-of-selection.

perform get_data_vbrk.

&----


*& Form GET_DATA_VBRK

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_data_vbrk .

select vbeln

waerk

vkorg

fkdat

bukrs

netwr

into table it_vbrk

from vbrk

where vbeln in s_vbeln

and fkdat in s_fkdat.

endform. " GET_DATA_VBRK

&----


*& Form GET_DATA_VBRP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_data_vbrp .

select vbeln

posnr

fkimg

vrkme

netwr

matnr

arktx

from vbrp

into table it_vbrp

where vbeln = it_vbrk-vbeln.

endform. " GET_DATA_VBRP

***END-OF-SELECTION.

end-of-selection.

perform event_list.

perform get_field_catalog.

perform list_disp .

form list_disp .

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = g_repid

  • I_CALLBACK_PF_STATUS_SET = 'POPUP'

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_GRID_SETTINGS =

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

  • 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_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

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.

endform. " LIST_DISP

&----


*& Form GET_FIELD_CATALOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_field_catalog .

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = g_repid

i_internal_tabname = 'IT_VBRK'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = g_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fieldcat

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.

endform. " GET_FIELD_CATALOG

&----


*& Form event_list

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form event_list .

clear wa_event.

wa_event-name = 'USER_COMMAND'.

wa_event-form = 'USER_COMMAND'.

append wa_event to t_event.

clear wa_event.

endform. " event_list

form user_command using r_ucomm like sy-ucomm

rs_selfield type slis_selfield.

case r_ucomm.

when '&IC1'.

read table it_vbrk index rs_selfield-tabindex.

perform get_data_vbrp.

perform build_fieldcatalog_vbrp .

perform display_alv_vbrp.

endcase.

endform.

&----


*& Form BUILD_FIELDCATALOG_VBRP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form build_fieldcatalog_vbrp .

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = g_repid

i_internal_tabname = 'IT_VBRP'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = g_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fieldcat

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.

endform. " BUILD_FIELDCATALOG_VBRP

&----


*& Form DISPLAY_ALV_VBRP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form display_alv_vbrp .

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = g_repid

  • 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_GRID_SETTINGS =

  • IS_LAYOUT =

it_fieldcat = it_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_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

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.

endform. " DISPLAY_ALV_VBRP

regards,

keerthi

Former Member
0 Kudos

hi,

check this program...

**TABLES DECLN

TABLES: VBRK,VBRP,T001.

TYPE-POOLS: SLIS.

TYPE-POOLS: ICON.

***DATA DECLN.

DATA: V_VBELN LIKE VBRK-VBELN,

V_MATNR LIKE VBRP-MATNR.

CONSTANTS: C_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'F_USER_COMMAND',

C_PF_STATUS TYPE SLIS_FORMNAME VALUE 'F_SET_PF_STATUS'.

**ALV RELATED TABLES.

*--Field Catalog

DATA: IT_FIELDCAT TYPE STANDARD TABLE OF

SLIS_FIELDCAT_ALV WITH HEADER LINE,

IT_FIELDCAT1 TYPE STANDARD TABLE OF

SLIS_FIELDCAT_ALV WITH HEADER LINE ,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

*--Layout

WA_LAYOUT TYPE SLIS_LAYOUT_ALV,

IT_LAYOUT TYPE STANDARD TABLE OF

SLIS_LAYOUT_ALV WITH HEADER LINE,

*--Sort

IT_SORT TYPE SLIS_T_SORTINFO_ALV,

WA_SORT TYPE SLIS_SORTINFO_ALV ,

**-Structure for excluding function codes

WA_EXTAB TYPE SLIS_EXTAB,

**-To hold function codes to be excluded in ALV toolbar

IT_EXTAB TYPE SLIS_T_EXTAB.

***INTERNAL TABLE DECLN.

DATA: BEGIN OF IT_VBRK OCCURS 0,

VBELN LIKE VBRK-VBELN,

WAERK LIKE VBRK-WAERK,

VKORG LIKE VBRK-VKORG,

FKDAT LIKE VBRK-FKDAT,

BUKRS LIKE VBRK-BUKRS,

NETWR LIKE VBRK-NETWR,

END OF IT_VBRK.

DATA: BEGIN OF ITAB 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 ITAB.

DATA: IT_VBRP LIKE ITAB OCCURS 0 WITH HEADER LINE.

***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 OBLIGATORY,

S_MATNR FOR VBRP-MATNR.

SELECTION-SCREEN: END OF BLOCK B1.

**INITIALIZATION.

INITIALIZATION.

S_FKDAT-LOW = SY-DATUM - 200.

S_FKDAT-HIGH = SY-DATUM.

APPEND S_FKDAT.

***AT SELECTION-SCREEN.

AT SELECTION-SCREEN.

IF NOT S_VBELN IS INITIAL.

SELECT SINGLE VBELN FROM VBRK

INTO V_VBELN

WHERE VBELN IN S_VBELN.

IF SY-SUBRC <> 0.

MESSAGE E001(ZZ2).

ENDIF.

ENDIF.

IF NOT S_MATNR IS INITIAL.

SELECT SINGLE MATNR FROM MARA

INTO V_MATNR

WHERE MATNR IN S_MATNR.

IF SY-SUBRC <> 0.

MESSAGE E001(ZZ2).

ENDIF.

ENDIF.

***START-OF-SELECTION.

START-OF-SELECTION.

PERFORM GET_DATA_VBRK.

PERFORM GET_DATA_VBRP.

***END-OF-SELECTION.

END-OF-SELECTION.

*--Sort the Output Fields

PERFORM SORT_FIELDS.

*--Build Field catalog for the Output fields

PERFORM GET_FIELD_CATALOG.

***MODIFY LAYOUT.

PERFORM MODIFY_LAYOUT.

*--Display ALV output

PERFORM LIST_DISP TABLES IT_VBRK

USING C_USER_COMMAND.

&----


*& Form GET_DATA_VBRK

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA_VBRK.

SELECT VBELN

WAERK

VKORG

FKDAT

BUKRS

NETWR

INTO TABLE IT_VBRK

FROM VBRK

WHERE VBELN IN S_VBELN

AND FKDAT IN S_FKDAT.

ENDFORM. " GET_DATA

&----


*& Form GET_DATA_VBRP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA_VBRP .

SELECT VBELN

POSNR

FKIMG

VRKME

NETWR

MATNR

ARKTX

FROM VBRP

INTO TABLE ITAB

FOR ALL ENTRIES IN IT_VBRK

WHERE VBELN = IT_VBRK-VBELN.

ENDFORM. " GET_DATA_VBRP

&----


*& Form GET_FIELD_CATALOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_FIELD_CATALOG .

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[]

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.

ENDFORM. " GET_FIELD_CATALOG

&----


*& Form SORT_FIELDS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SORT_FIELDS .

CLEAR WA_SORT.

WA_SORT-SPOS = '01'.

WA_SORT-FIELDNAME = 'VBELN' .

WA_SORT-TABNAME = 'IT_VBRK'.

WA_SORT-UP = 'X'.

APPEND WA_SORT TO IT_SORT.

CLEAR WA_SORT.

WA_SORT-SPOS = '02'.

WA_SORT-FIELDNAME = 'POSNR' .

WA_SORT-TABNAME = 'IT_VBRP'.

WA_SORT-UP = 'X'.

APPEND WA_SORT TO IT_SORT.

ENDFORM. " SORT_FIELDS

&----


*& Form MODIFY_LAYOUT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM

MODIFY_LAYOUT .

WA_LAYOUT-DEFAULT_ITEM = 'X'.

WA_LAYOUT-ZEBRA = 'X'.

WA_LAYOUT-EXPAND_FIELDNAME = 'EXPAND'.

WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

WA_LAYOUT-SUBTOTALS_TEXT = 'SUBTOTAL'.

  • append wa_layout to it_layout.

ENDFORM. " MODIFY_LAYOUT

&----


*& Form LIST_DISP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM LIST_DISP TABLES P_IT_VBRK

USING P_USER_COMMAND TYPE SLIS_FORMNAME.

*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  • EXPORTING

  • I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = 'POPUP'

  • I_CALLBACK_USER_COMMAND = 'HANDLE_USER_COMMAND'

  • IS_LAYOUT = WA_LAYOUT1

  • IT_FIELDCAT = IT_FIELDCAT[]

  • IT_EXCLUDING = IT_EXTAB[]

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

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'

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT[]

TABLES

T_OUTTAB = P_IT_VBRK

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

ENDFORM. " LIST_DISP

&----


*& Form POPUP

&----


  • text

----


  • -->P_EXTAB text

----


FORM POPUP USING IT_EXTAB TYPE SLIS_T_EXTAB.

*- Pf status

SET PF-STATUS 'POPUP'.

ENDFORM. " POPUP

&----


*& Form F_USER_COMMAND

&----


FORM HANDLE_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

CLEAR IT_FIELDCAT1[].

CLEAR IT_VBRP[].

IF RS_SELFIELD-FIELDNAME = 'VBELN'.

READ TABLE IT_VBRK INDEX RS_SELFIELD-TABINDEX.

LOOP AT ITAB WHERE VBELN = IT_VBRK-VBELN.

MOVE-CORRESPONDING ITAB TO IT_VBRP.

APPEND IT_VBRP.

ENDLOOP.

PERFORM INTERACTIVE_REPORT.

ENDIF.

ENDCASE.

ENDFORM. "HANDLE_USER_COMMAND

&----


*& Form INTERACTIVE_REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM INTERACTIVE_REPORT .

  • CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

  • EXPORTING

  • I_PROGRAM_NAME = SY-REPID

  • I_INTERNAL_TABNAME = 'ITAB'

  • I_INCLNAME = SY-REPID

  • CHANGING

  • CT_FIELDCAT = IT_FIELDCAT1[]

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

WA_LAYOUT-DEFAULT_ITEM = 'X'.

WA_LAYOUT-ZEBRA = 'X'.

WA_LAYOUT-EXPAND_FIELDNAME = 'EXPAND'.

WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

WA_LAYOUT-TOTALS_TEXT = 'TOTAL'.

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-SELTEXT_L = 'BILLING DOC'.

WA_FIELDCAT-TABNAME = 'IT_VBRP'.

WA_FIELDCAT-COL_POS = 1.

APPEND WA_FIELDCAT TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'POSNR'.

WA_FIELDCAT-SELTEXT_L = 'ITEM'.

WA_FIELDCAT-TABNAME = 'IT_VBRP'.

WA_FIELDCAT-COL_POS = 2.

APPEND WA_FIELDCAT TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'FKIMG'.

WA_FIELDCAT-SELTEXT_M = 'INV QTY'.

WA_FIELDCAT-TABNAME = 'IT_VBRP'.

WA_FIELDCAT-COL_POS = 3.

APPEND WA_FIELDCAT TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'VRKME'.

WA_FIELDCAT-SELTEXT_M = 'SALES UNIT'.

WA_FIELDCAT-TABNAME = 'IT_VBRP'.

WA_FIELDCAT-COL_POS = 4.

APPEND WA_FIELDCAT TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'NETWR'.

WA_FIELDCAT-SELTEXT_M = 'NET PRICE'.

WA_FIELDCAT-TABNAME = 'IT_VBRP'.

WA_FIELDCAT-DO_SUM = 'X'.

WA_FIELDCAT-COL_POS = 5.

APPEND WA_FIELDCAT TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_M = 'MATERIAL'.

WA_FIELDCAT-TABNAME = 'IT_VBRP'.

WA_FIELDCAT-COL_POS = 6.

APPEND WA_FIELDCAT TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ARKTX'.

WA_FIELDCAT-SELTEXT_M = 'SALES ORDER'.

WA_FIELDCAT-TABNAME = 'IT_VBRP'.

WA_FIELDCAT-COL_POS = 7.

APPEND WA_FIELDCAT TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT.

*

*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  • EXPORTING

  • I_CALLBACK_PROGRAM = SY-REPID

  • IS_LAYOUT = WA_LAYOUT

  • IT_FIELDCAT = IT_FIELDCAT1[]

  • IT_SORT = IT_SORT

  • TABLES

  • T_OUTTAB = IT_VBRP

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT1[]

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.

ENDFORM. " INTERACTIVE_REPORT

hope this helps,

do reward if it helps,

priya.

Former Member
0 Kudos

I have just given a sample code which might help you to arrive at the solution.

REPORT ZTEST4 .

&----


*& Report ZLAXMI_ALVEXER5 *

*& *

&----


*& *

*& *

&----


*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,

kunnr LIKE kna1-kunnr,

eND OF ITAB.

DATA: BEGIN OF ITAB1 OCCURS 0,

kunnr LIKE kna1-kunnr,

name1 like kna1-name1,

ORT01 like kna1-ort01,

END OF ITAB1.

DATA: IT_VBRP LIKE ITAB1 OCCURS 0 WITH HEADER LINE.

SELECT kunnr

UP TO 100 ROWS

FROM kna1

INTO TABLE ITAB.

IF SY-SUBRC = 0.

SORT ITAB BY kunnr .

SELECT

kunnr

name1

ort01

INTO TABLE ITAB1

FROM kna1

FOR ALL ENTRIES IN ITAB

WHERE kunnr = ITAB-kunnr.

ENDIF.

DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

X_FIELDCAT-FIELDNAME = 'KUNNR'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 1.

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 = 'KUNNR'.

READ TABLE ITAB INDEX RS_SELFIELD-TABINDEX.

LOOP AT ITAB1 WHERE KUNNR = ITAB-KUNNR.

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 = 'KUNNR'.

X_FIELDCAT-SELTEXT_L = 'CUSTOMER NUMBER'.

X_FIELDCAT-TABNAME = 'IT_VBRP'.

X_FIELDCAT-COL_POS = 1.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'NAME1'.

X_FIELDCAT-SELTEXT_L = 'CUSTOMER NAME'.

X_FIELDCAT-TABNAME = 'IT_VBRP'.

X_FIELDCAT-COL_POS = 2.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'ORT01'.

X_FIELDCAT-SELTEXT_M = 'COUNTRY'.

X_FIELDCAT-TABNAME = 'IT_VBRP'.

X_FIELDCAT-COL_POS = 3.

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

Please award points if your problem get solved.