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

simple ALV example

Former Member
0 Likes
2,374

hi all,

kindly write the simple example of ALV.

SO THAT I CAN UNDERSTAND ABOUT ALV

8 REPLIES 8
Read only

Former Member
0 Likes
1,052

hi there...

follow thefollowing code ... it wil give u a clear understanding of alv...

DO REWARD IF HELPFUL!!!

A Simple ABAP ALV LIST VIEWER Example

This ALV program have all the basic report requirements such as page heading, page no, sub-total and a grand total.

  • This is a basic ALV with the followings:-

  • - Page Heading

  • - Page No

  • - Sub-Total

  • - Grand Total

REPORT ZALV.

TYPE-POOLS: SLIS.

DATA: G_REPID LIKE SY-REPID,

GS_PRINT TYPE SLIS_PRINT_ALV,

GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,

GT_EVENTS TYPE SLIS_T_EVENT,

GT_SORT TYPE SLIS_T_SORTINFO_ALV,

GS_LAYOUT TYPE SLIS_LAYOUT_ALV,

GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

FIELDCAT_LN LIKE LINE OF GT_FIELDCAT,

COL_POS TYPE I.

DATA: BEGIN OF ITAB,

FIELD1(5) TYPE C,

FIELD2(5) TYPE C,

FIELD3(5) TYPE P DECIMALS 2,

END OF ITAB.

DATA: BEGIN OF ITAB1 OCCURS 0.

INCLUDE STRUCTURE ITAB.

DATA: END OF ITAB1.

DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0.

INCLUDE STRUCTURE ITAB.

DATA: END OF ITAB_FIELDCAT.

  • Print Parameters

PARAMETERS:

P_PRINT AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE

P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO

P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE

P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE

P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO

P_RESERV TYPE I. "NO OF FOOTER LINE

INITIALIZATION.

G_REPID = SY-REPID.

PERFORM PRINT_BUILD USING GS_PRINT. "Print PARAMETERS

START-OF-SELECTION.

  • TEST DATA

MOVE 'TEST1' TO ITAB1-FIELD1.

MOVE 'TEST1' TO ITAB1-FIELD2.

MOVE '10.00' TO ITAB1-FIELD3.

APPEND ITAB1.

MOVE 'TEST2' TO ITAB1-FIELD1.

MOVE 'TEST2' TO ITAB1-FIELD2.

MOVE '20.00' TO ITAB1-FIELD3.

APPEND ITAB1.

DO 50 TIMES.

APPEND ITAB1.

ENDDO.

END-OF-SELECTION.

PERFORM BUILD.

PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS.

PERFORM COMMENT_BUILD CHANGING GT_LIST_TOP_OF_PAGE.

PERFORM CALL_ALV.

FORM BUILD.

  • DATA FIELD CATALOG

  • Explain Field Description to ALV

DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV.

CLEAR FIELDCAT_IN.

FIELDCAT_LN-FIELDNAME = 'FIELD1'.

FIELDCAT_LN-TABNAME = 'ITAB1'.

*FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT

FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY

FIELDCAT_LN-NO_OUT = ' '.

FIELDCAT_LN-SELTEXT_L = 'HEAD1'.

APPEND FIELDCAT_LN TO GT_FIELDCAT.

CLEAR FIELDCAT_IN.

FIELDCAT_LN-FIELDNAME = 'FIELD2'.

FIELDCAT_LN-TABNAME = 'ITAB1'.

FIELDCAT_LN-NO_OUT = 'X'.

FIELDCAT_LN-SELTEXT_L = 'HEAD2'.

APPEND FIELDCAT_LN TO GT_FIELDCAT.

CLEAR FIELDCAT_IN.

FIELDCAT_LN-FIELDNAME = 'FIELD3'.

FIELDCAT_LN-TABNAME = 'ITAB1'.

FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY

FIELDCAT_LN-REF_TABNAME = 'MSEG'. "<- REF TABLE IN THE DICTIONNARY

FIELDCAT_LN-NO_OUT = ' '.

FIELDCAT_LN-DO_SUM = 'X'. "SUM UPON DISPLAY

APPEND FIELDCAT_LN TO GT_FIELDCAT.

  • DATA SORTING AND SUBTOTAL

DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.

CLEAR GS_SORT.

GS_SORT-FIELDNAME = 'FIELD1'.

GS_SORT-SPOS = 1.

GS_SORT-UP = 'X'.

GS_SORT-SUBTOT = 'X'.

APPEND GS_SORT TO GT_SORT.

CLEAR GS_SORT.

GS_SORT-FIELDNAME = 'FIELD2'.

GS_SORT-SPOS = 2.

GS_SORT-UP = 'X'.

*GS_SORT-SUBTOT = 'X'.

APPEND GS_SORT TO GT_SORT.

ENDFORM.

FORM CALL_ALV.

  • ABAP List Viewer

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = G_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

I_STRUCTURE_NAME = 'ITAB1'

IS_LAYOUT = GS_LAYOUT

IT_FIELDCAT = GT_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

IT_SORT = GT_SORT[]

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = GT_EVENTS[]

  • IT_EVENT_EXIT =

IS_PRINT = GS_PRINT

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = ITAB1

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

ENDFORM.

  • HEADER FORM

FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT.

CONSTANTS:

GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.

*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'.

DATA: LS_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = LT_EVENTS.

READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

INTO LS_EVENT.

IF SY-SUBRC = 0.

MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.

APPEND LS_EVENT TO LT_EVENTS.

ENDIF.

  • define END_OF_PAGE event

  • READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE

  • INTO LS_EVENT.

  • IF SY-SUBRC = 0.

  • MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.

  • APPEND LS_EVENT TO LT_EVENTS.

  • ENDIF.

ENDFORM.

FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

DATA: GS_LINE TYPE SLIS_LISTHEADER.

CLEAR GS_LINE.

GS_LINE-TYP = 'H'.

GS_LINE-INFO = 'HEADER 1'.

APPEND GS_LINE TO GT_TOP_OF_PAGE.

CLEAR GS_LINE.

GS_LINE-TYP = 'S'.

GS_LINE-KEY = 'STATUS 1'.

GS_LINE-INFO = 'INFO 1'.

APPEND GS_LINE TO GT_TOP_OF_PAGE.

GS_LINE-KEY = 'STATUS 2'.

GS_LINE-INFO = 'INFO 2'.

APPEND GS_LINE TO GT_TOP_OF_PAGE.

  • CLEAR GS_LINE.

  • GS_LINE-TYP = 'A'.

  • GS_LINE-INFO = 'ACTION'.

  • APPEND GS_LINE TO GT_TOP_OF_PAGE.

ENDFORM.

FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.

WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED.

ENDFORM.

FORM END_OF_PAGE.

WRITE at (sy-linsz) sy-pagno CENTERED.

ENDFORM.

  • PRINT SETTINGS

FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV.

LS_PRINT-PRINT = P_PRINT. "PRINT IMMEDIATE

LS_PRINT-NO_PRINT_SELINFOS = P_NOSINF. "NO SELECTION INFO

LS_PRINT-NO_COVERPAGE = P_NOCOVE. "NO COVER PAGE

LS_PRINT-NO_NEW_PAGE = P_NONEWP.

LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO

LS_PRINT-RESERVE_LINES = P_RESERV.

ENDFORM.

*END OF ZALV PROGRAM

Read only

aris_hidalgo
Contributor
0 Likes
1,052

Hi,

In SE38, Please type in SALV* or ALV and press. F4. From there you can see different ALV examples.

Hope it helps...

P.S. Please award points if it helps...

Read only

mahaboob_pathan
Contributor
0 Likes
1,052

hi,

REPORT ZSTEST_036 .

TABLES VBAK.

TYPE-POOLS SLIS.

DATA ITAB LIKE VBAK OCCURS 0 WITH HEADER LINE.

*--ALV

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA: WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: I_LAYOUT TYPE SLIS_LAYOUT_ALV.

*--

SELECT-OPTIONS S_VBELN FOR VBAK-VBELN.

START-OF-SELECTION.

SELECT * FROM VBAK INTO TABLE ITAB WHERE VBELN IN S_VBELN.

END-OF-SELECTION.

*--1

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-SELTEXT_L = 'Sal doc no'.

WA_FIELDCAT-KEY = 'X'.

WA_FIELDCAT-HOTSPOT = 'X'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

*--2

WA_FIELDCAT-FIELDNAME = 'ERDAT'.

WA_FIELDCAT-SELTEXT_L = 'Date'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

*--3

WA_FIELDCAT-FIELDNAME = 'KUNNR'.

WA_FIELDCAT-SELTEXT_L = 'Customer'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

*--LAYOUT

I_LAYOUT-ZEBRA = 'X'.

I_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

*---OUTPUT

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = I_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

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

&----


  • text

----


FORM TOP_OF_PAGE.

DATA L_HEADER TYPE SLIS_T_LISTHEADER.

DATA WA_HEADER TYPE SLIS_LISTHEADER.

WA_HEADER-TYP = 'S'.

WA_HEADER-INFO = 'Sales details'.

APPEND WA_HEADER TO L_HEADER.

WA_HEADER-TYP = 'H'.

WA_HEADER-INFO = 'Sales details'.

APPEND WA_HEADER TO L_HEADER.

WA_HEADER-TYP = 'A'.

WA_HEADER-INFO = 'Sales details'.

APPEND WA_HEADER TO L_HEADER.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = L_HEADER

I_LOGO = 'ENJOYSAP_LOGO'

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

Read only

Former Member
0 Likes
1,052

Hi,

Pls go through this program : BCALV_GRID_DEMO

PROGRAM TEST.

DATA: OK_CODE LIKE SY-UCOMM,

GT_SFLIGHT TYPE TABLE OF SFLIGHT,

G_CONTAINER TYPE SCRFNAME VALUE 'BCALV_GRID_DEMO_0100_CONT1',

GRID1 TYPE REF TO CL_GUI_ALV_GRID,

G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.

----


  • MAIN *

----


SELECT * FROM SFLIGHT INTO TABLE GT_SFLIGHT.

CALL SCREEN 100.

----


  • MODULE PBO OUTPUT *

----


MODULE PBO OUTPUT.

SET PF-STATUS 'MAIN100'.

IF G_CUSTOM_CONTAINER IS INITIAL.

CREATE OBJECT G_CUSTOM_CONTAINER

EXPORTING CONTAINER_NAME = G_CONTAINER.

CREATE OBJECT GRID1

EXPORTING I_PARENT = G_CUSTOM_CONTAINER.

CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY

EXPORTING I_STRUCTURE_NAME = 'SFLIGHT'

CHANGING IT_OUTTAB = GT_SFLIGHT.

ENDIF.

ENDMODULE.

----


  • MODULE PAI INPUT *

----


MODULE PAI INPUT.

  • to react on oi_custom_events:

call method cl_gui_cfw=>dispatch.

CASE OK_CODE.

WHEN 'EXIT'.

PERFORM EXIT_PROGRAM.

WHEN OTHERS.

  • do nothing

ENDCASE.

CLEAR OK_CODE.

ENDMODULE.

----


  • FORM EXIT_PROGRAM *

----


FORM EXIT_PROGRAM.

  • CALL METHOD G_CUSTOM_CONTAINER->FREE.

  • CALL METHOD CL_GUI_CFW=>FLUSH.

LEAVE PROGRAM.

ENDFORM.

If it is useful reward points

Read only

Former Member
0 Likes
1,052

Hi,

ABAP List Viewer

The common features of report are column alignment, sorting, filtering, subtotals, totals etc. To implement these, a lot of coding and logic is to be put. To avoid that we can use a concept called ABAP List Viewer (ALV).

This helps us to implement all the features mentioned very effectively.

Using ALV, We can have three types of reports:

1. Simple Report

2. Block Report

3. Hierarchical Sequential Report

There are some function modules which will enable to produce the above reports without much effort.

All the definitions of internal tables, structures and constants are declared in a type-pool called SLIS.

1. SIMPLE REPORT.

The important function modules are

a. Reuse_alv_list_display

b. Reuse_alv_fieldcatalog_merge

c. Reuse_alv_events_get

d. Reuse_alv_commentary_write

e. Reuse_alv_grid_display

A. REUSE_ALV_LIST_DISPLAY : This is the function module which prints the data.

The important parameters are :

I. Export :

i. I_callback_program : report id

ii. I_callback_pf_status_set : routine where a user can set his own pf status or change the functionality of the existing pf status

iii. I_callback_user_command : routine where the function codes are handled

iv. I_structure name : name of the dictionary table

v. Is_layout : structure to set the layout of the report

vi. It_fieldcat : internal table with the list of all fields and their attributes which are to be printed (this table can be populated automatically by the function module REUSE_ALV_FIELDCATALOG_MERGE

vii. It_events : internal table with a list of all possible events of ALV and their corresponding form names.

II. Tables :

i. t_outtab : internal table with the data to be output

B. REUSE_ALV_FIELDCATALOG_MERGE : This function module is used to populate a fieldcatalog which is essential to display the data in ALV. If the output data is from a single dictionary table and all the columns are selected, then we need not exclusively create the field catalog. Its enough to mention the table name as a parameter(I_structure name) in the REUSE_ALV_LIST_DISPLAY. But in other cases we need to create it.

The Important Parameters are :

I. Export :

i. I_program_name : report id

ii. I_internal_tabname : the internal output table

iii. I_inclname : include or the report name where all the dynamic forms are handled.

II Changing

ct_fieldcat : an internal table with the type SLIS_T_FIELDCAT_ALV which is

declared in the type pool SLIS.

C. REUSE_ALV_EVENTS_GET : Returns table of possible events for a list type

Parameters :

I. Import :

Et_Events : The event table is returned with all possible CALLBACK events

for the specified list type (column 'NAME'). For events to be processed by Callback, their 'FORM' field must be filled. If the field is initialized, the event is ignored. The entry can be read from the event table, the field 'FORM' filled and the entry modified using constants from the type pool SALV.

II. Export :

I_List_type :

0 = simple list REUSE_ALV_LIST_DISPLAY

1 = hierarchcal-sequential list REUSE_ALV_HIERSEQ_LIST_DISPLAY

2 = simple block list REUSE_ALV_BLOCK_LIST_APPEND

3 = hierarchical-sequential block list

REUSE_ALV_BLOCK_LIST_HS_APPEND

D. REUSE_ALV_COMMENTARY_WRITE : This is used in the Top-of-page event to print the headings and other comments for the list.

Parameters :

I. it_list_commentary : internal table with the headings of the type slis_t_listheader.

This internal table has three fields :

Typ : ‘H’ – header, ‘S’ – selection , ‘A’ - action

Key : only when typ is ‘S’.

Info : the text to be printed

E. REUSE_ALV_GRID_DISPLAY : A new function in 4.6 version, to display the results in grid rather than as a preview.

Parameters : same as reuse_alv_list_display

This is an example for simple list.

2. BLOCK REPORT

This is used to have multiple lists continuously.

The important functions used in this report are:

A. REUSE_ALV_BLOCK_LIST_INIT

B. REUSE_ALV_BLOCK_LIST_APPEND

C. REUSE_ALV_BLOCK_LIST_HS_APPEND

D. REUSE_ALV_BLOCK_LIST_DISPLAY

A. REUSE_ALV_BLOCK_LIST_INIT

Parameters:

I. I_CALLBACK_PROGRAM

II. I_CALLBACK_PF_STATUS_SET

III. I_CALLBACK_USER_COMMAND

This function module is used to set the default gui status etc.

B. REUSE_ALV_BLOCK_LIST_APPEND

Parameters :

Export :

I. is_layout : layout settings for block

II. it_fieldcat : field catalog

III. i_tabname : internal table name with output data

IV. it_events : internal table with all possible events

Tables :

i. t_outtab : internal table with output data.

This function module adds the data to the block.

Repeat this function for all the different blocks to be displayed one after the other.

C. REUSE_ALV_BLOCK_LIST_HS_APPEND

This function module is used for hierarchical sequential blocks.

D. REUSE_ALV_BLOCK_LIST_DISPLAY

Parameters : All the parameters are optional.

This function module display the list with data appended by the above function.

Here the functions REUSE_ALV_FIELDCATALOG_MERGE, REUSE_ALV_EVENTS_GET, REUSE_ALV_COMMENTARY_WRITE can be used.

3. Hierarchical reports :

Hierarchical sequential list output.

The function module is

A. REUSE_ALV_HIERSEQ_LIST_DISPLAY

Parameters:

I. Export:

i. I_CALLBACK_PROGRAM

ii. I_CALLBACK_PF_STATUS_SET

iii. I_CALLBACK_USER_COMMAND

iv. IS_LAYOUT

v. IT_FIELDCAT

vi. IT_EVENTS

vii. i_tabname_header : Name of the internal table in the program containing the

output data of the highest hierarchy level.

viii. i_tabname_item : Name of the internal table in the program containing the

output data of the lowest hierarchy level.

ix. is_keyinfo : This structure contains the header and item table field

names which link the two tables (shared key).

II. Tables

i. t_outtab_header : Header table with data to be output

ii. t_outtab_item : Name of the internal table in the program containing the

output data of the lowest hierarchy level.

slis_t_fieldcat_alv : This internal table contains the field attributes. This internal table can be populated automatically by using ‘REUSE_ALV_FIELDCATALOG_MERGE’.

Important Attributes :

A. col_pos : position of the column

B. fieldname : internal fieldname

C. tabname : internal table name

D. ref_fieldname : fieldname (dictionary)

E. ref_tabname : table (dictionary)

F. key(1) : column with key-color

G. icon(1) : icon

H. symbol(1) : symbol

I. checkbox(1) : checkbox

J. just(1) : (R)ight (L)eft (C)ent.

K. do_sum(1) : sum up

L. no_out(1) : (O)blig.(X)no out

M. outputlen : output length

N. seltext_l : long key word

O. seltext_m : middle key word

P. seltext_s : short key word

Q. reptext_ddic : heading (ddic)

R. ddictxt(1) : (S)hort (M)iddle (L)ong

S. datatype : datatype

T. hotspot(1) : hotspot

with regards,

sowjanya

Read only

Former Member
0 Likes
1,052

hi

go to SE38 and type BCALV* and press F4 to get lis of all ALV demo Programs.

please reward me if it is usefull for u.

Regards,

Munvar Basha.

Read only

Former Member
0 Likes
1,052

Hi,

Try this example.

If u want to write any ALV report,you need to follow some steps

1.Take the structure with required fields and retrieve the data.

2.Develop the fieldcatalog for this structure.

3.Develop layout(optional)

4.Call the function module to display the records.

TABLES VBAK,VBAP.

TYPE-POOLS SLIS.

  • Data Declaration

TYPES: BEGIN OF ITAB,

VBELN TYPE VBAK-VBELN,

ERDAT TYPE VBAK-ERDAT,

ERNAM TYPE VBAK-ERNAM,

AUDAT TYPE VBAK-AUDAT,

VBTYP TYPE VBAK-VBTYP,

NETWR TYPE VBAK-NETWR,

VKORG TYPE VBAK-VKORG,

VKGRP TYPE VBAK-VKGRP,

POSNR TYPE VBAP-POSNR,

END OF ITAB.

DATA IT_VBAK TYPE STANDARD TABLE OF T_VBAK INITIAL SIZE 0.

  • ALV Data Declaration

DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

GD_LAYOUT TYPE SLIS_LAYOUT_ALV,

GD_REPID TYPE SY-REPID,

  • I_EVENTS TYPE SLIS_T_EVENT,

  • W_EVENTS LIKE LINE OF I_EVENTS.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BLD_FLDCAT.

PERFORM BLD_LAYOUT.

PERFORM DISPLAY_ALV_REPORT.

  • Build Field Catalog for ALV Report

FORM BLD_FLDCAT.

FLDCAT-FIELDNAME = 'VBELN'.

FLDCAT-SELTEXT_M = 'Sales Document'.

FLDCAT-COL_POS = 0.

*FLDCAT-EMPHASIZE = 'C411'.

FLDCAT-OUTPUTLEN = 20.

FLDCAT-KEY = 'X'.

*FLDCAT-NO_OUT = 'X'. "It hides the field from display

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'ERDAT'.

FLDCAT-SELTEXT_L = 'Record Date created'.

FLDCAT-COL_POS = 1.

FLDCAT-KEY = 'X'.

FLDCAT-JUST = 'R'. "Right(R)/Left(L)/Center(C) Justification

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'ERNAM'.

FLDCAT-SELTEXT_L = 'Cteated Object Person Name'.

FLDCAT-COL_POS = 2.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'AUDAT'.

FLDCAT-SELTEXT_M = 'Document Date'.

FLDCAT-COL_POS = 3.

FLDCAT-EMPHASIZE = 'C110'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'VBTYP'.

FLDCAT-SELTEXT_L = 'SD Document category'.

FLDCAT-COL_POS = 4.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'NETWR'.

FLDCAT-SELTEXT_L = 'Net Value of the SO in Document Currency'.

FLDCAT-COL_POS = 5.

FLDCAT-OUTPUTLEN = 60.

FLDCAT-DO_SUM = 'X'.

FLDCAT-DATATYPE = 'CURR'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'VKORG'.

FLDCAT-SELTEXT_L = 'Sales Organization'.

FLDCAT-COL_POS = 6.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'VKGRP'.

FLDCAT-SELTEXT_M = 'Sales Group'.

FLDCAT-COL_POS = 7.

FLDCAT-EMPHASIZE = 'C801'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'POSNR'.

FLDCAT-SELTEXT_M = 'Sales Document itam'.

FLDCAT-COL_POS = 8.

FLDCAT-EMPHASIZE = 'C801'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

ENDFORM.

  • Build Layout for ALV Grid Report

FORM BLD_LAYOUT.

GD_LAYOUT-NO_INPUT = 'X'.

GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

ENDFORM.

  • Display report using ALV grid

FORM DISPLAY_ALV_REPORT.

GD_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = GD_REPID

IS_LAYOUT = GD_LAYOUT

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

IT_FIELDCAT = FLDCAT[]

I_SAVE = 'X'

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.

ENDFORM.

  • Retrieve data from VBAK table and populate itab IT_VBAK

FORM DATA_RETRIEVAL.

SELECT VBELN ERDAT ERNAM AUDAT VBTYP NETWR VKORG

UP TO 20 ROWS

FROM VBAK

INTO CORRESPONDING FIELDS OF TABLE ITAB.

SELECT POSNR

UP TO 20 ROWS

FROM VBAP

INTO CORRESPONDING FIELDS OF TABLE ITAB.

ENDFORM.

FORM TOP_OF_PAGE.

DATA: T_HEADER TYPE SLIS_T_LISTHEADER,

W_HEADER TYPE SLIS_LISTHEADER.

W_HEADER-TYP = 'H'.

W_HEADER-INFO = 'WELCOME HEADER LIST'.

APPEND W_HEADER TO T_HEADER.

W_HEADER-TYP = 'S'.

W_HEADER-KEY = 'REPORT:'.

W_HEADER-INFO = SY-REPID.

APPEND W_HEADER TO T_HEADER.

W_HEADER-TYP = 'S'.

W_HEADER-KEY = 'DATE:'.

CONCATENATE SY-DATUM4(2) ' / ' SY-DATUM6(2) ' / ' SY-DATUM(4) INTO W_HEADER-INFO.

APPEND W_HEADER TO T_HEADER.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = T_HEADER.

ENDFORM.

Reward,if it is useful.

Regards,

Chandu

Read only

Former Member
0 Likes
1,052

Hi

a simple example for alv.

type-pools : slis.

----


  • INTERNAL TABLE DECLARATION

----


data: it_ekpo type standard table of z50875_ekpo_alv ,

  • wa_ekpo type z50875_ekpo_alv,

it_fieldcat type slis_t_fieldcat_alv,

wa_fieldcat type slis_fieldcat_alv,

v_ebeln type ekpo-ebeln,

it_events type slis_t_event, "events table

wa_events type slis_alv_event,

it_headings type slis_t_listheader,

wa_headings like line of it_headings.

select-options so_ebeln for v_ebeln.

----


  • START-OF-SELECTION

----


start-of-selection.

select ebeln ebelp matnr netwr

from ekpo

into table it_ekpo

where ebeln in so_ebeln.

perform fill_events_table.

perform populate_feildcat.

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

i_callback_program = sy-repid

it_fieldcat = it_fieldcat

it_events = it_events[]

tables

t_outtab = it_ekpo

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 populate_feildcat

&----


form populate_feildcat .

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-seltext_l = 'DOCUMENT NUMBER'.

append wa_fieldcat to it_fieldcat.

wa_fieldcat-fieldname = 'EBELP'.

wa_fieldcat-seltext_l = 'ITEM DOCUMENT NUMBER'.

append wa_fieldcat to it_fieldcat.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-seltext_l = 'MATERIAL'.

append wa_fieldcat to it_fieldcat.

wa_fieldcat-fieldname = 'NETWR'.

wa_fieldcat-seltext_l = 'NET VALUE'.

append wa_fieldcat to it_fieldcat.

wa_fieldcat-hotspot = 'X'.

wa_fieldcat-fix_column = 'X'.

endform. " populate_feildcat

&----


*& Form fill_events_table

&----


form fill_events_table .

clear wa_events.

wa_events-name = 'TOP_OF_PAGE'.

wa_events-form = 'PRINT_HEADING'.

append wa_events to it_events.

endform. " fill_events_table

&----


*& Form print_heading

&----


form print_heading.

clear wa_headings.

wa_headings-typ = 'S'.

wa_headings-info = 'DEMO ON ALV REPORTS'.

append wa_headings to it_headings.

clear wa_headings.

wa_headings-typ = 'H'.

wa_headings-info = 'PURCHASE ORDER ITEM DETAILS'.

append wa_headings to it_headings.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = it_headings[]

i_logo = 'ENJOYSAP_LOGO'.

  • I_END_OF_LIST_GRID = I_END_OF_LIST_GRID

  • I_ALV_FORM = I_ALV_FORM.

endform. "print_heading