所涉及到的CONFIGURATION操作如下:
• 设置可见行为5行.
• 设置指示灯.
• 设置排序列
• 删除不显示的列.
ALV后台绑定NODE中STATUS节点属性为STRING,系统中可用的指示灯状态如下: 'ICON_RED_LIGHT','ICON_YELLOW_LIGHT', 'ICON_GREEN_LIGHT'。
WDDOINIT()
METHOD wddoinit .
* Instantiate ALV component.
* Create component usage for alv component
DATA: l_ref_cmp_usage TYPE REF TO if_wd_component_usage.
l_ref_cmp_usage = wd_this->wd_cpuse_alv( ).
IF l_ref_cmp_usage->has_active_component( ) IS INITIAL.
l_ref_cmp_usage->create_component( ).
ENDIF.
[…]
* Call interface method GET_MODEL( ).
[…]
* Get config model
DATA: l_ref_interfacecontroller TYPE REF TO iwci_salv_wd_table .
l_ref_interfacecontroller = wd_this->wd_cpifc_alv( ).
DATA: l_value TYPE REF TO cl_salv_wd_config_table.
l_value = l_ref_interfacecontroller->get_model( ).
[…]
* Configure ALV.
* set visible row count 设可见行数
l_value->if_salv_wd_table_settings~set_visible_row_count( '5' ).
* Sort rows by seatsocc descending 指定列的排序
DATA: lr_field TYPE REF TO cl_salv_wd_field.
lr_field =
l_value->if_salv_wd_field_settings~get_field( 'SEATSOCC' ).
lr_field->if_salv_wd_sort~create_sort_rule( sort_order = if_salv_wd_c_sort=>sort_order_descending ).
* Display icon in column seatsocc 设置指示灯
DATA: lr_column TYPE REF TO cl_salv_wd_column,
lr_image TYPE REF TO cl_salv_wd_uie_image,
lv_icon TYPE string.
lr_column = l_value->if_salv_wd_column_settings~get_column( 'SEATSOCC' ).
CREATE OBJECT lr_image.
lr_image->SET_SOURCE_FIELDNAME( 'STATUS' ).
lr_column->set_cell_editor( lr_image ). "Display traffic light images in column 'SEATSOCCC'
* delete column STATUS
l_value->if_salv_wd_column_settings~delete_column( 'STATUS' ).