0% found this document useful (0 votes)
168 views13 pages

Salv

This document provides code snippets for methods used to configure and manage ALV (Application List Viewer) tables in SAP. It includes methods for creating an ALV table object, getting the layout, functions, and other settings, adding sorts and selections, and setting properties like the initial layout. Methods are shown for the CL_SALV_TABLE class and related classes for configurations like layouts, selections, columns and more.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
168 views13 pages

Salv

This document provides code snippets for methods used to configure and manage ALV (Application List Viewer) tables in SAP. It includes methods for creating an ALV table object, getting the layout, functions, and other settings, adding sorts and selections, and setting properties like the initial layout. Methods are shown for the CL_SALV_TABLE class and related classes for configurations like layouts, selections, columns and more.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

CL_SALV_TABLE FACTORY To Create

the
Instance
of ALV
Table
Object

CL_SALV_TABLE CL_SALV_MODEL_LIST GET_LAYOUT Layout


Object
with
Current
Settings

CL_SALV_TABLE GET_FUNCTIONS Returns


Object to
Define the
functions
of the ALV
Table

CL_SALV_TABLE CL_SALV_MODEL_LIST GET_DISPLAY_SETTINGS Returns


Global
Settings
for ALV
Display

CL_SALV_TABLE GET_AGGREGATIONS Return


Object to
Edit
Aggregati
on
Functions
Settings

CL_SALV_TABLE GET_SORTS Return


Object to
Set all
Sort
Informatio
n

CL_SALV_TABLE GET_SELECTIONS Return


Object to
do
Settings
for
Selection
pattern for
Row(s)
and
Column(s)

CL_SALV_TABLE CL_SALV_MODEL_BASE SET_TOP_OF_LIST Set the


Contents
in Top of
List in
ALV
Display

CL_SALV_TABLE GET_EVENT Return the


Object to
manage
existing
events

CL_SALV_TABLE GET_COLUMNS Return


individual
column
objects of
Output
table

CL_SALV_SORTS ADD_SORT Define


Sort for a
Specific
Column

CL_SALV_SELECTIONS SET_SELECTION_MODE Set the


Selection
Methods

CL_SALV_LAYOUT SET_KEY Set


Layout
Key for
Layouts in
Report

CL_SALV_LAYOUT GET_LAYOUTS Returns


all layouts
defined
for the
report

CL_SALV_LAYOUT F4_LAYOUTS F4 Help to


Display
Existing
Layouts of
the Report
CL_SALV_LAYOUT SET_SAVE_RESTRICTION Restrictio
n Methods
while
saving the
Layout

CL_SALV_LAYOUT SET_DEFAULT Activate


the
Default
Layout

CL_SALV_LAYOUT SET_INITIAL_LAYOUT Set


specific
Layout as
Initial
layout
while
starting
ALV
Display

CL_SALV_FUNCTIONS_LIST CL_SALV_FUNCTIONS SET_ALL Activate


all Internal
Functions
of ALV

CL_SALV_FORM_LAYOUT_ CREATE_HEADER_INFORMA Create


GRID TION Header
Informatio
n in the
Cell

CL_SALV_FORM_LAYOUT_ CL_SALV_FORM_UIE_LAYOUT_ ADD_ROW Add New


GRID GRID row in the
Grid

CL_SALV_FORM_LAYOUT_ CREATE_LABEL Create


GRID Label in
Grid Cell

CL_SALV_FORM_LAYOUT_ CREATE_TEXT Create


GRID Text in
Grid Cell

CL_SALV_FORM_LABEL CL_SALV_FORM_UIE_TEXT_VIE SET_TEXT Assign


W Text to
the Label
in Grid
Cell

CL_SALV_DISPLAY_SETTIN SET_STRIPPED_PATTERN Set ALV


GS Display in
Stripped
Pattern

CL_SALV_DISPLAY_SETTIN SET_LIST_HEADER Set Title


GS of the ALV
Display

CL_SALV_COLUMNS_TABL CL_SALV_COLUMNS GET Get the


E list of
Columns
of output
table

CL_SALV_COLUMNS_TABL CL_SALV_COLUMNS SET_OPTIMIZE Optimize


E the width
of
columns

CL_SALV_COLUMNS_TABL CL_SALV_COLUMNS SET_KEY_FIXATION Fix the


E Key
columns
while
Vertical
Scrolling

CL_SALV_COLUMNS_TABL CL_SALV_COLUMNS_LIST SET_COLOR_COLUMN Assign


E colors to
the
columns
in output
table

CL_SALV_COLUMNS_TABL CL_SALV_COLUMNS GET_COLUMN Get


E Properties
of Single
Column

CL_SALV_COLUMN_TABLE CL_SALV_COLUMN GET_DDIC_DATATYPE Get data


type of
Selected
column

CL_SALV_COLUMN_TABLE CL_SALV_COLUMN SET_TECHNICAL Set


column as
Technical
(Invisible)

CL_SALV_COLUMN_TABLE CL_SALV_COLUMN GET_DDIC_INITTYPE Returns


Internal
ABAP
Data Type

CL_SALV_COLUMN_TABLE CL_SALV_COLUMN GET_DDIC_DOMAIN Get the


Domain
Name of
Column

CL_SALV_COLUMN_TABLE CL_SALV_COLUMN_LIST SET_CELL_TYPE Set Cell


type of
Column

CL_SALV_COLUMN_TABLE CL_SALV_COLUMN_LIST SET_COLOR Set the


color of
Single
Column

CL_SALV_COLUMN_TABLE CL_SALV_COLUMN_LIST SET_KEY Set the


column as
Key
column

CL_SALV_AGGREGATIONS ADD_AGGREGATION Add


Aggregati
on
function of
a Table
column

Sample Code
?

*&---------------------------------------------------------------------*
*& Report ZVK_CL_SALV
*&---------------------------------------------------------------------*
*&Report using OOPs with Basic functionalities.
*&---------------------------------------------------------------------*

REPORT zvk_cl_salv_1.
TABLES : vbak.
TYPE-POOLS : abap,rsanm.
TYPES : BEGIN OF t_vbak.
INCLUDE TYPE vbak.
TYPES : t_color TYPE lvc_t_scol,
END OF t_vbak.

DATA : lt_vbak TYPE STANDARD TABLE OF t_vbak,


ls_vbak TYPE t_vbak.

FIELD-SYMBOLS : TYPE t_vbak.

DATA : l_rec(5) TYPE n.

** Declaration for ALV Grid **


DATA : gr_table TYPE REF TO cl_salv_table.

** Declarations for ALV Functions


DATA : gr_functions TYPE REF TO cl_salv_functions_list.

** declaration for ALV Columns


DATA : gr_columns TYPE REF TO cl_salv_columns_table,
gr_column TYPE REF TO cl_salv_column_table,
lt_column_ref TYPE salv_t_column_ref,
ls_column_ref TYPE salv_s_column_ref.

** declaration for Layout Settings


DATA : gr_layout TYPE REF TO cl_salv_layout,
gr_layout_key TYPE salv_s_layout_key,
ls_layout TYPE salv_s_layout,
lt_layout_info TYPE salv_t_layout_info.

** Declaration for Global Display Settings


DATA : gr_display TYPE REF TO cl_salv_display_settings,
lv_title TYPE lvc_title.

** Declaration for Aggregate Function Settings


DATA : gr_aggr TYPE REF TO cl_salv_aggregations.

** Declaration for Sort Function Settings


DATA : gr_sort TYPE REF TO cl_salv_sorts.

** Declaration for Table Selection settings


DATA : gr_select TYPE REF TO cl_salv_selections.

** Declaration for Top of List settings


DATA : gr_content TYPE REF TO cl_salv_form_element.

** Class for handling Events


CLASS : lcl_handle_events DEFINITION DEFERRED.
DATA : gr_events TYPE REF TO lcl_handle_events,
lr_events TYPE REF TO cl_salv_events_table.

** Coloring of Date columns **


DATA : lt_colo TYPE STANDARD TABLE OF lvc_s_colo,
ls_colo TYPE lvc_s_colo.

** Color Structure of columns **


DATA : lt_color TYPE lvc_t_scol,
ls_color TYPE lvc_s_scol.
*----------------------------------------------------------------------*
* CLASS lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_handle_events DEFINITION.
PUBLIC SECTION.
METHODS : on_double_click FOR EVENT double_click OF cl_salv_events_tabl
e
IMPORTING row column.
METHODS : on_link_click FOR EVENT link_click OF cl_salv_events_table
IMPORTING row column.
ENDCLASS. "lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_handle_events IMPLEMENTATION.
METHOD on_double_click.
PERFORM get_ord_info USING row column.
ENDMETHOD. "on_double_click
METHOD on_link_click.
PERFORM get_ord_info USING row column.
ENDMETHOD. "on_link_click
ENDCLASS. "lcl_handle_events IMPLEMENTATION
SELECTION-SCREEN BEGIN OF BLOCK b1.
SELECT-OPTIONS : p_erdat FOR vbak-erdat.
PARAMETER : p_var TYPE slis_vari.
SELECTION-SCREEN END OF BLOCK b1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var.


CLEAR : ls_layout.
TRY.
CALL METHOD cl_salv_table=>factory
EXPORTING
list_display = if_salv_c_bool_sap=>false
IMPORTING
r_salv_table = gr_table
CHANGING
t_table = lt_vbak.
CATCH cx_salv_msg .
ENDTRY.

IF gr_table IS NOT INITIAL.


MOVE sy-repid TO gr_layout_key-
report. "Set Layout Key as Report ID"
gr_layout = gr_table->get_layout( ). "Get Layout of the Table"
gr_layout->set_key( gr_layout_key ). "Set Layout key to Layout"
lt_layout_info = gr_layout->get_layouts( )."Get the Layouts of report"
IF lt_layout_info[] IS NOT INITIAL.
ls_layout = gr_layout-
>f4_layouts( ). "Activate F4 Help for Layouts"
IF ls_layout IS NOT INITIAL.
MOVE ls_layout-layout TO p_var.
ENDIF.
ENDIF.
ENDIF.

START-OF-SELECTION.
REFRESH : lt_vbak.
SELECT * FROM vbak
INTO CORRESPONDING FIELDS OF TABLE lt_vbak
WHERE erdat IN p_erdat.

IF sy-subrc EQ 0.
DESCRIBE TABLE lt_vbak LINES l_rec.
PERFORM set_color.
PERFORM alv_grid_display.
ENDIF.

*&---------------------------------------------------------------------*
*& Form alv_grid_display
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM alv_grid_display.
CLEAR : gr_table.
TRY.
CALL METHOD cl_salv_table=>factory
EXPORTING
list_display = if_salv_c_bool_sap=>false
IMPORTING
r_salv_table = gr_table
CHANGING
t_table = lt_vbak.
CATCH cx_salv_msg .
ENDTRY.
IF gr_table IS INITIAL.
MESSAGE 'Error Creating ALV Grid ' TYPE 'I' DISPLAY LIKE 'E'.
STOP.
ENDIF.
** Get functions details
gr_functions = gr_table->get_functions( ).

** Activate All Buttons in Tool Bar


gr_functions->set_all( if_salv_c_bool_sap=>true ).

******* Layout Settings *******


CLEAR : gr_layout, gr_layout_key.
MOVE sy-repid TO gr_layout_key-
report. "Set Report ID as Layout Key"
gr_layout = gr_table-
>get_layout( ). "Get Layout of Table"
gr_layout-
>set_key( gr_layout_key ). "Set Report Id to Layou
t"
gr_layout-
>set_save_restriction( if_salv_c_layout=>restrict_none ). "No Restriction t
o Save Layout"
IF p_var IS INITIAL.
gr_layout-
>set_default( if_salv_c_bool_sap=>true ). "Set Default Variant"
ELSE.
gr_layout-
>set_initial_layout( p_var ). "Set the Selected Variant
as Initial"
ENDIF.

******* Global Display Settings *******


CLEAR : gr_display.
MOVE 'Sales Order Details' TO lv_title.
gr_display = gr_table-
>get_display_settings( ). " Global Display settings"
gr_display-
>set_striped_pattern( if_salv_c_bool_sap=>true ). "Activate Strip Pattern"
gr_display-
>set_list_header( lv_title ). "Report Header"

******* Aggregate Function Settings *******


gr_aggr = gr_table-
>get_aggregations( ). "Get Aggregate Functions"

******* Sort Functions *******


gr_sort = gr_table->get_sorts( ).
IF gr_sort IS NOT INITIAL.
TRY.
gr_sort->add_sort( columnname = 'ERNAM'
position = 1
sequence = if_salv_c_sort=>sort_up
subtotal = if_salv_c_bool_sap=>true
group = if_salv_c_sort=>group_none
obligatory = if_salv_c_bool_sap=>false ).
CATCH cx_salv_not_found .
CATCH cx_salv_existing .
CATCH cx_salv_data_error .
ENDTRY.

TRY.
gr_sort->add_sort( columnname = 'ERDAT'
position = 2
sequence = if_salv_c_sort=>sort_down
subtotal = if_salv_c_bool_sap=>false
group = if_salv_c_sort=>group_none
obligatory = if_salv_c_bool_sap=>false ).
CATCH cx_salv_not_found .
CATCH cx_salv_existing .
CATCH cx_salv_data_error .
ENDTRY.
ENDIF.
******* Table Selection Settings *******
gr_select = gr_table->get_selections( ).
IF gr_select IS NOT INITIAL.
gr_select-
>set_selection_mode( if_salv_c_selection_mode=>row_column ). "Allow single
row Selection"
ENDIF.

******* Top of List settings *******


PERFORM top_of_page CHANGING gr_content.
gr_table->set_top_of_list( gr_content ).

******* Event Register settings *******


lr_events = gr_table->get_event( ).
CREATE OBJECT gr_events.
SET HANDLER gr_events->on_double_click FOR lr_events.
SET HANDLER gr_events->on_link_click FOR lr_events.

** Get the columns from ALV Table


gr_columns = gr_table->get_columns( ).
IF gr_columns IS NOT INITIAL.
REFRESH : lt_column_ref.
CLEAR : ls_column_ref.
lt_column_ref = gr_columns->get( ).

** Get columns properties


gr_columns->set_optimize( if_salv_c_bool_sap=>true ).
gr_columns->set_key_fixation( if_salv_c_bool_sap=>true ).
TRY.
gr_columns->set_color_column( 'T_COLOR' ).
CATCH cx_salv_data_error .
ENDTRY.
** Individual Column Properties.
PERFORM column_settings.
ENDIF.
CALL METHOD gr_table->display.
ENDFORM. "alv_grid_display

*&---------------------------------------------------------------------*
*& Form column_settings
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM column_settings.
LOOP AT lt_column_ref INTO ls_column_ref.
TRY.
gr_column ?= gr_columns->get_column( ls_column_ref-columnname ).
CATCH cx_salv_not_found.
ENDTRY.
IF gr_column IS NOT INITIAL.
** Make Mandt column invisible **
IF gr_column->get_ddic_datatype( ) = 'CLNT'.
gr_column->set_technical( if_salv_c_bool_sap=>true ).
ENDIF.
** Create Aggregate function total for All Numeric/Currency Fields **
IF gr_column->get_ddic_inttype( ) EQ 'P' OR
gr_column->get_ddic_datatype( ) EQ 'CURR'.
IF gr_aggr IS NOT INITIAL.
TRY.
gr_aggr->add_aggregation( columnname = ls_column_ref-
columnname
aggregation = if_salv_c_aggregation
=>total ).
CATCH cx_salv_data_error .
CATCH cx_salv_not_found .
CATCH cx_salv_existing .
ENDTRY.
ENDIF.
ENDIF.
** Create Check box for fields with domain "XFELD"
IF gr_column->get_ddic_domain( ) EQ 'XFELD'.
gr_column->set_cell_type( if_salv_c_cell_type=>checkbox ).
ENDIF.

** Set color to Date Columns **


IF gr_column->get_ddic_datatype( ) EQ 'DATS'.
CLEAR : ls_colo.
MOVE 2 TO ls_colo-col.
MOVE 1 TO ls_colo-int.
MOVE 1 TO ls_colo-inv.
gr_column->set_color( ls_colo ).
ENDIF.

** Add Hotspot&Hyper Link to the column vbeln


IF ls_column_ref-columnname EQ 'VBELN'.
gr_column->set_cell_type( if_salv_c_cell_type=>hotspot ).
gr_column->set_key( if_salv_c_bool_sap=>true ).
ENDIF.

ENDIF.
ENDLOOP.
ENDFORM. "column_settings

*&---------------------------------------------------------------------*
*& Form top_of_page
*&---------------------------------------------------------------------*
FORM top_of_page CHANGING lr_content TYPE REF TO cl_salv_form_element.
DATA : lr_grid TYPE REF TO cl_salv_form_layout_grid,
lr_text TYPE REF TO cl_salv_form_text,
lr_label TYPE REF TO cl_salv_form_label,
lr_head TYPE string.
MOVE 'Sales Order List' TO lr_head.
CREATE OBJECT lr_grid.
** Header of Top of Page **
lr_grid->create_header_information( row = 1
column = 1
text = lr_head
tooltip = lr_head ).
** Add Row **
lr_grid->add_row( ).

** Add Label in Grid **


lr_label = lr_grid->create_label( row = 2
column = 1
text = 'No of Records'
tooltip = 'No of Records' ).

** Add Text in The Grid **


lr_text = lr_grid->create_text( row = 2
column = 2
text = l_rec
tooltip = l_rec ).
** Set Label and Text Link **
lr_label->set_label_for( lr_text ).

** Move lr_grid to lr_content **


lr_content = lr_grid.
ENDFORM. "top_of_page

*&---------------------------------------------------------------------*
*& Form
*&---------------------------------------------------------------------*
FORM get_ord_info USING row TYPE salv_de_row
column TYPE salv_de_column.
IF column EQ 'VBELN'.
CLEAR : ls_vbak.
READ TABLE lt_vbak INTO ls_vbak INDEX row.
IF sy-subrc EQ 0.
SET PARAMETER ID 'AUN' FIELD ls_vbak-vbeln.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
ENDFORM. "get_ord_info

*&---------------------------------------------------------------------*
*& Form set_color
*&---------------------------------------------------------------------*
* Set color to the column VBELN & NETWR for Order Value > 1000
*----------------------------------------------------------------------*
FORM set_color.
LOOP AT lt_vbak ASSIGNING .
IF -netwr GT 1000.
REFRESH : lt_color.
CLEAR : ls_color.
MOVE 'VBELN' TO ls_color-fname.
MOVE 3 TO ls_color-color-col.
MOVE 0 TO ls_color-color-int.
MOVE 0 TO ls_color-color-inv.
APPEND ls_color TO lt_color.

CLEAR : ls_color.
MOVE 'NETWR' TO ls_color-fname.
MOVE 3 TO ls_color-color-col.
MOVE 0 TO ls_color-color-int.
MOVE 0 TO ls_color-color-inv.
APPEND ls_color TO lt_color.

MOVE lt_color TO -t_color.


ENDIF.
ENDLOOP.
ENDFORM. "set_color

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy