07-20-2007 6:01 AM
Hi all,
My user command is not working in my program.
When i am clicking in any value on any filed its not working out. I have debuuged also i m not getting.
<code>
&----
*& Report ZVEN_PRA
*&
&----
*&
*&
&----
REPORT zven_pra
NO STANDARD PAGE HEADING
MESSAGE-ID zven.
&----
*&
*&Internal table declarations
&----
DATA:BEGIN OF it_ekko OCCURS 0,
ebeln TYPE ekko-ebeln, "po number
bukrs TYPE ekko-bukrs, "company code
bstyp TYPE ekko-bstyp, "po category
lifnr TYPE ekko-lifnr, "vendor no
ekorg TYPE ekko-ekorg, "pur org
ekgrp TYPE ekko-ekgrp, "pur group
END OF it_ekko.
DATA:BEGIN OF it_ekpo OCCURS 0,
ebelp TYPE ekpo-ebelp,"item of po number
matnr TYPE ekpo-matnr,"material no
werks TYPE ekpo-werks,"plant
menge TYPE ekpo-menge,"po qty
meins TYPE ekpo-meins,"order unit
netwr TYPE ekpo-netwr,"net order value
END OF it_ekpo.
DATA:v_field(50) TYPE c,
v_value TYPE ekko-ebeln.
DATA:v_bukrs TYPE ekko-bukrs.
TYPE-POOLS:slis.
DATA:it_fcat TYPE slis_t_fieldcat_alv,
wa_fcat TYPE slis_fieldcat_alv,
layout TYPE slis_layout_alv,
it_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader.
DATA : it_event TYPE slis_t_event.
DATA:it_fcat2 TYPE slis_t_fieldcat_alv,
wa_fcat2 TYPE slis_fieldcat_alv,
gs_selfield TYPE slis_selfield,
g_exit(1) TYPE c,
gs_private TYPE slis_data_caller_exit.
*to store the variants.
data:ws_x_variant like disvariant,
ws_variant like disvariant,
ws_save type c,
ws_exit type c.
CONSTANTS :
c_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE',
c_usercommand TYPE slis_formname VALUE 'USER_COMMAND',
c_pf_status TYPE slis_formname VALUE 'PF_STATUS_SET'.
DATA:IT_HEADER TYPE SLIS_T_LISTHEADER.
&----
*&
*&Selection-Screen declarations
&----
TABLES:ekko.
SELECTION-SCREEN BEGIN OF BLOCK e WITH FRAME TITLE text-002.
SELECT-OPTIONS:s_bukrs FOR ekko-bukrs,
s_lifnr FOR ekko-lifnr.
SELECTION-SCREEN END OF BLOCK e.
*validate the company code
AT SELECTION-SCREEN.
PERFORM validate_code.
START-OF-SELECTION.
PERFORM get_data_ekko.
PERFORM build_field_catalog.
END-OF-SELECTION.
PERFORM get_layout.
PERFORM fill_event.
perform fill_variant.
PERFORM print_data_ekko.
&----
*& Form get_data_ekko
&----
text
FORM get_data_ekko .
SELECT ebeln
bukrs
bstyp
lifnr
ekorg
ekgrp
FROM ekko
INTO TABLE it_ekko
WHERE bukrs IN s_bukrs
AND lifnr IN s_lifnr.
IF sy-subrc = 0.
SORT it_ekko BY ebeln.
ENDIF.
ENDFORM. " get_data_ekko
&----
*& Form print_data_ekko
&----
text
FORM print_data_ekko .
CALL FUNCTION 'REUSE_ALV_GRID_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_CALLBACK_TOP_OF_PAGE = TOP_1
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_BACKGROUND_ID = ' '
i_grid_title = 'ALVREPORT'
I_GRID_SETTINGS = I_GRID_SETTINGS
is_layout = layout
it_fieldcat = it_fcat[]
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
it_events = it_event[]
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
t_outtab = it_ekko
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
*loop at it_ekko.
*write:/ it_ekko-ebeln hotspot on,15 it_ekko-bukrs,25 it_ekko-bstyp,
35 it_ekko-lifnr,45 it_ekko-ekorg,55 it_ekko-ekgrp.
hide it_ekko-ebeln.
*endloop.
ENDFORM. " print_data_ekko
&----
*& Form get_data_ekpo
&----
text
FORM get_data_ekpo .
IF NOT it_ekko[] IS INITIAL.
SELECT ebelp
matnr
werks
menge
meins
netwr
FROM ekpo
INTO TABLE it_ekpo
WHERE ebeln = it_ekko-ebeln.
ENDIF.
ENDFORM. " get_data_ekpo
&----
*& Form validate_code
&----
text
FORM validate_code .
IF NOT s_bukrs[] IS INITIAL.
SELECT SINGLE bukrs
INTO v_bukrs
FROM ekko
WHERE bukrs IN s_bukrs.
IF sy-subrc <> 0.
MESSAGE e001. "invalid company code
ENDIF.
ENDIF.
ENDFORM. " validate_code
&----
*& Form build_field_catalog
&----
text
FORM build_field_catalog .
CLEAR wa_fcat.
*CLEAR IT_FCAT.
wa_fcat-emphasize = 'C112'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-fieldname = 'EBELN'.
wa_fcat-col_pos = '1'.
wa_fcat-seltext_l = 'PO NUMBER'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
*CLEAR IT_FCAT.
wa_fcat-emphasize = 'C212'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-fieldname = 'BUKRS'.
wa_fcat-col_pos = '2'.
wa_fcat-seltext_l = 'COM CODE'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
*CLEAR IT_FCAT.
wa_fcat-emphasize = 'C312'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-fieldname = 'BSTYP'.
wa_fcat-col_pos = '3'.
wa_fcat-seltext_l = 'PO CATEGORY'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
*CLEAR IT_FCAT.
wa_fcat-emphasize = 'C412'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-fieldname = 'LIFNR'.
wa_fcat-col_pos = '4'.
wa_fcat-seltext_l = 'VENDOR NUMBER'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
*CLEAR IT_FCAT.
wa_fcat-emphasize = 'C512'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-fieldname = 'EKORG'.
wa_fcat-col_pos = '5'.
wa_fcat-seltext_l = 'PO ORGAN'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
*CLEAR IT_FCAT.
wa_fcat-emphasize = 'C612'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-fieldname = 'EBGRP'.
wa_fcat-col_pos = '6'.
wa_fcat-seltext_l = 'PO GROUP'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
ENDFORM. " build_field_catalog
&----
*& Form get_layout
&----
text
FORM get_layout .
layout-zebra = 'X'.
ENDFORM. " get_layout
&----
*& Form get_headerin_alv
&----
text
----
-->P_IT_HEADER text
----
FORM top_of_page .
DATA:it_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader.
CLEAR wa_header.
wa_header-typ = 'H'.
wa_header-info = 'venkatakrishna'.
APPEND wa_header TO it_header.
CLEAR wa_header.
wa_header-typ = 'S'.
wa_header-info = 'SOFTWARE ENGINEER'.
APPEND wa_header TO it_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_header
I_LOGO = I_LOGO
I_END_OF_LIST_GRID = I_END_OF_LIST_GRID
I_ALV_FORM = I_ALV_FORM
.
ENDFORM. "TOP_OF_PAGE
&----
*& Form user_command
&----
text
----
-->RF_UCOMM text
-->RS_SELFIELD text
----
FORM user_command USING rf_ucomm TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE rf_ucomm.
WHEN '&IC1'.
READ TABLE it_ekko INDEX rs_selfield-tabindex.
IF sy-subrc = 0.
PERFORM get_data_ekpo.
PERFORM PRINT_DATA_EKPO.
PERFORM build_field_catalog2.
PERFORM print_field_data.
ENDIF.
ENDCASE.
ENDFORM. "user_command
&----
*& Form BUILD_FIELD_CATALOG2
&----
text
FORM build_field_catalog2 .
CLEAR: it_fcat,wa_fcat.
CLEAR: wa_fcat2,it_fcat2.
wa_fcat2-tabname = 'IT_EKPO'.
wa_fcat2-fieldname = 'EBELP'.
wa_fcat2-col_pos = '1'.
wa_fcat2-seltext_l = 'item of po number'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
wa_fcat2-tabname = 'IT_EKPO'.
wa_fcat2-fieldname = 'MATNR'.
wa_fcat2-col_pos = '2'.
wa_fcat2-seltext_l = 'material no'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
wa_fcat2-tabname = 'IT_EKPO'.
wa_fcat2-fieldname = 'WERKS'.
wa_fcat2-col_pos = '3'.
wa_fcat2-seltext_l = 'PLANT'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
wa_fcat2-tabname = 'IT_EKPO'.
wa_fcat2-fieldname = 'MENGE'.
wa_fcat2-col_pos = '4'.
wa_fcat2-seltext_l = 'PO QTY'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
wa_fcat2-tabname = 'IT_EKPO'.
wa_fcat2-fieldname = 'MEINS'.
wa_fcat2-col_pos = '5'.
wa_fcat2-seltext_l = 'ORDER UNIT'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
wa_fcat2-tabname = 'IT_EKPO'.
wa_fcat2-fieldname = 'NETWR'.
wa_fcat2-col_pos = '6'.
wa_fcat2-seltext_l = 'net order value'.
APPEND wa_fcat2 TO it_fcat2.
ENDFORM. " BUILD_FIELD_CATALOG2
&----
*& Form PRINT_FIELD_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM print_field_data .
CALL FUNCTION 'REUSE_ALV_GRID_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_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 'EKPO'
I_BACKGROUND_ID = ' '
i_grid_title = 'INTERACTIVE REPORT'
I_GRID_SETTINGS = I_GRID_SETTINGS
IS_LAYOUT = IS_LAYOUT
it_fieldcat = it_fcat2
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = ws_x_variant
IT_EVENTS = IT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
t_outtab = it_ekpo
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
*USE THE POPUP_TO_CONFIRM FUNCTION MODULE FOR SELECT
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
I_TITLE = 'venkat'
I_SELECTION = 'X'
I_ALLOW_NO_SELECTION = I_ALLOW_NO_SELECTION
I_ZEBRA = 'X'
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_CHECKBOX_FIELDNAME = I_CHECKBOX_FIELDNAME
I_LINEMARK_FIELDNAME = I_LINEMARK_FIELDNAME
I_SCROLL_TO_SEL_LINE = 'X'
i_tabname = 'EKPO'
i_structure_name = 'EKPO'
it_fieldcat = it_fcat2
IT_EXCLUDING = IT_EXCLUDING
I_CALLBACK_PROGRAM = I_CALLBACK_PROGRAM
I_CALLBACK_USER_COMMAND = I_CALLBACK_USER_COMMAND
is_private = gs_private
IMPORTING
es_selfield = gs_selfield
e_exit = g_exit
TABLES
t_outtab = IT_EKPO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
ENDFORM. " PRINT_FIELD_DATA
&----
*& Form fill_event
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_event .
DATA : st_event TYPE slis_alv_event.
*- Clear.
CLEAR : st_event, it_event[].
*- Local variable
DATA : l_tabix TYPE sy-tabix.
*
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_event
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.
*
*- Read event table
READ TABLE it_event WITH KEY name = slis_ev_top_of_page
INTO st_event.
*- Top of page event
*- Clear
CLEAR l_tabix.
l_tabix = sy-tabix.
*- Check subrc
IF sy-subrc = 0.
st_event-form = c_top_of_page.
*- Modify
MODIFY it_event FROM st_event INDEX l_tabix.
*- Clear
CLEAR st_event.
ENDIF.
*
*- User command event
*- Read event table
READ TABLE it_event WITH KEY name = slis_ev_user_command
INTO st_event.
*- Clear
CLEAR l_tabix.
l_tabix = sy-tabix.
*- Check subrc
IF sy-subrc = 0.
st_event-form = c_usercommand.
*- Modify
MODIFY it_event FROM st_event INDEX l_tabix.
*- Clear
CLEAR st_event.
ENDIF.
ENDFORM. " fill_event
&----
*& Form GET_HEADER
&----
text
&----
*& Form fill_variant
&----
text
form fill_variant .
ws_x_variant-report = 'ZVEN_PRA'.
endform. " fill_variant
</code>
Thanks,
suraj
07-20-2007 6:07 AM
Hi Suraj,
pass this 'user_command' to function module.
CALLBACKUSER_COMMAND = ' user_command '
Hope this will help u out.
Reward if helpful
Thanks
Azad.
07-20-2007 6:08 AM
Hi
Keep a break-point at the following lines and check whetehr the READ statement is returning sy-subrc 0 or not
WHEN '&IC1'.
<b>READ TABLE it_ekko INDEX rs_selfield-tabindex.</b>
IF sy-subrc = 0.
here move the value of it_ekko-EBELn into a field varaible and use it in the select statement of ekpo.
<b>Reward points for useful Answers</b>
Regards
Anji
07-20-2007 6:09 AM
CALL FUNCTION 'REUSE_ALV_GRID_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_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 'EKPO'
I_BACKGROUND_ID = ' '
i_grid_title = 'INTERACTIVE REPORT'
I_GRID_SETTINGS = I_GRID_SETTINGS
IS_LAYOUT = IS_LAYOUT
it_fieldcat = it_fcat2
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = ws_x_variant
<b>* IT_EVENTS = IT_EVENTS</b>
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
t_outtab = it_ekpo
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
.
You have not passed the event table. Plz check the bold portion of the coad.
07-20-2007 6:11 AM
You can also take the following approach to get the functionality:
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE'
I_callback_user_command = 'USER_COMMAND' "see FORM
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'X'
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
----
FORM USER_COMMAND *
----
--> R_UCOMM *
--> RS_SELFIELD *
----
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
Check function code
CASE r_ucomm.
WHEN '&IC1'.
Check field clicked on within ALVgrid report
IF rs_selfield-fieldname = 'EBELN'.
Read data table, using index of row user clicked on
READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
Set parameter ID for transaction screen field
SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
Sxecute transaction ME23N, and skip initial data entry screen
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
07-20-2007 6:17 AM
Thank u frnds i m getting it now.
I M GETTING PROBLEM IN THIS PROGRAM AGAIN.
<CODE>Report Z_50840_ALV
Line-size 80
Line-count 64
Message-id ZZ
No Standard Page Heading.
----
Copyright statement *
@ copyright 2007 by Intelligroup Inc. *
----
----
Program Details *
----
Program Name: Z_50840_ALV
Date : 19.07.2007
Author : Vasudevaraman V
Description : Test Program
Transport No:
----
Change Log *
----
Date :
Author :
Description :
Transport No:
----
Tables *
----
Tables: vbrk.
----
Type Pools *
----
Type-Pools: SLIS.
----
Variables *
----
Data: GV_REPID TYPE SY-REPID.
----
Structures *
----
Data: BEGIN OF GIT_VBRK OCCURS 0,
VBELN LIKE VBRK-VBELN, "Billing Document
FKART LIKE VBRK-FKART, "Billing Type
KNUMV LIKE VBRK-KNUMV, "Number of the document condition
BUKRS LIKE VBRK-BUKRS, "Company code
NETWR LIKE VBRK-NETWR, "Net value in document currency
WAERK LIKE VBRK-WAERK, "SD document currency in basic list
END OF GIT_VBRK,
GIT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FCAT TYPE slis_fieldcat_alv,
GIT_EVENTS TYPE SLIS_T_EVENT,
WA_EVENTS TYPE SLIS_ALV_EVENT.
----
Field Symbols *
----
Field-symbols: <fs_xxxx>.
----
Selection Screen *
----
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_VBELN FOR VBRK-VBELN.
PARAMETERS: LISTDISP RADIOBUTTON GROUP G1,
GRIDDISP RADIOBUTTON GROUP G1 DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK B1.
----
Initialization *
----
Initialization.
GV_REPID = SY-REPID.
----
At Selection Screen *
----
At selection-screen.
----
Start Of Selection *
----
Start-of-selection.
SET PF-STATUS 'ABC'(001).
PERFORM GET_BILLING_DETAILS.
PERFORM FIELD_CATALOGUE.
PERFORM GET_EVENTS.
----
End Of Selection *
----
End-of-selection.
PERFORM DISPLAY_BILLING_DETAILS.
----
Top Of Page *
----
Top-of-page.
----
End Of Page *
----
End-of-page.
&----
*& Form GET_BILLING_DETAILS
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_BILLING_DETAILS .
SELECT VBELN
FKART
KNUMV
BUKRS
NETWR
WAERK
FROM VBRK
INTO TABLE GIT_VBRK
WHERE VBELN IN S_VBELN.
IF SY-SUBRC = 0.
SORT GIT_VBRK BY VBELN.
ENDIF.
ENDFORM. " GET_BILLING_DETAILS
&----
*& Form FIELD_CATALOGUE
&----
text
----
--> p1 text
<-- p2 text
----
FORM FIELD_CATALOGUE .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = GV_REPID
I_INTERNAL_TABNAME = 'GIT_VBRK'
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = GV_REPID
I_BYPASSING_BUFFER = 'X'
I_BUFFER_ACTIVE = ' '
CHANGING
CT_FIELDCAT = GIT_FCAT
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. " FIELD_CATALOGUE
&----
*& Form DISPLAY_BILLING_DETAILS
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_BILLING_DETAILS .
IF LISTDISP = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = 'X'
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GV_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = GIT_FCAT
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = GIT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER = IR_SALV_LIST_ADAPTER
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = GIT_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.
ELSE.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = 'X'
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GV_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_GRID_TITLE
I_GRID_SETTINGS = I_GRID_SETTINGS
IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = GIT_FCAT
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = GIT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = GIT_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.
ENDIF.
ENDFORM. " DISPLAY_BILLING_DETAILS
&----
*& Form GET_EVENTS
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_EVENTS .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = GIT_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.
LOOP AT GIT_EVENTS INTO WA_EVENTS.
CASE WA_EVENTS-NAME.
WHEN 'USER_COMMAND'.
WA_EVENTS-FORM = 'USER_COMMAND'.
ENDCASE.
MODIFY GIT_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
ENDLOOP.
ENDFORM. " GET_EVENTS
FORM USER_COMMAND.
WRITE 😕 'USER_COMMAND'.
ENDFORM.</CODE>.
REGARDS,
SURAJ