Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Общие вопросы Ирбис64 :  ИРБИС Irbis
 
ТВП доступ к повторению поля
Пользователь: RomanA (IP-адрес скрыт)
Дата: 06, September, 2011 07:57

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

Добавил в rdr.fst строку:

40 0 (if (v40^f<>'******') and (v40^a<>'') then|DWW=|v40^b,if a(v40^b) then|DWW=|v40^h fi fi,|%|d40/)

Честно говоря, описания методов индексирования для меня оказались довольно смутными, но как понял, в принципе 0-й метод вполне может подойти, если использовать знак '%' для разделения повторений.

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

ref(L(|DWW=|v40^b),v10)

Но из DWW берется ссылка только на 1-й mfn. Собственно вопрос, как мне получить ссылки на все mfn содержащиеся в DWW?

При добавлении в rdr.ini поиска по термину DWW все работает верно: выдает всех пользователей, кому хоть раз осуществлялась книговыдача литературы с данным инвентарным номером.

Re: ТВП доступ к повторению поля
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 06, September, 2011 10:51


Re: ТВП доступ к повторению поля
Пользователь: RomanA (IP-адрес скрыт)
Дата: 08, September, 2011 12:03

Спасибо! Теперь считывает все данные! :)

Правда я опять застрял. :(

В формате прописываю следующее:
&uf('7,/DWW='&uf('Av991^a#1')'/,(if p(v40^b) then v40^b|nnn|v10|mmm| fi)"\par "')

Собственно по-моей задумке должно быть что-нибудь вроде:
438153nnnШарифулинmmm438152nnnШарифулинmmm479949nnnШарифулинmmm...

Но выводится:
438153nnnШарифулинmmm438152nnn479949nnn479949...

Т. е. как повторяющееся поле подполе v40^b все-таки учитывается. Но, почему-то обрабатывается как-то странно.

Суть в том, что мне нужно просмотреть все повторения поля 40 и выбрать из него только те повторения, в которых в подполе v40^b=&uf('Av991^a#1') (т. е. задаваемому инвентарному номеру).

Прямое условие if v40^b=&uf('Av991^a#1') then ... fi не работает, т. к., как я описал выше подполе v40^b как-то странно воспринимается при повторении и оно не будет равно &uf('Av991^a#1') почти во всех случаях.

Проглядел список функций Unifor и на первый взгляд ничего, что может помочь не увидел.

Re: ТВП доступ к повторению поля
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 08, September, 2011 12:12

Попробуйте вместо
v40^b|nnn|v10|mmm|

написать
v40^b,if &uf('Av10#1')<>'' then 'nnn'&uf('Av10#1')'mmm' fi

Re: ТВП доступ к повторению поля
Пользователь: ochagova (IP-адрес скрыт)
Дата: 09, September, 2011 11:27

" Суть в том, что мне нужно просмотреть все повторения поля 40 и выбрать из него только те повторения, в которых в подполе v40^b=&uf('Av991^a#1') (т. е. задаваемому инвентарному номеру) "
Для этого простая конструкция:

(if p(v40) then if &uf('+97',v40^B)=&uf('Av991^a#1') then v40 fi fi/)

Re: ТВП доступ к повторению поля
Пользователь: Анна 92 (IP-адрес скрыт)
Дата: 06, August, 2014 09:02

Добрый день,
Наша библиотека работает на МАРК sql , мы приобрели ИРБИС 64
Но при импорте теряются повторные поля которые были записаны в МАРК через повтор (F2)

Можно ли добавить или исправить твп что бы все корректно переносилось
А именно что бы все повторы были выведены на экран.
И 330 поле не выводит содержание на карточку.

Заранее спасибо.

Вложения: Поляповтор.ldb (33.5KB)   MMARCI.FST (11.2KB)  


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