2007 Mar 26 1:47 PM
hi friends,
how to get two alv report outputs in a single list screen.
thanks...
hi friends,
how to get two alv report outputs in a single list screen.
thanks...
2007 Mar 26 1:52 PM
hi,
You can use function module 'REUSE_ALV_HIERSEQ_LIST_DISPLAY' to display hierachal alv list display.This is used when we want to display two lists in the single list screen.
regards,
veeresh
2007 Mar 26 2:03 PM
Hi,
u can display 2 alv reports in single list screen using function modules
(REUSE_ALV_BLOCK_LIST_APPEND&REUSE_ALV_BLOCK_LIST_DISPLAY).
regards,
bharat.
2007 Mar 26 2:06 PM
Hi,
here i am example program for u check it.
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.
regards,
bharat.
2007 Mar 26 2:35 PM
Hi ,
Check the following code.
Report zlist.
----
T Y P E - P O O L S
----
Alv-Grid Type
TYPE-POOLS :slis.
----
T A B L E S
----
*Tables
TABLES: vbap.
----
I N T E R N A L T A B L E S
----
DATA: ls_fieldcat_alv TYPE slis_fieldcat_alv, "FIELD CATALOG LIST FOR ALV
tb_field_cat TYPE slis_t_fieldcat_alv, "FIELD CATALOG
ls_fieldcat_alv1 TYPE slis_fieldcat_alv, "FIELD CATALOG LIST FOR ALV
tb_field_cat1 TYPE slis_t_fieldcat_alv, "FIELD CATALOG
top_of_page TYPE slis_t_listheader,
ls_line TYPE slis_listheader,
i_sort TYPE slis_t_sortinfo_alv,
x_layout TYPE slis_layout_alv,
t_events TYPE slis_t_event,
x_events type slis_alv_event.
DATA: BEGIN OF tb_vbap OCCURS 0,
vbeln LIKE vbap-vbeln,
kwmeng LIKE vbap-kwmeng,
END OF tb_vbap.
DATA: BEGIN OF tb_vbap1 OCCURS 0,
vbeln LIKE vbap-vbeln,
matnr LIKE vbap-matnr,
END OF tb_vbap1.
----
V A R I A B L E S
----
Global Variables
DATA: g_repid LIKE sy-repid. "Report ID
----
S E L E C T I O N S C R E E N
----
For User Input(Selection Criteria)
SELECTION-SCREEN BEGIN OF BLOCK b0 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_vbeln FOR vbap-vbeln.
SELECTION-SCREEN END OF BLOCK b0.
----
S T A R T - O F - S E L E C T I O N
----
START-OF-SELECTION.
SET PF-STATUS 'SAMPLE'.
FIELD CATALOG FOR ALV
PERFORM field_catalog USING tb_field_cat.
FIELD CATALOG FOR SECOND ALV
PERFORM field_catalog1 USING tb_field_cat1.
Get Data
PERFORM get_data.
For displaying the alv
PERFORM display.
----
F O R M S
----
&----
*& Form FILL_FIELD_CATALOG_UOM
&----
text
----
FIELD CATALOG FOR ALV
----
FORM field_catalog USING l_fieldcat TYPE slis_t_fieldcat_alv.
CLEAR ls_fieldcat_alv.
ls_fieldcat_alv-fieldname = 'VBELN'.
ls_fieldcat_alv-key = 'x'.
ls_fieldcat_alv-col_pos = 1.
ls_fieldcat_alv-ref_fieldname = 'VBELN'.
ls_fieldcat_alv-ref_tabname = 'VBAP'.
ls_fieldcat_alv-no_sum = 'x'.
APPEND ls_fieldcat_alv TO l_fieldcat.
CLEAR ls_fieldcat_alv.
ls_fieldcat_alv-fieldname = 'KWMENG'.
ls_fieldcat_alv-key = ''.
ls_fieldcat_alv-col_pos = 2.
ls_fieldcat_alv-ref_fieldname = 'KWMENG'.
ls_fieldcat_alv-ref_tabname = 'VBAP'.
ls_fieldcat_alv-do_sum = 'x'.
APPEND ls_fieldcat_alv TO l_fieldcat.
CLEAR ls_fieldcat_alv.
ENDFORM. " FILL_FIELD_CATALOG_UOM
&----
*& Form GET_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_data.
SELECT vbeln
kwmeng
FROM vbap
INTO TABLE tb_vbap
WHERE vbeln IN s_vbeln.
SELECT vbeln
matnr
FROM vbap
INTO TABLE tb_vbap1
WHERE vbeln IN s_vbeln.
ENDFORM. " GET_DATA
&----
*& Form display
&----
text
----
--> p1 text
<-- p2 text
----
FORM display .
Initialize Block
call function 'REUSE_ALV_BLOCK_LIST_INIT'
exporting
i_callback_program = g_repid.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = x_layout
it_fieldcat = tb_field_cat
i_tabname = 'TB_VBAP'
it_events = t_events
TABLES
t_outtab = tb_vbap.
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 = x_layout
it_fieldcat = tb_field_cat1
i_tabname = 'TB_VBAP1'
it_events = t_events
tables
t_outtab = tb_vbap1.
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'
.
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
&----
*& Form field_catalog1
&----
text
----
-->P_TB_FIELD_CAT1 text
----
FORM field_catalog1 USING l_fieldcat1 TYPE slis_t_fieldcat_alv.
CLEAR ls_fieldcat_alv1.
ls_fieldcat_alv1-fieldname = 'VBELN'.
ls_fieldcat_alv1-key = 'x'.
ls_fieldcat_alv1-col_pos = 1.
ls_fieldcat_alv1-ref_fieldname = 'VBELN'.
ls_fieldcat_alv1-ref_tabname = 'VBAP'.
APPEND ls_fieldcat_alv1 TO l_fieldcat1.
CLEAR ls_fieldcat_alv1.
ls_fieldcat_alv1-fieldname = 'MATNR'.
ls_fieldcat_alv1-key = ''.
ls_fieldcat_alv1-col_pos = 2.
ls_fieldcat_alv1-ref_fieldname = 'MATNR'.
ls_fieldcat_alv1-ref_tabname = 'VBAP'.
APPEND ls_fieldcat_alv1 TO l_fieldcat1.
CLEAR ls_fieldcat_alv1.
endform. " field_catalog1
Regards,
praveena
2007 Mar 26 2:57 PM
Hi Amirdeen,
I hope we are talking about REUSE_ALV_LIST_DISPLAY. This one writes to the LIST screen.
You can use ALV event END_OF_LIST anc call REUSE_ALV_LIST_DISPLAY for the second table in this event.
I did not try but heard that it works.
If you want grid display, you need container elements and use OO ALV.
Regards,
Clemens