Application Development 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: 

REGARDING ALV BLOCK LIST AND HIERARCHICAL LIST

Former Member
0 Kudos

Hi.

I want sample code on ALV block list and Hierarchical list.

Regards

Sandeep.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

types:

block----

-


displays a blocked list in one report countinue.

hierarchie------its shows hieararchie

for reference pls visit HIERARCHIES EXP.

*&----


*

*& Report Z50818_ALV_HIERARCHIAL_FINAL

*&

*&----


*

REPORT Z50818_ALV_HIERARCHIAL_FINAL MESSAGE-ID ZFAR.

  • ALV

TYPE-POOLS: SLIS.

*DB tables

TABLES: VBAP,VBAK.

DATA:GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.

DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

GS_LAYOUT TYPE SLIS_LAYOUT_ALV,

GS_KEYINFO TYPE SLIS_KEYINFO_ALV,

GT_EVENTS TYPE SLIS_T_EVENT,

G_REPID TYPE SY-REPID,

I_VBELN LIKE VBAP-VBELN,

I_VBELN1 LIKE VBAK-VBELN.

DATA: BEGIN OF GT_VBAK OCCURS 0.

INCLUDE STRUCTURE ZVBAK_STRUCTURE1.

DATA: BOX,

*WERT(4) TYPE P,

LIGHTS,

END OF GT_VBAK.

DATA: BEGIN OF GT_VBAP OCCURS 0.

INCLUDE STRUCTURE ZVBAP_STRUCTURE.

DATA: BOX,

LIGHTS,

END OF GT_VBAP.

*LIST HAEADER

DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

SELECT-OPTIONS S_VBELN FOR VBAK-VBELN.

SELECTION-SCREEN SKIP 1.

  • Parameters

PARAMETERS: P_MAXROW TYPE I DEFAULT 50.

SELECTION-SCREEN SKIP 1.

  • Variante

SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE TEXT-001.

PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT.

SELECTION-SCREEN END OF BLOCK 0.

  • Layout

SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-002.

PARAMETERS:

P_ZEBRA AS CHECKBOX DEFAULT ' ',

P_NOCOLH AS CHECKBOX DEFAULT ' ',

P_COLOPT AS CHECKBOX DEFAULT ' ',

P_KEYHOT AS CHECKBOX DEFAULT ' ',

P_NOINPT AS CHECKBOX DEFAULT ' '.

SELECTION-SCREEN END OF BLOCK A.

*LIGHTS OF RADIO BUTTONS

SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE TEXT-003.

PARAMETERS:

P_LIGHTN RADIOBUTTON GROUP LIG ,

P_LIGHTH RADIOBUTTON GROUP LIG ,

P_LIGHTI RADIOBUTTON GROUP LIG ,

P_LIGHTC AS CHECKBOX DEFAULT ' '.

SELECTION-SCREEN END OF BLOCK B.

*TOTALS

SELECTION-SCREEN BEGIN OF BLOCK C WITH FRAME TITLE TEXT-004.

PARAMETERS:

P_TOTONL AS CHECKBOX DEFAULT ' ',

P_TOTEXT(60).

  • P_STTEXT(60).

SELECTION-SCREEN END OF BLOCK C.

*CHECK BOXES

SELECTION-SCREEN BEGIN OF BLOCK D WITH FRAME TITLE TEXT-005.

PARAMETERS:

CHCKBOXN RADIOBUTTON GROUP BOX ,

CHCKBOXH RADIOBUTTON GROUP BOX ,

CHCKBOXI RADIOBUTTON GROUP BOX ,

  • P_GROUPB AS CHECKBOX DEFAULT ' ',

P_DETPOP AS CHECKBOX DEFAULT 'X'.

  • P_GROUPS AS CHECKBOX DEFAULT ' '.

SELECTION-SCREEN END OF BLOCK D.

DATA: G_BOXNAM TYPE SLIS_FIELDNAME VALUE 'BOX',

P_LIGNAM TYPE SLIS_FIELDNAME VALUE 'LIGHTS',

G_SAVE(1) TYPE C,

G_TABNAME_HEADER TYPE SLIS_TABNAME,

G_TABNAME_ITEM TYPE SLIS_TABNAME,

G_DEFAULT(1) TYPE C,

G_EXIT(1) TYPE C,

GX_VARIANT LIKE DISVARIANT,

G_VARIANT LIKE DISVARIANT.

DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

INITIALIZATION.

G_REPID = SY-REPID.

G_TABNAME_HEADER = 'GT_VBAK'.

G_TABNAME_ITEM = 'GT_VBAP'.

  • define keyinfo

CLEAR GS_KEYINFO.

GS_KEYINFO-HEADER01 = 'VBELN'.

GS_KEYINFO-ITEM01 = 'VBELN'.

GS_KEYINFO-HEADER02 = SPACE.

PERFORM FIELDCAT_INIT USING GT_FIELDCAT[].

PERFORM EVENTTAB_BUILD USING GT_EVENTS[].

PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].

PERFORM VARIANT_INIT.

GX_VARIANT = G_VARIANT.

  • Get default variant

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'

EXPORTING

I_SAVE = 'A'

CHANGING

CS_VARIANT = GX_VARIANT

EXCEPTIONS

NOT_FOUND = 2.

IF SY-SUBRC = 0.

P_VARI = GX_VARIANT-VARIANT.

ENDIF.

  • Process on value request

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.

PERFORM F4_FOR_VARIANT.

  • PAI

AT SELECTION-SCREEN.

PERFORM PAI_OF_SELECTION_SCREEN.

START-OF-SELECTION.

PERFORM SELECTION.

END-OF-SELECTION.

PERFORM LAYOUT_BUILD USING GS_LAYOUT. "wg. Parameters

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

IS_LAYOUT = GS_LAYOUT

IT_FIELDCAT = GT_FIELDCAT

  • IT_SPECIAL_GROUPS = GT_SP_GROUP[]

I_SAVE = 'A'

IS_VARIANT = G_VARIANT

IT_EVENTS = GT_EVENTS[]

  • IT_EVENT_EXIT =

I_TABNAME_HEADER = G_TABNAME_HEADER

I_TABNAME_ITEM = G_TABNAME_ITEM

IS_KEYINFO = GS_KEYINFO

TABLES

T_OUTTAB_HEADER = GT_VBAK

T_OUTTAB_ITEM = GT_VBAP.

*&----


*

*& Form FIELDCAT_INIT

*&----


*

FORM FIELDCAT_INIT USING P_GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

  • CLEAR LS_FIELDCAT.

  • LS_FIELDCAT-COL_POS = 1.

  • LS_FIELDCAT-FIELDNAME = 'VBELN'.

  • LS_FIELDCAT-TABNAME = G_TABNAME_HEADER.

  • LS_FIELDCAT-REF_TABNAME = 'VBAK'.

  • LS_FIELDCAT-SELTEXT_L = 'SALES DOCUMENT'.

  • LS_FIELDCAT-NO_SUM = 'X'.

  • APPEND LS_FIELDCAT TO GT_FIELDCAT.

  • CLEAR LS_FIELDCAT.

  • LS_FIELDCAT-COL_POS = 2.

  • LS_FIELDCAT-FIELDNAME = 'POSNR'.

  • LS_FIELDCAT-TABNAME = G_TABNAME_HEADER.

  • LS_FIELDCAT-REF_TABNAME = 'VBAK'.

  • LS_FIELDCAT-SELTEXT_L = 'SALES DOCUMENT ITEM'.

  • LS_FIELDCAT-NO_SUM = 'X'.

  • APPEND LS_FIELDCAT TO GT_FIELDCAT.

  • CLEAR LS_FIELDCAT.

  • LS_FIELDCAT-COL_POS = 3.

  • LS_FIELDCAT-FIELDNAME = 'MATNR'.

  • LS_FIELDCAT-TABNAME = G_TABNAME_HEADER.

  • LS_FIELDCAT-REF_TABNAME = 'VBAK'.

  • LS_FIELDCAT-SELTEXT_L = 'MATERIAL NUMBER'.

  • APPEND LS_FIELDCAT TO GT_FIELDCAT.

  • CLEAR LS_FIELDCAT.

  • LS_FIELDCAT-COL_POS = 4.

  • LS_FIELDCAT-FIELDNAME = 'ABDAT'.

  • LS_FIELDCAT-TABNAME = G_TABNAME_HEADER.

  • LS_FIELDCAT-REF_TABNAME = 'VBAK'.

  • LS_FIELDCAT-SELTEXT_L = 'DATE'.

  • APPEND LS_FIELDCAT TO GT_FIELDCAT.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = G_REPID

I_INTERNAL_TABNAME = G_TABNAME_HEADER

I_STRUCTURE_NAME = 'ZVBAK_STRUCTURE1'

  • I_CLIENT_NEVER_DISPLAY = 'X'

CHANGING

CT_FIELDCAT = GT_FIELDCAT[].

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = G_REPID

I_INTERNAL_TABNAME = G_TABNAME_ITEM

I_STRUCTURE_NAME = 'ZVBAP_STRUCTURE'

  • I_CLIENT_NEVER_DISPLAY = 'X'

CHANGING

CT_FIELDCAT = GT_FIELDCAT[].

ENDFORM. " FIELDCAT_INIT

*&----


*

*& Form EVENTTAB_BUILD

*&----


*

FORM EVENTTAB_BUILD USING P_GT_EVENTS TYPE SLIS_T_EVENT.

DATA: LS_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = P_GT_EVENTS.

READ TABLE GT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

INTO LS_EVENT.

IF SY-SUBRC = 0.

MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.

APPEND LS_EVENT TO P_GT_EVENTS.

ENDIF.

ENDFORM. " EVENTTAB_BUILD

*&----


*

*& Form COMMENT_BUILD

*&----


*

FORM COMMENT_BUILD USING P_GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

DATA: LS_LINE TYPE SLIS_LISTHEADER.

  • Listenüberschrift: Typ H

CLEAR LS_LINE.

LS_LINE-TYP = 'H'.

LS_LINE-INFO = TEXT-006.

APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.

  • Kopfinfo: Typ S

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = TEXT-007.

LS_LINE-INFO = TEXT-008.

APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.

LS_LINE-KEY = TEXT-051.

APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.

  • Aktionsinfo: Typ A

CLEAR LS_LINE.

LS_LINE-TYP = 'A'.

LS_LINE-INFO = TEXT-009.

APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.

ENDFORM. " COMMENT_BUILD

*&----


*

*& Form TOP_OF_PAGE

*&----


*

FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.

ENDFORM. "TOP_OF_PAGE

*&----


*

*& Form F4_FOR_VARIANT

*&----


*

FORM F4_FOR_VARIANT.

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

EXPORTING

IS_VARIANT = G_VARIANT

I_SAVE = 'A'

I_TABNAME_HEADER = G_TABNAME_HEADER

I_TABNAME_ITEM = G_TABNAME_ITEM

  • it_default_fieldcat =

IMPORTING

E_EXIT = G_EXIT

ES_VARIANT = GX_VARIANT

EXCEPTIONS

NOT_FOUND = 2.

IF SY-SUBRC = 2.

MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ELSE.

IF G_EXIT = SPACE.

P_VARI = GX_VARIANT-VARIANT.

ENDIF.

ENDIF.

ENDFORM. " F4_FOR_VARIANT

*&----


*

*& Form PAI_OF_SELECTION_SCREEN

*&----


*

FORM PAI_OF_SELECTION_SCREEN.

IF NOT P_VARI IS INITIAL.

MOVE G_VARIANT TO GX_VARIANT.

MOVE P_VARI TO GX_VARIANT-VARIANT.

CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'

EXPORTING

I_SAVE = 'A'

CHANGING

CS_VARIANT = GX_VARIANT.

G_VARIANT = GX_VARIANT.

ELSE.

PERFORM VARIANT_INIT.

ENDIF.

ENDFORM. " PAI_OF_SELECTION_SCREEN

*&----


*

*& Form VARIANT_INIT

*&----


*

FORM VARIANT_INIT.

CLEAR G_VARIANT.

G_VARIANT-REPORT = SY-REPID.

ENDFORM. " VARIANT_INIT

*&----


*

*& Form SELECTION

*&----


*

FORM SELECTION.

SELECT vbeln

ernam

vbtyp

spart FROM VBAK

INTO CORRESPONDING FIELDS OF TABLE GT_VBAK

WHERE VBELN IN S_VBELN.

SELECT vbeln

posnr

matnr

abdat

FROM VBAP

INTO CORRESPONDING FIELDS OF TABLE GT_VBAP

WHERE VBELN IN S_VBELN.

LOOP AT GT_VBAK.

READ TABLE GT_VBAP WITH

KEY VBELN = GT_VBAK-VBELN.

IF SY-SUBRC NE 0.

DELETE GT_VBAP.

ENDIF.

ENDLOOP.

ENDFORM. " SELECTION

*&----


*

*& Form LAYOUT_BUILD

*&----


*

FORM LAYOUT_BUILD USING GS_LAYOUT TYPE SLIS_LAYOUT_ALV.

IF P_LIGHTI = 'X'.

GS_LAYOUT-LIGHTS_FIELDNAME = P_LIGNAM.

GS_LAYOUT-LIGHTS_TABNAME = G_TABNAME_ITEM.

GS_LAYOUT-LIGHTS_CONDENSE = P_LIGHTC.

ENDIF.

IF P_LIGHTH = 'X'.

GS_LAYOUT-LIGHTS_FIELDNAME = P_LIGNAM.

GS_LAYOUT-LIGHTS_TABNAME = G_TABNAME_HEADER.

GS_LAYOUT-LIGHTS_CONDENSE = P_LIGHTC.

IF CHCKBOXN = 'X'.

GS_LAYOUT-BOX_FIELDNAME = SPACE.

GS_LAYOUT-BOX_TABNAME = SPACE.

ENDIF.

IF CHCKBOXH = 'X'.

GS_LAYOUT-BOX_FIELDNAME = G_BOXNAM.

GS_LAYOUT-BOX_TABNAME = G_TABNAME_HEADER.

ENDIF.

IF CHCKBOXI = 'X'.

GS_LAYOUT-BOX_FIELDNAME = G_BOXNAM.

GS_LAYOUT-BOX_TABNAME = G_TABNAME_ITEM.

ENDIF.

GS_LAYOUT-HEADER_TEXT = TEXT-011.

GS_LAYOUT-ITEM_TEXT = TEXT-012.

GS_LAYOUT-DEFAULT_ITEM = 'X'.

GS_LAYOUT-ZEBRA = P_ZEBRA.

GS_LAYOUT-COLWIDTH_OPTIMIZE = P_COLOPT.

GS_LAYOUT-NO_INPUT = P_NOINPT.

GS_LAYOUT-NO_COLHEAD = P_NOCOLH.

GS_LAYOUT-TOTALS_TEXT = P_TOTEXT.

  • GS_LAYOUT-SUBTOTALS_TEXT = P_STTEXT.

GS_LAYOUT-TOTALS_ONLY = P_TOTONL.

GS_LAYOUT-KEY_HOTSPOT = P_KEYHOT.

GS_LAYOUT-DETAIL_POPUP = P_DETPOP.

  • GS_LAYOUT-GROUP_CHANGE_EDIT = P_GROUPS.

GS_LAYOUT-GROUP_BUTTONS = SPACE.

ENDIF.

ENDFORM. " LAYOUT_BUILD

  • Call ABAP/4 List Viewer

JUST COPY CUT AND PASTE IN SE38 FOR BETTER UNDERSTANDING

rewards point if usefull. dont forgot....

3 REPLIES 3

Former Member
0 Kudos

Example for Hierarchical ALV:

http://www.geocities.com/mpioud/Z_ALV_HIERSEQ_LIST.html

Blocked ALV list allows you do have mulitple ALV lists in the screen output, one after the other. Check the sample here.

http://www.sap-basis-abap.com/abap/sample-program-on-block-lists.htm

If you want to display more than one IT in the ALV, the u can go for BLOCK ALV.

Here is the pusedo code on how to do it.

Lets say you have three internal tables, ITAB1, ITAB2 & ITAB3.

Now prepare field catlog for all the three internal tables.

Then,

call function 'REUSE_ALV_BLOCK_LIST_INIT'

exporting

i_callback_program = sy-repid.

Now pass the First internal table like this

call function 'REUSE_ALV_BLOCK_LIST_APPEND'

exporting

it_fieldcat = lt_fieldcat1

i_tabname = 'ITAB1'

tables

t_outtab = itab1

exceptions

program_error = 1

maximum_of_appends_reached = 2

others = 3.

Now ther second

call function 'REUSE_ALV_BLOCK_LIST_APPEND'

exporting

it_fieldcat = lt_fieldcat2

i_tabname = 'ITAB2'

tables

t_outtab = itab2

exceptions

program_error = 1

maximum_of_appends_reached = 2

others = 3.

Now the Third.

call function 'REUSE_ALV_BLOCK_LIST_APPEND'

exporting

it_fieldcat = lt_fieldcat3

i_tabname = 'ITAB3'

tables

t_outtab = itab3

exceptions

program_error = 1

maximum_of_appends_reached = 2

others = 3.

Now call the FM

call function 'REUSE_ALV_BLOCK_LIST_DISPLAY'.

You will get the report.

reward points if usefull.

Former Member
0 Kudos

types:

block----

-


displays a blocked list in one report countinue.

hierarchie------its shows hieararchie

for reference pls visit HIERARCHIES EXP.

*&----


*

*& Report Z50818_ALV_HIERARCHIAL_FINAL

*&

*&----


*

REPORT Z50818_ALV_HIERARCHIAL_FINAL MESSAGE-ID ZFAR.

  • ALV

TYPE-POOLS: SLIS.

*DB tables

TABLES: VBAP,VBAK.

DATA:GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.

DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

GS_LAYOUT TYPE SLIS_LAYOUT_ALV,

GS_KEYINFO TYPE SLIS_KEYINFO_ALV,

GT_EVENTS TYPE SLIS_T_EVENT,

G_REPID TYPE SY-REPID,

I_VBELN LIKE VBAP-VBELN,

I_VBELN1 LIKE VBAK-VBELN.

DATA: BEGIN OF GT_VBAK OCCURS 0.

INCLUDE STRUCTURE ZVBAK_STRUCTURE1.

DATA: BOX,

*WERT(4) TYPE P,

LIGHTS,

END OF GT_VBAK.

DATA: BEGIN OF GT_VBAP OCCURS 0.

INCLUDE STRUCTURE ZVBAP_STRUCTURE.

DATA: BOX,

LIGHTS,

END OF GT_VBAP.

*LIST HAEADER

DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

SELECT-OPTIONS S_VBELN FOR VBAK-VBELN.

SELECTION-SCREEN SKIP 1.

  • Parameters

PARAMETERS: P_MAXROW TYPE I DEFAULT 50.

SELECTION-SCREEN SKIP 1.

  • Variante

SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE TEXT-001.

PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT.

SELECTION-SCREEN END OF BLOCK 0.

  • Layout

SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-002.

PARAMETERS:

P_ZEBRA AS CHECKBOX DEFAULT ' ',

P_NOCOLH AS CHECKBOX DEFAULT ' ',

P_COLOPT AS CHECKBOX DEFAULT ' ',

P_KEYHOT AS CHECKBOX DEFAULT ' ',

P_NOINPT AS CHECKBOX DEFAULT ' '.

SELECTION-SCREEN END OF BLOCK A.

*LIGHTS OF RADIO BUTTONS

SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE TEXT-003.

PARAMETERS:

P_LIGHTN RADIOBUTTON GROUP LIG ,

P_LIGHTH RADIOBUTTON GROUP LIG ,

P_LIGHTI RADIOBUTTON GROUP LIG ,

P_LIGHTC AS CHECKBOX DEFAULT ' '.

SELECTION-SCREEN END OF BLOCK B.

*TOTALS

SELECTION-SCREEN BEGIN OF BLOCK C WITH FRAME TITLE TEXT-004.

PARAMETERS:

P_TOTONL AS CHECKBOX DEFAULT ' ',

P_TOTEXT(60).

  • P_STTEXT(60).

SELECTION-SCREEN END OF BLOCK C.

*CHECK BOXES

SELECTION-SCREEN BEGIN OF BLOCK D WITH FRAME TITLE TEXT-005.

PARAMETERS:

CHCKBOXN RADIOBUTTON GROUP BOX ,

CHCKBOXH RADIOBUTTON GROUP BOX ,

CHCKBOXI RADIOBUTTON GROUP BOX ,

  • P_GROUPB AS CHECKBOX DEFAULT ' ',

P_DETPOP AS CHECKBOX DEFAULT 'X'.

  • P_GROUPS AS CHECKBOX DEFAULT ' '.

SELECTION-SCREEN END OF BLOCK D.

DATA: G_BOXNAM TYPE SLIS_FIELDNAME VALUE 'BOX',

P_LIGNAM TYPE SLIS_FIELDNAME VALUE 'LIGHTS',

G_SAVE(1) TYPE C,

G_TABNAME_HEADER TYPE SLIS_TABNAME,

G_TABNAME_ITEM TYPE SLIS_TABNAME,

G_DEFAULT(1) TYPE C,

G_EXIT(1) TYPE C,

GX_VARIANT LIKE DISVARIANT,

G_VARIANT LIKE DISVARIANT.

DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

INITIALIZATION.

G_REPID = SY-REPID.

G_TABNAME_HEADER = 'GT_VBAK'.

G_TABNAME_ITEM = 'GT_VBAP'.

  • define keyinfo

CLEAR GS_KEYINFO.

GS_KEYINFO-HEADER01 = 'VBELN'.

GS_KEYINFO-ITEM01 = 'VBELN'.

GS_KEYINFO-HEADER02 = SPACE.

PERFORM FIELDCAT_INIT USING GT_FIELDCAT[].

PERFORM EVENTTAB_BUILD USING GT_EVENTS[].

PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].

PERFORM VARIANT_INIT.

GX_VARIANT = G_VARIANT.

  • Get default variant

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'

EXPORTING

I_SAVE = 'A'

CHANGING

CS_VARIANT = GX_VARIANT

EXCEPTIONS

NOT_FOUND = 2.

IF SY-SUBRC = 0.

P_VARI = GX_VARIANT-VARIANT.

ENDIF.

  • Process on value request

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.

PERFORM F4_FOR_VARIANT.

  • PAI

AT SELECTION-SCREEN.

PERFORM PAI_OF_SELECTION_SCREEN.

START-OF-SELECTION.

PERFORM SELECTION.

END-OF-SELECTION.

PERFORM LAYOUT_BUILD USING GS_LAYOUT. "wg. Parameters

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

IS_LAYOUT = GS_LAYOUT

IT_FIELDCAT = GT_FIELDCAT

  • IT_SPECIAL_GROUPS = GT_SP_GROUP[]

I_SAVE = 'A'

IS_VARIANT = G_VARIANT

IT_EVENTS = GT_EVENTS[]

  • IT_EVENT_EXIT =

I_TABNAME_HEADER = G_TABNAME_HEADER

I_TABNAME_ITEM = G_TABNAME_ITEM

IS_KEYINFO = GS_KEYINFO

TABLES

T_OUTTAB_HEADER = GT_VBAK

T_OUTTAB_ITEM = GT_VBAP.

*&----


*

*& Form FIELDCAT_INIT

*&----


*

FORM FIELDCAT_INIT USING P_GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

  • CLEAR LS_FIELDCAT.

  • LS_FIELDCAT-COL_POS = 1.

  • LS_FIELDCAT-FIELDNAME = 'VBELN'.

  • LS_FIELDCAT-TABNAME = G_TABNAME_HEADER.

  • LS_FIELDCAT-REF_TABNAME = 'VBAK'.

  • LS_FIELDCAT-SELTEXT_L = 'SALES DOCUMENT'.

  • LS_FIELDCAT-NO_SUM = 'X'.

  • APPEND LS_FIELDCAT TO GT_FIELDCAT.

  • CLEAR LS_FIELDCAT.

  • LS_FIELDCAT-COL_POS = 2.

  • LS_FIELDCAT-FIELDNAME = 'POSNR'.

  • LS_FIELDCAT-TABNAME = G_TABNAME_HEADER.

  • LS_FIELDCAT-REF_TABNAME = 'VBAK'.

  • LS_FIELDCAT-SELTEXT_L = 'SALES DOCUMENT ITEM'.

  • LS_FIELDCAT-NO_SUM = 'X'.

  • APPEND LS_FIELDCAT TO GT_FIELDCAT.

  • CLEAR LS_FIELDCAT.

  • LS_FIELDCAT-COL_POS = 3.

  • LS_FIELDCAT-FIELDNAME = 'MATNR'.

  • LS_FIELDCAT-TABNAME = G_TABNAME_HEADER.

  • LS_FIELDCAT-REF_TABNAME = 'VBAK'.

  • LS_FIELDCAT-SELTEXT_L = 'MATERIAL NUMBER'.

  • APPEND LS_FIELDCAT TO GT_FIELDCAT.

  • CLEAR LS_FIELDCAT.

  • LS_FIELDCAT-COL_POS = 4.

  • LS_FIELDCAT-FIELDNAME = 'ABDAT'.

  • LS_FIELDCAT-TABNAME = G_TABNAME_HEADER.

  • LS_FIELDCAT-REF_TABNAME = 'VBAK'.

  • LS_FIELDCAT-SELTEXT_L = 'DATE'.

  • APPEND LS_FIELDCAT TO GT_FIELDCAT.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = G_REPID

I_INTERNAL_TABNAME = G_TABNAME_HEADER

I_STRUCTURE_NAME = 'ZVBAK_STRUCTURE1'

  • I_CLIENT_NEVER_DISPLAY = 'X'

CHANGING

CT_FIELDCAT = GT_FIELDCAT[].

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = G_REPID

I_INTERNAL_TABNAME = G_TABNAME_ITEM

I_STRUCTURE_NAME = 'ZVBAP_STRUCTURE'

  • I_CLIENT_NEVER_DISPLAY = 'X'

CHANGING

CT_FIELDCAT = GT_FIELDCAT[].

ENDFORM. " FIELDCAT_INIT

*&----


*

*& Form EVENTTAB_BUILD

*&----


*

FORM EVENTTAB_BUILD USING P_GT_EVENTS TYPE SLIS_T_EVENT.

DATA: LS_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = P_GT_EVENTS.

READ TABLE GT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

INTO LS_EVENT.

IF SY-SUBRC = 0.

MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.

APPEND LS_EVENT TO P_GT_EVENTS.

ENDIF.

ENDFORM. " EVENTTAB_BUILD

*&----


*

*& Form COMMENT_BUILD

*&----


*

FORM COMMENT_BUILD USING P_GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

DATA: LS_LINE TYPE SLIS_LISTHEADER.

  • Listenüberschrift: Typ H

CLEAR LS_LINE.

LS_LINE-TYP = 'H'.

LS_LINE-INFO = TEXT-006.

APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.

  • Kopfinfo: Typ S

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = TEXT-007.

LS_LINE-INFO = TEXT-008.

APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.

LS_LINE-KEY = TEXT-051.

APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.

  • Aktionsinfo: Typ A

CLEAR LS_LINE.

LS_LINE-TYP = 'A'.

LS_LINE-INFO = TEXT-009.

APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.

ENDFORM. " COMMENT_BUILD

*&----


*

*& Form TOP_OF_PAGE

*&----


*

FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.

ENDFORM. "TOP_OF_PAGE

*&----


*

*& Form F4_FOR_VARIANT

*&----


*

FORM F4_FOR_VARIANT.

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

EXPORTING

IS_VARIANT = G_VARIANT

I_SAVE = 'A'

I_TABNAME_HEADER = G_TABNAME_HEADER

I_TABNAME_ITEM = G_TABNAME_ITEM

  • it_default_fieldcat =

IMPORTING

E_EXIT = G_EXIT

ES_VARIANT = GX_VARIANT

EXCEPTIONS

NOT_FOUND = 2.

IF SY-SUBRC = 2.

MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ELSE.

IF G_EXIT = SPACE.

P_VARI = GX_VARIANT-VARIANT.

ENDIF.

ENDIF.

ENDFORM. " F4_FOR_VARIANT

*&----


*

*& Form PAI_OF_SELECTION_SCREEN

*&----


*

FORM PAI_OF_SELECTION_SCREEN.

IF NOT P_VARI IS INITIAL.

MOVE G_VARIANT TO GX_VARIANT.

MOVE P_VARI TO GX_VARIANT-VARIANT.

CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'

EXPORTING

I_SAVE = 'A'

CHANGING

CS_VARIANT = GX_VARIANT.

G_VARIANT = GX_VARIANT.

ELSE.

PERFORM VARIANT_INIT.

ENDIF.

ENDFORM. " PAI_OF_SELECTION_SCREEN

*&----


*

*& Form VARIANT_INIT

*&----


*

FORM VARIANT_INIT.

CLEAR G_VARIANT.

G_VARIANT-REPORT = SY-REPID.

ENDFORM. " VARIANT_INIT

*&----


*

*& Form SELECTION

*&----


*

FORM SELECTION.

SELECT vbeln

ernam

vbtyp

spart FROM VBAK

INTO CORRESPONDING FIELDS OF TABLE GT_VBAK

WHERE VBELN IN S_VBELN.

SELECT vbeln

posnr

matnr

abdat

FROM VBAP

INTO CORRESPONDING FIELDS OF TABLE GT_VBAP

WHERE VBELN IN S_VBELN.

LOOP AT GT_VBAK.

READ TABLE GT_VBAP WITH

KEY VBELN = GT_VBAK-VBELN.

IF SY-SUBRC NE 0.

DELETE GT_VBAP.

ENDIF.

ENDLOOP.

ENDFORM. " SELECTION

*&----


*

*& Form LAYOUT_BUILD

*&----


*

FORM LAYOUT_BUILD USING GS_LAYOUT TYPE SLIS_LAYOUT_ALV.

IF P_LIGHTI = 'X'.

GS_LAYOUT-LIGHTS_FIELDNAME = P_LIGNAM.

GS_LAYOUT-LIGHTS_TABNAME = G_TABNAME_ITEM.

GS_LAYOUT-LIGHTS_CONDENSE = P_LIGHTC.

ENDIF.

IF P_LIGHTH = 'X'.

GS_LAYOUT-LIGHTS_FIELDNAME = P_LIGNAM.

GS_LAYOUT-LIGHTS_TABNAME = G_TABNAME_HEADER.

GS_LAYOUT-LIGHTS_CONDENSE = P_LIGHTC.

IF CHCKBOXN = 'X'.

GS_LAYOUT-BOX_FIELDNAME = SPACE.

GS_LAYOUT-BOX_TABNAME = SPACE.

ENDIF.

IF CHCKBOXH = 'X'.

GS_LAYOUT-BOX_FIELDNAME = G_BOXNAM.

GS_LAYOUT-BOX_TABNAME = G_TABNAME_HEADER.

ENDIF.

IF CHCKBOXI = 'X'.

GS_LAYOUT-BOX_FIELDNAME = G_BOXNAM.

GS_LAYOUT-BOX_TABNAME = G_TABNAME_ITEM.

ENDIF.

GS_LAYOUT-HEADER_TEXT = TEXT-011.

GS_LAYOUT-ITEM_TEXT = TEXT-012.

GS_LAYOUT-DEFAULT_ITEM = 'X'.

GS_LAYOUT-ZEBRA = P_ZEBRA.

GS_LAYOUT-COLWIDTH_OPTIMIZE = P_COLOPT.

GS_LAYOUT-NO_INPUT = P_NOINPT.

GS_LAYOUT-NO_COLHEAD = P_NOCOLH.

GS_LAYOUT-TOTALS_TEXT = P_TOTEXT.

  • GS_LAYOUT-SUBTOTALS_TEXT = P_STTEXT.

GS_LAYOUT-TOTALS_ONLY = P_TOTONL.

GS_LAYOUT-KEY_HOTSPOT = P_KEYHOT.

GS_LAYOUT-DETAIL_POPUP = P_DETPOP.

  • GS_LAYOUT-GROUP_CHANGE_EDIT = P_GROUPS.

GS_LAYOUT-GROUP_BUTTONS = SPACE.

ENDIF.

ENDFORM. " LAYOUT_BUILD

  • Call ABAP/4 List Viewer

JUST COPY CUT AND PASTE IN SE38 FOR BETTER UNDERSTANDING

rewards point if usefull. dont forgot....

Former Member
0 Kudos

for blocked alv pls refer below...... hope this will use full for u reward points if usefull dont forgot

&----


*& Report Z50818_BLOCK_ALV_EXAMPLE1

*&

&----


*&

*&

&----


REPORT Z50818_BLOCK_ALV_EXAMPLE1.

----


  • Declarations for BLOCK ALV DISPLAY

----


*--type pools

TYPE-POOLS:slis.

DATA:x_layout TYPE slis_layout_alv,

t_field TYPE slis_t_fieldcat_alv,

*--field catalog

x_fldcat LIKE LINE OF t_field,

*--to hold all the events

t_events TYPE slis_t_event,

x_events TYPE slis_alv_event,

t_sort TYPE slis_t_sortinfo_alv,

x_sort LIKE LINE OF t_sort ,

*--Print Layout

x_print_layout TYPE slis_print_alv.

*----Macro to add field catalog.

*field "text "length "tech "COL_POS "DATATYPE "DDIC_OUTPUTLEN

DEFINE add_catalog.

clear x_fldcat.

x_fldcat-fieldname = &1.

x_fldcat-seltext_m = &2.

x_fldcat-outputlen = &3.

x_fldcat-tech = &4.

x_fldcat-col_pos = &5.

x_fldcat-no_zero = 'X'.

x_fldcat-ddictxt = 'M'.

x_fldcat-datatype = &6.

x_fldcat-ddic_outputlen = &7.

if &6 = 'N'.

x_fldcat-lzero = 'X'.

endif.

*--build field catalog

append x_fldcat to t_field.

END-OF-DEFINITION.

*----- data declerations.

data: v_repid like sy-repid.

data: begin of itab occurs 0,

matnr like mara-matnr,

ernam like mara-ernam,

meins like mara-meins,

end of itab.

data: begin of jtab occurs 0,

matnr like makt-matnr,

maktx like makt-maktx,

end of jtab.

select matnr ernam meins

up to 20 rows

from mara

into table itab.

select matnr maktx

up to 20 rows

from makt

into table jtab.

v_repid = sy-repid.

*DISPLAY alv

  • Initialize Block

call function 'REUSE_ALV_BLOCK_LIST_INIT'

exporting

i_callback_program = v_repid.

*Block 1:

*INITIALIZE

refresh t_field. clear t_field.

refresh t_events.

*field "text "length "tech "COL_POS "DATATYPE "DDIC_OUTPUTLEN

add_catalog:

'MATNR' 'Material' '18' '' '1' 'C' '18',

'ERNAM' 'Created By' '12' '' '2' 'C' '12',

'MEINS' 'Unit' '5' '' '3' 'C' '3'.

*--build table for events.

x_events-form = 'TOP_OF_LIST1'.

x_events-name = slis_ev_top_of_list.

append x_events to t_events.

call function 'REUSE_ALV_BLOCK_LIST_APPEND'

exporting

is_layout = x_layout

it_fieldcat = t_field

i_tabname = 'ITAB'

it_events = t_events

it_sort = t_sort

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.

*--BLOCK 2(SUMMARY REPORT)

*INITIALIZE

refresh t_field. clear t_field.

refresh t_events.

*field "text "length "tech "COL_POS "DATATYPE "DDIC_OUTPUTLEN

add_catalog:

'MATNR' 'Material' '20' '' '1' 'C' '18',

'MAKTX' 'Description' '40' '' '2' 'C' '40'.

*--build table for events.

x_events-form = 'TOP_OF_LIST2'.

x_events-name = slis_ev_top_of_list.

append x_events to t_events.

  • Append table block.

call function 'REUSE_ALV_BLOCK_LIST_APPEND'

exporting

is_layout = x_layout

it_fieldcat = t_field

i_tabname = 'JTAB'

it_events = t_events

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 FM TO DISPLAY THE BLOCK REPORT.

call function 'REUSE_ALV_BLOCK_LIST_DISPLAY'

  • exporting

  • is_print = x_print_layout

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

skip 1.

write: 10 'List 1',

/5 '----


'.

skip 1.

format reset.

endform.

form top_of_list2.

skip 1.

write: 10 'List 2',

/5 '----


'.

skip 1.

format reset.

endform.