alv object model

29
ALV Object Model Ali Mohammed NCDOT - BSIP

Upload: amohamm786

Post on 23-Oct-2014

757 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: ALV Object Model

ALV Object Model

Ali Mohammed NCDOT - BSIP

Page 2: ALV Object Model

Reporting using ALV GRID in 4.6C

Page 3: ALV Object Model

The New Object Model – ECC 6.0

Page 4: ALV Object Model

Classes – ABAP Objects 1. ABAP Objects provides an advanced level of

encapsulation that improves maintainability and stability of programs.

2. ABAP Objects allows you to instantiate multiple instances of a single class.

3. ABAP Objects greatly enhances code reuse through “inheritance” a key feature of OO .

4. ABAP Objects is the only way to use new ABAP technology – Web Dynpro ABAP etc.

5. Explicit Event handling .

6. Better Interfaces .

Reference article on ABAP OO - http://www.sapdb.info/wp-content/uploads/2008/09/why-abap-objects.pdf

Page 5: ALV Object Model

ABAP Class – Transaction SE24

Page 6: ALV Object Model

Programming with Class / Methods

In SE38 – ABAP Editor

Page 7: ALV Object Model

CL_SALV_TABLE

Two Dimensional data display in ALV_GRID form . Object orientation (OO), or to be more precise,

object-oriented programming . No screens to define , no field catalogs to create no

PBO and PAI modules , standard menu bar can be used.

More functionality for application development. Extremely fast delivery to users. A way to get used to what ABAP programming is

trending towards. Only Available in ECC 6.0 and above .

Page 8: ALV Object Model

Main Classes in SALV - GRID

Main Class – CL_SALV_TABLE Functions – CL_SALV_FUNCTIONS Display Settings – CL_SALV_DISPLAY_SETTINGS Columns – CL_SALV_COLUMNS_TABLE

and CL_SALV_COLUMN_TABLE Sorts – CL_SALV_SORTS Aggregations – CL_SALV_AGGREGATIONS Filters – CL_SALV_FILTERS Layouts – CL_SALV_LAYOUT Events - CL_SALV_EVENTS_TABLE

Page 9: ALV Object Model

CL_SALV_TABLE – Main class for ALV_GRIDdata: gr_table type ref to cl_salv_table. cl_salv_table=>factory( importing r_salv_table = gr_table changing t_table = itab ). gr_table->display( ).

Page 10: ALV Object Model

CL_SALV_FUNCTIONS - (Adds functions to toolbar)data: gr_functions type ref to cl_salv_functions.

gr_functions = gr_table->get_functions( ).

gr_functions->set_all( abap_true ).

Page 11: ALV Object Model

CL_SALV_DISPLAY_SETTINGS

data: gr_display type ref to cl_salv_display_settings.

gr_display = gr_table->get_display_settings( ).

gr_display->set_striped_pattern( cl_salv_display_settings=>true ). gr_display->set_list_header( 'This is the heading' ) .

Page 12: ALV Object Model

Columns – CL_SALV_COLUMNS_TABLE and CL_SALV_COLUMN_TABLE (make column settings - old field catalog )data: gr_columns type ref to cl_salv_columns_table.

data: gr_column type ref to cl_salv_column_table.

gr_columns = gr_table->get_columns( ).

gr_column ?= gr_columns->get_column( 'CITYTO' ).

gr_column->set_long_text( 'This is long text' ).

gr_column->set_medium_text( 'This is med text' ).

gr_column->set_short_text( 'This is sh' ).

gr_column ?= gr_columns->get_column( 'CITYFROM' ).

color-col = '6'. color-int = '1'. color-inv = '0'.

gr_column->set_color( color ).

Page 13: ALV Object Model

Columns – CL_SALV_COLUMNS_TABLE and CL_SALV_COLUMN_TABLE

Page 14: ALV Object Model

CL_SALV_SORTS - ( sort data by defined column)

data: gr_sorts type ref to cl_salv_sorts.

gr_sorts = gr_table->get_sorts( ).

gr_sorts->add_sort( columnname = 'CITYTO' ).

Page 15: ALV Object Model

CL_SALV_AGGREGATIONS – ( “do sum” for field )data: gr_agg type ref to cl_salv_aggregations.

gr_sorts->add_sort( columnname = 'CITYTO' subtotal = abap_true).

gr_agg = gr_table->get_aggregations( ).

gr_agg->add_aggregation( 'DISTANCE' ).

Page 16: ALV Object Model

CL_SALV_LAYOUT - ( Manage / Save layout) data: gr_layout type ref to cl_salv_layout.

gr_layout = gr_table->get_layout( ).

key-report = sy-repid.

gr_layout->set_key( key ).

gr_layout->set_save_restriction( cl_salv_layout=>restrict_none ).

Page 17: ALV Object Model

class lcl_handle_events definition deferred. HOT SPOT EVENT

data: gr_events type ref to lcl_handle_events.

CLASS lcl_handle_events DEFINITION.  PUBLIC SECTION. METHODS      on_single_click FOR EVENT link_click OF cl_salv_events_table        IMPORTING row column.

ENDCLASS.                    "lcl_handle_events DEFINITION

CLASS lcl_handle_events IMPLEMENTATION.  METHOD on_single_click.    PERFORM  call_transaction USING row column .  ENDMETHOD.                    "on_single_click

ENDCLASS.                    "lcl_handle_events IMPLEMENTATION

gr_column ?= gr_columns->get_column( 'EBELN' ).

gr_column->set_cell_type( if_salv_c_cell_type=>hotspot  ).

  data: lr_events type ref to cl_salv_events_table.

lr_events = gr_table->get_event( ).

create object gr_events.

  set handler gr_events->on_single_click for lr_events.

Page 18: ALV Object Model

HOT SPOT EVENT

Page 19: ALV Object Model

Resources

SE80 package SALV_OBJECTS ( SAP Demo Programs ) Test Programs (DEV ECC) - Z_BC_CL_SALV_TABLE1 Z_BC_CL_SALV_TABLE_FUNCTIONS Z_BC_CL_SALV_TABLE_LAYOUT https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/eac1fa0b-0

e01-0010-0990-8530de4908a6 - ALV Object Model – The Basics

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/cda3992d-0e01-0010-90b2-c4e1f899ac01 - ALV Object Model – Event Handling

http://help.sap.com/saphelp_nw04/helpdata/en/5e/88d440e14f8431e10000000a1550b0/frameset.htm - SAP Help - ALV Object Model 

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/acdefb13-0701-0010-f1a2-8eeefa7d3780 - Utilizing the New ALV Object Model

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f6556c74-0e01-0010-aa99-b96b4316fed9 - FI report using the ALV OM

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/5dc3e690-0201-0010-1ebf-b85b3bed962d - SAP List Viewer The New Programming Model in SAP NetWeaver04

Page 20: ALV Object Model

Creating the Top of List ( Header ) – Class CL_SALV_FORM_LAYOUT_GRID

Page 21: ALV Object Model

Form layout for top_of_list

Objects for layouting

Grid layout (CL_SALV_FORM_LAYOUT_GRID) Columns Rows Span of Rows and Columns Alignment (left justified, right justified)

Flow layout (CL_SALV_FORM_LAYOUT_FLOW) Sequence of elements Alignment (left justified, right justified)

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

Page 22: ALV Object Model

Pseudo code for form layout Create a Grid CL_SALV_FORM_LAYOUT_GRID)

Create Header Information (CL_SALV_FORM_HEADER_INFO)

Page 23: ALV Object Model

Add row (CL_SALV_FORM_LAYOUT_GRID) and Create Grid in cell (2,1) (CL_SALV_FORM_LAYOUT_GRID)

Create label in cell (2,1)(CL_SALV_FORM_LABEL) and Create text in cel(2,2)(CL_SALV_FORM_TEXT)

Page 24: ALV Object Model

Create a Flow layout (CL_SALV_FORM_LAYOUT_FLOW)

Create label in flow (CL_SALV_FORM_LABEL) and Create text in flow (CL_SALV_FORM_TEXT)

Page 25: ALV Object Model

Create Action Information (CL_SALV_FORM_ACTION_INFO)

Set Top/End of List/Page (CL_SALV_TABLE)

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/4d40e790-0201-0010-c695-e7ce17ff5908 - How to use ALV Form Elements for EventsTest Program ( DEV ECC ) - Z_BC_CL_SALV_TABLE_LAYOUT

Page 26: ALV Object Model

ALV Object Model – Hierarchical Sequential List

Main Class - CL_SALV_HIERSEQ_TABLE

Page 27: ALV Object Model

Hierarchical Sequential List – Other ClassesFunctions – CL_SALV_FUNCTIONS (adds functions to toolbar)

Columns – CL_SALV_COLUMNS_HIERSEQ (column settings )

Levels – CL_SALV_HIERSEQ_LEVEL (expand or collapse default )

Sorts – CL_SALV_SORTS (sort data )

References: SE80 package SALV_OBJECTS ( SAP Demo Programs ) https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b0f03986-

046c-2910-a5aa-e5364e96ea2c - ALV Object Model – Hierarchical

Sequential List

Page 28: ALV Object Model

ALV Object Model – ALV Tree

Main Class – CL_SALV_TREE

Page 29: ALV Object Model

ALV Object Model – ALV Tree

Reference Programs – SE80 package SALV_OBJECTS ( SAP Demo Programs ) Test Program (DEV ECC) -> Z_BC_CL_SALV_TREE