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. |