‎2006 Oct 10 9:12 AM
Hi
I need multiple headerlines in my ALV list, as shown here:
********************************************************
Books--
Paper-electronPaper-Electron--XXXyyy---
====================================================
232 444 21 998 6655 12
*********************************************************
Books, Magasin, and DVD is written as headerline1,
paper, electron, paper, electron, xxx, yyy is written as headerline 2.
Then items line is written.
Can/will anybody help me, please?
Best regards.
L
‎2006 Oct 10 11:18 AM
You can do this in the top-of-page event of ALV.sample code is as below :
data :
IT_EVENTS TYPE SLIS_T_EVENT,
IT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
G_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
*Build the event table
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = IT_EVENTS.
READ TABLE IT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE G_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO IT_EVENTS.
ENDIF.
REFRESH LT_MATNR[].
LOOP AT SO_MATNR.
LT_MATNR-MATNR = SO_MATNR-LOW.
APPEND LT_MATNR.
ENDLOOP.
CLEAR LV_TEXT.
DATA : LV_INDEX TYPE I,LV_MATNR1 LIKE LIPS-MATNR,LV_MATNR2 LIKE LIPS-MATNR.
LV_TEXT = 'Products:'.
DESCRIBE TABLE LT_MATNR LINES LV_INDEX.
IF NOT LV_INDEX IS INITIAL.
READ TABLE LT_MATNR INTO LV_MATNR1 INDEX 1.
READ TABLE LT_MATNR INTO LV_MATNR2 INDEX LV_INDEX.
IF LV_MATNR2 IS INITIAL.LV_MATNR2 = LV_MATNR1.ENDIF.
CONCATENATE LV_TEXT LV_MATNR1 'To' LV_MATNR2 INTO LV_TEXT
SEPARATED BY SPACE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = LV_TEXT.
APPEND LS_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR LS_LINE.
ENDIF.
REFRESH LT_SHTYP[].
IF NOT SO_SHTYP[] IS INITIAL.
LOOP AT SO_SHTYP.
LT_SHTYP-SHTYP = SO_SHTYP-LOW.
APPEND SO_SHTYP.
ENDLOOP.
CLEAR :LV_TEXT,LV_INDEX..
----
FORM TOP_OF_PAGE *
----
........ *
----
FORM TOP_OF_PAGE.
ULINE.
WRITE : SY-TITLE(65) CENTERED, 'Page :' , SY-PAGNO .
ULINE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'ENJOYSAP_LOGO'
IT_LIST_COMMENTARY = IT_LIST_TOP_OF_PAGE.
ULINE.
ENDFORM. "TOP_OF_PAGE
DATA : LV_SHTYP1 LIKE VTTK-SHTYP ,LV_SHTYP2 LIKE VTTK-SHTYP.
DESCRIBE TABLE LT_SHTYP LINES LV_INDEX.
IF NOT LV_INDEX IS INITIAL.
READ TABLE LT_SHTYP INTO LV_SHTYP1 INDEX 1.
READ TABLE LT_SHTYP INTO LV_SHTYP2 INDEX LV_INDEX.
IF LV_SHTYP2 IS INITIAL.LV_SHTYP2 = LV_SHTYP1.ENDIF.
CONCATENATE LV_TEXT LV_SHTYP1 'To' LV_SHTYP2 INTO LV_TEXT
SEPARATED BY SPACE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = LV_TEXT.
APPEND LS_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR LS_LINE.
ENDIF.
ENDIF.
CLEAR LV_TEXT.
CONCATENATE SO_DATE-LOW6(2) SO_DATE-LOW4(2) SO_DATE-LOW+0(4)
INTO LV_LOW SEPARATED BY '.'.
CONCATENATE SO_DATE-HIGH6(2) SO_DATE-HIGH4(2) SO_DATE-HIGH+0(4)
INTO LV_HIGH SEPARATED BY '.'.
IF LV_HIGH = '00.00.0000'. LV_HIGH = LV_LOW.ENDIF.
CONCATENATE 'Posting Date:' LV_LOW 'to' LV_HIGH
INTO LV_TEXT SEPARATED BY SPACE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = LV_TEXT.
APPEND LS_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR LS_LINE.
‎2006 Oct 10 11:18 AM
You can do this in the top-of-page event of ALV.sample code is as below :
data :
IT_EVENTS TYPE SLIS_T_EVENT,
IT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
G_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
*Build the event table
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = IT_EVENTS.
READ TABLE IT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE G_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO IT_EVENTS.
ENDIF.
REFRESH LT_MATNR[].
LOOP AT SO_MATNR.
LT_MATNR-MATNR = SO_MATNR-LOW.
APPEND LT_MATNR.
ENDLOOP.
CLEAR LV_TEXT.
DATA : LV_INDEX TYPE I,LV_MATNR1 LIKE LIPS-MATNR,LV_MATNR2 LIKE LIPS-MATNR.
LV_TEXT = 'Products:'.
DESCRIBE TABLE LT_MATNR LINES LV_INDEX.
IF NOT LV_INDEX IS INITIAL.
READ TABLE LT_MATNR INTO LV_MATNR1 INDEX 1.
READ TABLE LT_MATNR INTO LV_MATNR2 INDEX LV_INDEX.
IF LV_MATNR2 IS INITIAL.LV_MATNR2 = LV_MATNR1.ENDIF.
CONCATENATE LV_TEXT LV_MATNR1 'To' LV_MATNR2 INTO LV_TEXT
SEPARATED BY SPACE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = LV_TEXT.
APPEND LS_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR LS_LINE.
ENDIF.
REFRESH LT_SHTYP[].
IF NOT SO_SHTYP[] IS INITIAL.
LOOP AT SO_SHTYP.
LT_SHTYP-SHTYP = SO_SHTYP-LOW.
APPEND SO_SHTYP.
ENDLOOP.
CLEAR :LV_TEXT,LV_INDEX..
----
FORM TOP_OF_PAGE *
----
........ *
----
FORM TOP_OF_PAGE.
ULINE.
WRITE : SY-TITLE(65) CENTERED, 'Page :' , SY-PAGNO .
ULINE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'ENJOYSAP_LOGO'
IT_LIST_COMMENTARY = IT_LIST_TOP_OF_PAGE.
ULINE.
ENDFORM. "TOP_OF_PAGE
DATA : LV_SHTYP1 LIKE VTTK-SHTYP ,LV_SHTYP2 LIKE VTTK-SHTYP.
DESCRIBE TABLE LT_SHTYP LINES LV_INDEX.
IF NOT LV_INDEX IS INITIAL.
READ TABLE LT_SHTYP INTO LV_SHTYP1 INDEX 1.
READ TABLE LT_SHTYP INTO LV_SHTYP2 INDEX LV_INDEX.
IF LV_SHTYP2 IS INITIAL.LV_SHTYP2 = LV_SHTYP1.ENDIF.
CONCATENATE LV_TEXT LV_SHTYP1 'To' LV_SHTYP2 INTO LV_TEXT
SEPARATED BY SPACE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = LV_TEXT.
APPEND LS_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR LS_LINE.
ENDIF.
ENDIF.
CLEAR LV_TEXT.
CONCATENATE SO_DATE-LOW6(2) SO_DATE-LOW4(2) SO_DATE-LOW+0(4)
INTO LV_LOW SEPARATED BY '.'.
CONCATENATE SO_DATE-HIGH6(2) SO_DATE-HIGH4(2) SO_DATE-HIGH+0(4)
INTO LV_HIGH SEPARATED BY '.'.
IF LV_HIGH = '00.00.0000'. LV_HIGH = LV_LOW.ENDIF.
CONCATENATE 'Posting Date:' LV_LOW 'to' LV_HIGH
INTO LV_TEXT SEPARATED BY SPACE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = LV_TEXT.
APPEND LS_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR LS_LINE.
‎2006 Oct 10 12:22 PM
Hi
Thanks for the reply, but maybe I wasn't clear enough. Sorry.
I have found this image of an ALV list:
http://help.sap.com/saphelp_erp2004/helpdata/en/ef/a2e9eff88311d2b48d006094192fe3/content.htm
I will try to explain a little better
Above Airl and Flig I want to write "Flight info"
Above Price and Curr I want to write "Price info"
The information must be written in its own column - as a header column.
Br.
L
‎2006 Oct 10 12:26 PM
‎2006 Oct 10 12:29 PM
hi,
you can use the event top_of_page and call the FM 'REUSE_ALV_COMMENTARY_WRITE' in side that event.
for ref check this Example BALVST02_GRID
rgds
anver
if hlped mark points