2008 Apr 11 8:02 AM
1)How to display one alv from another?
2)How to display two alv in a single screen?------is this block ALV?????
Regards
1)How to display one alv from another?
2)How to display two alv in a single screen?------is this block ALV?????
Regards
2008 Apr 11 8:05 AM
HI,
2) yaa we can display more than one ALV at a time using block list alv(only lists).for more than one grid you have to go for OOALV.
block list ALV sample code
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.
2008 Apr 11 8:07 AM
Tables:EKKO, EKPO .
type-pools:slis.
types:begin of itab,
ebeln like ekko-ebeln,
lifnr like ekko-lifnr,
matnr like ekpo-matnr,
menge like ekpo-menge,
BOX(1) TYPE C,
end of itab.
data: it_itab TYPE STANDARD TABLE OF ITAB INITIAL SIZE 0,
wa_itab TYPE ITAB.
data:fieldcatalog type slis_t_fieldcat_alv,
alv_layout type slis_layout_alv,
sy_repid like sy-repid.
DATA: AFIELD TYPE SLIS_FIELDCAT_ALV.
types:begin of btab,
matnr like mara-matnr,
mtart like mara-mtart,
matkl like mara-matkl,
BOX(1) TYPE C,
end of btab.
data: it_btab TYPE STANDARD TABLE OF BTAB INITIAL SIZE 0.
data:fieldcatalog1 type slis_t_fieldcat_alv,
alv_layout1 type slis_layout_alv.
DATA: aEVENTS TYPE SLIS_T_EVENT.
DATA: bEVENTS TYPE SLIS_T_EVENT.
data: XS_EVENT TYPE SLIS_ALV_EVENT.
DATA: GT_PRINT TYPE SLIS_PRINT_ALV.
data: PFSTATUS TYPE SLIS_FORMNAME value 'PF_STATUS_SET'.
Selection-screen begin of block A with FRAME TITLE text-001.
parameters: Grid radiobutton group rad,
List radiobutton group rad.
Selection-screen end of block A.
START-OF-SELECTION.
perform select_data.
perform aevents.
perform bevents.
perform fields.
perform display_layout.
&----
*& Form select_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM select_data .
Select aebeln alifnr bmatnr bmenge from ekko as a inner join ekpo as b on aebeln = bebeln
into corresponding fields of table it_itab.
sort it_itab BY EBELN.
select matnr mtart matkl up to 10 rows from mara into corresponding fields of table it_btab.
sort it_btab by matnr.
ENDFORM. " select_data
&----
*& Form aevents
&----
text
----
--> p1 text
<-- p2 text
----
FORM aevents .
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'END_OF_PAGE'.
APPEND XS_EVENT TO aEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'TOP_OF_PAGE'.
APPEND XS_EVENT TO aEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'TOP_OF_LIST'.
APPEND XS_EVENT TO aEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'END_OF_LIST'.
APPEND XS_EVENT TO aEVENTS.
CLEAR XS_EVENT.
ENDFORM. " aevents
&----
*& Form bevents
&----
text
----
--> p1 text
<-- p2 text
----
FORM bevents .
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'END_OF_PAGE'.
APPEND XS_EVENT TO bEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'TOP_OF_PAGE'.
APPEND XS_EVENT TO bEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'TOP_OF_LIST'.
APPEND XS_EVENT TO bEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'END_OF_LIST'.
APPEND XS_EVENT TO bEVENTS.
ENDFORM. " bevents
&----
*& Form fields
&----
text
----
--> p1 text
<-- p2 text
----
FORM fields.
DATA: L_COUNT TYPE I.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'EBELN'.
AFIELD-REF_TABNAME = 'EKKO'.
AFIELD-seltext_l = 'PO Document No.'.
AFIELD-outputlen = 25.
AFIELD-KEY = 'X'. "define field as key
APPEND AFIELD TO FIELDcatalog.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'LIFNR'.
AFIELD-REF_TABNAME = 'EKKO'.
AFIELD-seltext_l = 'Vendor Acc.No.'.
AFIELD-outputlen = 15.
APPEND AFIELD TO FIELDcatalog.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'MATNR'.
AFIELD-REF_TABNAME = 'EKPO'.
AFIELD-seltext_l = 'Material No.'.
AFIELD-outputlen = 25.
APPEND AFIELD TO FIELDcatalog.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'MENGE'.
AFIELD-REF_TABNAME = 'EKPO'.
AFIELD-seltext_l = 'Order Quantity'.
AFIELD-outputlen = 15.
APPEND AFIELD TO FIELDcatalog.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'MATNR'.
AFIELD-REF_TABNAME = 'MARA'.
AFIELD-seltext_l = 'Material No.'.
AFIELD-outputlen = 25.
AFIELD-KEY = 'X'. "define field as key
APPEND AFIELD TO FIELDcatalog1.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'MTART'.
AFIELD-REF_TABNAME = 'MARA'.
AFIELD-seltext_l = 'Material Type'.
AFIELD-outputlen = 15.
APPEND AFIELD TO FIELDcatalog1.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'MATKL'.
AFIELD-REF_TABNAME = 'MARA'.
AFIELD-seltext_l = 'Material Group'.
AFIELD-outputlen = 15.
APPEND AFIELD TO FIELDcatalog1.
ENDFORM. " fields
&----
*& Form display_layout
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_layout .
sy_repid = sy-repid.
if GRID = 'X'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = sy_REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_PF_STATUS_SET = PFSTATUS.
alv_LAYOUT1-BOX_FIELDNAME = 'BOX'.
alv_LAYOUT1-BOX_TABNAME = 'it_btab'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = alv_layout1
IT_FIELDCAT = fieldcatalog1
I_TABNAME = 'it_btab'
IT_EVENTS = bevents
IT_SORT =
I_TEXT = ' '
TABLES
T_OUTTAB = it_btab
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.
alv_LAYOUT-BOX_FIELDNAME = 'BOX'.
alv_LAYOUT-BOX_TABNAME = 'it_atab'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = alv_layout
IT_FIELDCAT = fieldcatalog
I_TABNAME = 'it_itab'
IT_EVENTS = aevents
IT_SORT =
I_TEXT = ' '
TABLES
T_OUTTAB = it_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.
GT_PRINT-RESERVE_LINES = 2.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
IS_PRINT = GT_PRINT.
ENDIF.
ENDFORM. "display_layout
2008 Apr 11 8:07 AM
Hi,
just copy & execute the two progrms..
1. For drill down ALV
REPORT ZSBN_ALV_TEST .
TYPE-POOLS : SLIS.
*************************************************
* FOR ALV *
*************************************************
DATA:IS_LAYOUT TYPE SLIS_LAYOUT_ALV,
IT_EVENTS TYPE SLIS_T_EVENT,
WA_EVENTS TYPE SLIS_ALV_EVENT,
W_FCAT TYPE SLIS_FIELDCAT_ALV,
T_FCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA : I(4).
DATA : BEGIN OF ITAB OCCURS 0.
INCLUDE TYPE PA0001.
DATA : END OF ITAB.
DATA : BEGIN OF ITAB1 OCCURS 0.
INCLUDE TYPE PA0002.
DATA : END OF ITAB1.
*&*& DATA FROM PA0001
SELECT DISTINCT * FROM PA0001
INTO TABLE ITAB.
SORT ITAB.
DELETE ADJACENT DUPLICATES FROM ITAB COMPARING PERNR.
*&*& FCAT
W_FCAT-FIELDNAME = 'PERNR'.
W_FCAT-SELTEXT_M = 'Emp No'.
W_FCAT-HOTSPOT = 'X'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'ENAME'.
W_FCAT-SELTEXT_M = 'Emp NAme'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
*I = 1.
*DO 1000 TIMES.
* W_FCAT-FIELDNAME = 'PERNR'.
* W_FCAT-SELTEXT_M = I.
* W_FCAT-HOTSPOT = 'X'.
* APPEND W_FCAT TO T_FCAT.
* CLEAR W_FCAT.
* I = I + 1.
*ENDDO.
*&*& layout
IS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
*&*&
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-CPROG
I_CALLBACK_USER_COMMAND = 'F_USERCOMMAND_ALV'
IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = T_FCAT
TABLES
T_OUTTAB = ITAB.
*&*& FOR DRILL DOWN WHEN CLICK ON PERNR
FORM F_USERCOMMAND_ALV USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
*&*& TAKING ALL RECORDS IN PA0002 FOR THAT EMP
CLEAR :ITAB1[].
SELECT *
FROM PA0002
INTO TABLE ITAB1
WHERE
PERNR EQ RS_SELFIELD-VALUE.
CLEAR : T_FCAT[].
*&*& FCAT
W_FCAT-FIELDNAME = 'PERNR'.
W_FCAT-SELTEXT_M = 'Emp No'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'GBDAT'.
W_FCAT-SELTEXT_M = 'DATE'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'GESCH'.
W_FCAT-SELTEXT_M = 'SEX'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-CPROG
IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = T_FCAT
TABLES
T_OUTTAB = ITAB1.
ENDFORM.
2. For Blocked alv
REPORT ZSBN_BLOCK_ALV .
TYPE-POOLS : SLIS.
TABLES: PA0001, PA0002.
DATA : FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
FCAT1 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
ILAYOUT TYPE SLIS_LAYOUT_ALV,
XS_EVENT TYPE SLIS_ALV_EVENT,
GT_XEVENTS TYPE SLIS_T_EVENT,
GT_YEVENTS TYPE SLIS_T_EVENT,
IT_SORT TYPE SLIS_T_SORTINFO_ALV,
WA_SORT TYPE SLIS_SORTINFO_ALV.
DATA : BEGIN OF INT_PA0001 OCCURS 0.
INCLUDE TYPE PA0001.
DATA : END OF INT_PA0001.
DATA : BEGIN OF INT_PA0002 OCCURS 0.
INCLUDE TYPE PA0002.
DATA : END OF INT_PA0002.
*&*& DATA FROM PA0001
SELECT * FROM PA0001
UP TO 5 ROWS
INTO TABLE INT_PA0001.
*&*& DATA FROM PA0002
IF NOT INT_PA0001[] IS INITIAL.
SELECT * FROM PA0002 INTO TABLE INT_PA0002
FOR ALL ENTRIES IN INT_PA0001
WHERE
PERNR EQ INT_PA0001-PERNR.
ENDIF.
*&*& LAYOUT DEF
ILAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ILAYOUT-ZEBRA = 'X'.
*&*& FCAT1
CLEAR FCAT.
FCAT-FIELDNAME = 'PERNR'.
FCAT-SELTEXT_M = 'Emp No'.
FCAT-TABNAME = 'INT_PA0001'.
APPEND FCAT.
CLEAR FCAT.
FCAT-FIELDNAME = 'BEGDA'.
FCAT-SELTEXT_M = 'St Date'.
FCAT-TABNAME = 'INT_PA0001'.
APPEND FCAT.
CLEAR FCAT.
FCAT-FIELDNAME = 'ENDDA'.
FCAT-SELTEXT_M = 'End Date'.
FCAT-TABNAME = 'INT_PA0001'.
APPEND FCAT.
CLEAR FCAT.
FCAT-FIELDNAME = 'BUKRS'.
FCAT-SELTEXT_M = 'Comp Code'.
FCAT-TABNAME = 'INT_PA0001'.
APPEND FCAT.
CLEAR FCAT.
FCAT-FIELDNAME = 'WERKS'.
FCAT-SELTEXT_M = 'Plant'.
FCAT-TABNAME = 'INT_PA0001'.
APPEND FCAT.
*&*& FCAT2
CLEAR FCAT1.
FCAT1-FIELDNAME = 'PERNR'.
FCAT1-SELTEXT_M = 'Emp No'.
FCAT-TABNAME = 'INT_PA0002'.
APPEND FCAT1.
CLEAR FCAT1.
FCAT1-FIELDNAME = 'NACHN'.
FCAT1-SELTEXT_M = 'Emp Name'.
FCAT-TABNAME = 'INT_PA0002'.
APPEND FCAT1.
CLEAR FCAT1.
FCAT1-FIELDNAME = 'INITS'.
FCAT1-SELTEXT_M = 'Initial'.
FCAT-TABNAME = 'INT_PA0002'.
APPEND FCAT1.
*&*& FOR EVENTS
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'XTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'YTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
*&*& FOR SORT
CLEAR WA_SORT.
WA_SORT-FIELDNAME = 'PERNR'.
APPEND WA_SORT TO IT_SORT.
CLEAR WA_SORT.
*&*& BLOCK ALV -- INTIALIZATION
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = SY-CPROG.
*&*& APPENDING FIRST FCAT
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = ILAYOUT
IT_FIELDCAT = FCAT[]
I_TABNAME = 'INT_PA0001'
IT_EVENTS = GT_XEVENTS
IT_SORT = IT_SORT
TABLES
T_OUTTAB = INT_PA0001.
*&*& APPENDING SECOND FCAT
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = ILAYOUT
IT_FIELDCAT = FCAT1[]
I_TABNAME = 'INT_PA0002'
IT_EVENTS = GT_YEVENTS
IT_SORT = IT_SORT
TABLES
T_OUTTAB = INT_PA0002.
*&*& FUN MOD FOR DISPLAY
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.
*&*& FOR TOP OF PAGE ALV-1
FORM XTOP_OF_PAGE.
WRITE : 'ALV 1', 30 SY-DATUM.
ENDFORM.
*&*& FOR TOP OF PAGE ALV-2
FORM YTOP_OF_PAGE.
WRITE : 'ALV 2', 30 SY-DATUM.
ENDFORM.
With Rgds,
S.barani
2008 Apr 11 8:10 AM
Hi,
Regarding the ALV's.See this link:
http://www.saptechnical.com/Tutorials/ALV/ALVMainPage.htm
Regards,
If helpful reward with points(Don't forget).
2008 Apr 11 8:11 AM
Hi
two oupt program
&----
*& Report ZAMIT_ALVOOPS
*&
&----
*&
*&
&----
REPORT ZNNR_ALVOOPS_SCREEN.
tables: mara,spfli.
types: begin of ty_tab,
matnr type mara-matnr,
ernam type mara-ernam,
ersda type mara-ersda,
end of ty_tab.
DATA ITAB1 TYPE TABLE OF SPFLI.
DATA WA1 LIKE LINE OF ITAB1.
DATA IO1 TYPE SPFLI-CARRID VALUE 'AA'.
data itab type table of ty_tab.
data wa like line of itab.
DATA OK_CODE TYPE SY-UCOMM.
DATA: GRID TYPE REF TO CL_GUI_ALV_GRID,
CONT TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA: GRID1 TYPE REF TO CL_GUI_ALV_GRID,
CONTA TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
CREATE OBJECT CONT EXPORTING CONTAINER_NAME = 'CONT1' .
CREATE OBJECT GRID EXPORTING I_PARENT = CONT .
CREATE OBJECT CONTA EXPORTING CONTAINER_NAME = 'CONT2' .
CREATE OBJECT GRID1 EXPORTING I_PARENT = CONTA .
selection-screen begin of block b1 with frame title text-100.
select-options: s_matnr for mara-matnr.
selection-screen end of block b1.
select matnr ernam ersda from mara into corresponding fields of table itab up to 15 rows
where matnr in s_matnr .
call selection-screen 100.
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
if ok_code = 'PB1'.
leave to screen 0.
else.
leave to screen 100.
endif.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'xxxxxxxx'.
SET TITLEBAR 'xxx'.
SELECT * FROM SPFLI INTO
CORRESPONDING FIELDS OF TABLE ITAB1 WHERE CARRID = IO1.
CALL METHOD grid->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_BUFFER_ACTIVE =
I_BYPASSING_BUFFER =
I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME = 'MARA'
IS_VARIANT =
I_SAVE =
I_DEFAULT = 'X'
IS_LAYOUT =
IS_PRINT =
IT_SPECIAL_GROUPS =
IT_TOOLBAR_EXCLUDING =
IT_HYPERLINK =
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = itab.
IT_FIELDCATALOG =
IT_SORT =
IT_FILTER =
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
others = 4
.
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 METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'SPFLI'
CHANGING
IT_OUTTAB = ITAB1.
ENDMODULE. " STATUS_0100 OUTPUT
2008 Apr 11 8:14 AM
Hi,
Yes by using Block List u can display two list in a report.
Here is a sample code for block ALV:
TYPE-POOLS : SLIS.
&----
*& structure declaration
&----
TYPES : BEGIN OF ST_EKKO,
EBELN TYPE EKKO-EBELN, "Purchasing Document Number
BSTYP TYPE EKKO-BSTYP, "Purchasing Document Category
BSART TYPE EKKO-BSART, "Purchasing Document Type
AEDAT TYPE EKKO-AEDAT, "record created on
ERNAM TYPE EKKO-ERNAM, "Person who Created the Object
END OF ST_EKKO.
TYPES : BEGIN OF ST_EKPO,
EBELN TYPE EKKO-EBELN,
EBELP TYPE EKPO-EBELP, "Item Number of Purchasing Document
EMATN TYPE EKPO-EMATN, "Material number
MATKL TYPE EKPO-MATKL, "Material group
NETPR TYPE EKPO-NETPR, "Net price in purchasing document
END OF ST_EKPO.
&----
*& internal table and work area declaration
&----
DATA : IT_EKPO TYPE STANDARD TABLE OF ST_EKPO,
IT_EKKO TYPE STANDARD TABLE OF ST_EKKO,
IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT2 TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT2 TYPE SLIS_FIELDCAT_ALV,
IT_EVENTS TYPE SLIS_T_EVENT,
WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
&----
*& data declaration
&----
DATA : V_EBELN TYPE EKKO-EBELN.
&----
*& selection-screen
&----
SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-000.
SELECT-OPTIONS : SO_EBELN FOR V_EBELN.
SELECTION-SCREEN END OF BLOCK A.
&----
*& At-selection-screen
&----
AT SELECTION-SCREEN ON SO_EBELN.
PERFORM VALIDATE_EBELN.
&----
*& start-of-selection
&----
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
&----
*& end-of-selection
&----
END-OF-SELECTION.
PERFORM INITIALIZE_ALV_BLOCK.
PERFORM BUILD_FIELDCATALOG1.
PERFORM BUILD_FIELDCATALOG2.
PERFORM BUILD_LAYOUT.
PERFORM GET_EVENTS .
PERFORM APPEND_EKKODATA_TO_ALV_BLOCK.
PERFORM APPEND_EKPODATA_TO_ALV_BLOCK.
PERFORM DISPLAY_BLOCKED_ALV.
&----
*& FORM initialize_alv_block
&----
FORM INITIALIZE_ALV_BLOCK.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID.
ENDFORM.
&----
*& FORM validate_ebeln
&----
FORM VALIDATE_EBELN.
SELECT EBELN
FROM EKKO
INTO TABLE IT_EKKO
WHERE EBELN IN SO_EBELN.
IF SY-SUBRC NE 0.
MESSAGE TEXT-003 TYPE 'W'.
ENDIF.
ENDFORM.
&----
*& FORM data_retrieval
&----
FORM DATA_RETRIEVAL.
SELECT EBELN BSTYP BSART AEDAT ERNAM
FROM EKKO
INTO TABLE IT_EKKO
WHERE EBELN IN SO_EBELN.
IF SY-SUBRC NE 0.
MESSAGE TEXT-001 TYPE 'I'.
ENDIF.
SELECT EBELN EBELP EMATN MATKL NETPR
FROM EKPO
INTO TABLE IT_EKPO
WHERE EBELN IN SO_EBELN.
IF SY-SUBRC NE 0.
MESSAGE TEXT-002 TYPE 'I'.
ENDIF.
ENDFORM.
&----
*& Form build_fieldcatalog1
&----
FORM BUILD_FIELDCATALOG1.
WA_FIELDCAT1-FIELDNAME = 'EBELN'.
WA_FIELDCAT1-SELTEXT_L = 'PURCHASE ORDER'.
WA_FIELDCAT1-COL_POS = 0.
WA_FIELDCAT1-DO_SUM = 'X'.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
WA_FIELDCAT1-FIELDNAME = 'BSTYP'.
WA_FIELDCAT1-SELTEXT_L = 'DOCUMENT CATEGORY'.
WA_FIELDCAT1-COL_POS = 1.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
WA_FIELDCAT1-FIELDNAME = 'BSART'.
WA_FIELDCAT1-SELTEXT_L = 'DOCUMENT TYPE'.
WA_FIELDCAT1-COL_POS = 2.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
WA_FIELDCAT1-FIELDNAME = 'AEDAT'.
WA_FIELDCAT1-SELTEXT_L = 'DATE'.
WA_FIELDCAT1-COL_POS = 3.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
WA_FIELDCAT1-FIELDNAME = 'ERNAM'.
WA_FIELDCAT1-SELTEXT_L = 'NAME'.
WA_FIELDCAT1-COL_POS = 4.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
ENDFORM. "build_fieldcatalog
&----
*& Form build_fieldcatalog2
&----
FORM BUILD_FIELDCATALOG2.
WA_FIELDCAT2-FIELDNAME = 'EBELN'.
WA_FIELDCAT2-SELTEXT_L = 'PURCHASE ORDER'.
WA_FIELDCAT2-COL_POS = 0.
APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.
WA_FIELDCAT2-FIELDNAME = 'EBELP'.
WA_FIELDCAT2-SELTEXT_L = 'ITEM NUMBER'.
WA_FIELDCAT2-COL_POS = 1.
APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.
WA_FIELDCAT2-FIELDNAME = 'EMATN'.
WA_FIELDCAT2-SELTEXT_L = 'MATERIAL TYPE'.
WA_FIELDCAT2-COL_POS = 2.
APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.
WA_FIELDCAT2-FIELDNAME = 'MATKL'.
WA_FIELDCAT2-SELTEXT_L = 'MATERIAL GROUP'.
WA_FIELDCAT2-COL_POS = 3.
APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.
WA_FIELDCAT2-FIELDNAME = 'NETPR'.
WA_FIELDCAT2-SELTEXT_L = 'NET PRICE'.
WA_FIELDCAT2-COL_POS = 4.
WA_FIELDCAT2-DO_SUM = 'X'.
APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.
ENDFORM. "build_fieldcatalog
&----
*& form build_layout.
&----
FORM BUILD_LAYOUT.
WA_LAYOUT-ZEBRA ='X'.
WA_LAYOUT-NO_VLINE = ' '.
WA_LAYOUT-NO_HLINE = ' '.
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
WA_LAYOUT-WINDOW_TITLEBAR = 'PURCHASE ORDER HEADER AND ITEM DETAILS'.
ENDFORM. "build_layout
&----
*& form append_ekkodata_to_alv_block
&----
FORM APPEND_EKKODATA_TO_ALV_BLOCK.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT1
I_TABNAME ='it_ekko'
IT_EVENTS = IT_EVENTS[]
IT_SORT = IT_SORT
I_TEXT = ' '
TABLES
T_OUTTAB = IT_EKKO
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.
&----
*& form append_ekpodata_to_alv_block
&----
FORM APPEND_EKPODATA_TO_ALV_BLOCK.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT2
I_TABNAME ='it_ekpo'
IT_EVENTS = IT_EVENTS[]
IT_SORT = IT_SORT
I_TEXT = ' '
TABLES
T_OUTTAB = IT_EKPO
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.
&----
*& FORM display_blocked_alv.
&----
FORM DISPLAY_BLOCKED_ALV.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.
ENDFORM.
&----
*& Form GET_EVENTS
&----
FORM GET_EVENTS .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 2
IMPORTING
ET_EVENTS = IT_EVENTS[]
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.
ENDFORM. " GET_EVENTS
Regards,
kavitha
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |