05-09-2006 10:20 AM
Hi,
in my report i display an HIERARQUICAL ALV by means of FM 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'.
I need to add a block list to this report, so that the hierarquical alv gets displayed first an immediately afterwards the block list.
Has anyone of you a very simple example of how it can be done (if possible)?
Best regards.
05-09-2006 10:31 AM
Hi,
it can be done, check this <b>BALVBT01</b>
there it is combination of BLOCK_HIERARCHIAL list
Regards
vijay
05-09-2006 10:24 AM
05-09-2006 10:31 AM
Hi,
it can be done, check this <b>BALVBT01</b>
there it is combination of BLOCK_HIERARCHIAL list
Regards
vijay
05-09-2006 3:51 PM
Hi ,
Please check the forum,
and some more links
http://help.sap.com/saphelp_46c/helpdata/en/99/49b844d61911d2b469006094192fe3/frameset.htm
http://www.sapdevelopment.co.uk/reporting/alvhome.htm
Regards,
Ranjit Thakur.
Please Mark The Helpful Answer.
05-09-2006 4:56 PM
hi,
please go thru this
http://sap.niraj.tripod.com/id13.html
http://www.sapdevelopment.co.uk/reporting/alvhome.htm
hope this helpful
Thanks & Regards
Naresh
05-09-2006 4:59 PM
REPORT Z_50657_ALV_EX4
NO STANDARD PAGE HEADING
LINE-COUNT 65(3)
LINE-SIZE 220
MESSAGE-ID ZZ.
************************************************************************
* Type Pools *
************************************************************************
TYPE-POOLS: SLIS.
************************************************************************
* Tables *
************************************************************************
TABLES: VBAK, "Sales Document: Header Data
VBAP. "Sales Document: Item Data
************************************************************************
* Internal Tables *
************************************************************************
* Internal table to hold data from VBAK
DATA: BEGIN OF IT_VBAK OCCURS 0,
VBELN LIKE VBAK-VBELN, "Sales Document
AUDAT LIKE VBAK-AUDAT, "Document date
AUART LIKE VBAK-AUART, "Sales Document Type
NETWR LIKE VBAK-NETWR, "Net Value of the Sales Order
EXPAND TYPE C,
END OF IT_VBAK.
* Internal table to hold data from VBAP
DATA: BEGIN OF IT_VBAP OCCURS 0,
VBELN LIKE VBAP-VBELN, "Sales Document
POSNR LIKE VBAP-POSNR, "Sales Document Item
MATNR LIKE VBAP-MATNR, "Material Number
PSTYV LIKE VBAP-PSTYV, "Sales document item category
CHARG LIKE VBAP-CHARG, "Batch Number
END OF IT_VBAP.
************************************************************************
* Data Declarations and Variables *
************************************************************************
* work area to retain fieldcatalog values and internal table for catalog
DATA: X_FIELDCAT_VBAK TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT_VBAK TYPE SLIS_T_FIELDCAT_ALV.
DATA: X_FIELDCAT_VBAP TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT_VBAP TYPE SLIS_T_FIELDCAT_ALV.
DATA: IT_KEYINFO TYPE SLIS_KEYINFO_ALV.
DATA: IT_HEADER TYPE SLIS_TABNAME,
IT_ITEM TYPE SLIS_TABNAME.
DATA: X_SORT TYPE SLIS_SORTINFO_ALV,
IT_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA: L_LAYOUT TYPE SLIS_LAYOUT_ALV.
************************************************************************
* Selection-Screen *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
*Sales Document and Sales Document Type as input fields
SELECT-OPTIONS : S_VBELN FOR VBAK-VBELN,
S_AUART FOR VBAK-AUART.
SELECTION-SCREEN END OF BLOCK B1.
************************************************************************
* INITIALIASATION *
************************************************************************
INITIALIZATION.
* Assigning Internal Table Names
IT_HEADER = 'IT_VBAK'.
IT_ITEM = 'IT_VBAP'.
CLEAR IT_KEYINFO.
IT_KEYINFO-HEADER01 = 'VBELN'.
* comparing the keys and relating the header and item internal tables
IT_KEYINFO-ITEM01 = 'VBELN'.
IT_KEYINFO-HEADER02 = SPACE.
IT_KEYINFO-ITEM02 = 'POSNR'.
************************************************************************
* At Selection-Screen *
************************************************************************
AT SELECTION-SCREEN.
PERFORM VALIDATION.
************************************************************************
* Start of Selection *
************************************************************************
START-OF-SELECTION.
*POPULATION OF DATA INTO INTERNAL TABLE ITAB
PERFORM GET_DATA.
*MERGE FIELDCATALOGUES OF IT_VBAP AND IT_VBAK
PERFORM FIELDCATALOG_MERGE.
*CHANGE LAYOUT ACCORDING TO THE REQUIREMENTS
PERFORM LAYOUT_CHG.
*USE SORT FUNCTION SO AS TO GET SUBTOTALS AND GRAND TOTAL
PERFORM SORT_FUNC.
*FINAL DISPLAY ACCORDING TO THE HIERARCHY
PERFORM FINAL_DISPLAY.
************************************************************************
* End of Selection *
************************************************************************
FORM VALIDATION.
SELECT SINGLE VBELN
FROM VBAK
INTO VBAK-VBELN
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'NO SALES DOCUMENT RECORD FOUND'.
STOP.
ENDIF.
SELECT SINGLE AUART
FROM VBAK
INTO VBAK-AUART
WHERE AUART IN S_AUART.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'THE MENTIONED DATE HAS NO RECORDS'.
STOP.
ENDIF.
ENDFORM. "VALIDATION
*&--------------------------------------------------------------------*
*& Form GET_DATA
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM GET_DATA.
SELECT VBELN
AUDAT
AUART
NETWR FROM VBAK
INTO TABLE IT_VBAK
WHERE VBELN IN S_VBELN AND AUART IN S_AUART.
SORT IT_VBAK BY VBELN.
SELECT VBELN
POSNR
MATNR
PSTYV
CHARG FROM VBAP
INTO TABLE IT_VBAP
FOR ALL ENTRIES IN IT_VBAK
WHERE VBELN = IT_VBAK-VBELN.
ENDFORM. "GET_DATA
*&--------------------------------------------------------------------*
*& Form FIELDCATALOG_MERGE
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM FIELDCATALOG_MERGE.
X_FIELDCAT_VBAK-FIELDNAME = 'NETWR'.
X_FIELDCAT_VBAK-TABNAME = 'IT_VBAK'.
X_FIELDCAT_VBAK-DO_SUM = 'X'.
APPEND X_FIELDCAT_VBAK TO IT_FIELDCAT_VBAK.
CLEAR X_FIELDCAT_VBAK.
X_FIELDCAT_VBAK-FIELDNAME = 'AUART'.
X_FIELDCAT_VBAK-TABNAME = 'IT_VBAK'.
APPEND X_FIELDCAT_VBAK TO IT_FIELDCAT_VBAK.
CLEAR X_FIELDCAT_VBAK.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'IT_VBAK'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = IT_FIELDCAT_VBAK.
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 = 'IT_VBAP'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = IT_FIELDCAT_VBAK.
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. "FIELDCATALOG_MERGE
*&--------------------------------------------------------------------*
*& Form LAYOUT_CHG
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM LAYOUT_CHG.
L_LAYOUT-ZEBRA = 'X'.
L_LAYOUT-SUBTOTALS_TEXT = 'SUBTOTAL'.
L_LAYOUT-TOTALS_TEXT = 'TOTAL'.
L_LAYOUT-EXPAND_FIELDNAME = 'EXPAND'.
* L_LAYOUT-EXPAND_ALL = 'X'.
ENDFORM. "LAYOUT_CHG
*&--------------------------------------------------------------------*
*& Form SORT_FUNC
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM SORT_FUNC.
X_SORT-SPOS = 1.
X_SORT-FIELDNAME = 'AUART'.
X_SORT-TABNAME = 'IT_VBAK'.
X_SORT-UP = 'X'.
APPEND X_SORT TO IT_SORT.
CLEAR X_SORT.
X_SORT-SPOS = 2.
X_SORT-FIELDNAME = 'NETWR'.
X_SORT-TABNAME = 'IT_VBAK'.
X_SORT-UP = 'X'.
X_SORT-SUBTOT = 'X'.
APPEND X_SORT TO IT_SORT.
CLEAR X_SORT.
ENDFORM. "SORT_FUNC
*&--------------------------------------------------------------------*
*& Form FINAL_DISPLAY
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM FINAL_DISPLAY.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = L_LAYOUT
IT_FIELDCAT = IT_FIELDCAT_VBAK
IT_SORT = IT_SORT
I_TABNAME_HEADER = IT_HEADER
I_TABNAME_ITEM = IT_ITEM
IS_KEYINFO = IT_KEYINFO
TABLES
T_OUTTAB_HEADER = IT_VBAK
T_OUTTAB_ITEM = IT_VBAP
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.
ENDFORM. "FINAL_DISPLAY
Message was edited by: Rahul Kavuri
05-09-2006 5:03 PM
FORM FINAL_DISPLAY.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = L_LAYOUT_MARA
IT_FIELDCAT = IT_FIELDCAT
I_TABNAME = 'IT_MARA'
IT_EVENTS = GT_XEVENTS
IT_SORT = IT_SORT
TABLES
T_OUTTAB = IT_MARA
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 = L_LAYOUT_MAKT
IT_FIELDCAT = IT_FIELDCAT_MAKT
I_TABNAME = 'IT_MAKT'
IT_EVENTS = GT_YEVENTS
TABLES
T_OUTTAB = IT_MAKT
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 = L_LAYOUT_MARC
IT_FIELDCAT = IT_FIELDCAT_MARC
I_TABNAME = 'IT_MARC'
IT_EVENTS = GT_YEVENTS
TABLES
T_OUTTAB = IT_MARC
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
IS_PRINT = GT_PRINT.
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. "FINAL_DISPLAY
<b>you can use the above code in a form after the above code</b>