Saperx написал(а):
Всем привет.
Возможно решение очевидное, просто у меня уже голова не варит, но возникла такая проблема.
Есть редактируемая ALV из 4 полей, для полей есть дропдаун список или справка по F4, формируемый динамически, в зависимости от выбранного значения в предыдущем столбце.
В таком случае нам необходимо использовать событие mc_evt_modified, чтобы иметь возможность реагировать на выбор значения из дропдауна.
При этом, на полях висит куча проверок, которые также надо производить, но только в момент сохранения, в момент редактирования пользователю это будет только мешать.
В целом, касательно, сомнительности такого интерактива согласен, с ребятами которые написали выше.
Если есть время ковырятся, можно попробовать поиграться с этим (в событии data_change)
Цитата:
"получаем модифицированные хорошие ячейки
assign er_data_changed->mt_good_cells to <lt_good_cells>.
"получаем модифицированные все ячейки
assign er_data_changed->mt_mod_cells to <lt_mod_cells>.
Повлиять на эти атрибуты(перезаписать их), соответствено механизм валидации должен также отработать по другому.
Например, был один случай, если правильно помню, при изменении значения в ячейки 1 строки 1, через изменение этих атрибутов, заставляли думать ALV движок, что также изменили строку 2, для того чтобы обновить автовычисляемые ячейки в строке 2, что то вроде формул в экселе, только зависимость была не в рамках одной строки, а в рамках всего АЛВ. Муть еще та, но вроде работало.
Или еще как вариант, отказаться от листбокса, заменить его на кнопку или линку, чтобы при выборе значения отрабатывало событие, чтобы была возможность запомнить выбранное значение при это не дергать DATA_CHANGE. Далее, уже как у Вас написано, зная значение, собирать динамически F4.