Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Администратор :  ИРБИС Irbis
 
Страницы: 123>>
Страница: 1 из 3
Глобальная корректировка
Пользователь: Воронков Евгений (IP-адрес скрыт)
Дата: 12, September, 2005 13:19

Требуется удалить все повторения поля 702 в которых в подполе ^a содержится "и др." Помогите это реализовать.

Re: Глобальная корректировка
Пользователь: Куделя (IP-адрес скрыт)
Дата: 12, September, 2005 13:28

0
DEL
702
F
(if p(v702) then if v702^a:'и др.' then '1' else '0'fi fi/)
XXXXXXXXXXXXXXXXXXX

Re: Глобальная корректировка
Пользователь: Воронков Евгений (IP-адрес скрыт)
Дата: 12, September, 2005 13:33

Большое спасибо, а я пробовал через IF не получилось.

Re: Глобальная корректировка
Пользователь: Mirbah (IP-адрес скрыт)
Дата: 13, September, 2005 09:43

а как удалить это:
после восстановления все места хранения книг стали ГПНТБ РОССИИ ХР как это можно удалить разом?

Re: Глобальная корректировка
Пользователь: Куделя (IP-адрес скрыт)
Дата: 13, September, 2005 10:19

пишу файлы GBL - быстро и недорого :))))))))))))))

0
DEL
910^D
F
(if p(v910) then if v910^d:'ГПНТБ РОССИИ ХР' then '1' else '0'fi fi/)
XXXXXXXXXXXXXXXXXXX

Re: Глобальная корректировка
Пользователь: Юлия Николаевна (IP-адрес скрыт)
Дата: 16, September, 2005 14:29

Как раз нужно быстро и недорого :))))))))))))))
Информацию из поля 300 перенести в поле 200^E,после чего поле 300 оставить пустым.
Подскажите как это сделать.

Re: Глобальная корректировка
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 16, September, 2005 16:39

ADD 200^e F v300 XXXXXXXXXXXX
DEL 300 XXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX
Вроде так.

А вообще чтобы написаь такую простенькую ГК достаточно 15 минут почитать документацию. Появляется ощущение, что для Вас, в конечном итоге, это получается и дороже (затраты на трафик) и медленнее (время не стоит на месте)...

Re: Глобальная корректировка
Пользователь: nbrkbo (IP-адрес скрыт)
Дата: 09, July, 2009 17:07

Поискали в форуме, почитали документацию, но не нашли ответа и не смогли написать файл глобальной коррекровки для удаления части информации из поля. В проекте МАРС в 991 "код журнала" прописывается название журнала, год, номер, номер статья и страницы в кодированном виде abzh09_no4_ss6_ad2. Данные о номере статьи и страницах (_ss6_ad2) хотелось бы удалить.Использовать команду unifor G тоже не получилось. Помогите, пожалуйста!!!

Re: Глобальная корректировка
Пользователь: Gena (IP-адрес скрыт)
Дата: 10, July, 2009 00:00

А вы можете привести несколько(из разных журналов) вариантов строки и что в итоге должно у вас получится.

Re: Глобальная корректировка
Пользователь: iLq (IP-адрес скрыт)
Дата: 10, July, 2009 09:24

Пример:
v991:abzh09_no4_ss6_ad2
Код формата:
&uf('+1W10#',&uf("G0_"v991),'_',&uf('G0_',&uf('+960*1#',&uf("G1_"v991)))),/
&uf('+1R10')
Вывод:
abzh09_no4

Глобальная корректировка:
0
CHA
991
1
v991
&uf('+1W10#',&uf("G0_"v991),'_',&uf('G0_',&uf('+960*1#',&uf("G1_"v991)))), &uf('+1R10')

Глобальную корректировку НЕ тестировал!!!



Редактировано 1 раз. Последний раз 10.07.2009 09:25 пользователем iLq.

Re: Глобальная корректировка
Пользователь: iLq (IP-адрес скрыт)
Дата: 10, July, 2009 09:26

Ну и может пригодится:
[irbis.gpntb.ru] - регулярные выражения

Re: Глобальная корректировка
Пользователь: nbrkbo (IP-адрес скрыт)
Дата: 10, July, 2009 10:56

iLq написал(а):
-------------------------------------------------------
> Пример:
> v991:abzh09_no4_ss6_ad2
> Код формата:
> &uf('+1W10#',&uf("G0_"v991),'_',&uf('G0_',&uf('+96
> 0*1#',&uf("G1_"v991)))),/
> &uf('+1R10')
> Вывод:
> abzh09_no4
>
> Глобальная корректировка:
> 0
> CHA
> 991
> 1
> v991
> &uf('+1W10#',&uf("G0_"v991),'_',&uf('G0_',&uf('+96
> 0*1#',&uf("G1_"v991)))), &uf('+1R10')
>
> Глобальную корректировку НЕ тестировал!!!

Огромное спасибо!

Глобальная работает! Но, к сожалению, если есть у номера подвыпуск - отрезает! Например, RUMARS-iurk06_no43_vy1_ss122_ad1 - остается RUMARS-iurk06_no43, а должно быть RUMARS-iurk06_no43_vy1.

Re: Глобальная корректировка
Пользователь: iLq (IP-адрес скрыт)
Дата: 10, July, 2009 20:04

Об этом речи не было :)
Либо введите дополнительное условие на наличие подвыпуска и сделайте по аналогии "сборку" строки, либо подождите до понедельника.

Re: Глобальная корректировка
Пользователь: iLq (IP-адрес скрыт)
Дата: 13, July, 2009 09:01

Глобальные корректировки:
1 вариант:
0
CHA
991
1
v991
if v991:'vy' then &uf('+1W10#',&uf("G0_"v991),'_',&uf('G0_',&uf('+960*1#',&uf("G1_"v991))),'_',&uf('G0_',&uf('+960*1#',&uf('G1_',&uf('+960*1#',&uf('G1_',v991)))))), &uf('+1R10') else &uf('+1W10#',&uf("G0_"v991),'_',&uf('G0_',&uf('+960*1#',&uf("G1_"v991)))), &uf('+1R10') fi,

2 вариант (требует myunifor.dll на сервере в папке IRBIS64 и у клиента):
0
CHA
991
1
v991
&uf('+7W20#',&uf('+8myunifor,RegExp_Split,!_!',v991)), if v991:'vy' then &uf('AG20#1'),'_',&uf('AG20#2'),'_',&uf('AG20#3'), else &uf('AG20#1'),'_',&uf('AG20#2') fi,

myunifor.dll лежит на открытом FTP.

Хочу обратить внимание на поле "3003: Характеристики документа (заполняется фильтром)", в котором весь этот "код статьи" уже разбит на повторения.

Re: Глобальная корректировка
Пользователь: nbrkbo (IP-адрес скрыт)
Дата: 13, July, 2009 13:48

Огромное спасибо!!! Все великолепно работает.

Re: Глобальная корректировка
Пользователь: Tamara (IP-адрес скрыт)
Дата: 22, October, 2009 13:21

Помогите, пожайлуста сделать глобальное восстановление логически удаленных записей. После операций экспорта-импорта более 600 дублетных записей стали логически удаленными. Потерять их никак нельзя и просто восстановить и изменить уже недостаточно.
Изменения ,к-рые я делаю для одной логически удаленной записи:
восстанавливаю запись и заношу её в буфер;
ищу её дублет по N записи,к-рый выдаётся вместе с ошибкой при
сохранении;
в найденной записи дублета делаю вставку из буфера.
как это сделать для всех 600 записей разом???

Re: Глобальная корректировка
Пользователь: PRM (IP-адрес скрыт)
Дата: 23, October, 2009 08:45

Tamara, доброе утро.

Пожалуйста, посмотрите (в документации и на форуме) функциональность слияния в ИРБИС (в АРМ Каталогизатор, например, Сервис - Импорт, опция "Слияние").

Re: Глобальная корректировка
Пользователь: Tamara (IP-адрес скрыт)
Дата: 24, October, 2009 17:53

Пыталась решить Проблему с восстановлением логически удаленных записей и в результате сделала их удаленными физически. Прошлые копии были сделаны уже при наличии в базе лог.уд. записей, и в результате получились неполными. Исправить такие ошибки наверное можно только повторным внесением потерянных записей . Подскажите, пожалуйста, как определить среди инвентарных номеров (их около 77000) те, которые исчезли из словарей инв.номеров и списанных .Если возможно ,проверку наличия каждого инв.номера проверять одновременно по двум словарям (полей 940^b и 910^b).
На своем уровне я могу представить решение только с использованием счетных переменных (как в Паскале) и в таком виде
(n=300000;
repeat
&unifor('S0')
repeat
Mfn=&unifor('SA')+1,
if (v910^b= n or v940^b= n)
then (n=n+1,mfn=35000)
else &unifor('S1')
else {вывод n}
fi
until mfn<=35000
until n<370000) ,
но в данном случае от этих представлений мало пользы.

Re: Глобальная корректировка
Пользователь: ochagova (IP-адрес скрыт)
Дата: 26, October, 2009 11:47

Для восстановления удаленных записей есть простой оператор глобальной корректировки UNDEL. Очень жаль, что во-время я (и другие) вам не подсказали.
Правильно я понимаю теперешнюю задачу: инвентарные номера у вас - простой ряд чисел с шагом =1. Вам надо выявить в этом ряду пропуски?

Re: Глобальная корректировка
Пользователь: Tamara (IP-адрес скрыт)
Дата: 26, October, 2009 14:37

Добрый день! Вы правильно поняли мою задачу, если учитывать, что каждый член простого ряда может быть элементом одного из двух списков (поля 910,940).
Что касается корректировки UNDEL , я не раз её запускала, но после полного восстановления записей программа выдавала сообщение ,что результаты сохранить не может, т.к.они дублетны.Спасибо за помощь...

Re: Глобальная корректировка
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 26, October, 2009 14:38

Нужно было проводить глобальную без использования формально-логического контроля.

Re: Глобальная корректировка
Пользователь: ochagova (IP-адрес скрыт)
Дата: 28, October, 2009 11:10

Ну, если дублеты, может, действительно, верно, что они удаляются?
Для выявления "пропусков" в словаре и инвентарных номеров можно сделать такой формат по диапазонам:
Например, в диапазоне инв. 1000-3000 (если без лидирующих нулей):

&uf('+7W1#1000'),,,&uf('S0'),,,/
(if val(&uf('S1A'))<2000 then ,,&uf('+7W1#',f(val(&uf('AG1#1'))+1,0,0) ),,if ref(l('RI=',,&uf('AG1#1')),mfn)='' then ,,,&uf('AG1#1'),/ fi ,,,else break fi)

Re: Глобальная корректировка
Пользователь: Tamara (IP-адрес скрыт)
Дата: 28, October, 2009 17:25

Доброе утро... Подскажите мне пожалуйста, как запустить формат(через глобальную или другим путем)...

Re: Глобальная корректировка
Пользователь: ochagova (IP-адрес скрыт)
Дата: 29, October, 2009 11:43

Администратор - Сервис - Генератор форматов. Далее открываете БД и выполняете на любой записи, но "мои числа" 1000, 2000 устанавливаете сами в формате.

Re: Глобальная корректировка
Пользователь: countess_lr (IP-адрес скрыт)
Дата: 10, September, 2013 09:35

Добрый день! Tamara, скажите, пожалуйста, справились ли Вы с этой проблемой в далеком '09 году и как? Мы сейчас столкнулись с такой же, только у нас удаленных логически дублетных записей более 14000.

Re: Глобальная корректировка
Пользователь: roit (IP-адрес скрыт)
Дата: 11, September, 2013 19:43

А у меня уже просто мечта появилась, чтобы в Каталогизаторе в Глобальной корректировке не было этой проклятущей галочки возле ФЛК (т.е. чтобы она там не стояла по умолчанию). Каждый раз выполняя глобальную боюсь забыть снять галочку и удалить половину базы. И то же самое при списании (выбытие в Комплектаторе) через Мастер. Там тоже галочка стоит по умолчанию. И тоже вероятность человеческой ошибки весьма велика. А удалять даже настоящие дублеты нам нельзя - записи могут быть дублетные, а в них разные инв. номера (у нас сливались записи из другой программы и из алфавитного каталога и часть из них дублеты, но с разными инвентарными). Кроме того, флк часто считает дублетными записи, которые таковыми не являются. Простейший пример: книги 2 разных лет издания, где год издания заключен в квадратные скобки были сочтены дублетными [1968] и [1969].



Редактировано 1 раз. Последний раз 11.09.2013 19:44 пользователем roit.

Re: Глобальная корректировка
Пользователь: ochagova (IP-адрес скрыт)
Дата: 12, September, 2013 12:12

Согласна

Re: Глобальная корректировка
Пользователь: roit (IP-адрес скрыт)
Дата: 13, September, 2013 10:01

Совсем уж смелая фантазия: чтобы прежде чем что-то удалить, если уж флк так этого хочет, появлялся вопрос "Удалить дублетные записи" с вариантами ответа "Да" "Нет" и Нет с сохранением протокола". При последнем варианте бы можно было посмотреть протокол и принять решение самостоятельно. Если конечно делали глобальную не на всю базу и таких записей не тысячи, для этого варианта как раз ответ "нет". Я, честно говоря, даже не представляю как можно, чтобы программа по формальным признакам удаляла дублеты. Она ведь не всю запись проверяет, а по свертке. Например, есть 2 дублетные (действительно дублетные) записи, но они все равно редко полные копии друг друга. Одна обязательно будет полнее и качественнее другой. Тут выбирать должен человек, а не программа



Редактировано 2 раз. Последний раз 13.09.2013 10:03 пользователем roit.

Re: Глобальная корректировка
Пользователь: ssa_admin (IP-адрес скрыт)
Дата: 23, September, 2013 07:37

Скажите, пожалуйста, а можно ли глобальной корректировкой выполнить такую задачу:
в тексовом файле есть список штрих-кодов (инвентарей), и нужно у этих штрихкодов поменять место хранения.
Возможно ли?

Re: Глобальная корректировка
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 23, September, 2013 09:50

Попробуйте так
0
ADD
1003
XXXXXXXXXXXXXXXXXXX
&uf('+7W111#'(&uf('+5T','SPIS.TXT')/)),"+"g111|+|,
XXXXXXXXXXXXXXXXXXX
REP
910^d
F
(if p(v910) then if &uf('Av1003#1'):s('+'v910^h'+') or &uf('Av1003#1'):s('+'v910^b'+') then 'MHR' else v910^d fi fi/)/
XXXXXXXXXXXXXXXXXXX
DEL
1003
1
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX

SPIS.TXT должен лежать в директории БД

Страницы: 123>>
Страница: 1 из 3


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