‎2007 Jan 04 6:33 AM
Hi experts,
I would like to ask some sample programs that uses Reuse_ALV_Block_List_Append. Thanks in advance.
Regards,
Marc
‎2007 Jan 04 6:41 AM
Hi Mark,
Check this sample program .
&----
*& *
&----
*& *
*& *
&----
REPORT ZMULTIPLE_ALV .
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..
*----
start-of-selection.
*----
SELECT DATA
SELECT * FROM t001 into table itab up to 10 rows.
select * from t000 into table ptab up to 10 rows.
*----
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.
*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.
‎2007 Jan 04 6:37 AM
Hi Marc,
Check the links,
http://www.sap-basis-abap.com/abap/sample-program-on-block-lists.htm
Regards,
Hema.
Reward points if it is useful.
‎2007 Jan 04 6:41 AM
Hi Mark,
Check this sample program .
&----
*& *
&----
*& *
*& *
&----
REPORT ZMULTIPLE_ALV .
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..
*----
start-of-selection.
*----
SELECT DATA
SELECT * FROM t001 into table itab up to 10 rows.
select * from t000 into table ptab up to 10 rows.
*----
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.
*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.
‎2007 Jan 04 6:49 AM
check this
&----
*& Report ZSPDALVBLOCK *
*& *
&----
*& *
*& *
&----
REPORT ZSPDALVBLOCK .
TYPE-POOLS : SLIS.
TABLES : AFKO,AFPO.
TYPES : BEGIN OF SAFPO ,
AUFNR LIKE AFPO-AUFNR,
POSNR LIKE AFPO-POSNR,
PLNUM LIKE AFPO-PLNUM,
STRMP LIKE AFPO-STRMP,
MATNR LIKE AFPO-MATNR,
PSMNG LIKE AFPO-PSMNG,
MEINS LIKE AFPO-MEINS,
END OF SAFPO.
TYPES : BEGIN OF SAFKO,
AUFNR LIKE AFKO-AUFNR,
END OF SAFKO.
DATA : IAFKO TYPE TABLE OF SAFKO WITH HEADER LINE,
IAFPO TYPE TABLE OF SAFPO WITH HEADER LINE.
DATA : IFIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
WFIELDCAT1 TYPE SLIS_FIELDCAT_ALV,
ILAYOUT1 TYPE SLIS_LAYOUT_ALV,
IEVENT1 TYPE SLIS_T_EVENT,
WEVENT1 TYPE SLIS_ALV_EVENT,
IKEYINFO1 TYPE SLIS_KEYINFO_ALV.
DATA : IFIELDCAT2 TYPE SLIS_T_FIELDCAT_ALV,
WFIELDCAT2 TYPE SLIS_FIELDCAT_ALV,
ILAYOUT2 TYPE SLIS_LAYOUT_ALV,
IEVENT2 TYPE SLIS_T_EVENT,
WEVENT2 TYPE SLIS_ALV_EVENT.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_AUFNR FOR AFKO-AUFNR,
S_GLTRP FOR AFKO-GLTRP.
SELECTION-SCREEN END OF BLOCK B1.
START-OF-SELECTION.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID.
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IT_EXCLUDING =
.
PERFORM GET_DATA.
PERFORM BUILD_FIELDCAT.
PERFORM BUILD_LAYOUT.
PERFORM BUILD_EVENT.
PERFORM BUILD_KEYINFO.
PERFORM BUILD_FIELDCAT2.
PERFORM BUILD_LAYOUT2.
PERFORM BUILD_EVENT2.
PERFORM DISPLAY_BLOCK1.
PERFORM DISPLAY_BLOCK2.
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 GET_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DATA .
SELECT AUFNR FROM AFKO INTO CORRESPONDING FIELDS OF TABLE IAFKO
WHERE AUFNR IN S_AUFNR AND GLTRP IN S_GLTRP.
SELECT AUFNR POSNR PLNUM STRMP MATNR PSMNG MEINS FROM AFPO INTO CORRESPONDING FIELDS OF TABLE
IAFPO WHERE AUFNR IN S_AUFNR.
ENDFORM. " GET_DATA
&----
*& Form BUILD_FIELDCAT
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_FIELDCAT .
REFRESH : IFIELDCAT1.
*WFIELDCAT1-FIELDNAME = 'AUFNR'.
*WFIELDCAT1-COL_POS = '1'.
*WFIELDCAT1-SELTEXT_L = 'Order No'.
*APPEND WFIELDCAT1 TO IFIELDCAT1.
*CLEAR WFIELDCAT1.
WFIELDCAT1-FIELDNAME = 'GLTRP'.
WFIELDCAT1-COL_POS = '1'.
WFIELDCAT1-SELTEXT_L = 'Basic Finish Time'.
APPEND WFIELDCAT1 TO IFIELDCAT1.
CLEAR WFIELDCAT1.
WFIELDCAT1-FIELDNAME = 'GSTRP'.
WFIELDCAT1-COL_POS = '2'.
WFIELDCAT1-SELTEXT_L = 'Basic Start Time'.
APPEND WFIELDCAT1 TO IFIELDCAT1.
CLEAR WFIELDCAT1.
WFIELDCAT1-FIELDNAME = 'GAMNG'.
WFIELDCAT1-COL_POS = '3'.
WFIELDCAT1-SELTEXT_L = 'Total Order Qty'.
APPEND WFIELDCAT1 TO IFIELDCAT1.
CLEAR WFIELDCAT1.
WFIELDCAT1-FIELDNAME = 'GMEIN'.
WFIELDCAT1-COL_POS = '4'.
WFIELDCAT1-SELTEXT_L = 'UOM'.
APPEND WFIELDCAT1 TO IFIELDCAT1.
CLEAR WFIELDCAT1.
ENDFORM. " BUILD_FIELDCAT
&----
*& Form BUILD_LAYOUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_LAYOUT .
ILAYOUT1-COLWIDTH_OPTIMIZE = 'X'.
ILAYOUT1-ZEBRA = 'X'.
ENDFORM. " BUILD_LAYOUT
&----
*& Form BUILD_EVENT
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_EVENT .
WEVENT1-FORM = 'TOPOFLIST1'.
WEVENT1-NAME = SLIS_EV_TOP_OF_LIST.
APPEND WEVENT1 TO IEVENT1.
ENDFORM. " BUILD_EVENT
&----
*& Form DISPLAY_BLOCK1
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_BLOCK1 .
*CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_HS_APPEND'
EXPORTING
IS_LAYOUT = ILAYOUT1
IT_FIELDCAT = IFIELDCAT2
IS_KEYINFO = IKEYINFO1
I_HEADER_TABNAME = 'IAFKO'
I_ITEM_TABNAME = 'IAFPO'
IT_EVENTS = IEVENT1
IT_SORT =
I_TEXT = ' '
TABLES
T_OUTTAB_HEADER = IAFKO
T_OUTTAB_ITEM = IAFPO
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_APPEND'
EXPORTING
IS_LAYOUT = ILAYOUT1
IT_FIELDCAT = IFIELDCAT1
I_TABNAME = 'IAFKO'
IT_EVENTS = IEVENT1
IT_SORT =
I_TEXT = ' '
TABLES
T_OUTTAB = IAFKO
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.
ENDFORM. " DISPLAY_BLOCK1
FORM TOPOFLIST1.
WRITE :/10 'TABLE AFKO CONTENTS'.
WRITE :/(30) SY-ULINE.
ENDFORM.
&----
*& Form BUILD_FIELDCAT2
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_FIELDCAT2 .
REFRESH : IFIELDCAT2.
WFIELDCAT2-FIELDNAME = 'AUFNR'.
WFIELDCAT2-COL_POS = '1'.
WFIELDCAT2-SELTEXT_L = 'Order No'.
APPEND WFIELDCAT2 TO IFIELDCAT2.
CLEAR WFIELDCAT2.
WFIELDCAT2-FIELDNAME = 'POSNR'.
WFIELDCAT2-COL_POS = '2'.
WFIELDCAT2-SELTEXT_L = 'Order Item No'.
APPEND WFIELDCAT2 TO IFIELDCAT2.
CLEAR WFIELDCAT2.
WFIELDCAT2-FIELDNAME = 'PLNUM'.
WFIELDCAT2-COL_POS = '3'.
WFIELDCAT2-SELTEXT_L = 'Planned Order No'.
APPEND WFIELDCAT2 TO IFIELDCAT2.
CLEAR WFIELDCAT2.
WFIELDCAT2-FIELDNAME = 'STRMP'.
WFIELDCAT2-COL_POS = '4'.
WFIELDCAT2-SELTEXT_L = 'Strt Dt Plnd ordr No'.
APPEND WFIELDCAT2 TO IFIELDCAT2.
CLEAR WFIELDCAT2.
WFIELDCAT2-FIELDNAME = 'MATNR'.
WFIELDCAT2-COL_POS = '5'.
WFIELDCAT2-SELTEXT_L = 'Material No'.
APPEND WFIELDCAT2 TO IFIELDCAT2.
CLEAR WFIELDCAT2.
WFIELDCAT2-FIELDNAME = 'PSMNG'.
WFIELDCAT2-COL_POS = '6'.
WFIELDCAT2-SELTEXT_L = 'Pland Ordr Qty'.
APPEND WFIELDCAT2 TO IFIELDCAT2.
CLEAR WFIELDCAT2.
WFIELDCAT2-FIELDNAME = 'MEINS'.
WFIELDCAT2-COL_POS = '7'.
WFIELDCAT2-SELTEXT_L = 'UOM'.
APPEND WFIELDCAT2 TO IFIELDCAT2.
CLEAR WFIELDCAT2.
ENDFORM. " BUILD_FIELDCAT2
&----
*& Form BUILD_LAYOUT2
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_LAYOUT2 .
ILAYOUT2-COLWIDTH_OPTIMIZE = 'X'.
ILAYOUT2-ZEBRA = 'X'.
ENDFORM. " BUILD_LAYOUT2
&----
*& Form BUILD_EVENT2
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_EVENT2 .
WEVENT2-FORM = 'TOPOFLIST2'.
WEVENT2-NAME = SLIS_EV_TOP_OF_LIST.
APPEND WEVENT2 TO IEVENT2.
CLEAR WEVENT2.
ENDFORM. " BUILD_EVENT2
&----
*& Form DISPLAY_BLOCK2
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_BLOCK2 .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = ILAYOUT2
IT_FIELDCAT = IFIELDCAT2
I_TABNAME = 'IAFPO'
IT_EVENTS = IEVENT2
IT_SORT =
I_TEXT = ' '
TABLES
T_OUTTAB = IAFPO
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.
ENDFORM. " DISPLAY_BLOCK2
FORM TOPOFLIST2.
WRITE : /10 'TABLE AFPO CONTENTS'.
WRITE :/(35) SY-ULINE.
ENDFORM.
&----
*& Form BUILD_KEYINFO
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_KEYINFO .
IKEYINFO1-HEADER01 = 'AUFNR'.
IKEYINFO1-ITEM01 = 'AUFNR'.
ENDFORM. " BUILD_KEYINFO
regards
shiba dutta
‎2007 Jan 04 6:50 AM
HI Mark,
*******Declare type pools
TYPE-POOLS slis .
TYPE-POOLS sscr .
*--Declarations for ALV
DATA : g_tab_fieldcat TYPE slis_t_fieldcat_alv,
g_fieldcat TYPE slis_fieldcat_alv,
g_event TYPE slis_alv_event,
g_tab_events TYPE slis_t_event,
g_pos TYPE i,
gs_keyinfo TYPE slis_keyinfo_alv,
g_layout TYPE slis_layout_alv,
g_header_tabname TYPE slis_tabname,
g_item_tabname TYPE slis_tabname.
***********Build the field catlog
PERFORM fill_field_cat USING g_pos u_tab_hdr_name u_key_field '5' ' ' 'L' ' ' ' '.
******subroutine
FORM fill_field_cat USING u_pos TYPE any
value(u_001) TYPE any
value(u_002) TYPE any
value(u_003) TYPE any
u_text TYPE any
value(u_004) TYPE any
value(u_005) TYPE any
value(u_006) TYPE any.
u_pos = u_pos + 1.
g_fieldcat-col_pos = u_pos.
g_fieldcat-tabname = u_001.
g_fieldcat-fieldname = u_002.
g_fieldcat-outputlen = u_003.
g_fieldcat-reptext_ddic = u_text.
g_fieldcat-just = u_004.
g_fieldcat-do_sum = u_005.
g_fieldcat-emphasize = u_006.
APPEND g_fieldcat TO g_tab_fieldcat.
ENDFORM. " fill_field_cat
***************3 function modules are required
*----1st one is
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = sy-repid.
*----
2nd one
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_HS_APPEND'
EXPORTING
is_layout = g_layout
it_fieldcat = g_tab_fieldcat
is_keyinfo = gs_keyinfo
i_header_tabname = u_header_tabname
i_item_tabname = u_item_tabname
it_events = g_tab_events
TABLES
t_outtab_header = c_tab_hdr_data
t_outtab_item = c_tab_dtls_data
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
*----
3rd one
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXCEPTIONS
program_error = 1
OTHERS = 2.
Hi marc I copied from the program that i have created see wether it will be useful or else i can send complete program to your ID
Reward if you find it helpful.