Ну что можно сказать.. вообще-то можно и даже будет по факту в рамках стандарта
, сначала читаем тут: You are not allowed to view links.
Register or
Login, что такое энхансменты и как их можно использовать, лучше скачайте файл
"Enhancement Spot 2.pdf" в этом же сообщении, там чуть подробнее расписано чем на форуме сейчас. Далее есть такой модуль: LMIGOSMC, в нем со строки 268 есть точка расширения:
ENHANCEMENT-POINT FIELDSELECTION_01 SPOTS ES_SAPLMIGO, она находится внутри цикла LOOP AT SCREEN. <>. ENDLOOP. Этот цикл как раз идет по обновлению полей экрана заголовка и не только. Вставляем свой код в данную точку, что-то типа:
ENHANCEMENT 237 YTIV_MIGO_FLS_SELECTION. "inactive version
* Тест проверки возможности отключения ввода в поля
IF LS_FS-NAME = 'GOHEAD-LFSNR'.
LS_FS-WORK = '2'.
ENDIF.
ENDENHANCEMENT.
т.е. когда обрабатывается наше поле, то в переменой ставим признак 2, это значит поле для просмотра, если поставить 0, то вообще поле будет скрыто с экрана. Ну само собой вам надо проверить вид движения и что проводка идет к поставке, для этого смотрите переменные GOHEAD и GOITEM ну и вообще ставьте там точку останова и смотрите доступные переменные и что в них, думаю найдете при каких условиях надо отключать ввод в этом поле. Да кстати, в этой структуре LS_FS есть еще поля *_REQUIRED, так вот если у вас там будет стоять типа обязательность ввода, но поле будет закрыто от ввода, то само собой будут проблемы, поэтому смотрим чтобы поле небыло обязательным для ввода. По крайней мере я вот такой код вставил и поле стало при любых обстоятельствах доступным только для просмотра.