2009 Jun 16 9:41 AM
Hi
I need to display a report in the format
Report for XXX
t001 t002 t003
Quantity
value
quantity should be displayed for every t001 t002 t003
Suggest how to do this , and what are all the FM to be used .
2009 Jun 19 3:23 AM
Hi Chari,
Try to build ALV Report like this.
<pre>
REPORT zvenkat_alv_list.
TYPES:
BEGIN OF t_mard,
werks TYPE mard-werks,
lgort TYPE mard-lgort,
matnr TYPE mard-matnr,
insme TYPE mard-insme,
einme TYPE mard-einme,
speme TYPE mard-speme,
END OF t_mard.
DATA:
w_mard TYPE t_mard.
DATA:
i_mard TYPE STANDARD TABLE OF t_mard.
&----
ALV Declarations
----
Types Pools
TYPE-POOLS:
slis.
Types
TYPES:
t_fieldcat TYPE slis_fieldcat_alv,
t_events TYPE slis_alv_event,
t_sort TYPE slis_sortinfo_alv,
t_layout TYPE slis_layout_alv.
Workareas
DATA:
w_fieldcat TYPE t_fieldcat,
w_events TYPE t_events,
w_sort TYPE t_sort,
w_layout TYPE t_layout.
Internal Tables
DATA:
i_fieldcat TYPE STANDARD TABLE OF t_fieldcat,
i_sort TYPE STANDARD TABLE OF t_sort,
i_events TYPE STANDARD TABLE OF t_events.
&----
*& START-OF-SELECTION
&----
START-OF-SELECTION.
PERFORM get_data_from_database .
&----
*& END-OF-SELECTION
&----
END-OF-SELECTION.
PERFORM build_fieldcatalog.
PERFORM build_events.
PERFORM build_sort_tab.
PERFORM display_data.
&----
*& Form get_data_from_database
&----
text
----
FORM get_data_from_database .
CLEAR :i_mard,
i_mard[].
SELECT werks lgort matnr insme einme speme
FROM mard
INTO CORRESPONDING FIELDS OF TABLE i_mard
UP TO 100 ROWS.
ENDFORM. " get_data_from_database
&----
*& Form build_fieldcatalog
&----
FORM build_fieldcatalog .
CLEAR :
w_fieldcat,
i_fieldcat[].
PERFORM build_fcat USING:
"Field Int Tab Text
'WERKS' 'I_MARD' 'WERKS',
'LGORT' 'I_MARD' 'LGORT',
'MATNR' 'I_MARD' 'MATNR',
'INSME' 'I_MARD' 'INSME',
'EINME' 'I_MARD' 'EINME',
'SPEME' 'I_MARD' 'SPEME'.
ENDFORM. " build_fieldcatalog
&----
*& Form build_events
&----
FORM build_events .
CLEAR:
w_events, i_events[].
w_events-name = 'TOP_OF_PAGE'. "Events Name
w_events-form = 'TOP_OF_PAGE'. "Call back subroutine name
APPEND w_events TO i_events.
CLEAR w_events.
"You can see all the events existed for REUSE_ALV_LIST_DISPLAY by
"executing REUSE_ALV_EVENTS_GET function modul by giving input = 0.
ENDFORM. " build_events
&----
*& Form display_data
&----
FORM display_data .
DATA :program LIKE sy-repid VALUE sy-repid.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = program
it_fieldcat = i_fieldcat
it_events = i_events
IT_SORT = i_sort
TABLES
t_outtab = i_mard.
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_data
&----
*& Form top_of_page
&----
text
----
FORM top_of_page.
DATA :
i_header TYPE slis_t_listheader,
w_header LIKE LINE OF i_header.
DATA:l_date1 TYPE datum,
l_date2 TYPE datum.
w_header-typ = 'S'.
w_header-info = sy-title.
APPEND w_header TO i_header.
CLEAR w_header.
w_header-typ = 'H'.
w_header-info = sy-repid.
APPEND w_header TO i_header.
CLEAR w_header.
w_header-typ = 'A'.
w_header-info = 'List Display TOP OF PAGE'.
APPEND w_header TO i_header.
CLEAR w_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_header.
ENDFORM. "top_of_page
&----
*& Form BUILD_FCAT
&----
FORM build_fcat USING l_field l_tab l_text.
w_fieldcat-fieldname = l_field.
w_fieldcat-tabname = l_tab.
w_fieldcat-seltext_m = l_text.
IF l_field = 'INSME' or
l_field = 'EINME' or
l_field = 'SPEME'.
w_fieldcat-do_sum = 'X'.
ENDIF.
APPEND w_fieldcat TO i_fieldcat.
CLEAR w_fieldcat.
ENDFORM. " BUILD_FCAT
&----
*& Form BUILD_SORT_TAB
&----
FORM build_sort_tab .
w_sort-fieldname = 'WERKS'.
w_sort-tabname = 'I_MARD'.
w_sort-subtot = 'X'.
w_sort-UP = 'X'.
APPEND w_sort TO i_sort.
CLEAR w_sort.
w_sort-fieldname = 'WERKS'.
w_sort-tabname = 'I_MARD'.
w_sort-subtot = 'X'.
w_sort-UP = 'X'.
APPEND w_sort TO i_sort.
CLEAR w_sort.
w_sort-fieldname = 'WERKS'.
w_sort-tabname = 'I_MARD'.
w_sort-subtot = 'X'.
w_sort-UP = 'X'.
APPEND w_sort TO i_sort.
CLEAR w_sort.
ENDFORM. " BUILD_SORT_TAB</pre>
I hope it helps you.
Thanks
Venkat.O
2009 Jun 19 3:23 AM
Hi Chari,
Try to build ALV Report like this.
<pre>
REPORT zvenkat_alv_list.
TYPES:
BEGIN OF t_mard,
werks TYPE mard-werks,
lgort TYPE mard-lgort,
matnr TYPE mard-matnr,
insme TYPE mard-insme,
einme TYPE mard-einme,
speme TYPE mard-speme,
END OF t_mard.
DATA:
w_mard TYPE t_mard.
DATA:
i_mard TYPE STANDARD TABLE OF t_mard.
&----
ALV Declarations
----
Types Pools
TYPE-POOLS:
slis.
Types
TYPES:
t_fieldcat TYPE slis_fieldcat_alv,
t_events TYPE slis_alv_event,
t_sort TYPE slis_sortinfo_alv,
t_layout TYPE slis_layout_alv.
Workareas
DATA:
w_fieldcat TYPE t_fieldcat,
w_events TYPE t_events,
w_sort TYPE t_sort,
w_layout TYPE t_layout.
Internal Tables
DATA:
i_fieldcat TYPE STANDARD TABLE OF t_fieldcat,
i_sort TYPE STANDARD TABLE OF t_sort,
i_events TYPE STANDARD TABLE OF t_events.
&----
*& START-OF-SELECTION
&----
START-OF-SELECTION.
PERFORM get_data_from_database .
&----
*& END-OF-SELECTION
&----
END-OF-SELECTION.
PERFORM build_fieldcatalog.
PERFORM build_events.
PERFORM build_sort_tab.
PERFORM display_data.
&----
*& Form get_data_from_database
&----
text
----
FORM get_data_from_database .
CLEAR :i_mard,
i_mard[].
SELECT werks lgort matnr insme einme speme
FROM mard
INTO CORRESPONDING FIELDS OF TABLE i_mard
UP TO 100 ROWS.
ENDFORM. " get_data_from_database
&----
*& Form build_fieldcatalog
&----
FORM build_fieldcatalog .
CLEAR :
w_fieldcat,
i_fieldcat[].
PERFORM build_fcat USING:
"Field Int Tab Text
'WERKS' 'I_MARD' 'WERKS',
'LGORT' 'I_MARD' 'LGORT',
'MATNR' 'I_MARD' 'MATNR',
'INSME' 'I_MARD' 'INSME',
'EINME' 'I_MARD' 'EINME',
'SPEME' 'I_MARD' 'SPEME'.
ENDFORM. " build_fieldcatalog
&----
*& Form build_events
&----
FORM build_events .
CLEAR:
w_events, i_events[].
w_events-name = 'TOP_OF_PAGE'. "Events Name
w_events-form = 'TOP_OF_PAGE'. "Call back subroutine name
APPEND w_events TO i_events.
CLEAR w_events.
"You can see all the events existed for REUSE_ALV_LIST_DISPLAY by
"executing REUSE_ALV_EVENTS_GET function modul by giving input = 0.
ENDFORM. " build_events
&----
*& Form display_data
&----
FORM display_data .
DATA :program LIKE sy-repid VALUE sy-repid.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = program
it_fieldcat = i_fieldcat
it_events = i_events
IT_SORT = i_sort
TABLES
t_outtab = i_mard.
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_data
&----
*& Form top_of_page
&----
text
----
FORM top_of_page.
DATA :
i_header TYPE slis_t_listheader,
w_header LIKE LINE OF i_header.
DATA:l_date1 TYPE datum,
l_date2 TYPE datum.
w_header-typ = 'S'.
w_header-info = sy-title.
APPEND w_header TO i_header.
CLEAR w_header.
w_header-typ = 'H'.
w_header-info = sy-repid.
APPEND w_header TO i_header.
CLEAR w_header.
w_header-typ = 'A'.
w_header-info = 'List Display TOP OF PAGE'.
APPEND w_header TO i_header.
CLEAR w_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_header.
ENDFORM. "top_of_page
&----
*& Form BUILD_FCAT
&----
FORM build_fcat USING l_field l_tab l_text.
w_fieldcat-fieldname = l_field.
w_fieldcat-tabname = l_tab.
w_fieldcat-seltext_m = l_text.
IF l_field = 'INSME' or
l_field = 'EINME' or
l_field = 'SPEME'.
w_fieldcat-do_sum = 'X'.
ENDIF.
APPEND w_fieldcat TO i_fieldcat.
CLEAR w_fieldcat.
ENDFORM. " BUILD_FCAT
&----
*& Form BUILD_SORT_TAB
&----
FORM build_sort_tab .
w_sort-fieldname = 'WERKS'.
w_sort-tabname = 'I_MARD'.
w_sort-subtot = 'X'.
w_sort-UP = 'X'.
APPEND w_sort TO i_sort.
CLEAR w_sort.
w_sort-fieldname = 'WERKS'.
w_sort-tabname = 'I_MARD'.
w_sort-subtot = 'X'.
w_sort-UP = 'X'.
APPEND w_sort TO i_sort.
CLEAR w_sort.
w_sort-fieldname = 'WERKS'.
w_sort-tabname = 'I_MARD'.
w_sort-subtot = 'X'.
w_sort-UP = 'X'.
APPEND w_sort TO i_sort.
CLEAR w_sort.
ENDFORM. " BUILD_SORT_TAB</pre>
I hope it helps you.
Thanks
Venkat.O