ALV cell settings

Source: Internet
Author: User
In se38, find bcalv * or package slis. For more ALV instances, see
   

Method configure_alv.

*... Check ALV component usage
Data:
Lr_salv_wd_table_usage type ref to if_wd_component_usage.

Lr_salv_wd_table_usage = wd_this-> wd_cpuse_salv_wd_table ().
If lr_salv_wd_table_usage-> has_active_component () is initial.
Lr_salv_wd_table_usage-> create_component ().
Endif.

*... Get ALV component
Data:
Lr_salv_wd_table type ref to iwci_salv_wd_table.

Lr_salv_wd_table = wd_this-> wd_cpifc_salv_wd_table ().

*... (1) Get configurationmodel from ALV component
Wd_this-> r_table = lr_salv_wd_table-> get_model ().

*... (2) Init configurationmodel
*... Init tablesettings
Data:
Lr_table_settings type ref to if_salv_wd_table_settings.

Lr_table_settings? = Wd_this-> r_table.

Lr_table_settings-> set_visible_row_count ('15 ').
Lr_table_settings-> set_read_only (abap_false ).

Data:
Lr_header type ref to cl_salv_wd_header.

Lr_header = lr_table_settings-> get_header ().

Data:
Rochelle header type string.

Concatenate sy-sysid 'flight overview' into l_header. "# EC notext
Lr_header-> set_text (l_header ).
Lr_header-> set_tooltip ('tooltip flight overview'). "# EC notext
Lr_header-> set_image_source ('icon _ flight ').
Lr_header-> set_image_first (abap_false ).

*... Init functionsettings
Cl_salv_wd_model_table_util => if_salv_wd_table_util_stdfuncs ~ Set_all (
R_model = wd_this-> r_table ).

*... Init columnsettings
Data:
Lr_column_settings type ref to if_salv_wd_column_settings.

Lr_column_settings? = Wd_this-> r_table.

Data:
Lt_columns type salv_wd_t_column_ref.

Lt_columns = lr_column_settings-> get_columns ().

Data:
Ls_column type salv_wd_s_column_ref,
Lr_col_header type ref to cl_salv_wd_column_header,
Rochelle tooltip type string.

Loop at lt_columns into ls_column.
Lr_col_header = ls_column-r_column-> get_header ().
Rochelle header = lr_col_header-> get_text ().
Concatenate 'tooltip: 'l_header into l_tooltip separated by Space. "# EC notext
Lr_col_header-> set_tooltip (l_tooltip ).

*... Create textview cellvariant for each column
Data:
Lr_cv type ref to cl_salv_wd_cv_standard.

Create object lr_cv.

Lr_cv-> set_key ('text _ view ').

Data:
Lr_textview type ref to cl_salv_wd_uie_text_view.

Create object lr_textview.
Lr_textview-> set_text_fieldname (ls_column-id ).

Lr_cv-> set_editor (lr_textview ).

Ls_column-r_column-> add_cell_variant (r_cell_variant = lr_cv ).

Ls_column-r_column-> set_sel_cell_variant_fieldname ('cellvariant ').

Case ls_column-id.
When 'cardri '.
Data:
Lr_input_field type ref to cl_salv_wd_uie_input_field.

Create object lr_input_field
Exporting
Value_fieldname = ls_column-id.
Ls_column-r_column-> set_cell_editor (lr_input_field ).

When 'connid '.
Data:
Lr_button type ref to cl_salv_wd_uie_button.

Create object lr_button.
Lr_button-> set_text_fieldname (ls_column-id ).
Ls_column-r_column-> set_cell_editor (lr_button ).

When 'fldate '.
Data:
Lr_link_to_action type ref to cl_salv_wd_uie_link_to_action.

Create object lr_link_to_action.
Lr_link_to_action-> set_text_fieldname (ls_column-id ).
Ls_column-r_column-> set_cell_editor (lr_link_to_action ).

When 'carrid _ conv '.
Data:
Lr_drdn_by_key type ref to cl_salv_wd_uie_dropdown_by_key.

Create object lr_drdn_by_key
Exporting
Selected_key_fieldname = ls_column-id.
Ls_column-r_column-> set_cell_editor (lr_drdn_by_key ).

When 'price '.
Data:
Lr_link_to_url type ref to cl_salv_wd_uie_link_to_url.

Create object lr_link_to_url.
Lr_link_to_url-> set_text_fieldname (ls_column-id ).
Lr_link_to_url-> set_reference ('HTTP: \ www.amazon.de ').
Ls_column-r_column-> set_cell_editor (lr_link_to_url ).

When 'checkbox '.
Data:
Lr_checkbox type ref to cl_salv_wd_uie_checkbox.

Create object lr_checkbox
Exporting
Checked_fieldname = ls_column-id.
Ls_column-r_column-> set_cell_editor (lr_checkbox ).

When 'url '.
Data:
Lr_image type ref to cl_salv_wd_uie_image.

Create object lr_image.
Lr_image-> set_source ('icon _ flight ').
Ls_column-r_column-> set_cell_editor (lr_image ).

When 'seatsocc '.
Data:
Lr_progr_indicator type ref to cl_salv_wd_uie_progr_indicator.

Create object lr_progr_indicator.
Lr_progr_indicator-> set_percent_value (80 ).
Lr_progr_indicator-> set_display_value_fieldname (ls_column-id ).
Lr_progr_indicator-> set_show_value (abap_true ).
Lr_progr_indicator-> set_width ('5em ').
Ls_column-r_column-> set_cell_editor (lr_progr_indicator ).

When 'distance '.
Data:
Lr_toggle_button type ref to cl_salv_wd_uie_toggle_button.

Create object lr_toggle_button
Exporting
Checked_fieldname = 'checkbox '.
Lr_toggle_button-> set_text_fieldname (ls_column-id ).
Ls_column-r_column-> set_cell_editor (lr_toggle_button ).

When 'planetype 'or 'currency' or 'did '.

When 'icon '.
Create object lr_image.
Lr_image-> set_source_fieldname (ls_column-id ).
Ls_column-r_column-> set_cell_editor (lr_image ).

Ls_column-r_column-> set_visible (cl_wd_uielement => e_visible-visible ).

Ls_column-r_column-> if_salv_wd_column_service_ref ~ Set_sort_fieldname ('icon _ sort ').

When others.
Ls_column-r_column-> set_visible (cl_wd_uielement => e_visible-none ).
Endcase.
Endloop.

*... Init fieldsettings
Data:
Lr_field_settings type ref to if_salv_wd_field_settings.

Lr_field_settings? = Wd_this-> r_table.

Data:
Lr_field type ref to cl_salv_wd_field.

*... Set reference fields
Lr_field = lr_field_settings-> get_field ('price ').
Lr_field-> set_reference_field ('currency ').
Lr_field-> set_reference_field_type (if_salv_wd_c_field_settings => reffieldtype_curr ).

Lr_field = lr_field_settings-> get_field ('paymentsum ').
Lr_field-> set_reference_field ('currency ').
Lr_field-> set_reference_field_type (if_salv_wd_c_field_settings => reffieldtype_curr ).

Lr_field = lr_field_settings-> get_field ('distance ').
Lr_field-> set_reference_field ('did ').
Lr_field-> set_reference_field_type (if_salv_wd_c_field_settings => reffieldtype_quan ).

Endmethod.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.