Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

multiple headers in ALV.

Former Member
0 Likes
908

Hi,

I want my output to be displayed in the following format,

-


Bank details | General details

-


name | number | date | name |number |date |

-


That is .. my header should be in two rows. a header and a sub header.

with wat ALV function module i can achieve this.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
876

You can do this using ALV list with some extra coding..

But in other cases(Grid etc it is not possible).

But you will losse theoutput when you go for Layout or sort or sum functionalities. and some times you will loose them.

cehck this image..

http://img100.imageshack.us/img100/3846/output6ef.th.gif

REPORT ZTEST_ALV message-id zz .
 
TYPE-POOLS: SLIS.
DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
L_LAYOUT type slis_layout_alv,
x_events type slis_alv_event,
it_events type SLIS_T_EVENT.
 
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
MALE type i,
female type i,
END OF ITAB.
 
SELECT VBELN
POSNR
FROM VBAP
UP TO 20 ROWS
INTO TABLE ITAB.
 
 
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-SELTEXT_L = 'VBELN'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 1.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
 
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-SELTEXT_L = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 2.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'MALE'.
X_FIELDCAT-SELTEXT_L = 'MALE'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'FEMALE'.
X_FIELDCAT-SELTEXT_L = 'FEMALE'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
x_events-NAME = SLIS_EV_TOP_OF_PAGE.
x_events-FORM = 'TOP_OF_PAGE'.
APPEND x_events TO iT_EVENTS.
CLEAR x_events .
 
L_LAYOUT-NO_COLHEAD = 'X'.
 
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = L_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
it_events = it_events
TABLES
T_OUTTAB = ITAB
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.
 
*-To display the headers for main list
FORMAT COLOR COL_HEADING.
WRITE: / SY-ULINE(103).
WRITE: / SY-VLINE,
(8) ' ' ,
SY-VLINE,
(8) ' ' ,
SY-VLINE,
(19) 'SEX'(015) centered,
sy-vline.
 
WRITE: / SY-VLINE,
(8) 'VBELN'(013) ,
SY-VLINE,
(8) 'POSNR'(014) ,
SY-VLINE,
(8) 'MALE'(016) ,
sy-vline,
(8) 'FMALE'(017) ,
sy-vline.
 
FORMAT COLOR OFF.
 
ENDFORM.

5 REPLIES 5
Read only

Former Member
0 Likes
876

http://www.sap-img.com/fu037.htm

hi run this program....

REPORT zpw_alv_multipleline .TYPE-POOLS slis .

----


  • Data Declarations

----


CONSTANTS : c_len TYPE i VALUE 20 .

TYPES : BEGIN OF ty_t100 ,

sprsl TYPE t100-sprsl ,

arbgb TYPE t100-arbgb ,

msgnr TYPE t100-msgnr ,

text TYPE t100-text ,

fline TYPE t100-text ,

END OF ty_t100 .

TYPES : BEGIN OF ty_wrd ,

text TYPE char20 ,

END OF ty_wrd .

DATA : it_t100 TYPE TABLE OF ty_t100 ,

it_sentence TYPE TABLE OF ty_wrd ,

wa_t100 TYPE ty_t100 ,

wa_word TYPE ty_wrd ,

v_repid TYPE syst-repid ,

v_tabix TYPE syst-tabix .

DATA : it_fld TYPE slis_t_fieldcat_alv ,

it_evt TYPE slis_t_event ,

wa_fld TYPE slis_fieldcat_alv ,

wa_evt TYPE slis_alv_event ,

wa_lay TYPE slis_layout_alv .

----


  • Initialization

----


INITIALIZATION .

v_repid = sy-repid .

----


  • Start of Selection

----


START-OF-SELECTION .

  • Get some test data to display in ALV List

SELECT * INTO TABLE it_t100

FROM t100

WHERE sprsl = 'EN'

AND arbgb = '00' .

LOOP AT it_t100 INTO wa_t100 .

v_tabix = sy-tabix .

CLEAR : it_sentence .

  • Word Wrap the text in multiple lines

CALL FUNCTION 'RKD_WORD_WRAP'

EXPORTING

textline = wa_t100-text

outputlen = c_len

TABLES

out_lines = it_sentence.

IF NOT it_sentence IS INITIAL .

READ TABLE it_sentence INTO wa_word INDEX 1 .

wa_t100-fline = wa_word-text .

MODIFY it_t100 FROM wa_t100 INDEX v_tabix .

ENDIF. ENDLOOP.

  • Prepare fieldcatelog

CLEAR wa_fld .

wa_fld-fieldname = 'SPRSL' .

wa_fld-ref_tabname = 'T100' .

wa_fld-ref_fieldname = 'SPRSL' .

APPEND wa_fld TO it_fld .

CLEAR wa_fld .

wa_fld-fieldname = 'ARBGB' .

wa_fld-ref_tabname = 'T100' .

wa_fld-ref_fieldname = 'ARBGB' .

APPEND wa_fld TO it_fld .

CLEAR wa_fld .

wa_fld-fieldname = 'MSGNR' .

wa_fld-ref_tabname = 'T100' .

wa_fld-ref_fieldname = 'MSGNR' .

APPEND wa_fld TO it_fld .

CLEAR wa_fld .

wa_fld-fieldname = 'FLINE' .

wa_fld-inttype = 'CHAR' .

wa_fld-outputlen = 20 .

wa_fld-intlen = 20.

wa_fld-seltext_l = 'Text' .

wa_fld-ddictxt = 'L' .

APPEND wa_fld TO it_fld .

  • Get event.. we will handle BEFORE and AFTER line output

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

IMPORTING

et_events = it_evt.

READ TABLE it_evt INTO wa_evt WITH KEY name = slis_ev_after_line_output .

wa_evt-form = slis_ev_after_line_output .

MODIFY it_evt FROM wa_evt INDEX sy-tabix .

READ TABLE it_evt INTO wa_evt WITH KEY name = slis_ev_top_of_page .

wa_evt-form = slis_ev_top_of_page .

MODIFY it_evt FROM wa_evt INDEX sy-tabix .

wa_lay-no_colhead = 'X' .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = v_repid

it_fieldcat = it_fld

is_layout = wa_lay

it_events = it_evt

TABLES

t_outtab = it_t100.

----


  • FORM top_of_page *

----


FORM top_of_page .

ULINE AT 1(58) .

FORMAT COLOR COL_HEADING .

WRITE: / sy-vline ,

02 'Header1' ,

10 sy-vline ,

11 'Header1' ,

31 sy-vline ,

32 'Header1' ,

37 sy-vline ,

38 'Header1' ,

58 sy-vline .

WRITE: / sy-vline ,

02 'Header2' ,

10 sy-vline ,

11 'Header2' ,

31 sy-vline ,

32 'Header2' ,

37 sy-vline ,

38 'Header2' ,

58 sy-vline .

ENDFORM. "top_of_page

----


  • FORM AFTER_LINE_OUTPUT *

----


FORM after_line_output USING rs_lineinfo TYPE slis_lineinfo .

CLEAR : it_sentence ,

wa_t100 .

READ TABLE it_t100 INTO wa_t100 INDEX rs_lineinfo-tabindex .

CHECK sy-subrc = 0 .

CALL FUNCTION 'RKD_WORD_WRAP'

EXPORTING

textline = wa_t100-text

outputlen = c_len TABLES

out_lines = it_sentence.

DESCRIBE TABLE it_sentence LINES v_tabix .

CHECK v_tabix > 1 .

LOOP AT it_sentence INTO wa_word FROM 2 .

WRITE: / sy-vline ,

10 sy-vline ,

31 sy-vline ,

37 sy-vline ,

38 wa_word-text ,

58 sy-vline .

ENDLOOP.

ENDFORM . "after_line_output

Read only

Former Member
0 Likes
876

Use TOP-OF-PAGE Event and then in the subroutine for the event, call function

REUSE_ALV_COMMENTARY_WRITE. You can have as many lines as you want.

Read only

Former Member
0 Likes
876

hii

refer to the same program for this in following link

regards

twinkal

Read only

Former Member
0 Likes
877

You can do this using ALV list with some extra coding..

But in other cases(Grid etc it is not possible).

But you will losse theoutput when you go for Layout or sort or sum functionalities. and some times you will loose them.

cehck this image..

http://img100.imageshack.us/img100/3846/output6ef.th.gif

REPORT ZTEST_ALV message-id zz .
 
TYPE-POOLS: SLIS.
DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
L_LAYOUT type slis_layout_alv,
x_events type slis_alv_event,
it_events type SLIS_T_EVENT.
 
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
MALE type i,
female type i,
END OF ITAB.
 
SELECT VBELN
POSNR
FROM VBAP
UP TO 20 ROWS
INTO TABLE ITAB.
 
 
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-SELTEXT_L = 'VBELN'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 1.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
 
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-SELTEXT_L = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 2.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'MALE'.
X_FIELDCAT-SELTEXT_L = 'MALE'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'FEMALE'.
X_FIELDCAT-SELTEXT_L = 'FEMALE'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
x_events-NAME = SLIS_EV_TOP_OF_PAGE.
x_events-FORM = 'TOP_OF_PAGE'.
APPEND x_events TO iT_EVENTS.
CLEAR x_events .
 
L_LAYOUT-NO_COLHEAD = 'X'.
 
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = L_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
it_events = it_events
TABLES
T_OUTTAB = ITAB
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.
 
*-To display the headers for main list
FORMAT COLOR COL_HEADING.
WRITE: / SY-ULINE(103).
WRITE: / SY-VLINE,
(8) ' ' ,
SY-VLINE,
(8) ' ' ,
SY-VLINE,
(19) 'SEX'(015) centered,
sy-vline.
 
WRITE: / SY-VLINE,
(8) 'VBELN'(013) ,
SY-VLINE,
(8) 'POSNR'(014) ,
SY-VLINE,
(8) 'MALE'(016) ,
sy-vline,
(8) 'FMALE'(017) ,
sy-vline.
 
FORMAT COLOR OFF.
 
ENDFORM.

Read only

Former Member
0 Likes
876

thanks for answering my question....