Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Комплектатор :  ИРБИС Irbis
 
Итоговое КСУ фонда.
Пользователь: Gena (IP-адрес скрыт)
Дата: 28, August, 2009 11:48

Добрый день, коллеги!

Появилась необходимость создать итоговую запись КСУ для всего фонда: и для той части, которая полностью велась в ИРБИСЕ, и для той, для которой только в базе Электронного каталога в экземплярах проставлены КСУ, а в CMPL соответствующие записи КСУ не создавались. Теоретически можно было бы создать записи для каждой КСУ за все года, но это громаднейшее количество записей, которые, к тому же, нужно будет еще и по очереди пополнять. Можно ли обойти это? Для нас важно, что бы последние 3 года, которые ведутся полностью в Ирбисе были с детальной разбивкой, а все предыдущие годы - просто выведены итоговые суммы по всем позициям. То есть, должна получиться одна итоговая запись КСУ за все предыдущие годы, и три отдельные за последние. Можно ли такое?

Одна из идей была следующей: при пополнении записи КСУ используется rksu.fst, в его заголовке указанно - 991 ksu=, то есть отбор записей по параметру, введенному в опросном листе и перенос данных в запись, найденную по инвертированному словарю "ksu=". Хотел изменить именно отбор записей БО, скажем, указав конструкцию подмены реального старого КСУ, а специально заготовленный для хранения прошлой информации

(if p(v910) then if val(v910^u.4)<2007 then 'KSU=2006' fi fi/)

Но вот именно с отбором и не разобрался. Подскажите, пожалуйста, возможно ли такое. Если да, то как? Если нет, то что вы порекомендуете? Начальство хочет увидеть точные подсчитанные на компьютере цифры за все время работы. Фонд внесен на 95-97%, по инвентарным книгам проверяли - расхождений нет, но у нас КСУ с очень дробным делением, так что информации из него много.

Re: Итоговое КСУ фонда.
Пользователь: Gena (IP-адрес скрыт)
Дата: 28, August, 2009 13:15

Результаты экспериментов по выше сказанному. В CMPL.FST отредактировал строку, которая формирует словари КСУ из книг, получилась такая строка.

910 0 (if p(v910^y)then |NA=|v910^y| |,v910^b,if'C U':v910^a then| (|v910^1|экз.)|fi,|-|v910^d fi/if p(v910^y)then |NAS=|v910^u*2.2|-|,v910^y|-| fi/if p(v910^u)then |MHR=|v910^d/|NKSUK=|v910^u/if val(v910^u.4)<2007 then |NKSUK=2006/00|d910^u fi/|NKSU=|v910^u| |,v910^b,if'C U':v910^a then| (|v910^1|экз.)|fi,|-|v910^d fi/)

Что это дало: из Каталогизатора выводится под записью 2006/00 количество экземпляров книг, в которых в КСУ год указан меньше 2007. Вроде бы получилось... Но вот только не для Комплектатора. В Комплектаторе создал запись КСУ с номеро 2006/00, при попытке ее пополнения, он очень долго думает... считает... и в итоге выдает
одну строчку с очень сомнительными данными: заполнены два подполя и все. И еще: если выбрать в комплектаторе эту запись, то в окне связанных документов ничего не отображается. Подскажите, в какой словарь нужно проиндексировать эту мнимую запись КСУ, что бы Комплектатор смог с ней работать.

Re: Итоговое КСУ фонда.
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 28, August, 2009 13:57

В rksu.fst при анализе поля 910 задано v910^u='v991'
Попробуйте заменить на v910^u:'v991'

Re: Итоговое КСУ фонда.
Пользователь: Сорокина Лариса (IP-адрес скрыт)
Дата: 28, August, 2009 14:07

Gena написал(а):
-------------------------------------------------------
> Результаты экспериментов по выше сказанному. В
> CMPL.FST отредактировал строку, которая формирует
> словари КСУ из книг, получилась такая строка.
>
> 910 0 (if p(v910^y)then |NA=|v910^y| |,v910^b,if'C
> U':v910^a then| (|v910^1|экз.)|fi,|-|v910^d fi/if
> p(v910^y)then |NAS=|v910^u*2.2|-|,v910^y|-| fi/if
> p(v910^u)then |MHR=|v910^d/|NKSUK=|v910^u/if
> val(v910^u.4)<2007 then |NKSUK=2006/00|d910^u
> fi/|NKSU=|v910^u| |,v910^b,if'C U':v910^a then|
> (|v910^1|экз.)|fi,|-|v910^d fi/)
>
> Что это дало: из Каталогизатора выводится под
> записью 2006/00 количество экземпляров книг, в
> которых в КСУ год указан меньше 2007. Вроде бы
> получилось... Но вот только не для Комплектатора.
> В Комплектаторе создал запись КСУ с номеро
> 2006/00, при попытке ее пополнения, он очень долго
> думает... считает... и в итоге выдает
> одну строчку с очень сомнительными данными:
> заполнены два подполя и все. И еще: если выбрать в
> комплектаторе эту запись, то в окне связанных
> документов ничего не отображается. Подскажите, в
> какой словарь нужно проиндексировать эту мнимую
> запись КСУ, что бы Комплектатор смог с ней
> работать.

Выше условие "val(v910^u.4)<2007 ..." должно быть учтено и файле RKSU.fst той БД по которой выполняется пополнение. Везде, где сравнивается 910^u c 991.

Re: Итоговое КСУ фонда.
Пользователь: Gena (IP-адрес скрыт)
Дата: 28, August, 2009 14:59

Спасибо, с вашей помощью разобрался. Все очень просто оказалось. Создал новый файл rksu_old.fst, в котором указал отбор не по модельному полю 991, а по условию, что бы год КСУ в экземплярах был ниже 2007, прописал этот fst новом ini файле для комплектатора и спокойно им воспользовался. Получилась запись, аналогичная обычной КСУ, но только с результатами за все годы вплоть до 2007.

Re: Итоговое КСУ фонда.
Пользователь: Gena (IP-адрес скрыт)
Дата: 28, August, 2009 16:34

В процессе модернизации возник такой вопрос - а могу ли я передать больше одного параметра в модельном поле в rksu.fst? Если я захочу передать туда сложный диапазон, состоящий из двух дат, возможно даже не годов, а кварталов, то как это сделать? То есть, схитрить и вставить свой разделитель, а потом в разделять поле на подполя через тот же &uf('g это можно, но можно ли сделать это аккуратнее? Да и для такого случая нужно будет создавать запись КСУ поступления с таким же номером, как передающийся. А можно добиться передачи отдельно в модельном поле номера пополняемой КСУ, отдельно временных рамок обрабатываемых БО?



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