Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Каталогизатор :  ИРБИС Irbis
 
Глобальная корректировка
Пользователь: KPopov (IP-адрес скрыт)
Дата: 28, February, 2018 13:22

Добрый день!
Подскажите, пожалуйста, почему так происходит.
Глобальная корректировка
0
DEL
52
F
&uf('+7W1#','20160101'),(if val(v52^*)<val(G1) then '1' else '0' fi/)
XXXXXXXXXXXXXXXXXXX
Исходные данные:
#52/1:_20150418^CЧЗ
#52/2:_20150418^CЗП
#52/3:_20161209
#52/4:_20161209^CАБОНОТР
#52/5:_20161209^CАБ
На выходе:
#52/1:_20150418^CЗП
#52/2:_20161209
#52/3:_20161209^CАБОНОТР
#52/4:_20161209^CАБ
Получается, обработано только первое повторение. Если вместо переменной использовать какое-нибудь поле и внести туда 20160101 и указать в условии значение данного поля - такая же ситуация.

Теперь выполняем корректировку с явным указанием даты:
0
DEL
52
F
(if val(v52^*)<20160101 then '1' else '0' fi/)
XXXXXXXXXXXXXXXXXXX
На выходе
#52/1:_20161209
#52/2:_20161209^CАБОНОТР
#52/3:_20161209^CАБ
На выходе получили желаемый результат.
Что я делаю не так в первом случае?

Re: Глобальная корректировка
Пользователь: Gena (IP-адрес скрыт)
Дата: 28, February, 2018 14:29

В первом случае вы не учитываете один момент: когда запускается "цикл" - перебор поля в круглых скобках - то перебираются ВСЕ поля ВСЕХ меток в этом цикле.

Вот так вы удалите все повторения поля с датой ввода '20180101'

(if p(v910) then if v910^C='20180101' then '1' else '0' fi fi/))

Это сработает, так как вы сравниваете каждое последующее повторение поля с константой.

И вот это сработает, так как вы четко указываете, что при прохождении по итерациям сравнивать не со следующим значением глобальной переменной, а всегда с первой:

&uf('+7w1#20180101')
(if p(v910) then if v910^C=&uf('ag1#1') then '1' else '0' fi fi/))

Re: Глобальная корректировка
Пользователь: KPopov (IP-адрес скрыт)
Дата: 28, February, 2018 16:04

Спасибо, всё получилось. Не знал таких тонкостей.



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.