Даже заяц загнанный в угол становится зверем, не говоря уже о АБАПере загнанным в сроки.
Решение вопроса:
Добавляем колонку CELL_COLOUR в node для вывода в ALV
Заполняем ALV +
Code:
IF xxx < 0.
ls_final-cell_color = CL_WD_TABLE_COLUMN=>E_CELL_DESIGN-BADVALUE_DARK.
ELSE.
ls_final-cell_color = CL_WD_TABLE_COLUMN=>E_CELL_DESIGN-STANDARD.
ENDIF.
Меняем настройки ALV
Code:
* Data declarations for ALV
DATA: lt_columns TYPE salv_wd_t_column_ref,
ls_column TYPE salv_wd_s_column_ref,
lo_column TYPE REF TO cl_salv_wd_column ,
lo_col_head TYPE REF TO cl_salv_wd_column_header
.
* Get reference to the Component usage of the ALV.
lo_ref_cmp_usage = wd_this->wd_cpuse_alv_vedkz( ).
IF lo_ref_cmp_usage->has_active_component( ) IS INITIAL.
lo_ref_cmp_usage->create_component( ).
ENDIF.
* Get reference to the Interface controller of the ALV.
lo_ref_interfacecontroller = wd_this->wd_cpifc_alv_vedkz( ).
lo_value = lo_ref_interfacecontroller->get_model( ).
wd_this->m_alv_model = lo_value.
* Get the Columns of the ALV
CALL METHOD lo_value->if_salv_wd_column_settings~get_columns
RECEIVING
value = lt_columns.
* Get reference to each column and set the column heading.
LOOP AT lt_columns INTO ls_column.
lo_column = ls_column-r_column.
CASE ls_column-id.
WHEN 'CELL_COLOUR'.
CALL METHOD lo_column->set_visible(
EXPORTING
value = '00'
).
WHEN OTHERS.
lo_col_head = lo_column->get_header( ) .
lo_col_head->set_ddic_binding_field( ).
DATA: lr_input_field TYPE REF TO cl_salv_wd_uie_input_field.
CREATE OBJECT lr_input_field
EXPORTING
value_fieldname = ls_column-id.
lo_column->set_cell_editor( lr_input_field ).
lo_column->set_cell_design_fieldname( value = 'CELL_COLOUR' ).
ENDCASE.
ENDLOOP.
Получаем счастье!
http://wiki.sdn.sap.com/wiki/display/Snippets/ABAP%20Web%20Dynpro%20ALV%20-%20Change%20Cell%20Colour%20based%20on%20Content?bc=true Но тут ошибка!