41
SAP List Viewer The New Programming Model in SAP NetWeaver 04

CL_SALV Einführung

  • Upload
    daddyh

  • View
    64

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CL_SALV Einführung

SAP List ViewerThe New Programming Model in SAP NetWeaver 04

Page 2: CL_SALV Einführung

History and Scope

The New Object Model

Demo

Summary

Page 3: CL_SALV Einführung

© SAP AG 2005, 3

History

SAP provides different reporting tools in an operational system

Report PainterReport WriterDrill Down reporting

SAP QueryInformation systems like

LISFISPIS...

Page 4: CL_SALV Einführung

© SAP AG 2005, 4

History

Common approach of all these toolsSupport of data retrievalSupport of report design/definition/layoutingOffer a set of generic services

Prerequisites for using these toolsThe data you want to report on has to fit into the data retrieval philosophy of the chosen toolThe provided tool services are sufficient for the business goal of the report

Requirements not supported by these toolsReporting on any kind of data (e.g. selected in a ‘report’)End-user defined content (What columns do I really want to see out of a large set of provided information/columns)Combination of generic services with application specific functionality

Page 5: CL_SALV Einführung

© SAP AG 2005, 5

History

These requirements have been addressed by theSAP List Viewer (ALV) formerly known as ABAP List Viewer

For SAP internal usage (not released for customers) available from Basis release 4.0 based on ABAP list processor technologyFor SAP internal usage (not released for customers) available from Basis release 4.6 also based on SAP Control Framework technology.Class CL_GUI_ALV_GRID also released for customer usageIn SAP NetWeaver 2004 (Basis 6.40) for customer- and SAP internal usage based on a new object oriented programming model supporting ABAP list processor and SAP Control Framework technology

Page 6: CL_SALV Einführung

© SAP AG 2005, 6

Scope

What is the SAP List Viewer (ALV)?End-user perspective:

An UI elementfor displaying tabular datathat provides a rich set of standard functionality like sorting,filtering, aggregation, choose columns, persistence of settings, …

Developer perspective:A set of APIsCan be used in any applicationOffers the rendering functionality for tabular dataProvides a rich set of generic services like sorting, …Generic services can be enhanced by application specific functionalitySupports different flavors of presentation/UI technologies

Page 7: CL_SALV Einführung

© SAP AG 2005, 7

Scope

The different ALV flavours

ABAP list processor based

Simple list

Hierarchical sequential list

SAP Control Framework based

Display as Fullscreen

Grid (Simple list)

Tree (New in SAP NetWeaver 2004!)

Display in a container (part of a dynpro)

Grid (Simple list)

Tree

Page 8: CL_SALV Einführung

History and Scope

The New Object Model

Demo

Summary

Page 9: CL_SALV Einführung

© SAP AG 2005, 9

The New Object Model

New object oriented API

Simplifies programming (fits to the oo skill set of nowadays developers)Error robustness

Data-type information about internal table is determined by the ALVWrong parameterization raises exceptionsBackend/Frontend update due to meta data changes are handled by ALV object model (Refresh_table_display)Constants for correct parameterization provided

Unified object model for all ALV flavours (Grid, Tree, etc.)Completely data and meta data driven interface for top/end of list/page areasSingle class for handling tabular dataUnified constants definitionCommon meta data model for all ALV flavors

Released for customer usage

Page 10: CL_SALV Einführung

© SAP AG 2005, 10

Prior to SAP NetWeaver 2004

WRITE

WRITE

WRITE

WRITE

WRITE

WRITE

WRITE

WRITE

ALV TreeCL_GUI_ALV_TREE

Hier.-Sequ. ListREUSE_ALV_HIERSEQULIST_DISPLAY

ALV GridCL_GUI_ALV_GRID

Grid FullscreenREUSE_ALV_GRID_DISPLAY

ALV ListREUSE_ALV_LIST_DISPLAY

Usage of ALV Function Modules/Class•One Function Module/Class for each flavour•Callbacks for application indivdually codedtop/end of list/page

Developer

Page 11: CL_SALV Einführung

© SAP AG 2005, 11

The New Object Model

SAP NetWeaver 2004• Optimized, consistent, robust API

for presentation of datafor all ALV flavours

• Completely data and meta datadriven interface for top/endof list/page areas

• Single class for handlingtabular data

WRITE

WRITE

WRITE

WRITE

WRITE

WRITE

WRITE

WRITE

ALV TreeCL_GUI_ALV_TREE

Hier.-Sequ. ListREUSE_ALV_HIERSEQULIST_DISPLAY

ALV GridCL_GUI_ALV_GRID

Grid FullscreenREUSE_ALV_GRID_DISPLAY

ALV ListREUSE_ALV_LIST_DISPLAY

Developer

New Object ModelCL_SALV_TABLE

CL_SALV_HIERSEQU_TABLE

CL_SALV_TREE

Page 12: CL_SALV Einführung

© SAP AG 2005, 12

Main Principle prior to the New Object Model

Data Select * from ... A B C

A B CABC

< Name >

StructureField catalog orInternal table

Internal table with data Description of data

Call SAP List Viewer

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY’. . .

Fullscreen Grid

A B C

Page 13: CL_SALV Einführung

© SAP AG 2005, 13

Main Principle of the New Object Model (Simplest call)

Data Select * from ... A B CInternal table

Create ALV instance by calling factory method and hand over internal table with data

call method cl_salv_table=>factory. . .

A B C

Get back the reference to the ALV instance

ALV instance display. . .

Fullscreen Grid

Page 14: CL_SALV Einführung

© SAP AG 2005, 14

Most Simple ALV Using New Object Model

*&---------------------------------------------------------------------*

*& Report SALV_DEMO_TABLE_REAL_SIMPLE

*&---------------------------------------------------------------------*

*& This is the most simple form of calling the new ALV object model

*& Isn't it REALLY simple?

*&---------------------------------------------------------------------*

REPORT SALV_DEMO_TABLE_REAL_SIMPLE.

data: gt_outtab type table of SFLIGHT.

data: gr_table type ref to cl_salv_table.

*... Select data

select * from SFLIGHT into corresponding fields of table gt_outtab.

*... Create Instance

call method cl_salv_table=>factory

IMPORTING

R_SALV_TABLE = gr_table

changing

t_table = gt_outtab.

*... Display table

gr_table->display( ).

Page 15: CL_SALV Einführung

© SAP AG 2005, 15

UML Diagramm SALV_TABLE

Page 16: CL_SALV Einführung

© SAP AG 2005, 16

Main Meta Data Objects

Object for Columns definition(CL_SALV_COLUMNS_TABLE)

Describes general meta data settings e.g. optimize columns, column orderAssignment of technical columns e.g. assign column containing color information for cell coloringHolds column objects (for each column)(CL_SALV_COLUMN_TABLE)

Column specific properties e.g. visibility, alignment

Object for Sort information(CL_SALV_SORTS)

Definition of Sort criteriaHolds sort objects (for each criterion)(CL_SALV_SORT)

Sort orderSubtotal…

Page 17: CL_SALV Einführung

© SAP AG 2005, 17

Main Meta Data Objects

Object for Filter information(CL_SALV_FILTERS)

Definition of filter criteriaHolds filter objects (for each criterion)(CL_SALV_FILTER)

Select-options

Object for Aggregation information(CL_SALV_AGGREGATIONS)

Definition of cumulative keyfiguresHolds aggregation objects (for each keyfigure)(CL_SALV_AGGREGATION)

Aggregation type e.g. Total, Min, Max

Object for Functional Settings(CL_SALV_FUNCTIONAL_SETTINGS)

Defines functional settings e.g. sort on header click

Object for Display Settings(CL_SALV_DISPLAY_SETTINGS)

Defines display settings e.g. striped pattern, horizontal lines

Page 18: CL_SALV Einführung

© SAP AG 2005, 18

Main Meta Data Objects

Object for Print information(CL_SALV_PRINT)

Definition of information relevant for printing e.g. do print coverpage

Object for Layout information(CL_SALV_LAYOUT)

Definition of key for persistence of table configuration e.g. visible columns, sort and filter informationDefinition of authority aspects e.g. user specific layouts onlyUse of default layouts during start-up

Object for Event handling(CL_SALV_EVENTS_TABLE)

Registration on events e.g. link click, double click

Object for User Interaction handling(CL_SALV_FUNCTIONS_LIST)

Enabling/disabling of generic ALV Function e.g. sort, filterDefinition of application specific functions

Page 19: CL_SALV Einführung

© SAP AG 2005, 19

UML Diagramm SALV_TABLE

UML Diagramm SALV_HIERSEQU_TABLE UML Diagramm SALV_TREE

Page 20: CL_SALV Einführung

© SAP AG 2005, 20

Pseudo-Code Example to Determine Invisible Column

Create ALV instance(CL_SALV_TABLE)

handing over data table

ALV->Get Columns(CL_SALV_TABLE)

receiving reference to columns object

Columns->Get Column(CL_SALV_COLUMNS_TABLE)

handing over column namereceiving reference to column object

Column->Set Visible = false(CL_SALV_COLUMN)

ALV->Display(CL_SALV_TABLE)

Page 21: CL_SALV Einführung

© SAP AG 2005, 21

Form Object for Top/End of List/Page

UI independent information for rendering (ABAP list processor based or HTML based for Control Framework usage)

Accessibility of information (Section 508 compliance)

The information is displayed in agreement with the SAP ergonomic guideline

Page 22: CL_SALV Einführung

© SAP AG 2005, 22

UML Diagramm SALV_FORM_ELEMENT

Page 23: CL_SALV Einführung

© SAP AG 2005, 23

Main Meta Data Objects (Layout)

Objects for layoutingGrid layout(CL_SALV_FORM_LAYOUT_GRID)

Columns RowsSpan of Rows and ColumnsAlignment (left justified, right justified)

Flow layout(CL_SALV_FORM_LAYOUT_FLOW)

Sequence of elementsAlignment (left justified, right justified)

Nested layout of Grid and Flows possible (e.g. Grid in Grid, Flow in Grid)

Page 24: CL_SALV Einführung

© SAP AG 2005, 24

Main Meta Data Objects (Content)

Objects for (textual-) contentbased on SAP’s ergonomic Guideline

Header Information(CL_SALV_FORM_HEADER_INFO)

Determines standard font and color

Label (for text)(CL_SALV_FORM_LABEL)

Determines standard font and colorAssignment to corresponding text

Text(CL_SALV_FORM_TEXT)

Determines standard font and color

Action information(CL_SALV_FORM_ACTION_INFO)

Determines standard font and colorE.g. “Sort in descending order”

Object for ImagesIcon(CL_SALV_FORM_ICON)

Determines rendering as icon

Page 25: CL_SALV Einführung

© SAP AG 2005, 25

Example for Using the Form Object

In this example 5 lines are required. Therefore a grid layout with one column is appropriate for holding the content of this top of page:

The first line holds the header informationThe second line is emptyThe third line is a grid with one row and 4 columnsThe fourth line is emptyThe fifth line holds an action information

Page 26: CL_SALV Einführung

© SAP AG 2005, 26

Pseudo-Code for Header Example

Create Grid(CL_SALV_FORM_LAYOUT_GRID)

Create Header Information in cell (1,1)(CL_SALV_FORM_HEADER_INFO)

(Add row) (CL_SALV_FORM_LAYOUT_GRID)

Create Grid in cell (3,1) (CL_SALV_FORM_LAYOUT_GRID)

Create label in cell (1,1) (CL_SALV_FORM_LABEL)

Create text in cell (1,2) (CL_SALV_FORM_TEXT)

Create label in cell (1,3) (CL_SALV_FORM_LABEL)

Create text in cell (1,4) (CL_SALV_FORM_TEXT)

(Add row) (CL_SALV_FORM_LAYOUT_GRID)

Create Action Information in cell (5,1)(CL_SALV_FORM_ACTION_INFO)

Set Top/End of List/Page(CL_SALV_TABLE)

Page 27: CL_SALV Einführung

History and Scope

The New Object Model

Demo

Summary

Page 28: CL_SALV Einführung

© SAP AG 2005, 28

Demo

Select Data and present them using the ALVSALV_LEARN_MAP_TABLE_1

Hide a columnSALV_LEARN_MAP_TABLE_2

Enable generic ALV services like sorting, filteringSALV_LEARN_MAP_TABLE_3

Register on Double click and raise info message ‘Hello World’ with information about the clicked cell (row, column)

SALV_LEARN_MAP_TABLE_4

Page 29: CL_SALV Einführung

History and Scope

The New Object Model

Demo

Summary

Page 30: CL_SALV Einführung

© SAP AG 2005, 30

Summary

SAP List ViewerAPI for displaying tabular datathat provides a rich set of standard functionality eg. sortingGeneric services can be enhanced by application specific functionalitySupports different flavors of presentation/UI technologiesWith SAP NetWeaver 2004 SAP provides an optimized, consistent, robust, simple to use API for all kind of ALV flavorsThis New ALV Object Model in SAP NetWeaver 2004 is released for customer usage

Page 31: CL_SALV Einführung

© SAP AG 2005, 31

Further Information about SAP List Viewer

SDN (SAP Developer Network)

http://www.sdn.sap.comDocumentationHow to guides

DocumentationSAP LibraryClass Documentation

SAP NetWeaver 2004 Demo ReportsSALV_DEMO*SALV_FORM_DEMO*

Page 32: CL_SALV Einführung

SAP List ViewerThe New Object Model in SAP NetWeaver 04

Additional Information

Page 33: CL_SALV Einführung

© SAP AG 2005, 33

ABAP List Processor Based Simple List

Page 34: CL_SALV Einführung

© SAP AG 2005, 34

ABAP List Processor Based Hier.-Sequential List

Page 35: CL_SALV Einführung

© SAP AG 2005, 35

SAP Control Framework Based Fullscreen Grid

Page 36: CL_SALV Einführung

© SAP AG 2005, 36

SAP Control Framework Based Fullscreen Tree

Page 37: CL_SALV Einführung

© SAP AG 2005, 37

SAP Control Framework Based Grid in a Container

Page 38: CL_SALV Einführung

© SAP AG 2005, 38

SAP Control Framework Based Tree in a Container

Page 39: CL_SALV Einführung

© SAP AG 2005, 39

UML Diagramm SALV_HIERSEQ_TABLE

Page 40: CL_SALV Einführung

© SAP AG 2005, 40

UML Diagramm SALV_TREE

Page 41: CL_SALV Einführung

© SAP AG 2005, 41

Copyright 2005 SAP AG. All Rights Reserved

No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice.

Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors.

Microsoft®, WINDOWS®, NT®, EXCEL®, Word®, PowerPoint® and SQL Server® are registered trademarks of Microsoft Corporation.

IBM®, DB2®, DB2 Universal Database, OS/2®, Parallel Sysplex®, MVS/ESA, AIX®, S/390®, AS/400®, OS/390®, OS/400®, iSeries, pSeries, xSeries, zSeries, z/OS, AFP, Intelligent Miner, WebSphere®, Netfinity®, Tivoli®, Informix and Informix® Dynamic ServerTM are trademarks of IBM Corporation in USA and/or other countries.

ORACLE® is a registered trademark of ORACLE Corporation.

UNIX®, X/Open®, OSF/1®, and Motif® are registered trademarks of the Open Group.

Citrix®, the Citrix logo, ICA®, Program Neighborhood®, MetaFrame®, WinFrame®, VideoFrame®, MultiWin® and other Citrix product names referenced herein are trademarks of Citrix Systems, Inc.

HTML, DHTML, XML, XHTML are trademarks or registered trademarks of W3C®, World Wide Web Consortium, Massachusetts Institute of Technology.

JAVA® is a registered trademark of Sun Microsystems, Inc.

JAVASCRIPT® is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape.

MarketSet and Enterprise Buyer are jointly owned trademarks of SAP AG and Commerce One.

SAP, R/3, mySAP, mySAP.com, xApps, xApp and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies.