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

BLock ALV

Former Member
0 Likes
600

Hello Experts,

i am developing report in ALV. i want to show the output in ALV grid..

how do i use the block alv for grid display????

any sample code????

Hello Experts,

i am developing report in ALV. i want to show the output in ALV grid..

how do i use the block alv for grid display????

any sample code????

4 REPLIES 4
Read only

Former Member
0 Likes
567

hi,

Use the FM

REUSE_ALV_GRID_DISPLAY.

Read only

Former Member
0 Likes
567

Hi saurabh,

1. I you are using FM concept for ALV,

then its not possible to show BLOCK ALV in GRID.

(We can show in alv list in block, but not in grid)

2. For ALV List Block,

Just copy paste to get a taste of it.

3.

REPORT zam_temp54 .

type-pools : slis.

data : alvfc type slis_t_fieldcat_alv.

data : alvly type slis_layout_alv.

data : alvev type slis_t_event .

*----


DATA : BEGIN OF itab OCCURS 0.

include structure t001.

DATA: END OF itab.

DATA : BEGIN OF ptab OCCURS 0.

INCLUDE STRUCTURE t000.

DATA: END OF ptab..

*----


PARAMETERS : a TYPE c.

*----


start-of-selection.

*----


SELECT DATA

SELECT * FROM t001 into table itab.

select * from t000 into table ptab.

*----


INIT BLOCK ALV

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

i_callback_program = sy-repid.

*----


ADD INTERNAL TABLE ITAB

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'ITAB'

I_INCLNAME = SY-REPID

CHANGING

CT_FIELDCAT = ALVFC.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = alvly

it_fieldcat = alvfc

i_tabname = 'ITAB'

it_events = alvev

TABLES

t_outtab = ITAB

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2

OTHERS = 3.

*----


ADD INTERNAL TABLE PTAB

REFRESH ALVFC[].

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'PTAB'

I_INCLNAME = SY-REPID

CHANGING

CT_FIELDCAT = ALVFC.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = alvly

it_fieldcat = alvfc

i_tabname = 'PTAB'

it_events = alvev

TABLES

t_outtab = PTAB

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2

OTHERS = 3.

*----


DISPLAY

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

EXCEPTIONS

program_error = 1

OTHERS = 2.

regards,

amit m.

Read only

Former Member
0 Likes
567

Hi Saurabh,

Try this code it has output in Blocks ,,,,,,,,

It might help you.....

  • Type-pools

TYPE-POOLS: slis.

  • Data declarations.

DATA: BEGIN OF t_vbak OCCURS 0,

vbeln TYPE vbeln,

bstnk TYPE vbak-bstnk,

erdat TYPE vbak-erdat,

kunnr TYPE vbak-kunnr,

END OF t_vbak.

DATA: BEGIN OF t_vbap OCCURS 0,

vbeln TYPE vbeln,

matnr TYPE vbap-matnr,

netpr TYPE vbap-netpr,

waerk TYPE vbap-waerk,

kwmeng TYPE vbap-kwmeng,

meins TYPE vbap-meins,

END OF t_vbap.

DATA: t_fieldcatalog1 TYPE slis_t_fieldcat_alv.

DATA: t_fieldcatalog2 TYPE slis_t_fieldcat_alv.

DATA: v_repid TYPE syrepid.

DATA: s_layout TYPE slis_layout_alv.

DATA: v_tabname TYPE slis_tabname.

DATA: t_events TYPE slis_t_event.

  • start-of-selection event.

START-OF-SELECTION.

v_repid = sy-repid.

  • Get the fieldcatalog for the first block

PERFORM get_fieldcat1 CHANGING t_fieldcatalog1.

  • Get the fieldcatalog for the second block

PERFORM get_fieldcat2 CHANGING t_fieldcatalog2.

  • Get the data for the first block

SELECT vbeln bstnk erdat kunnr UP TO 10 ROWS

INTO TABLE t_vbak

FROM vbak WHERE vbeln > '0060000100'.

  • Get the data for the second block

SELECT vbeln matnr netpr waerk kwmeng meins UP TO 10

ROWS

INTO TABLE t_vbap

FROM vbap WHERE vbeln > '0060000100'.

  • init

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

i_callback_program = v_repid.

  • First block

v_tabname = 'ITAB1'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = s_layout

it_fieldcat = t_fieldcatalog1

i_tabname = v_tabname

it_events = t_events

TABLES

t_outtab = t_vbak.

  • Second block

v_tabname = 'ITAB2'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = s_layout

it_fieldcat = t_fieldcatalog2

i_tabname = v_tabname

it_events = t_events

TABLES

t_outtab = t_vbap.

*Display

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

.

----


  • FORM GET_FIELDCAT1

*

----


  • Get the field catalog for the first block

*

----


FORM get_fieldcat1 CHANGING lt_fieldcatalog TYPE

slis_t_fieldcat_alv.

DATA: s_fieldcatalog TYPE slis_fieldcat_alv.

  • Order number

s_fieldcatalog-col_pos = '1'.

s_fieldcatalog-fieldname = 'VBELN'.

s_fieldcatalog-tabname = 'T_VBAK'.

s_fieldcatalog-ref_tabname = 'VBAK'.

s_fieldcatalog-ref_fieldname = 'VBELN'.

APPEND s_fieldcatalog TO lt_fieldcatalog.

CLEAR s_fieldcatalog.

  • Customer purchase order.

s_fieldcatalog-col_pos = '2'.

s_fieldcatalog-fieldname = 'BSTNK'.

s_fieldcatalog-tabname = 'T_VBAK'.

s_fieldcatalog-ref_tabname = 'VBAK'.

s_fieldcatalog-ref_fieldname = 'BSTNK'.

APPEND s_fieldcatalog TO lt_fieldcatalog.

CLEAR s_fieldcatalog.

  • Creation date.

s_fieldcatalog-col_pos = '3'.

s_fieldcatalog-fieldname = 'ERDAT'.

s_fieldcatalog-tabname = 'T_VBAK'.

s_fieldcatalog-ref_tabname = 'VBAK'.

s_fieldcatalog-ref_fieldname = 'ERDAT'.

APPEND s_fieldcatalog TO lt_fieldcatalog.

CLEAR s_fieldcatalog.

  • Customer

s_fieldcatalog-col_pos = '4'.

s_fieldcatalog-fieldname = 'KUNNR'.

s_fieldcatalog-tabname = 'T_VBAK'.

s_fieldcatalog-ref_tabname = 'VBAK'.

s_fieldcatalog-ref_fieldname = 'KUNNR'.

APPEND s_fieldcatalog TO lt_fieldcatalog.

CLEAR s_fieldcatalog.

ENDFORM.

----


  • FORM GET_FIELDCAT2

*

----


  • Get the field catalog for the second block

*

----


FORM get_fieldcat2 CHANGING lt_fieldcatalog TYPE

slis_t_fieldcat_alv.

DATA: s_fieldcatalog TYPE slis_fieldcat_alv.

  • Order number

s_fieldcatalog-col_pos = '1'.

s_fieldcatalog-fieldname = 'VBELN'.

s_fieldcatalog-tabname = 'T_VBAP'.

s_fieldcatalog-ref_tabname = 'VBAP'.

s_fieldcatalog-ref_fieldname = 'VBELN'.

APPEND s_fieldcatalog TO lt_fieldcatalog.

CLEAR s_fieldcatalog.

  • Material number

s_fieldcatalog-col_pos = '2'.

s_fieldcatalog-fieldname = 'MATNR'.

s_fieldcatalog-tabname = 'T_VBAP'.

s_fieldcatalog-ref_tabname = 'VBAP'.

s_fieldcatalog-ref_fieldname = 'MATNR'.

APPEND s_fieldcatalog TO lt_fieldcatalog.

CLEAR s_fieldcatalog.

  • Net price

s_fieldcatalog-col_pos = '3'.

s_fieldcatalog-fieldname = 'NETPR'.

s_fieldcatalog-tabname = 'T_VBAP'.

s_fieldcatalog-ref_tabname = 'VBAP'.

s_fieldcatalog-ref_fieldname = 'NETPR'.

s_fieldcatalog-cfieldname = 'WAERK'.

s_fieldcatalog-ctabname = 'T_VBAP'.

APPEND s_fieldcatalog TO lt_fieldcatalog.

CLEAR s_fieldcatalog.

  • Currency.

s_fieldcatalog-col_pos = '4'.

s_fieldcatalog-fieldname = 'WAERK'.

s_fieldcatalog-tabname = 'T_VBAP'.

s_fieldcatalog-ref_tabname = 'VBAP'.

s_fieldcatalog-ref_fieldname = 'WAERK'.

APPEND s_fieldcatalog TO lt_fieldcatalog.

CLEAR s_fieldcatalog.

  • Quantity

s_fieldcatalog-col_pos = '5'.

s_fieldcatalog-fieldname = 'KWMENG'.

s_fieldcatalog-tabname = 'T_VBAP'.

s_fieldcatalog-ref_tabname = 'VBAP'.

s_fieldcatalog-ref_fieldname = 'KWMENG'.

s_fieldcatalog-qfieldname = 'MEINS'.

s_fieldcatalog-qtabname = 'T_VBAP'.

APPEND s_fieldcatalog TO lt_fieldcatalog.

CLEAR s_fieldcatalog.

  • UOM

s_fieldcatalog-col_pos = '6'.

s_fieldcatalog-fieldname = 'MEINS'.

s_fieldcatalog-tabname = 'T_VBAP'.

s_fieldcatalog-ref_tabname = 'VBAP'.

s_fieldcatalog-ref_fieldname = 'MEINS'.

APPEND s_fieldcatalog TO lt_fieldcatalog.

CLEAR s_fieldcatalog.

ENDFORM.

Plz reward points if answer is useful.....

Regards,

Mandeep.

Read only

Former Member
0 Likes
567

Hi,

see this simple example for block list display

REPORT ZBHALV_BLOCK_LIST.

TABLES:LFA1,EKKO.

SELECT-OPTIONS:LIFNR FOR LFA1-LIFNR.

DATA:BEGIN OF ITAB OCCURS 0,

LIFNR LIKE LFA1-LIFNR,

NAME1 LIKE LFA1-NAME1,

LAND1 LIKE LFA1-LAND1,

ORT01 LIKE LFA1-ORT01,

REGIO LIKE LFA1-REGIO,

END OF ITAB.

DATA:BEGIN OF JTAB OCCURS 0,

LIFNR LIKE EKKO-LIFNR,

EBELN LIKE EKKO-EBELN,

BUKRS LIKE EKKO-BUKRS,

BSTYP LIKE EKKO-BSTYP,

EKORG LIKE EKKO-EKORG,

BSART LIKE EKKO-BSART,

END OF JTAB.

SELECT * FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE LIFNR

IN LIFNR.

SELECT * FROM EKKO INTO CORRESPONDING FIELDS OF TABLE JTAB WHERE LIFNR

IN LIFNR.

TYPE-POOLS:SLIS.

DATA:LAYOUT TYPE slis_layout_alv.

DATA:EVE TYPE slis_t_event WITH HEADER LINE.

DATA:EVE1 TYPE slis_t_event WITH HEADER LINE.

DATA:HEAD TYPE slis_t_listheader WITH HEADER LINE.

DATA:FCAT TYPE slis_t_fieldcat_alv.

DATA:FCAT1 TYPE slis_t_fieldcat_alv.

LAYOUT-ZEBRA = 'X'.

LAYOUT-colwidth_optimize = 'X'.

LAYOUT-WINDOW_TITLEBAR = 'VENDOR DETAILS SCREEN'.

EVE1-NAME = 'TOP_OF_PAGE'.

EVE1-FORM = 'TOP_OF_PAGE1'.

APPEND EVE1.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = EVE[]

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 TABLE EVE WITH KEY NAME = 'TOP_OF_PAGE'.

EVE-FORM = 'TOP_OF_PAGE'.

MODIFY EVE TRANSPORTING FORM WHERE NAME = 'TOP_OF_PAGE'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • IT_EXCLUDING =

.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = 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.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = LAYOUT

IT_FIELDCAT = FCAT

I_TABNAME = 'ITAB'

IT_EVENTS = EVE[]

  • IT_SORT =

  • I_TEXT = ' '

TABLES

T_OUTTAB = ITAB

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 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.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'JTAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = FCAT1

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

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = LAYOUT

IT_FIELDCAT = FCAT1

I_TABNAME = 'JTAB'

IT_EVENTS = EVE1[]

  • IT_SORT =

  • I_TEXT = ' '

TABLES

T_OUTTAB = JTAB

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 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.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

  • EXPORTING

  • I_INTERFACE_CHECK = ' '

  • IS_PRINT =

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

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

REFRESH HEAD.

HEAD-TYP = 'H'.

HEAD-INFO = 'VENDORS DETAILS'.

APPEND HEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEAD[]

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM.

FORM TOP_OF_PAGE1.

REFRESH HEAD.

HEAD-TYP = 'H'.

HEAD-INFO = 'PURCHASE DOCCUMENTS DETAILS'.

APPEND HEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEAD[]

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM.

rgds,

bharat.