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.

Former Member
0 Likes
1,594

Hi.

Do any one have a simple alv interactive program .

11 REPLIES 11
Read only

Former Member
Read only

Former Member
0 Likes
1,380

Hii

this is an Interactive report to list out Billing details

VBRK is the Billing Master table and VBRP is the Billing Item table

Upon double clicking Billing Document produce a Secondary report with line item

details.

Upon clicking VBELN in secondary list, Open the billing document in display mode..

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

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 e000(Z000) WITH s_vbeln.

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.

ELSE.

MESSAGE S000 WITH 'SUCCESSFUL'.

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

chk this link

<b>http://www.sap-img.com/abap/an-interactive-alv-report.htm</b>

Reward points if helpful

Revert back for more help

Regards

Naresh

Read only

Former Member
0 Likes
1,380

hi osk,

check this

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

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

  • FOR ALL ENTRIES IN IT_VBRK

  • WHERE VBELN = IT_VBRK-VBELN.

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

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_LAYOUT

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

hope this helps,

do reward if it helps,

priya.

Read only

0 Likes
1,380

Hi,

Check in this

http://www.sapgenie.com/

Read only

dani_mn
Active Contributor
0 Likes
1,380

HI,

Check the Reuse library. SE83

you will find very good examples there.

Regards,

Wasim Ahmed

Read only

rahulkavuri
Active Contributor
0 Likes
1,380
*&---------------------------------------------------------------------*
*& Report  ZALV4_INTERACTIVE                                           *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

report  zalv4_interactive no standard page heading
                          message-id zmsg
                          line-count 37(3)
                          line-size 134.


type-pools : slis.

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

tables : vbrk,              " BILLING MASTERS TABLE
         vbrp.              " BILLING ITEM TABLE

************************************************************************
***************** TYPES     DECLARATION             ********************
************************************************************************

types : begin of ty_vbrk,       " types for billing masters table
         vbeln type vbrk-vbeln, " billing document
         waerk type vbrk-waerk, " document currency
         vkorg type vbrk-vkorg, " sales organization
         fkdat type vbrk-fkdat, " billing date
         bukrs type vbrk-bukrs, " company code
         butxt type t001-butxt, " company name
         netwr type vbrk-netwr, " net currency value
         line_color(4) type c,
         end of ty_vbrk.

types : begin of ty_vbrp,      " types for billing document item data
         posnr type vbrp-posnr, " billing item
         fkimg type vbrp-fkimg, " actual invoiced quantitty
         vrkme type vbrp-vrkme, " sales unit
         netwr type vbrp-netwr, " net currency value
         matnr type vbrp-matnr, " material number
         arktx type vbrp-arktx, " short text for sales order item
        end of ty_vbrp.

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

data : wa_fieldcat type slis_fieldcat_alv,
       wa_fieldcat1 type slis_fieldcat_alv.

************************************************************************
***************** LAYOUT    DECLARATION             ********************
************************************************************************

data : wa_layout type slis_layout_alv,
       wa_layout1 type slis_layout_alv.

************************************************************************
***************** EVENTS  DECLARATION               ********************
************************************************************************

data : ty_events type slis_alv_event,
       it_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.

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

data : it_vbrk type table of ty_vbrk, "internal table for billing master
       it_vbrp type table of ty_vbrp, "internal table for billing item

*internal table for field catalog

       it_fieldcat type slis_t_fieldcat_alv,
       it_fieldcat1 type slis_t_fieldcat_alv.


************************************************************************
***************** WORK         AREA                 ********************
************************************************************************

data : wa_vbrk like line of it_vbrk, "work area for billing master
       wa_vbrp like line of it_vbrp. "work area for billing item

************************************************************************
***************** VARIABLE  DECLARATION             ********************
************************************************************************

data : v_date type sy-datum, " variable to store date values
       v_vbeln type vbrk-vbeln, " variable for billing document
       v_fkdat type vbrk-fkdat, " variable for billing date
       v_flag(1). " variable for flag

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

select-options : s_vbeln for vbrk-vbeln , " Billing document
                 s_fkdat for vbrk-fkdat,   " Billing date
                 s_matnr for vbrp-matnr.   " Material number

parameters : r1 radiobutton group g1, "whole item details
             r2 radiobutton group g1. "selected item details
************************************************************************
*****************            INITIALIZATION         ********************
************************************************************************
initialization.

  v_flag = 'X'.
  v_date = sy-datum - 20.
  s_fkdat-sign = 'I'.
  s_fkdat-option = 'EQ'.
  s_fkdat-low = v_date.
  s_fkdat-high = sy-datum.
  append s_fkdat.



************************************************************************
*****************   SELECTION SCREEN VALIDATION     ********************
************************************************************************
at selection-screen.
  perform conversion. " performs data conversion for input
  perform vbeln_validate. " validating the billing document
  perform fkdat_validate. " validating the billing date

************************************************************************
*****************   START OF SELECTION              ********************
************************************************************************
start-of-selection.
  set titlebar  'AAAA'.
  perform vbrk_populate. " populating the billing master detais
  perform fieldcatalog.  " designing the field catalog
  perform events.        " performing the events for top of page
  perform disp_basiclist." displaying the basic list


*&---------------------------------------------------------------------*
*&      Form  VBELN_VALIDATE
*&---------------------------------------------------------------------*
*       text validating the billing document
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form vbeln_validate .
  if s_vbeln is initial.
*    MESSAGE E000 WITH 'Make entries in all required fields'.
  else.
    select single vbeln
           from vbrk
           into v_vbeln
           where vbeln in s_vbeln.

    if sy-subrc <> 0.
      message i000 with 'BILLING DOCUMENT DOESNT EXIST'.
    endif.
  endif.
endform.                    " VBELN_VALIDATE
*&---------------------------------------------------------------------*
*&      Form  FKDAT_VALIDATE
*&---------------------------------------------------------------------*
*       text validating the billing date
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form fkdat_validate .
  select single fkdat
         from vbrk
         into v_fkdat
         where fkdat in s_fkdat.

  if sy-subrc <> 0.
    message i000 with 'BILLING DATE DOESNT EXIST'.
  endif.
endform.                    " FKDAT_VALIDATE
*&---------------------------------------------------------------------*
*&      Form  VBRK_POPULATE
*&---------------------------------------------------------------------*
*       text populating the billing master details
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form vbrk_populate .
  data : ld_color(1) type c.
  ld_color = 5.
  select vbrk~vbeln
         vbrk~waerk
         vbrk~vkorg
         vbrk~fkdat
         vbrk~bukrs
         vbrk~netwr
         t001~butxt
  from vbrk inner join t001
  on vbrk~bukrs = t001~bukrs
  into corresponding fields of table it_vbrk
   where vbrk~vbeln in s_vbeln and
         vbrk~fkdat in s_fkdat.
  loop at it_vbrk into wa_vbrk.
    ld_color = ld_color + 1.
    if ld_color = 8.
      ld_color = 1.
    endif.
    concatenate 'C' ld_color '10' into wa_vbrk-line_color.
    modify it_vbrk from wa_vbrk.
  endloop.
endform.                    " VBRK_POPULATE

*&---------------------------------------------------------------------*
*&      Form  CONVERSION
*&---------------------------------------------------------------------*
*       text data conversion to take leading zeroes into account
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form conversion .
  call function 'CONVERSION_EXIT_ALPHA_INPUT'
    exporting
      input  = s_vbeln
    importing
      output = s_vbeln.


endform.                    " CONVERSION
*&---------------------------------------------------------------------*
*&      Form  DISP_BASICLIST
*&---------------------------------------------------------------------*
*       text displaying the basic list
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form disp_basiclist .
  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                         = 'X'
*   IS_VARIANT                     =
    it_events                      = 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
* 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.                    " DISP_BASICLIST
*&---------------------------------------------------------------------*
*&      Form  FIELDCATALOG
*&---------------------------------------------------------------------*
*       text designing the field catalog
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form fieldcatalog .
  wa_fieldcat-tabname = 'IT_VBRK'.
  wa_fieldcat-fieldname = 'VBELN'.
  wa_fieldcat-seltext_l = 'BILLING DOCUMENT'.
  wa_fieldcat-col_pos = 1.
*  WA_FIELDCAT-EMPHASIZE = 'C610'.
  wa_fieldcat-key = 'X'.
  wa_fieldcat-outputlen = 20.

  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-tabname = 'IT_VBRK'.
  wa_fieldcat-fieldname = 'WAERK'.
  wa_fieldcat-seltext_l = 'DOCUMENT CURRENCY'.
  wa_fieldcat-col_pos = 2.
  wa_fieldcat-outputlen = 20.

  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-tabname = 'IT_VBRK'.
  wa_fieldcat-fieldname = 'VKORG'.
  wa_fieldcat-seltext_l = 'SALES ORGANIZATION'.
  wa_fieldcat-emphasize = 'C610'.
  wa_fieldcat-col_pos = 3.
  wa_fieldcat-outputlen = 20.

  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-tabname = 'IT_VBRK'.
  wa_fieldcat-fieldname = 'FKDAT'.
  wa_fieldcat-seltext_l = 'BILLING DATE'.
  wa_fieldcat-col_pos = 4.
  wa_fieldcat-outputlen = 20.

  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-tabname = 'IT_VBRK'.
  wa_fieldcat-fieldname = 'BUKRS'.
  wa_fieldcat-seltext_l = 'COMPANY CODE'.
  wa_fieldcat-col_pos = 5.
  wa_fieldcat-outputlen = 20.

  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-tabname = 'IT_VBRK'.
  wa_fieldcat-fieldname = 'BUTXT'.
  wa_fieldcat-seltext_l = 'COMPANY NAME'.
  wa_fieldcat-col_pos = 6.
  wa_fieldcat-outputlen = 25.

  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-tabname = 'IT_VBRK'.
  wa_fieldcat-fieldname = 'NETWR'.
  wa_fieldcat-seltext_l = 'NET CURRENCY VALUE'.
  wa_fieldcat-col_pos = 7.
  wa_fieldcat-outputlen = 20.

  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_layout-zebra = 'X'.
  wa_layout-info_fieldname = 'LINE_COLOR'.
endform.                    " FIELDCATALOG

*&---------------------------------------------------------------------*
*&      Form SET_PF_STATUS
*&---------------------------------------------------------------------*
*       text set the pf status
*----------------------------------------------------------------------*

form set_pf_status using extab type slis_t_extab.
  set pf-status 'Z50658_PFSTATUS' excluding extab.
endform.                                          "SET_PF_STATUS


*&---------------------------------------------------------------------*
*&      Form  SET_USER_COMMAND
*&---------------------------------------------------------------------*
*       text set the user command
*----------------------------------------------------------------------*

form set_user_command using r_ucomm
                            rs_selfield type slis_selfield.
  case r_ucomm.
    when 'CLICK'.
      if r1 = 'X'.
        if not it_vbrk is initial.
          select posnr
                 fkimg
                 vrkme
                 netwr
                 matnr
                 arktx
          from vbrp
          into corresponding fields of table it_vbrp
          for all entries in it_vbrk
          where vbeln = it_vbrk-vbeln.
          if sy-subrc <> 0.
            message i000 with ' NO BILLING DETAILS FOUND'.
          else.
            if v_flag = 'X'.
              perform det_fieldcatalog.
              v_flag = ''.
            endif.
            perform det_listdisplay.
          endif.
        endif.
      endif.

      if r2 = 'X'.
        read table it_vbrk into wa_vbrk index rs_selfield-tabindex.
        if sy-subrc = 0.
          select single posnr
                        fkimg
                        vrkme
                        netwr
                        matnr
                        arktx
          from vbrp
          into corresponding fields of wa_vbrp
          where vbeln = wa_vbrk-vbeln.
        endif.
        append wa_vbrp to it_vbrp.
      endif.
      if v_flag = 'X'.
        perform det_fieldcatalog. "designing the field catalog for items
        v_flag = ''.
      endif.
      perform det_listdisplay. "displaying the secondary list

    when 'BACK'.
      leave to screen 0.

    when 'UP'.
      leave to screen 0.

    when 'CANCEL'.
      call transaction 'SE38'.
  endcase.
endform.                                          "SET_USER_COMMAND
*&---------------------------------------------------------------------*
*&      Form  DET_FIELDCATALOG
*&---------------------------------------------------------------------*
*       text designing the field catalog for item details
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form det_fieldcatalog .
  wa_fieldcat1-tabname = 'IT_VBRP'.
  wa_fieldcat1-fieldname = 'POSNR'.
  wa_fieldcat1-seltext_l = 'BILLING ITEM'.
  wa_fieldcat1-col_pos = 1.
  wa_fieldcat1-outputlen = 20.

  append wa_fieldcat1 to it_fieldcat1.
  clear wa_fieldcat1.

  wa_fieldcat1-tabname = 'IT_VBRP'.
  wa_fieldcat1-fieldname = 'FKIMG'.
  wa_fieldcat1-seltext_l = 'INVOICE QUANTITY'.
  wa_fieldcat1-col_pos = 2.
  wa_fieldcat1-outputlen = 20.

  append wa_fieldcat1 to it_fieldcat1.
  clear wa_fieldcat1.

  wa_fieldcat1-tabname = 'IT_VBRP'.
  wa_fieldcat1-fieldname = 'VRKME'.
  wa_fieldcat1-seltext_l = 'SALES UNIT'.
  wa_fieldcat1-col_pos = 3.
  wa_fieldcat1-outputlen = 20.

  append wa_fieldcat1 to it_fieldcat1.
  clear wa_fieldcat1.

  wa_fieldcat1-tabname = 'IT_VBRP'.
  wa_fieldcat1-fieldname = 'NETWR'.
  wa_fieldcat1-seltext_l = 'NET CURRENCY VALUE'.
  wa_fieldcat1-col_pos = 4.
  wa_fieldcat1-outputlen = 20.

  append wa_fieldcat1 to it_fieldcat1.
  clear wa_fieldcat1.

  wa_fieldcat1-tabname = 'IT_VBRP'.
  wa_fieldcat1-fieldname = 'MATNR'.
  wa_fieldcat1-seltext_l = 'MATERIAL NUMBER'.
  wa_fieldcat1-col_pos = 5.
  wa_fieldcat1-outputlen = 20.

  append wa_fieldcat1 to it_fieldcat1.
  clear wa_fieldcat1.


  wa_fieldcat1-tabname = 'IT_VBRP'.
  wa_fieldcat1-fieldname = 'ARKTX'.
  wa_fieldcat1-seltext_l = 'SALES ORDER ITEM'.
  wa_fieldcat1-col_pos = 6.
  wa_fieldcat1-outputlen = 20.

  append wa_fieldcat1 to it_fieldcat1.
  clear wa_fieldcat1.

  wa_layout1-zebra = 'X'.

endform.                    " DET_FIELDCATALOG
*&---------------------------------------------------------------------*
*&      Form  DET_LISTDISPLAY
*&---------------------------------------------------------------------*
*       text displaying the secondary list
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form det_listdisplay .
  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       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
*   I_STRUCTURE_NAME               =
     is_layout                      = wa_layout1
     it_fieldcat                    = it_fieldcat1
*   IT_EXCLUDING                   =
*   IT_SPECIAL_GROUPS              =
*   IT_SORT                        =
*   IT_FILTER                      =
*   IS_SEL_HIDE                    =
*   I_DEFAULT                      = 'X'
*   I_SAVE                         = ' '
*   IS_VARIANT                     =
   it_events                      = 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
* 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.
  clear it_vbrp[].
endform.                    " DET_LISTDISPLAY
*&---------------------------------------------------------------------*
*&      Form  EVENTS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form events .
  clear ty_events.
  ty_events-name = slis_ev_top_of_page.
  ty_events-form = 'TOP_OF_PAGE'.
  append ty_events to it_events.
endform.                    " EVENTS

*&--------------------------------------------------------------------*
*&      Form  TOP_OF_PAGE
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
form top_of_page.
  skip.
  uline.
  write :/2 ' DATE :', sy-datum,
          45 'INTELLIGROUP ASIA PVT LTD',
          110 'TIME :', sy-uzeit.
  write : /3 'USER :', sy-uname,
           45 'TITLE :', sy-title,
           110 'PAGE :', sy-pagno.
  uline.
  skip.


endform.                    "TOP_OF_PAGE

<b>Please award points if fpound helpful</b>

Read only

Former Member
0 Likes
1,380

Hi,

take a look into this progs:

BCALV_GRID_EDIT_DELTA_EVENT

BCALV_SIMPLE_EVENT_RECEIVER

BCALV_TEST_FULLSCREEN_EVENTS

BCALV_TEST_GRID_EVENTS

BCALV_TEST_HIERSEQ_LIST_EVENTS

BCALV_TEST_LIST_EVENTS

BCALV_TOOLBAR_EVENT_RECEIVER

An Interactive ALV Report

&----


*& Report ZZ_22038_22098_002 *

*& *

&----


*& This is an Interactive ALV report, where on line slection we can see

*& the secondry list

*&

*& *

&----


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.

rgds,

latheesh

Message was edited by: Latheesh Kaduthara

Read only

Former Member
0 Likes
1,380

hi,

check this code:

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 if helpful.

regards,.

keerthi.

Read only

Former Member
0 Likes
1,380

REPORT  ZTEST_ALV_CHECK     message-id zz           .


TYPE-POOLS: SLIS.
DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
      IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
      L_LAYOUT type slis_layout_alv.


DATA: BEGIN OF ITAB OCCURS 0,
      VBELN LIKE VBAK-VBELN,
      POSNR LIKE VBAP-POSNR,
     END OF ITAB.

SELECT VBELN
       POSNR
       FROM VBAP
       UP TO 20 ROWS
       INTO TABLE ITAB.



X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-SELTEXT_L = 'VBELN'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 2.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-SELTEXT_L = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    I_CALLBACK_PROGRAM       = SY-REPID
    IS_LAYOUT                = L_LAYOUT
<b>    I_CALLBACK_PF_STATUS_SET = 'STATUS'
    I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'</b>
    IT_FIELDCAT              = IT_FIELDCAT
  TABLES
    T_OUTTAB                 = ITAB
  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.

*&---------------------------------------------------------------------*
*&      Form  STATUS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_EXTAB    text
*----------------------------------------------------------------------*
FORM STATUS USING P_EXTAB TYPE SLIS_T_EXTAB.
*- Pf status
<b>  SET PF-STATUS 'STATUS'.</b>
ENDFORM.                 " STATUS

*&---------------------------------------------------------------------*
*&      Form  USER_COMMAND
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->R_UCOMM      text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*
<b>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'.
*      message i000 with 'clicked on row' rs_Selfield-tabindex.
      set parameter id 'AUN' field rs_selfield-value.
      call transaction 'VA03' and skip first screen.
      endif.
  endcase.
ENDFORM.                    "USER_COMMAND</b>

you need set the PF-status and the User-command. and enable F2 key that is for double clicking, set the Function code '&IC1' for f2 key.

then it will work.

Regards

vijay

Read only

Former Member
0 Likes
1,380

Hi,

Look into following programs:

BCALV_GRID_EDIT_DELTA_EVENT

BCALV_SIMPLE_EVENT_RECEIVER

BCALV_TEST_FULLSCREEN_EVENTS

BCALV_TEST_GRID_EVENTS

BCALV_TEST_HIERSEQ_LIST_EVENTS

BCALV_TEST_LIST_EVENTS

BCALV_TOOLBAR_EVENT_RECEIVER

You can also refer to following links:

http://www.geocities.com/sapcircle/

<b>Kindly reward if helpful</b>

Regards,

Shakuntala

Read only

Former Member
0 Likes
1,380

Hi,

Try using the transaction DWDM, which is a demo center for SAP. This center has many examples.

Regs,

Venkat Ramanan