С вашего позволения, Ramil, из ЛС перенесу ваше сообщение сюда, чтобы решение темы стало законченным
Ramil написал(а):
Заголовок: Зависимые переменные в отчётеmurmur написал:
Посмотрите вот эту ноту 1565809
ещё раз просмотрел эту ноту. вроде всё понятно, но так и не понял где в этом случае настраивать связь признаков. подскажите пожалуйста.
второй ответ по поводу связи признаков в принципе к нам подходит, но пугает, то что в случае дальнейшей корректировки опять надо будет делать фокусы с уже занесенными данными в систему. Предложенный Вами метод похоже более гибче, но я так и не разобрался где именно настраивается связь значений разных признаков.
Предположим, мы создали два признака. PLANT и PROVIDER. В обоих мастер-данные содержат по три элемента. Затем, построили запрос и создали в нем переменные VAR_3 для PLANT и VAR_4 для PROVIDER.
Напишем код в BADI (пример с потолка, главное - идея), реализующий логику: если пользователь выбрал VAR_3 = 1, то предоставить пользователю возможность выбирать в переменную VAR_4 любое из значений мастер-данных поставщика (в данном примере читаю таблицу SID-ов, но ничто не мешало бы читать, например, таблицу атрибутов, если бы PROVIDER был атрибутом PLANT); если пользователь выбрал VAR_3 <> 1 (любое другое, включая пусто), то список выбора для VAR_4 будет пуст.
Code:
METHOD IF_RSR_VARIABLE_F4_RESTRICT~GET_RESTRICTION_FLAT.
field-symbols:
<var_range> like line of I_T_VAR_RANGE[].
loop at I_T_VAR_RANGE assigning <var_range>
where
vnam = 'VAR_3'.
if <var_range>-low = 1.
data:
l_s_range like line of c_t_range[].
l_s_range-iobjnm = i_iobjnm.
l_s_range-sign = 'I'.
l_s_range-option = 'EQ'.
data:
v_provider type /BIC/SPROVIDER-/BIC/PROVIDER.
select
/BIC/PROVIDER
into
v_provider
from
/BIC/SPROVIDER.
l_s_range-low = v_provider.
append l_s_range TO c_t_range.
endselect.
exit.
endif.
endloop.
if c_t_range[] is initial.
l_s_range-iobjnm = i_iobjnm.
l_s_range-sign = 'I'.
l_s_range-option = 'EQ'.
l_s_range-low = '999'.
append l_s_range TO c_t_range.
endif.
ENDMETHOD.
Особенности: Фильтр в BADI настроен на признак PROVIDER, признаки PLANT и PROVIDER настроены на просмотр "Values in Master Data table" (M) (можно настроить и на Q или D, поиграйтесь - увидите в чем отличия)
Минусы: Кнопка Check, по сути, бесполезна, хотя, если настроить признаки на просмотр (Q) или (D), то есть шанс сделать ее востребованной