Добрый день, Игорь.
Опишу еще одну доработку Workbench.
Это не ошибка, и Вы можете не обращать на это внимание.Описание.
Мне было неудобно при настройке связей компонентов с шаблоном:
1) что каждый раз при выборе не связанного компонента терялась текущая выделанная ячейка в шаблоне и выделялся весь лист. При настройке связей большого количества компонентов терялся ориентир.
2) В панеле инструментов менялась активная закладка со «Свойства компонента» на «Сообщения». Каждый раз приходилось возвращается на закладку «Свойства компонента»
Что я переделал:
1) При выборе не присвоенного элемента, в XLS не сбрасываю выделенную ячейку
CLASS lcl_workbench
METHOD actn_comp_selected Вызов r_excelole->selection_set обернул в условие
Code:
***<
IF NOT ( ls_form_prop-tb_area_rows IS INITIAL AND ls_form_prop-tb_area_columns IS INITIAL AND ls_form_prop-comp_type EQ lcl_form=>c_comp_type-field ).
***>
lv_sheet_not_found =
r_excelole->selection_set( iv_sheet = lv_tb_sheetname
iv_sheet_only = lv_sheet_only
iv_area_top = ls_form_prop-tb_area_top
iv_area_left = ls_form_prop-tb_area_left
iv_area_rows = ls_form_prop-tb_area_rows
iv_area_columns = ls_form_prop-tb_area_columns ) .
***<
ENDIF.
***>
2) Изменил отображение закладок. Закладка с сообщениями выводится, но активной остается «Свойства компонента» (получилось немного грубо, но работает)
CLASS lcl_wb_protab
METHOD redraw Code:
*------ set active tab
IF iv_activetab_id IS NOT INITIAL .
r_container_bar->set_active( id = iv_activetab_id ) .
ELSE .
IF lv_ms_error IS NOT INITIAL .
v_ms_show = abap_on.
ENDIF.
CASE abap_on .
WHEN v_rt_show. r_container_bar->set_active( id = c_tab_id-root ) .
WHEN v_pr_show. r_container_bar->set_active( id = c_tab_id-adjustments ) .
WHEN v_cm_show. r_container_bar->set_active( id = c_tab_id-common ) .
WHEN OTHERS .
ENDCASE .
ENDIF .
3) Так как закладка «Сообщения» не бросается в глаза пользователю, то для информирования пользователя вывожу в строке GUI статуса первое сообщение об ошибке.
CLASS lcl_form
METHOD node_get_protab_relevance Анализирую таблицу ls_exceptions-t_retmess на ошибочные сообщения и если они есть, то вывожу первое TYPE 'S' DISPLAY LIKE 'E'
Для просмотра всех сообщений пользователь всегда может переключится на закладку «Сообщения».
Еще раз выражаю Вам благодарность за XLSX Workbench!