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
1,083

hi

i am a new abaper

i have to develop a new alv report using function modules.

kindly can anyone send any sample code this

thanks in advance

1 ACCEPTED SOLUTION
Read only

p291102
Active Contributor
0 Likes
1,056

Hi,

REPORT YMS_TESTALV .

TYPE-POOLS: SLIS.

DATA: REPID LIKE SY-REPID,

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 with header line. "SLIS_T_EVENT.

DATA: BEGIN OF ITAB OCCURS 0,

VBELN LIKE VBAK-VBELN,

POSNR LIKE VBAP-POSNR,

MALE type i,

female type i,

  • PLANE(10),

  • ACTUAL(10),

  • PLANE1(10),

  • ACTUAL1(10),

END OF ITAB.

START-OF-SELECTION.

REPID = SY-REPID.

SELECT VBELN POSNR FROM VBAP UP TO 20 ROWS INTO TABLE ITAB.

X_FIELDCAT-FIELDNAME = 'VBELN'.

X_FIELDCAT-SELTEXT_L = text-020. "'Planned cost'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 1.

X_FIELDCAT-OUTPUTLEN = 10 .

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'POSNR'.

X_FIELDCAT-SELTEXT_L = text-053. "'Actual cost '.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 2."1.

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 = TEXT-T01. "'FEMALE'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 3.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

it_events-NAME = SLIS_EV_TOP_OF_PAGE.

it_events-FORM = 'TOP_OF_PAGE'.

APPEND iT_EVENTS.

CLEAR it_events .

L_LAYOUT-NO_COLHEAD = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 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(143).

WRITE: / SY-VLINE,

(8) 'LAST YEAR' ,

  • SY-VLINE,

(10) ' ' ,

SY-VLINE,

  • (19) 'CURRENT YEAR'(020) centered,

(19) 'CURRENT YEAR'(020),

sy-vline.

WRITE: / SY-VLINE,

(8) 'PLANE'(053) ,

SY-VLINE,

(8) 'ACTUAL'(054) ,

SY-VLINE,

(8) 'MALE'(056) ,

sy-vline,

(9) 'FEMALE'(057) ,

sy-vline.

FORMAT COLOR OFF.

**

ENDFORM.

Thanks,

Shankar

13 REPLIES 13
Read only

p291102
Active Contributor
0 Likes
1,057

Hi,

REPORT YMS_TESTALV .

TYPE-POOLS: SLIS.

DATA: REPID LIKE SY-REPID,

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 with header line. "SLIS_T_EVENT.

DATA: BEGIN OF ITAB OCCURS 0,

VBELN LIKE VBAK-VBELN,

POSNR LIKE VBAP-POSNR,

MALE type i,

female type i,

  • PLANE(10),

  • ACTUAL(10),

  • PLANE1(10),

  • ACTUAL1(10),

END OF ITAB.

START-OF-SELECTION.

REPID = SY-REPID.

SELECT VBELN POSNR FROM VBAP UP TO 20 ROWS INTO TABLE ITAB.

X_FIELDCAT-FIELDNAME = 'VBELN'.

X_FIELDCAT-SELTEXT_L = text-020. "'Planned cost'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 1.

X_FIELDCAT-OUTPUTLEN = 10 .

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'POSNR'.

X_FIELDCAT-SELTEXT_L = text-053. "'Actual cost '.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 2."1.

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 = TEXT-T01. "'FEMALE'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 3.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

it_events-NAME = SLIS_EV_TOP_OF_PAGE.

it_events-FORM = 'TOP_OF_PAGE'.

APPEND iT_EVENTS.

CLEAR it_events .

L_LAYOUT-NO_COLHEAD = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 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(143).

WRITE: / SY-VLINE,

(8) 'LAST YEAR' ,

  • SY-VLINE,

(10) ' ' ,

SY-VLINE,

  • (19) 'CURRENT YEAR'(020) centered,

(19) 'CURRENT YEAR'(020),

sy-vline.

WRITE: / SY-VLINE,

(8) 'PLANE'(053) ,

SY-VLINE,

(8) 'ACTUAL'(054) ,

SY-VLINE,

(8) 'MALE'(056) ,

sy-vline,

(9) 'FEMALE'(057) ,

sy-vline.

FORMAT COLOR OFF.

**

ENDFORM.

Thanks,

Shankar

Read only

Former Member
0 Likes
1,056

Hello,

Please refer the transaction DWDM for examples. This transaction contains lot of demo examples for different controls. You can also view the source code.

Regs,

Venkat Ramanan N

Read only

Former Member
0 Likes
1,056
Read only

sreeramkumar_madisetty
Active Contributor
0 Likes
1,056

Hi

Open SE38 -> type balv*-> you can get the HitList which shows all ALV demo programs.

You can get the code for your required functinality from these programs easily.

Regards,

kumar

Read only

Former Member
0 Likes
1,056
Read only

Former Member
0 Likes
1,056

http://www.sap-img.com/abap/what-is-alv-programming.htm

http://www.sap-basis-abap.com/sapabap01.htm Here have a look at ABAP list viewer.

http://help.sap.com/saphelp_nw2004s/helpdata/en/66/bc7aab43c211d182b30000e829fbfe/content.htm I think this will help you a lot.

I hope it helps.

Best Regards,

Vibha

*Please mark all the helpful answers

Read only

Former Member
0 Likes
1,056

Hello,

Let me know your email ID. Will forward good documents on ALV.

Regs,

Venkat

Read only

0 Likes
1,056

Hi

my id is itsme0707@rediffmail.com

Read only

Former Member
0 Likes
1,056

See If this example helps. An example of Billing Document

&----


*& Report ZALV_BILL_DOC

&----


REPORT zalv_bill_doc NO STANDARD PAGE HEADING.

&----


*& TABLE POOLS.

&----


TYPE-POOLS: slis.

&----


*& TABLES.

&----


TABLES: vbrk,

vbrp,

lips,

vbap.

&----


*& ALV DECLARATIONS.

&----


DATA: g_prgm TYPE sy-repid,

g_event TYPE slis_t_event,

g_field TYPE slis_t_fieldcat_alv,

g_keyinfo TYPE slis_keyinfo_alv,

g_sort TYPE slis_sortinfo_alv,

g_layout TYPE slis_layout_alv,

g_ltop TYPE slis_t_listheader,

g_top TYPE slis_formname VALUE 'TOP_OF_PAGE',

g_user TYPE slis_formname VALUE 'USER_COMMAND'.

&----


*& structures and internal tables.

&----


DATA: BEGIN OF x_htab,

vbeln TYPE vbrk-vbeln,

fkdat TYPE vbrk-fkdat,

kunag TYPE vbrk-kunag,

name1 TYPE kna1-name1,

waerk TYPE vbrk-waerk,

netwr TYPE vbrk-netwr,

END OF x_htab.

DATA: BEGIN OF x_itab,

vbeln TYPE vbrp-vbeln,

posnr TYPE vbrp-posnr,

matnr TYPE vbrp-matnr,

arktx TYPE vbrp-arktx,

fkimg TYPE vbrp-fkimg,

meins TYPE vbrp-meins,

netwr TYPE vbrp-netwr,

mwsbp TYPE vbrp-mwsbp,

vgbel_d TYPE lips-vbeln,

vgbel_o TYPE lips-vgbel,

END OF x_itab.

  • INTERNAL TABLES------------

DATA: i_htab LIKE STANDARD TABLE OF x_htab WITH HEADER LINE.

DATA: i_itab LIKE STANDARD TABLE OF x_itab WITH HEADER LINE.

&----


*& GLOBAL VERIABLES.

&----


DATA: g_pos TYPE i.

&----


*& SELECTION SCREEN.

&----


SELECTION-SCREEN: BEGIN OF BLOCK blk WITH FRAME TITLE text-t01.

SELECT-OPTIONS: s_vbeln FOR vbrk-vbeln.

SELECT-OPTIONS: s_fkdat FOR vbrk-fkdat.

SELECT-OPTIONS: s_kunag FOR vbrk-kunag.

SELECTION-SCREEN: END OF BLOCK blk.

&----


*& INITIALIZATION.

&----


g_prgm = sy-repid.

PERFORM get_event.

PERFORM get_hfield.

PERFORM get_ifield.

PERFORM get_keyinfo.

&----


*& START OF SELECTION.

&----


START-OF-SELECTION.

PERFORM get_data.

&----


*& END OF SELECTION.

&----


PERFORM comment_write.

PERFORM layput.

PERFORM write_data.

&----


*& Form get_event

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_event .

DATA: l_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = g_event

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.

SORT g_event.

READ TABLE g_event WITH KEY name = slis_ev_top_of_page BINARY SEARCH

INTO l_event.

IF sy-subrc = 0.

MOVE g_top TO l_event-form.

APPEND l_event TO g_event.

ENDIF.

READ TABLE g_event WITH KEY name = slis_ev_user_command BINARY SEARCH

INTO l_event.

IF sy-subrc = 0.

MOVE g_top TO l_event-form.

APPEND l_event TO g_event.

ENDIF.

ENDFORM. " get_event

&----


*& Form get_hfield

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_hfield .

PERFORM add_fields USING:

'VBELN' 'BILLING DOC' 'X' '10' 'I_HTAB',

'FKDAT' 'YEAR' space '10' 'I_HTAB',

'KUNAG' 'CUSTOMER NO' space '10' 'I_HTAB',

'NAME1' 'CUSTOMER NAME' space '10' 'I_HTAB',

'WAERK' 'CURRENCY' space '10' 'I_HTAB',

'NETWR' 'NET AMT' space '10' 'I_HTAB'.

ENDFORM. " get_hfield

&----


*& Form add_fields

&----


  • text

----


  • -->P_0263 text

  • -->P_0264 text

  • -->P_0265 text

  • -->P_0266 text

  • -->P_0267 text

----


FORM add_fields USING value(p_fnam)

value(p_txt)

value(p_key)

value(p_len)

value(p_tab).

DATA: l_field TYPE slis_fieldcat_alv.

l_field-col_pos = g_pos.

l_field-fieldname = p_fnam.

l_field-seltext_m = p_txt.

l_field-key = p_key.

l_field-outputlen = p_len.

l_field-tabname = p_tab.

APPEND l_field TO g_field.

g_pos = g_pos + 1.

ENDFORM. " add_fields

&----


*& Form get_ifield

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_ifield .

PERFORM add_fields USING:

'POSNR' 'ITEM' 'X' '10' 'I_ITAB',

'MATNR' 'MATERIAL NO' space '10' 'I_ITAB',

'ARKTX' 'DESCRIPTION' space '10' 'I_ITAB',

'FKIMG' 'QUANTITY' space '10' 'I_ITAB',

'MEINS' 'U M' space '10' 'I_ITAB',

'NETWR' 'NET AMT' space '10' 'I_ITAB',

'MWSBP' 'TEXT AMT' space '10' 'I_ITAB',

'VGBEL_D' 'DILIVERY DOC' space '10' 'I_ITAB',

'VGBEL_O' 'ORDERED DOC' space '10' 'I_ITAB'.

ENDFORM. " get_ifield

&----


*& Form get_keyinfo

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_keyinfo .

g_keyinfo-header01 = 'VBELN'.

g_keyinfo-item01 = 'VBELN'.

ENDFORM. " get_keyinfo

&----


*& Form get_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_data .

SELECT vbrk~vbeln

vbrk~fkdat

vbrk~kunag

kna1~name1

vbrk~waerk

vbrk~netwr

INTO TABLE i_htab

FROM vbrk

INNER JOIN kna1

ON vbrkkunag EQ kna1kunnr

WHERE vbrk~vbeln IN s_vbeln

AND vbrk~fkdat IN s_fkdat

AND vbrk~kunag IN s_kunag

AND vbrk~fkart EQ 'F2'

AND vbrk~vbtyp EQ 'M'.

break-point.

IF sy-subrc NE 0.

MESSAGE 'NO DATA FOUND1' TYPE 'E'.

STOP.

ELSE.

IF NOT i_htab[] IS INITIAL.

SELECT vbrp~vbeln

vbrp~posnr

vbrp~matnr

vbrp~arktx

vbrp~fkimg

vbrp~meins

vbrp~netwr

vbrp~mwsbp

lips~vbeln

lips~vgbel

INTO TABLE i_itab

FROM vbrp

LEFT OUTER JOIN lips

ON vbrpvgbel EQ lipsvbeln

for all entries in i_htab

WHERE vbrp~vbeln EQ i_htab-vbeln.

IF sy-subrc NE 0.

MESSAGE 'NO DATA FOUND' TYPE 'E'.

ENDIF.

ELSE.

MESSAGE 'NO DATA FOUND2' TYPE 'E'.

ENDIF.

ENDIF.

ENDFORM. " get_data

&----


*& Form comment_write

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM comment_write .

DATA: l_lhdr TYPE slis_listheader.

l_lhdr-typ = 'H'.

l_lhdr-info = 'BILLING DOCUMENT'.

APPEND l_lhdr TO g_ltop.

ENDFORM. " comment_write

&----


*& Form layput

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM layput .

g_layout-detail_popup = 'X'.

g_layout-colwidth_optimize = 'X'.

g_layout-zebra = 'X'.

ENDFORM. " layput

&----


*& Form write_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM write_data .

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

i_callback_program = g_prgm

i_callback_pf_status_set = 'SET_PF_STATUS'

i_callback_user_command = 'USER_COMMAND'

is_layout = g_layout

it_fieldcat = g_field[]

  • 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 = g_event[]

  • IT_EVENT_EXIT =

i_tabname_header = 'I_HTAB'

i_tabname_item = 'I_ITAB'

  • I_STRUCTURE_NAME_HEADER =

  • I_STRUCTURE_NAME_ITEM =

is_keyinfo = g_keyinfo

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • IR_SALV_HIERSEQ_ADAPTER =

  • IT_EXCEPT_QINFO =

  • I_SUPPRESS_EMPTY_DATA = ABAP_FALSE

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab_header = i_htab

t_outtab_item = i_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.

ENDFORM. " write_data

&----


*& Form top_of_page

&----


  • text

----


FORM top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = g_ltop

  • I_LOGO =

  • I_END_OF_LIST_GRID =

  • I_ALV_FORM =

.

ENDFORM. "top_of_page

form set_pf_status.

set pf-status 'S01'.

endform.

Read only

Former Member
0 Likes
1,056

hi,

check the demo programs

by typing <b>BALV</b> in SE38..

Read only

Former Member
Read only

Former Member
0 Likes
1,056

ya thanks to all for the help

Read only

Former Member
0 Likes
1,056

Hi!

Why don't you try <a href="http://www.alvrobot.com.ar">www.ALVROBOT.com.ar</a>?

This site is intended to help ABAP programmers on the creation of ALV reports by automatically generating source code using a specially designed template.