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

ALV

Former Member
0 Likes
533

Hello Everybody

I have one internal table with 3 fields viz. belnr (doc no), document (document type i.e. stmt of a/c, PO, Puch requisition, bill of loading etc) and third one is flag.

I am updating the values of flag depending on the entries in the db table for the document type of that particular document no.

Now I want to display.. doc type as headings and the flag values for the belnr (doc no) horizontally under those headings..

In short i want to display entries in itab horizontally for each belnr

so if anybody had the same kind of requirement, plz give me the suggestions

Thanks in advance

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
502

Hi,

You can look at the following code may it will help you to print the value as per your requirement.

I hope it will give you some direction to proceed..

&----


*& Report ZKEERTHI_ALV4 *

*& *

&----


*& *

*& *

&----


REPORT YUP_TEST2 .

&----


*& tables declaration

&----


tables: vbak.

&----


*& type-pools declaration

&----


type-pools: slis.

&----


*& data declaration

&----


data: g_repid type sy-repid.

DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "mara

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

X_KEYINFO TYPE SLIS_KEYINFO_ALV,

IT_HEADER TYPE SLIS_TABNAME,

IT_ITEM TYPE SLIS_TABNAME. .

DATA: BEGIN OF IT_VBAK occurs 0,

VBELN LIKE VBAK-VBELN,

AUDAT LIKE VBAK-AUDAT,

AUART LIKE VBAK-AUART,

NETWR LIKE VBAK-NETWR,

END OF IT_VBAK.

DATA: BEGIN OF IT_VBAP OCCURS 0,

VBELN LIKE VBAP-VBELN,

POSNR LIKE VBAP-POSNR,

MATNR LIKE VBAP-MATNR,

CHARG LIKE VBAP-CHARG,

PSTYV LIKE VBAP-PSTYV,

END OF IT_VBAP.

&----


*& initialisation

&----


initialization.

g_repid = sy-repid.

IT_HEADER = 'IT_VBAK'.

IT_ITEM = 'IT_VBAP'.

CLEAR X_KEYINFO.

X_KEYINFO-HEADER01 = 'VBELN'.

" comparing the keys and relating the header and item internal tables

X_KEYINFO-ITEM01 = 'VBELN'.

X_KEYINFO-HEADER02 = SPACE.

X_KEYINFO-ITEM02 = 'POSNR'.

&----


*& selection screen

&----


selection-screen begin of block b with frame title text-001.

select-options: s_vbeln for vbak-vbeln,

s_auart for vbak-auart.

selection-screen end of block b.

&----


*& start of selection

&----


start-of-selection.

perform get_vbak.

perform get_vbap.

&----


*& Form get_vbak

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_vbak .

select vbeln

audat

auart

netwr from vbak

into table it_vbak

where vbeln in s_vbeln and

auart in s_auart.

ENDFORM. " get_vbak

&----


*& Form get_vbap

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_vbap .

select vbeln

posnr

matnr

charg

pstyv from vbap

into table it_vbap

for all entries in it_vbak

where vbeln = it_vbak-vbeln.

ENDFORM. " get_vbap

&----


*& end of selection

&----


end-of-selection.

perform modify_fieldcat.

PERFORM HIERARCHICAL_LIST.

&----


*& Form modify_fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_fieldcat .

clear wa_fieldcat.

WA_FIELDCAT-TABNAME = 'IT_VBAK'.

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-SELTEXT_L = 'DOC NO'.

WA_FIELDCAT-COL_POS = 1.

WA_FIELDCAT-OUTPUTLEN = 10.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-SELTEXT_L = 'DOC NO'.

WA_FIELDCAT-OUTPUTLEN = 10.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'POSNR'.

WA_FIELDCAT-SELTEXT_L = 'SALES ITEM'.

WA_FIELDCAT-OUTPUTLEN = 6.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_L = 'MAT NO'.

WA_FIELDCAT-OUTPUTLEN = 18.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'CHARG'.

WA_FIELDCAT-SELTEXT_L = 'BATCH NO'.

WA_FIELDCAT-OUTPUTLEN = 10.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'PSTYV'.

WA_FIELDCAT-SELTEXT_L = 'ITEM CAT'.

WA_FIELDCAT-OUTPUTLEN = 4.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. " modify_fieldcat

&----


*& Form HIERARCHICAL_LIST

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM HIERARCHICAL_LIST .

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = G_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • IS_LAYOUT =

IT_FIELDCAT = IT_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

I_TABNAME_HEADER = IT_HEADER

I_TABNAME_ITEM = IT_ITEM

  • I_STRUCTURE_NAME_HEADER =

  • I_STRUCTURE_NAME_ITEM =

IS_KEYINFO = X_KEYINFO

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

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. " HIERARCHICAL_LIST

Thanks,

PRamod

Hello Everybody

I have one internal table with 3 fields viz. belnr (doc no), document (document type i.e. stmt of a/c, PO, Puch requisition, bill of loading etc) and third one is flag.

I am updating the values of flag depending on the entries in the db table for the document type of that particular document no.

Now I want to display.. doc type as headings and the flag values for the belnr (doc no) horizontally under those headings..

In short i want to display entries in itab horizontally for each belnr

so if anybody had the same kind of requirement, plz give me the suggestions

Thanks in advance

3 REPLIES 3
Read only

Former Member
0 Likes
502

Hi,

You can use FM REUSE_ALV_HIERSEQ_LIST_DISPLAY to diplay

the info.

Thanks,

Pramod

Read only

dani_mn
Active Contributor
0 Likes
502

Hi,

Try

FM 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'.

Copy this report

REPORT ZWA_ALV_HEADER_ITEM .

type-pools:slis.

tables: bkpf,bseg.

data:begin of it_bkpf occurs 0,

bukrs like bkpf-bukrs,

belnr like bkpf-belnr,

gjahr like bkpf-gjahr,

blart like bkpf-BLART,

bldat like bkpf-BLDAT,

end of it_bkpf.

data: begin of it_bseg occurs 0,

buk like bseg-bukrs,

sno like bseg-belnr,

year like bseg-gjahr,

hkont like bseg-HKONT,

kostl like bseg-kostl,

wrbtr like bseg-wrbtr,

end of it_bseg.

data v_repid like sy-repid.

data it_fieldcat type slis_fieldcat_alv occurs 0 with header line.

data x_keyinfo type slis_keyinfo_alv.

select-options: bukrs for bkpf-bukrs,

gjahr for bkpf-gjahr,

belnr for bkpf-belnr,

blart for bkpf-blart,

bldat for bkpf-bldat.

initialization.

v_repid = sy-repid.

*s_ebeln-low = '1000'.

*s_ebeln-sign = 'I'.

*s_ebeln-option = 'EQ'.

*S_ebeln-high = '5000'.

start-of-selection.

perform get_data.

perform get_field.

perform get_key.

perform key_modify.

perform display.

&----


*& Form get_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_data.

select bukrs belnr gjahr

blart bldat

from bkpf into table it_bkpf

where belnr in belnr AND

bukrs in bukrs AND

gjahr in gjahr AND

blart in blart AND

bldat in bldat.

select bukrs belnr

gjahr hkont

kostl wrbtr

from bseg into table it_bseg

where belnr in belnr AND

bukrs in bukrs AND

gjahr in gjahr.

endform. " get_data

&----


*& Form get_field

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_field.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'IT_BKPF'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fieldcat[] .

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'IT_BSEG'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fieldcat[]

  • 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.

endform. " get_field

&----


*& Form get_key

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_key.

x_keyinfo-header01 = 'BUKRS'.

x_keyinfo-item01 = 'BUK'.

x_keyinfo-header02 = 'BELNR'.

x_keyinfo-item02 = 'SNO'.

x_keyinfo-header03 = 'GJAHR'.

x_keyinfo-item03 = 'YEAR'.

endform. " get_key

&----


*& Form DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form display.

call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

exporting

  • I_INTERFACE_CHECK = ' '

i_callback_program = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • IS_LAYOUT =

it_fieldcat = it_fieldcat[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

i_tabname_header = 'IT_BKPF'

i_tabname_item = 'IT_BSEG'

  • I_STRUCTURE_NAME_HEADER =

  • I_STRUCTURE_NAME_ITEM =

is_keyinfo = x_keyinfo

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

tables

t_outtab_header = it_bkpf

t_outtab_item = it_bseg

  • 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. " DISPLAY

&----


*& Form key_modify

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form key_modify.

loop at it_fieldcat. "Avoid Repitiotion of data.

case it_fieldcat-fieldname.

when 'SNO'.

if it_fieldcat-tabname = 'IT_BKPF'.

it_fieldcat-no_out = 'X'.

it_fieldcat-key = space.

endif.

endcase.

modify it_fieldcat index sy-tabix.

endloop.

.

endform.

Regards,

Wasim Ahmed

Read only

Former Member
0 Likes
503

Hi,

You can look at the following code may it will help you to print the value as per your requirement.

I hope it will give you some direction to proceed..

&----


*& Report ZKEERTHI_ALV4 *

*& *

&----


*& *

*& *

&----


REPORT YUP_TEST2 .

&----


*& tables declaration

&----


tables: vbak.

&----


*& type-pools declaration

&----


type-pools: slis.

&----


*& data declaration

&----


data: g_repid type sy-repid.

DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "mara

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

X_KEYINFO TYPE SLIS_KEYINFO_ALV,

IT_HEADER TYPE SLIS_TABNAME,

IT_ITEM TYPE SLIS_TABNAME. .

DATA: BEGIN OF IT_VBAK occurs 0,

VBELN LIKE VBAK-VBELN,

AUDAT LIKE VBAK-AUDAT,

AUART LIKE VBAK-AUART,

NETWR LIKE VBAK-NETWR,

END OF IT_VBAK.

DATA: BEGIN OF IT_VBAP OCCURS 0,

VBELN LIKE VBAP-VBELN,

POSNR LIKE VBAP-POSNR,

MATNR LIKE VBAP-MATNR,

CHARG LIKE VBAP-CHARG,

PSTYV LIKE VBAP-PSTYV,

END OF IT_VBAP.

&----


*& initialisation

&----


initialization.

g_repid = sy-repid.

IT_HEADER = 'IT_VBAK'.

IT_ITEM = 'IT_VBAP'.

CLEAR X_KEYINFO.

X_KEYINFO-HEADER01 = 'VBELN'.

" comparing the keys and relating the header and item internal tables

X_KEYINFO-ITEM01 = 'VBELN'.

X_KEYINFO-HEADER02 = SPACE.

X_KEYINFO-ITEM02 = 'POSNR'.

&----


*& selection screen

&----


selection-screen begin of block b with frame title text-001.

select-options: s_vbeln for vbak-vbeln,

s_auart for vbak-auart.

selection-screen end of block b.

&----


*& start of selection

&----


start-of-selection.

perform get_vbak.

perform get_vbap.

&----


*& Form get_vbak

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_vbak .

select vbeln

audat

auart

netwr from vbak

into table it_vbak

where vbeln in s_vbeln and

auart in s_auart.

ENDFORM. " get_vbak

&----


*& Form get_vbap

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_vbap .

select vbeln

posnr

matnr

charg

pstyv from vbap

into table it_vbap

for all entries in it_vbak

where vbeln = it_vbak-vbeln.

ENDFORM. " get_vbap

&----


*& end of selection

&----


end-of-selection.

perform modify_fieldcat.

PERFORM HIERARCHICAL_LIST.

&----


*& Form modify_fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_fieldcat .

clear wa_fieldcat.

WA_FIELDCAT-TABNAME = 'IT_VBAK'.

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-SELTEXT_L = 'DOC NO'.

WA_FIELDCAT-COL_POS = 1.

WA_FIELDCAT-OUTPUTLEN = 10.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-SELTEXT_L = 'DOC NO'.

WA_FIELDCAT-OUTPUTLEN = 10.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'POSNR'.

WA_FIELDCAT-SELTEXT_L = 'SALES ITEM'.

WA_FIELDCAT-OUTPUTLEN = 6.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_L = 'MAT NO'.

WA_FIELDCAT-OUTPUTLEN = 18.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'CHARG'.

WA_FIELDCAT-SELTEXT_L = 'BATCH NO'.

WA_FIELDCAT-OUTPUTLEN = 10.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'PSTYV'.

WA_FIELDCAT-SELTEXT_L = 'ITEM CAT'.

WA_FIELDCAT-OUTPUTLEN = 4.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. " modify_fieldcat

&----


*& Form HIERARCHICAL_LIST

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM HIERARCHICAL_LIST .

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = G_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • IS_LAYOUT =

IT_FIELDCAT = IT_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

I_TABNAME_HEADER = IT_HEADER

I_TABNAME_ITEM = IT_ITEM

  • I_STRUCTURE_NAME_HEADER =

  • I_STRUCTURE_NAME_ITEM =

IS_KEYINFO = X_KEYINFO

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

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. " HIERARCHICAL_LIST

Thanks,

PRamod