Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Каталогизатор :  ИРБИС Irbis
 
Глобальная корректировка - изменение цены
Пользователь: nereader (IP-адрес скрыт)
Дата: 17, May, 2022 12:32

Здравствуйте, коллеги!

Возникла необходимость изменить все цены в каталоге путем арифметической операции - разделить на 100 (т.е. вместо 1000 руб должно стать 10р) или передвинуть точку (1000.00 - 10.00).

Подскажите, пожалуйста, есть ли возможность сделать это при помощи глобальной корректировки.

Re: Глобальная корректировка - изменение цены
Пользователь: Сорокина Лариса (IP-адрес скрыт)
Дата: 17, May, 2022 18:20

nereader написал(а):
-------------------------------------------------------
> Здравствуйте, коллеги!
>
> Возникла необходимость изменить все цены в
> каталоге путем арифметической операции - разделить
> на 100 (т.е. вместо 1000 руб должно стать 10р) или
> передвинуть точку (1000.00 - 10.00).
>
> Подскажите, пожалуйста, есть ли возможность
> сделать это при помощи глобальной корректировки.

для поля 10^d:
0
REP
10^D
F
(if p(v10)then if v10^d<>''then f(val(v10^d)/10,2,2) else # fi fi)


Аналогично для 910^e

Re: Глобальная корректировка - изменение цены
Пользователь: nereader (IP-адрес скрыт)
Дата: 19, May, 2022 11:31

Спасибо огромное, Лариса! С меня причитается.

Re: Глобальная корректировка - изменение цены
Пользователь: nataust (IP-адрес скрыт)
Дата: 27, October, 2023 14:28

Добрый день! Нам надо литературу Б.ц. оценить по 1 руб. Это почти 9 тыс. экз. В поле 10^D ничего не вводилось. Как теперь это сделать? Пробовали разные варианты на примерах,но знаний не хватает.

Re: Глобальная корректировка - изменение цены
Пользователь: ochagova (IP-адрес скрыт)
Дата: 28, October, 2023 18:14

Если надо значение Б.ц. в подполе цены заменить на 1 руб, то можно оператором:

REP
910^E
F
(if p(v910^E) then if v910^E: 'Б.ц.' then '1' else v910^E fi else # fi/)

Re: Глобальная корректировка - изменение цены
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 28, October, 2023 18:43

только при этом еще последовательным поиском нужно отобрать записи для корректировки, у которых не заполнена цена ни в поле с меткой 910 ни в поле с меткой 10 или же заполнено значение "б.ц."

Re: Глобальная корректировка - изменение цены
Пользователь: nataust (IP-адрес скрыт)
Дата: 30, October, 2023 11:28

Добрый день. Не получается. Что-то делаю не так.

Re: Глобальная корректировка - изменение цены
Пользователь: ochagova (IP-адрес скрыт)
Дата: 30, October, 2023 14:06

Значит вы не так поставили задачу. Формат написан для такой задачи:
Заменить данные во всех повторениях подполя 910^E, если значение подполя 910^E содержит строку Б.ц.
Пробел учитывается как полноценный символ.
В каких случаях не так корректируется?

Re: Глобальная корректировка - изменение цены
Пользователь: nataust (IP-адрес скрыт)
Дата: 30, October, 2023 14:53

Б.ц.выходит только в описании. Мы нигде в таком случае сами не пишем. Если только из одинаковых книг какие-то с ценой, а какие-то б.ц. Может я пробелы лишние ставлю в этой строке, что Вы написали

Re: Глобальная корректировка - изменение цены
Пользователь: nataust (IP-адрес скрыт)
Дата: 30, October, 2023 15:09

Нет. Не получается

Re: Глобальная корректировка - изменение цены
Пользователь: ochagova (IP-адрес скрыт)
Дата: 30, October, 2023 16:44

На описание не надо смотреть - что стоит в подполе 910^E в поле 910 записи?
Может у вас там просто пусто? И цену надо добавлять, а не редактировать? Это будут разные операторы.

Re: Глобальная корректировка - изменение цены
Пользователь: nataust (IP-адрес скрыт)
Дата: 30, October, 2023 20:41

Да, я писала, что поле не заполняем.Только в отдельных случаях, но таких мало

Re: Глобальная корректировка - изменение цены
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 30, October, 2023 21:55

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

можно взять формат oisbncn_h.pft который выводит в формат просмотра ISBN и цены и убрать из него код, относящийся к выводу ISBN, оставив только вывод информацию о цене. Дальше последовательным поиском можно отобрать записи, в которых результат преобразования строки в число будет = 0 и при этом не будет заполнено поле 10^D.
А дальше добавить в этот результат поиска подполе E в поле 910 с ценой = 1.00


Сценарий ГК тогда можно выполнить такой:

REP
910^E
F
(if p(v910) then if v910^E: 'Б.ц.' then '1' else if val(v910^E)>0 then v910^E else '1' fi fi else '1' fi/)

Только перед последовательным поиском стоит отобрать по словарю "вид/тип документа" книги в целом и то, что (и если) нужно дополнительно (например номера журналов, если они должны учитываться).

Ну и неплохо также отобрать записи в которых есть поле 910 последовательным поиском по признаку наличия поля. См. скриншоты и файл формата (его можно скопировать в директорию deposit)



Редактировано 1 раз. Последний раз 30.10.2023 21:56 пользователем А. Роман.

Вложения: img-2023-10-30-21-51-56.png (76.6KB)   бц3-img-2023-10-30-21-35-30.png (78.7KB)   ocn_h.pft (1.4KB)  
Re: Глобальная корректировка - изменение цены
Пользователь: ochagova (IP-адрес скрыт)
Дата: 31, October, 2023 10:38

Я бы написала так:

REP
910
F
(if p(v910) then v910,,,if v910^E='' then '^E1' fi fi/)

REP
910^E
F
(if p(v910) then if v910^E: 'б.ц.' then '1' else v910^E fi fi/)

Re: Глобальная корректировка - изменение цены
Пользователь: nataust (IP-адрес скрыт)
Дата: 31, October, 2023 11:42

Всё получилось! Спасибо!!!

Re: Глобальная корректировка - изменение цены
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 31, October, 2023 19:54

ochagova написал(а):
-------------------------------------------------------
> Я бы написала так:
>
> REP
> 910
> F
> (if p(v910) then v910,,,if v910^E='' then '^E1' fi
> fi/)
>
> REP
> 910^E
> F
> (if p(v910) then if v910^E: 'б.ц.' then '1' else
> v910^E fi fi/)

Людмила Николаевна, Вы ведь и программист и разработчик и технолог ИРБИС, а посему Вам ведом более короткий и прямой путь к конечной цели! Спасибо! thumbs up



Редактировано 1 раз. Последний раз 31.10.2023 19:55 пользователем А. Роман.



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