Você está na página 1de 25

IBM Global Services

ABAP LIST VIEWER (ALV)

Copyright IBM Corporation 2003

IBM Global Services

ALV
ABAP List Viewer (ALV) is a simple, user friendly and better looking reporting tool as compared to the usage of write statements in a conventional / interactive report.

Copyright IBM Corporation 2003

IBM Global Services

Advantages of ALV
Better Looking User friendly
-

Filtering / Sorting Layout Change / Save Summation, Download to excel, E-Mail Data can be open for input / change etc.

Better Event handling Width of more than 256 characters possible Programming overhead of mentioning exact positions in write statements not needed.

Copyright IBM Corporation 2003

IBM Global Services

ALV Features

Heading

Change / Save Layout Sorting, Filtering Additional Buttons Email, Excel

Row(s) Selection

Copyright IBM Corporation 2003

IBM Global Services

ALV Features

Bar Charts

Fields Open For Input

Copyright IBM Corporation 2003

IBM Global Services

ALV Programming
Two Approaches
-

Conventional (Using Standard Function Modules) Object Oriented (Using Standard Classes and Methods)

We will concentrate on the conventional approach

Copyright IBM Corporation 2003

IBM Global Services

ALV Function Modules


REUSE_ALV_LIST_DISPLAY REUSE_ALV_GRID_DISPLAY

Program: BALVSD02
|

Program: BALVSD02_GRID
Copyright IBM Corporation 2003

IBM Global Services

ALV Function Modules

Both REUSE_ALV_LIST_DISPLAY and REUSE_ALV_GRID_DISPLAY have similar parameters Both Display the contents of an internal table passed by the parameter T_OUTTAB

Copyright IBM Corporation 2003

IBM Global Services

ALV Function Modules: Parameters


Important Parameters
-

I_CALLBACK_PROGRAM
The program that contains the subroutine for user command handling The program that will be the reference for user specific layout variants SY-CPROG in most cases

I_CALLBACK_PF_STATUS_SET
The subroutine name that will set the PF-STATUS (which in turn may contain user defined buttons)

I_CALLBACK_USER_COMMAND
The subroutine name in the calling program that will be triggered on any user command

Copyright IBM Corporation 2003

IBM Global Services

ALV Function Modules: Parameters


Important Parameters
-

I_STRUCTURE_NAME
The type of the internal table to be displayed

I_GRID_TITLE
The Heading / Title of the GRID

IS_LAYOUT
Defines the layout in which the internal table will be displayed Layout specific Features like Optimize Column Width, Window Title Bar, No Summing Up, colors etc. are defined here

IT_FIELDCAT
Defines the properties of individual fields (columns) of the internal table to be displayed Field specific features like Editable / Non Editable, Heading, Column Position, Left / Right Justification etc. are defined here

Copyright IBM Corporation 2003

IBM Global Services

ALV Function Modules: Parameters


Important Parameters
-

IT_EXCLUDING
The Buttons / Function codes that need to be disabled

I_SAVE
Whether Users should be able to save layout variants of their choice

IT_EVENTS
The various which need to be trapped and dealt with

Copyright IBM Corporation 2003

IBM Global Services

Simple Programs Walkthrough


Populate the internal table with the contents to be displayed and call the function module.

Data: i_sflight type standard table of sflight initial size 0 with header line. Select * from sflight into table i_sflight. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = sy-cprog I_STRUCTURE_NAME = 'SFLIGHT' TABLES T_OUTTAB = i_sflight.

Copyright IBM Corporation 2003

IBM Global Services

Result

Copyright IBM Corporation 2003

IBM Global Services

Simple Programs Walkthrough


Saving Layout Variants (Order of Columns, Hiding Specific Columns etc.) I_SAVE = A

Change / Save / Select Layout

Give Layout Name, User Specific / Default Layout

Copyright IBM Corporation 2003

IBM Global Services

Simple Programs Walkthrough


Grid Title Required I_GRID_TITLE = Flight Information

Heading

Copyright IBM Corporation 2003

IBM Global Services

Simple Programs Walkthrough


Suppose the first 4 fields of the internal table are required in the order CARRID, FLDATE, CONNID, PRICE. Also the fields CURRENCY and PLANETYPE are not to be displayed. Populate the Field Catalog table appropriately

data: i_fcat type slis_t_fieldcat_alv, wa_fcat type slis_fieldcat_alv. wa_fcat-tabname = 'I_SFLIGHT'. wa_fcat-col_pos = '1'. wa_fcat-fieldname = 'CARRID'. append wa_fcat to i_fcat. wa_fcat-col_pos = '2'. wa_fcat-fieldname = 'FLDATE'. append wa_fcat to i_fcat. wa_fcat-col_pos = '3'. wa_fcat-fieldname = 'CONNID'. append wa_fcat to i_fcat. wa_fcat-col_pos = '4'. wa_fcat-fieldname = 'PRICE'. append wa_fcat to i_fcat.
|

wa_fcat-fieldname = 'CURRENCY'. wa_fcat-no_out = 'X'. append wa_fcat to i_fcat. wa_fcat-fieldname = 'PLANETYPE'. wa_fcat-no_out = 'X'. append wa_fcat to i_fcat.

In the function module,


IT_FIELDCAT = i_fcat

Copyright IBM Corporation 2003

IBM Global Services

Result

PRICE CONNID FLDATE CARRID No CURRENCY And PLANETYPE

Copyright IBM Corporation 2003

IBM Global Services

Simple Programs Walkthrough


Obtaining the field catalog internal table using the internal table name Use Function Module REUSE_ALV_FIELDCATALOG_MERGE
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING I_INTERNAL_TABNAME = 'I_SFLIGHT' I_STRUCTURE_NAME = 'SFLIGHT' CHANGING CT_FIELDCAT = I_FCAT

Copyright IBM Corporation 2003

IBM Global Services

Simple Programs Walkthrough


Suppose it is required to add a button SAVE to the application toolbar. Also, the ABC Analysis, Mail and Download to Excel need to be removed. Create a Subroutine SET_PF_STATUS using rt_extab type slis_t_extab Within this subroutine, write SET PF-STATUS YFLIGHTS. Double Click on YFLIGHTS and create a PF-STATUS Go to Extras -> Adjust Template and Choose the List Viewer Radio Button. Standard ALV PF-STATUS will be selected. Remove the function keys and Buttons for ABC Analysis and Mail and Download to Excel from the PFSTATUS Add a function code and button for SAVE. Save and Activate the PF-STATUS While calling the function module REUSE_ALV_GRID_DISPLAY use I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS' Alternatively, Removal of Buttons can be done by populating the internal table IT_EXCLUDING with the relevant function codes

Copyright IBM Corporation 2003

IBM Global Services

Result

SAVE Button No Excel, Email or ABC Analysis Buttons

Copyright IBM Corporation 2003

IBM Global Services

Simple Programs Walkthrough


Suppose we need to make the price editable and saved to the database table SFLIGHT Use Function Module REUSE_ALV_FIELDCATALOG_MERGE to get the Field Catalog internal table Change the Field Catalog table for fieldname entry PRICE read table i_fcat into wa_fcat with key fieldname = 'PRICE'. if sy-subrc = 0. wa_fcat-edit = 'X'. modify i_fcat index sy-tabix from wa_fcat transporting edit. endif. Create a PF-Status as described previously and use a function code &DATA_SAVE

Copyright IBM Corporation 2003

IBM Global Services

Simple Programs Walkthrough


Create a Subroutine USER_COMMAND using r_ucomm like sy-ucomm rs_selfield type slis_selfield. Within this subroutine, handle user command if r_ucomm = '&DATA_SAVE'. modify sflight from table i_sflight. message i000 with 'Data saved'. rs_selfield-refresh = 'X'. rs_selfield-col_stable = 'X'. rs_selfield-row_stable = 'X'. endif. While calling the function module REUSE_ALV_GRID_DISPLAY use I_CALLBACK_USER_COMMAND = USER_COMMAND'

Copyright IBM Corporation 2003

IBM Global Services

Result

PRICE (Editable)

Other Fields (Non Editable)

Function Code and Button for &DATA_SAVE

Copyright IBM Corporation 2003

IBM Global Services

Important Information
Use Programs Starting with BALV and BCALV Use Function Module Helps

Copyright IBM Corporation 2003

IBM Global Services

Questions?

Copyright IBM Corporation 2003

Você também pode gostar