Factory method ALV sap abap

DATA
lo_salv
TYPE REF TO cl_salv_table,
lo_functions
TYPE REF TO cl_salv_functions_list,
lo_columns
TYPE REF TO cl_salv_columns_table,
lo_columns2
TYPE REF TO cl_salv_columns_table,
lo_column
TYPE REF TO cl_salv_column_table,
l_short
TYPE scrtext_s,
l_long
TYPE scrtext_l,
l_medium
TYPE scrtext_m,
lo_display
TYPE REF TO cl_salv_display_settings,
l_header_text
TYPE lvc_title,
not_found
TYPE REF TO cx_salv_not_found,
data_error
TYPE REF TO cx_salv_data_error,
l_string
TYPE string,
text TYPE string,
oref
TYPE REF TO cx_root.

CONSTANTS : lc_info TYPE c VALUE 'I',
wc_error
TYPE c VALUE wc_e.

CLEAR : lo_salv , lo_functions.

IF w_alv IS NOT INITIAL.
* Use factory method
TRY.
CALL METHOD cl_salv_table=>factory
EXPORTING
list_display
= if_salv_c_bool_sap=>false
IMPORTING
r_salv_table
= lo_salv
CHANGING
t_table
= w_alv.
CATCH cx_salv_msg INTO oref.

text = oref->get_text( ).
MESSAGE text TYPE 'I'.
ENDTRY.

IF text IS NOT INITIAL.
WRITE: text.
ENDIF.
IF lo_salv IS INITIAL.
MESSAGE text-002 TYPE lc_info DISPLAY LIKE wc_error.
ENDIF.

* Set column headings
PERFORM column_headings USING lo_salv.
TRY.
"Set all functions
lo_functions
= lo_salv->get_functions( ).
lo_functions
->set_all( abap_true ).

"Optimize columns value to display the header data
lo_display
= lo_salv->get_display_settings( ).
lo_display
->set_list_header( l_header_text ).

"Optimize Output of ALV
lo_columns
= lo_salv->get_columns( ).
lo_columns
->set_optimize( 'X' ).

TRY.
"Assign lights to alv
* DATA: ls_ddic_ref TYPE salv_s_ddic_reference.
lo_columns
->set_exception_column( value = 'LIGHTS' ).
lo_column ?= lo_columns
->get_column('LIGHTS').
l_short
= text-017.
lo_column
->set_short_text( l_short ).
l_medium
= text-017.
lo_column
->set_medium_text( l_medium ).
l_long
= text-017.
lo_column
->set_long_text( l_long ).

CATCH cx_salv_data_error INTO data_error.
l_string
= data_error->get_text( ).
MESSAGE l_string TYPE 'I'.
ENDTRY.

"Get list of columns
lo_columns2
= lo_salv->get_columns( ).
lo_columns2
->set_optimize( ).
lo_columns2
->set_key_fixation( abap_true ).

CATCH cx_salv_not_found INTO not_found.
l_string
= not_found->get_text( ).
MESSAGE l_string TYPE 'I'.
ENDTRY.



PERFORM set_color.

* *Set the color column to ALV
TRY.
lo_columns2
->set_color_column('COLOR').
CATCH cx_salv_data_error INTO data_error.
l_string
= data_error->get_text( ).
MESSAGE l_string TYPE 'I'.
ENDTRY.

* Display the output
TRY.
lo_salv
->display( ).
CATCH cx_salv_not_found.
text = oref->get_text( ).
MESSAGE text TYPE 'I'.
ENDTRY.
IF text IS NOT INITIAL.
WRITE: text.
ENDIF.

ELSE.
MESSAGE text-024 TYPE 'I'.
ENDIF.

ENDFORM.


Perform set_column_heading.
DATA
: lo_salv TYPE REF TO cl_salv_table,
lo_columns
TYPE REF TO cl_salv_columns,
lo_column
TYPE REF TO cl_salv_column_table,
l_short
TYPE scrtext_s,
l_long
TYPE scrtext_l,
l_medium
TYPE scrtext_m,
not_found
TYPE REF TO cx_salv_not_found,
l_string
TYPE string.

lo_salv
= p_lo_salv.
TRY.

"Set Column Headers
lo_columns
= lo_salv->get_columns( ).

lo_column ?= lo_columns
->get_column('LIGHTS').
l_short
= text-017.
lo_column
->set_short_text( l_short ).
l_medium
= text-017.
lo_column
->set_medium_text( l_medium ).
l_long
= text-017.
lo_column
->set_long_text( l_long ).

* Set the Key Column
CALL METHOD lo_column->set_key
EXPORTING
value = if_salv_c_bool_sap=>true.
* fix the Key column
lo_column
->set_key_presence_required( ).

CLEAR: l_short, l_medium, l_long, lo_column.

lo_column ?= lo_columns
->get_column('DATE').
l_short
= text-018.
lo_column
->set_short_text( l_short ).
l_medium
= text-018.
lo_column
->set_medium_text( l_medium ).
l_long
= text-018.
lo_column
->set_long_text( l_long ).

* Set the Key Column
CALL METHOD lo_column->set_key
EXPORTING
value = if_salv_c_bool_sap=>true.
* fix the Key column
lo_column
->set_key_presence_required( ).
CLEAR: l_short, l_medium, l_long, lo_column.

lo_column ?= lo_columns
->get_column('SAP_QUAN1').
l_short
= text-005.
lo_column
->set_short_text( l_short ).
l_medium
= text-005.
lo_column
->set_medium_text( l_medium ).
l_long
= text-005.
lo_column
->set_long_text( l_long ).
CLEAR: l_short, l_medium, l_long, lo_column.

lo_column ?= lo_columns
->get_column('TOTAL_QUAN1').
l_short
= text-004.
lo_column
->set_short_text( l_short ).
l_medium
= text-004.
lo_column
->set_medium_text( l_medium ).
l_long
= text-004.
lo_column
->set_long_text( l_long ).
CLEAR: l_short, l_medium, l_long, lo_column.

lo_column ?= lo_columns
->get_column('ERROR').
l_short
= text-006.
lo_column
->set_short_text( l_short ).
l_medium
= text-006.
lo_column
->set_medium_text( l_medium ).
l_long
= text-006.
lo_column
->set_long_text( l_long ).

* Set the Key Column
CALL METHOD lo_column->set_key
EXPORTING
value = if_salv_c_bool_sap=>true.
* fix the Key column
lo_column
->set_key_presence_required( ).
CLEAR: l_short, l_medium, l_long, lo_column.

lo_column ?= lo_columns
->get_column('QUAN_DIFF1').
l_short
= text-007.
lo_column
->set_short_text( l_short ).
l_medium
= text-007.
lo_column
->set_medium_text( l_medium ).
l_long
= text-007.
lo_column
->set_long_text( l_long ).
CLEAR: l_short, l_medium, l_long, lo_column.

lo_column ?= lo_columns
->get_column('MAKTX').
l_short
= text-021.
lo_column
->set_short_text( l_short ).
l_medium
= text-023.
lo_column
->set_medium_text( l_medium ).
l_long
= text-023.
lo_column
->set_long_text( l_long ).
CLEAR: l_short, l_medium, l_long, lo_column.

lo_column ?= lo_columns
->get_column('MEINS').
l_short
= text-019.
lo_column
->set_short_text( l_short ).
l_medium
= text-019.
lo_column
->set_medium_text( l_medium ).
l_long
= text-019.
lo_column
->set_long_text( l_long ).

* Set the Key Column
CALL METHOD lo_column->set_key
EXPORTING
value = if_salv_c_bool_sap=>true.
* fix the Key column
lo_column
->set_key_presence_required( ).
CLEAR: l_short, l_medium, l_long, lo_column.

lo_column ?= lo_columns
->get_column('SAP_QUAN2').
l_short
= text-027.
lo_column
->set_short_text( l_short ).
l_medium
= text-027.
lo_column
->set_medium_text( l_medium ).
l_long
= text-027.
lo_column
->set_long_text( l_long ).
CLEAR: l_short, l_medium, l_long, lo_column.

lo_column ?= lo_columns
->get_column('TOTAL_QUAN2').
l_short
= text-026.
lo_column
->set_short_text( l_short ).
l_medium
= text-026.
lo_column
->set_medium_text( l_medium ).
l_long
= text-026.
lo_column
->set_long_text( l_long ).
CLEAR: l_short, l_medium, l_long, lo_column.

lo_column ?= lo_columns
->get_column('QUAN_DIFF2').
l_short
= text-030.
lo_column
->set_short_text( l_short ).
l_medium
= text-030.
lo_column
->set_medium_text( l_medium ).
l_long
= text-030.
lo_column
->set_long_text( l_long ).
CLEAR: l_short, l_medium, l_long, lo_column.

lo_column ?= lo_columns
->get_column('SAP_QUAN3').
l_short
= text-029.
lo_column
->set_short_text( l_short ).
l_medium
= text-029.
lo_column
->set_medium_text( l_medium ).
l_long
= text-029.
lo_column
->set_long_text( l_long ).
CLEAR: l_short, l_medium, l_long, lo_column.

lo_column ?= lo_columns
->get_column('TOTAL_QUAN3').
l_short
= text-028.
lo_column
->set_short_text( l_short ).
l_medium
= text-028.
lo_column
->set_medium_text( l_medium ).
l_long
= text-028.
lo_column
->set_long_text( l_long ).
CLEAR: l_short, l_medium, l_long, lo_column.

lo_column ?= lo_columns
->get_column('QUAN_DIFF3').
l_short
= text-031.
lo_column
->set_short_text( l_short ).
l_medium
= text-031.
lo_column
->set_medium_text( l_medium ).
l_long
= text-031.
lo_column
->set_long_text( l_long ).
CLEAR: l_short, l_medium, l_long, lo_column.

lo_column ?= lo_columns
->get_column('MATNR').
* Set the Key Column
CALL METHOD lo_column->set_key
EXPORTING
value = if_salv_c_bool_sap=>true.
* fix the Key column
lo_column
->set_key_presence_required( ).

CLEAR: lo_column.

lo_column ?= lo_columns
->get_column('MAKTX').

* Set the Key Column
CALL METHOD lo_column->set_key
EXPORTING
value = if_salv_c_bool_sap=>true.
* fix the Key column
lo_column
->set_key_presence_required( ).

CLEAR: lo_column.

lo_column ?= lo_columns
->get_column('WERKS').

* Set the Key Column
CALL METHOD lo_column->set_key
EXPORTING
value = if_salv_c_bool_sap=>true.
* fix the Key column
lo_column
->set_key_presence_required( ).

CLEAR: lo_column.

lo_column ?= lo_columns
->get_column('SLOC').
* Set the Key Column
CALL METHOD lo_column->set_key
EXPORTING
value = if_salv_c_bool_sap=>true.
* fix the Key column
lo_column
->set_key_presence_required( ).

CLEAR: lo_column.

CATCH cx_salv_not_found INTO not_found.
l_string
= not_found->get_text( ).
MESSAGE l_string TYPE 'I'.
ENDTRY.

Endform.

Comments

Popular posts from this blog

Export data to xls using OOPS

Delete Selected Record in ALV Report