Здравствуйте.
Понадобилось мне написать дополнение к сценарию автовввода, который модифицирует поле 910. Но модифицирует хитрым образом. Я написал формат и протестировал его в редакторе форматов. Вот сам сценарий:
if p(v910) then
(
if p(v910) and v910:'^G' then // подполе G для временного хранения радиометки
if v910:'^DФ4' then // Если место хранения совпадает с заданным, то перенести статус, дату, место хранения, цену, номер КСУ и номер акта выбытия.
|^A|v910^a, |^C|v910^c, |^D|v910^d, |^E|v910^e, |^U|v910^u, |^V|v910^v, if v910:'^B' then |^B|v910^b, |^H|v910^g else |^B|v910^h, |^H|v910^g fi
else
v910 // Если место хранения не совпадает с заданным, то просто заменить полем им самим
fi
fi/
)
fi
Сценарий проверяет наличие подполей ^B и ^H и, в зависимости от этого, выполняет замену или перенос ^H на место ^B и ^G на место ^H. А само временное подполе ^G должно быть опустошено (т.е. просто не попадает в вывод оператора).
На тестовом примере в редакторе форматов этот сценарий показал себя хорошо. Но вот я добавил его в сценарий autoin.gbl, и там никакого эффекта работы этого оператора я не заметил. Вот сам оператор:
REP
910
F
if p(v910) then (if p(v910) and v910:'^G' then if v910:'^DФ4' then |^A|v910^a, |^C|v910^c, |^D|v910^d, |^E|v910^e, |^U|v910^u, |^V|v910^v, if v910:'^B' then |^B|v910^b, |^H|v910^g else |^B|v910^h, |^H|v910^g fi else v910 fi fi/) fi
XXXXXXXXXXXXXXXXXXX
Эффекта нет даже, если я выношу этот оператор в отдельный файл и пытаюсь скорректировать, например, одну запись с помощью команды
Глобальная корректировка.
Что я делаю неправильно?
Редактировано 2 раз. Последний раз 29.01.2014 03:58 пользователем artgonch.