Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Каталогизатор :  ИРБИС Irbis
 
Оператор REPEAT
Пользователь: Klyawa (IP-адрес скрыт)
Дата: 16, April, 2023 12:06

Добрый день!
Подскажите пожалуйста.. Есть пакетное задание с циклом, можно поменять место хранения, статус или Реальное место хранения. Место хранения в цикле является обязательным для заполнения, а нужно сделать это условие не обязательным. Пыталась добавить условия, если в опросном листе поле Места хранения пустое то подполе 910^D меняется само себя и переходит к следящему условию, но тогда съедается заполненное в подполе записи место хранения, либо заменяется место хранения у следующего экземпляра в этой записи

REP
910^D
F
&uf('+7W10#'),(if p(v910) then if p(v910^D) then if v910^H=&uf('AV1001^A#1') then &uf('AV1001^M#1'),,,&uf('+7W10#Место хранения изменено. MFN=',f(val(mfn),0,0),' Инв.номер - ',v910^H ) else v910^D fi then if &uf('AV1001^M#1')='' then v910^D else # fi else # fi fi/)

Вложения: mhr_cha_ibf.gbl (1.2KB)   mhr_change.ibf (54 bytes)   mhr_change.wss (240 bytes)  
Re: Оператор REPEAT
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 17, April, 2023 05:54

у вас ошибка формата
1 лишний then
тут
else v910^D fi then if &uf('AV1001^M#1')=''
2 в операторе REP пустая строка удалит повторение подполя
3 оператор этот называется не repeat, Оператор repeat это другой оператор который используется совместно с оператором until.

вот так должно быть
&uf('+7W10#'),(
if p(v910) then
if p(v910^D) then
if v910^H=&uf('AV1001^A#1') and &uf('AV1001^M#1')<>'' then &uf('AV1001^M#1'),,,&uf('+7W10#Место хранения изменено. MFN=',f(val(mfn),0,0),' Инв.номер - ',v910^H ) else v910^D fi
else # fi
fi/)

Klyawa написал(а):
-------------------------------------------------------
> Добрый день!
> Подскажите пожалуйста.. Есть пакетное задание с
> циклом, можно поменять место хранения, статус или
> Реальное место хранения. Место хранения в цикле
> является обязательным для заполнения, а нужно
> сделать это условие не обязательным. Пыталась
> добавить условия, если в опросном листе поле Места
> хранения пустое то подполе 910^D меняется само
> себя и переходит к следящему условию, но тогда
> съедается заполненное в подполе записи место
> хранения, либо заменяется место хранения у
> следующего экземпляра в этой записи
>
> REP
> 910^D
> F
> &uf('+7W10#'),(if p(v910) then if p(v910^D) then
> if v910^H=&uf('AV1001^A#1') then
> &uf('AV1001^M#1'),,,&uf('+7W10#Место хранения
> изменено. MFN=',f(val(mfn),0,0),' Инв.номер -
> ',v910^H ) else v910^D fi then if
> &uf('AV1001^M#1')='' then v910^D else # fi else #
> fi fi/)

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ



Редактировано 3 раз. Последний раз 17.04.2023 07:03 пользователем GLUKa.

Re: Оператор REPEAT
Пользователь: Klyawa (IP-адрес скрыт)
Дата: 29, April, 2023 10:50

Увы нет, этот вариант я попробовала одним из первых. В прикрепленном файле ошибка зафиксированная клиентом. Когда проверяла сама, наткнулась, на ошибку замены Реального места хранения.
Если во всех экземплярах заполнено и место хранения и Реальное место хранения, мы хотим заменить только в одном экземпляре 910^D, меняется место хранения в нужном экземпляре, а в соседнем меняется Реальное место хранения, хотя мы в опросном листе заполнили только Инвентарный номер и место хранения.

Вложения: ошибка 25.04.23.docx (157.2KB)  
Re: Оператор REPEAT
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 02, May, 2023 07:01

на скриншоте нет глобальной Вами запущенной
у меня вариант замены отрабатывает верно

Klyawa написал(а):
-------------------------------------------------------
> Увы нет, этот вариант я попробовала одним из
> первых. В прикрепленном файле ошибка
> зафиксированная клиентом. Когда проверяла сама,
> наткнулась, на ошибку замены Реального места
> хранения.
> Если во всех экземплярах заполнено и место
> хранения и Реальное место хранения, мы хотим
> заменить только в одном экземпляре 910^D, меняется
> место хранения в нужном экземпляре, а в соседнем
> меняется Реальное место хранения, хотя мы в
> опросном листе заполнили только Инвентарный номер
> и место хранения.

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ



Редактировано 1 раз. Последний раз 02.05.2023 07:15 пользователем GLUKa.

Re: Оператор REPEAT
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 02, May, 2023 07:19

Думаю проблема в другом куске вашей глобальной. потому что именно это часть у меня отрабатывает корректно.
в Вашей глобальной остальные операторы REP тоже не корректны

тут ранее не учитывалось что статус не задан в опросном листе

REP
910^A
F
(if p(v910) then if p(v910^A) then if v910^H=&uf('AV1001^A#1') and &uf('AV1001^S#1')<>'' then &uf('AV1001^S#1'),, else v910^A fi else # fi fi/)


тут ранее не учитывалось что реальное место нахождение не задано в опросном листе
REP
910^!
F
(if p(v910) then if p(v910^!) then if v910^H=&uf('AV1001^A#1') and &uf('AV1001^R#1')<>'' then &uf('AV1001^R#1'),, else v910^! fi else # fi fi/)


GLUKa написал(а):
-------------------------------------------------------
> на скриншоте нет глобальной Вами запущенной
> у меня вариант замены отрабатывает верно
>
> Klyawa написал(а):
> --------------------------------------------------
> -----
> > Увы нет, этот вариант я попробовала одним из
> > первых. В прикрепленном файле ошибка
> > зафиксированная клиентом. Когда проверяла сама,
> > наткнулась, на ошибку замены Реального места
> > хранения.
> > Если во всех экземплярах заполнено и место
> > хранения и Реальное место хранения, мы хотим
> > заменить только в одном экземпляре 910^D,
> меняется
> > место хранения в нужном экземпляре, а в
> соседнем
> > меняется Реальное место хранения, хотя мы в
> > опросном листе заполнили только Инвентарный
> номер
> > и место хранения.

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ



Редактировано 3 раз. Последний раз 02.05.2023 07:31 пользователем GLUKa.

Re: Оператор REPEAT
Пользователь: Klyawa (IP-адрес скрыт)
Дата: 10, May, 2023 16:30

Отредактировала глобальную, но теперь она работает, только на замену. Если нужно просто добавить значение в пустое подполе, не добавляет.

Вложения: 1 Пакет.docx (135.4KB)  
Re: Оператор REPEAT
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 11, May, 2023 05:16

так у Вас тут ни слова о том, что что-то должно добавляться. у Вас

Цитирую
Есть пакетное задание с циклом, можно поменять место хранения, статус или Реальное место хранения. Место хранения в цикле является обязательным для заполнения, а нужно сделать это условие не обязательным

Klyawa написал(а):
-------------------------------------------------------
> Отредактировала глобальную, но теперь она
> работает, только на замену. Если нужно просто
> добавить значение в пустое подполе, не добавляет.

Чтобы сделать добавления необходимо обозначить условия. при каких условиях добавляется новое повторение и что туда пишется.

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ

Re: Оператор REPEAT
Пользователь: ochagova (IP-адрес скрыт)
Дата: 11, May, 2023 11:02

Покажите конкретный оператор глобальной, который не добавляет



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