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 Report

Former Member
0 Likes
409

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 .

1 ACCEPTED SOLUTION
Read only

venkat_o
Active Contributor
0 Likes
376

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

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 .

1 REPLY 1
Read only

venkat_o
Active Contributor
0 Likes
377

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