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

Reports

Former Member
0 Likes
431

Hi ,

I have problem in simple alv reports when i execute the report this statement

" CALL BACK EVENT USER-COMMAND DOES NOT EXIST" will occurs.

wt the function module for field headings in alv reports.

Thanks in Advance,

swathi

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
402

Hi,

for field headings:-

FIELDCAT-TABNAME = 'ITFIN2'.

FIELDCAT-FIELDNAME = 'AVG_BILL'.

FIELDCAT-SELTEXT_L = 'material'. " field heading

APPEND FIELDCAT TO I_FIELDCAT.

By changing layout settings also causes to no display of headings:-

1. Changing layout By using structure – slis_layout_alv which consist properties " no headings

no_hotspot(1) type c, " headings not as hotspot

zebra(1) type c, " striped pattern

no_vline(1) type c, " columns separated by space

cell_merge(1) type c, " not suppress field replication

edit(1) type c, " for grid only

edit_mode(1) type c, " for grid only

numc_sum(1) type c, " totals for NUMC-Fields possib.

no_input(1) type c, " only display fields

ie changing layout of display to with headings or without headings for field name in output display.

And with stripped or unstripped output display(with lines or without lines)

2. Changing diplay header data by- slis_t_listheader to which u can add some data like company name , logo and some extra data.

FORM TOP_OF_PAGE_TLD.

CLEAR : ITHED[].” It is itab like slis_t_listheader

SHED-TYP = 'H'.

SHED-INFO = ‘data or info to display’.

APPEND SHED TO ITHED.

CLEAR SHED.

SHED-TYP = 'S'.

SHED-INFO = ‘information’.

APPEND SHED TO ITHED.

CLEAR SHED.

ENDIF.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = ITHED

I_LOGO = 'logoname'.

ENDIF.

ENDFORM.

Here for u the problem is :-

at function module 'reuse_alv_grid_display'

exports

i_call_back_user_command = USER_COMMAND

.......................

and create a form with the name 'USER_COMMAND'.

Form USER_COMMAND.

case sy-ucomm.

when &IC1.

..................

endform.

2 REPLIES 2
Read only

Former Member
0 Likes
403

Hi,

for field headings:-

FIELDCAT-TABNAME = 'ITFIN2'.

FIELDCAT-FIELDNAME = 'AVG_BILL'.

FIELDCAT-SELTEXT_L = 'material'. " field heading

APPEND FIELDCAT TO I_FIELDCAT.

By changing layout settings also causes to no display of headings:-

1. Changing layout By using structure – slis_layout_alv which consist properties " no headings

no_hotspot(1) type c, " headings not as hotspot

zebra(1) type c, " striped pattern

no_vline(1) type c, " columns separated by space

cell_merge(1) type c, " not suppress field replication

edit(1) type c, " for grid only

edit_mode(1) type c, " for grid only

numc_sum(1) type c, " totals for NUMC-Fields possib.

no_input(1) type c, " only display fields

ie changing layout of display to with headings or without headings for field name in output display.

And with stripped or unstripped output display(with lines or without lines)

2. Changing diplay header data by- slis_t_listheader to which u can add some data like company name , logo and some extra data.

FORM TOP_OF_PAGE_TLD.

CLEAR : ITHED[].” It is itab like slis_t_listheader

SHED-TYP = 'H'.

SHED-INFO = ‘data or info to display’.

APPEND SHED TO ITHED.

CLEAR SHED.

SHED-TYP = 'S'.

SHED-INFO = ‘information’.

APPEND SHED TO ITHED.

CLEAR SHED.

ENDIF.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = ITHED

I_LOGO = 'logoname'.

ENDIF.

ENDFORM.

Here for u the problem is :-

at function module 'reuse_alv_grid_display'

exports

i_call_back_user_command = USER_COMMAND

.......................

and create a form with the name 'USER_COMMAND'.

Form USER_COMMAND.

case sy-ucomm.

when &IC1.

..................

endform.

Read only

Former Member
0 Likes
402

Hi Swathi,

I will send some hints to ur problem and also send some sample program check it once.The program may be solve ur problem check it once...

For list Headings:

data:gt_listhead TYPE slis_t_listheader,

wa_listhead TYPE slis_listheader.

PERFORM list_header.

FORM list_header .

*Header Information

wa_listhead-typ = 'H'.

wa_listhead-info = 'SALES ORDER REPORT'.

APPEND wa_listhead TO gt_listhead.

endform

FORM top.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = gt_listhead

  • i_logo = 'KIRAN529' "T.Code : OAER

  • I_END_OF_LIST_GRID =

.

ENDFORM. " top

The code is for Headings..

And for user command:

FORM user_command USING ucomm LIKE sy-ucomm selfield TYPE slis_selfield.

----


  • Selcted Field in the OUTPUT ALV_GRID(VBELN)

----


CASE selfield-sel_tab_field.

WHEN 'GT_SALESORDER-VBELN'

some code

endcase.

And finally use This function module

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

i_callback_top_of_page = 'TOP'

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

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

it_sort = gt_sortcat

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

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.

Small report:

&----


*& Report YPURCHASEORDER_ALV_LISTDISP *

*& *

&----


*& DEVELOPER : KIRAN KUMAR.G *

& PURPOSE : CREATING A PURCHASE ORDER BASED ON PURCHASE DOC NUMBER

*& CREATION DT: 22/11/2007 *

*& REQUEST : ERPK900035 *

&----


REPORT YPURCHASEORDER_ALV_LISTDISP.

----


  • Tables

----


TABLES : ekko, "Purchasing Document Header

ekpo. "Purchasing Document Item

----


  • Type pools

----


TYPE-POOLS: slis.

----


  • Internal Tables

----


DATA: BEGIN OF gt_headerdat OCCURS 0,

ebeln LIKE ekko-ebeln, " Purchasing Document Number

bukrs LIKE ekko-bukrs, " Company Code

bstyp LIKE ekko-bstyp, " Purchasing Document Category

bsart LIKE ekko-bsart, " Purchasing Document LIKE

aedat LIKE ekko-aedat, " Date on which the recordwascreate

ernam LIKE ekko-ernam, " Name of Person who Created Object

lifnr LIKE ekko-lifnr, " Vendor's account number

spras LIKE ekko-spras, " Language Key

ekorg LIKE ekko-ekorg, " Purchasing Organization

ekgrp LIKE ekko-ekgrp, " Purchasing group

END OF gt_headerdat.

DATA: BEGIN OF gt_item OCCURS 0,

matnr LIKE ekpo-matnr, "Material Number

werks LIKE ekpo-werks, "Plant

lgort LIKE ekpo-lgort, "Storage location

matkl LIKE ekpo-matkl, "Material group

menge LIKE ekpo-menge, "Purchase order quantity

meins LIKE ekpo-meins, "Order unit

netpr LIKE ekpo-netpr, "Net price in purchasing document

kunnr LIKE ekpo-kunnr, "Customer Number 1

END OF gt_item.

----


  • Global Structures

----


DATA: gt_header TYPE slis_t_listheader, "For Headings

wa_header TYPE slis_listheader,

gt_fieldcat TYPE slis_t_fieldcat_alv, "Structure Defintion

wa_fieldcat TYPE slis_fieldcat_alv,

gt_fieldcat1 TYPE slis_t_fieldcat_alv,

wa_fieldcat1 TYPE slis_fieldcat_alv,

wa_layout TYPE slis_layout_alv, "Layout

gt_events TYPE slis_t_event, "For Events

wa_events TYPE slis_alv_event.

----


  • Selection Screen

----


SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS : s_ebeln FOR ekko-ebeln.

SELECTION-SCREEN: END OF BLOCK b1.

----


  • Initialization

----


INITIALIZATION.

PERFORM initial.

----


  • Fetch Data

----


START-OF-SELECTION.

PERFORM fetch_data.

END-OF-SELECTION.

  • Bulid fieldcatalog

PERFORM fieldcat.

  • Change fieldcatalog

PERFORM fieldcat_change.

  • Events Triggering

PERFORM place_events.

  • Layout.

PERFORM layout.

----


  • Display Data

----


SORT gt_headerdat BY ebeln.

PERFORM display_list.

&----


*& Form initial

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM initial .

s_ebeln-sign = 'I'.

s_ebeln-option = 'BT'.

s_ebeln-low = '3000000090'.

s_ebeln-high = '3000000166'.

APPEND s_ebeln.

ENDFORM. " initial

&----


*& Form fetch_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fetch_data .

REFRESH gt_headerdat. "Clear the Body of Internal Table

CLEAR gt_headerdat. "Clear Header Line

SELECT ebeln

bukrs

bstyp

bsart

aedat

ernam

lifnr

spras

ekorg

ekgrp

FROM ekko

INTO TABLE gt_headerdat

WHERE ebeln IN s_ebeln.

ENDFORM. " fetch_data

&----


*& Form display_list

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_list .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = sy-cprog

  • I_CALLBACK_PF_STATUS_SET = ' '

i_callback_user_command = 'USERCOMMAND'

  • I_STRUCTURE_NAME =

is_layout = wa_layout

it_fieldcat = gt_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

it_events = gt_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 = gt_headerdat

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_list

&----


*& Form place_events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM place_events .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = gt_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.

CLEAR wa_events. "Clear Header Line

READ TABLE gt_events INTO wa_events WITH KEY name = 'TOP_OF_PAGE'.

IF sy-subrc = 0.

wa_events-form = 'HEADING'.

MODIFY gt_events FROM wa_events INDEX sy-tabix.

ENDIF.

CLEAR wa_events. "Clear Header Line

READ TABLE gt_events INTO wa_events WITH KEY name = 'END_OF_LIST'.

IF sy-subrc = 0.

wa_events-form = 'PAGEDOWN'.

MODIFY gt_events FROM wa_events INDEX sy-tabix.

ENDIF.

CLEAR wa_events. "Clear Header Line

READ TABLE gt_events INTO wa_events WITH KEY name = 'USER_COMMAND'.

IF sy-subrc = 0.

wa_events-form = 'USERCOMMAND'.

MODIFY gt_events FROM wa_events INDEX sy-tabix.

ENDIF.

ENDFORM. " place_events

&----


*& Form layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM layout .

CLEAR wa_layout. "Clear Header Line

wa_layout-zebra = 'X'. "Zebra Lines in the Output

wa_layout-colwidth_optimize = 'X'. "Optimize the Column Width

ENDFORM. " layout

&----


*& Form heading

&----


  • text

----


FORM heading.

WRITE:/6 'THIS REPORT DISPLAYS THE PURCHASE ORDER DETAILS'.

WRITE:/6 'CLICK ON PURCHASE DOC NO FIELD(INTERACTIVE LIST)'.

ENDFORM. "heading

&----


*& Form fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fieldcat .

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = SY-CPROG

i_internal_tabname = 'GT_HEADERDAT'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = SY-CPROG

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = gt_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. " fieldcat

&----


*& Form fieldcat_change

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fieldcat_change .

LOOP AT gt_fieldcat INTO wa_fieldcat.

CASE wa_fieldcat-fieldname.

WHEN 'EBELN'.

wa_fieldcat-hotspot = 'X'.

ENDCASE.

MODIFY gt_fieldcat FROM wa_fieldcat INDEX sy-tabix.

ENDLOOP.

ENDFORM. " fieldcat_change

&----


*& Form pagedown

&----


  • text

----


FORM pagedown.

WRITE:/35 'HAVE A NICE DAY...' COLOR 4.

ENDFORM. "pagedown

&----


*& Form usercommand

&----


  • text

----


  • -->UCOMM text

  • -->SELFIELD text

----


FORM usercommand USING ucomm LIKE sy-ucomm selfield TYPE slis_selfield.

READ TABLE gt_headerdat INDEX selfield-tabindex.

CASE selfield-sel_tab_field.

WHEN 'GT_HEADERDAT-EBELN'.

REFRESH : gt_item.

CLEAR : gt_item.

SELECT matnr

werks

lgort

matkl

menge

meins

netpr

kunnr

FROM ekpo

INTO TABLE gt_item

WHERE ekpo~ebeln EQ gt_headerdat-ebeln.

*Build a Field Catalog

PERFORM fieldcat1.

*For Heading in the Interactive List

PERFORM heading1.

*Display Interactive Data

PERFORM display_data1.

ENDCASE.

ENDFORM. "usercommand

&----


*& Form fieldcat1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fieldcat1 .

REFRESH : gt_fieldcat1.

CLEAR : wa_fieldcat1.

wa_fieldcat1-col_pos = '1'. "Column Postion

wa_fieldcat1-fieldname = 'MATNR'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal Table

wa_fieldcat1-key = 'X'. "Blue Color

wa_fieldcat1-seltext_l = 'MATERIAL NO'. "Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

wa_fieldcat1-col_pos = '2'. "Column Postion

wa_fieldcat1-fieldname = 'WERKS'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal Table

wa_fieldcat1-seltext_l = 'PLANT'. "Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

wa_fieldcat1-col_pos = '3'. "Column Postion

wa_fieldcat1-fieldname = 'LGORT'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal Table

wa_fieldcat1-seltext_l = 'STORAGE LOCATION'."Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

wa_fieldcat1-col_pos = '4'. "Column Postion

wa_fieldcat1-fieldname = 'MATKL'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal Table

wa_fieldcat1-seltext_l = 'MATERIAL GRP'. "Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

wa_fieldcat1-col_pos = '5'. "Column Postion

wa_fieldcat1-fieldname = 'MENGE'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal TAble

wa_fieldcat1-seltext_l = 'PO QUANTITY'. "Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

wa_fieldcat1-col_pos = '6'. "Column Pos tion

wa_fieldcat1-fieldname = 'MEINS'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal TAble

wa_fieldcat1-seltext_l = 'BASE UNIT MEASURE'."Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

wa_fieldcat1-col_pos = '7'. "Column Postion

wa_fieldcat1-fieldname = 'NETPR'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal Table

wa_fieldcat1-seltext_l = 'NET PRICE'. "Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

wa_fieldcat1-col_pos = '8'. "Column Postion

wa_fieldcat1-fieldname = 'KUNNR'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal Table

wa_fieldcat1-seltext_l = 'CUSTOMER NO'. "Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

ENDFORM. " fieldcat1

&----


*& Form heading1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM heading1 .

REFRESH : gt_header.

CLEAR : wa_header.

wa_header-typ = 'H'.

wa_header-info = 'THIS IS AN INTERACTIVE LIST'.

APPEND wa_header TO gt_header.

ENDFORM. " heading1

&----


*& Form top

&----


  • text

----


FORM top.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = gt_header

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "top

&----


*& Form display_data1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_data1 .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = SY-CPROG

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

i_callback_top_of_page = 'TOP'

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

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

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_data1

Award points if helpful..

Kiran Kumar.G

Have a Nice Day..