Есть ли какая-либо функция FO или функция AJO для получения обязательных полей, объявленных в редакторе экрана?
abas-ERP (FO-Language)/AJO: Получение обязательных полей экрана
Ответы (2)
Насколько я знаю, в ФО такой функции нет. Мне самому понадобилась эта информация некоторое время назад, и я собрал информацию из файла описания экрана xml.
Обязательные поля выглядят так
<erpfield dimX="20" mandatory="yes" s3Name="0:ymyvar"/>
Ваш FOP должен выглядеть примерно так:
.type text xtmask xtsys xtmandatory
.file -TEMPNAME U|xtmandatory
.formula U|xtmask = "screens/screen_" + 'G|evtmaske' + "/" + G|evtmaskprio' + "/*"
.formula U|xtsys = "grep -ri " + G|dblquote + "mandatory=\" + G|dblquote + "yes\" + G|dblquote + G|dblquote + " " + 'U|xtmask' + " > " + 'U|xtmandatory'
.system 'U|xtsys'
Теперь вы можете перебрать каждую строку файла в xtmandatory и извлечь имя переменной из обязательных полей.
Базовый протокол EDProtocol не поддерживает такую информацию. См. код запроса GFV.
Так что весьма вероятно, что abas ERP вообще не поддерживает такую функцию, ни в FOP, ни в AJO.
Также следует учитывать, что abas ERP по-прежнему использует старые описания масок. Это означает, что трюк Александра Балтасара сработает не во всех случаях.
И вы должны учитывать, что "feldaustritt" (отпуск на поле) и/или "masken prüfung" (проверка по маске) могут перезаписывать любые "обязательные" флаги.
Так что «обязательный» флаг мне кажется несколько бесполезным.