Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис    FTP-сервер
J-ИРБИС :  ИРБИС Irbis
 
Re: Поступления за период с .. по ..
Пользователь: xu4kok (IP-адрес скрыт)
Дата: 28, May, 2018 07:43

Добрый день, коллеги! Нужна Ваша помощь!
В файл J-ирбис \htdocs\jirbis2\components\com_irbis\search_forms\professional_default\main.htm вставил Ваш код и поле поиска появилось, но сам поиск не осуществляется.
" <tr>
<td> Дата поступления (ГГГГММДД): </td>
<input type="hidden" name="61_S21P01" value="2">
<input type="hidden" name="61_S21P03" value="DPEXZ=">
<input type="hidden" name="61_S21P05" value="Дата поступления">
<td> <input type="hidden" name="61_S21LOG" value="5">
с&nbsp;&nbsp;<input class="inp1" name="61_S21P06" size="8" maxlength="8">&nbsp;&nbsp;
по&nbsp;&nbsp;<input class="inp1" name="61_S21P07" size="8" maxlength="8">
</td>
</tr> "

Подскажите куда нужно вставить код 910 0 (if p(v910^c) then |DPEXZ=|v910^c/)
Чтобы происходил отбор записей? (файла ibis_user.fst в каталоге с базой ibis нет)
Вставка этого кода в конце файла ibis.fst не помогла.
Нужно ли редактироать настройки в панели управления joomla компонента ирбис? Ели да то какие?

Прошу описать подробно для "чайников" smiling smiley

НФ "Институт Норильскпроект "ООО "Институт Гипроникель"



Редактировано 2 раз. Последний раз 28.05.2018 07:45 пользователем xu4kok.

Re: Поступления за период с .. по ..
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 29, May, 2018 18:45

Ох и намудрили Вы, Константин Игоревич....

Вы смешали Web-ИРБИС и J-ИРБИС 2.0

Достаточно было:

1. создать в директории deposit файлы
ibis_user.fst :
910 0 &uf('+7'),(&uf('+7U9910#'v910^C)),&uf('+7G9910'),(|DPEXZ=|G9910/)
и
ibis_user.ifs :
910,910 0 &uf('+7'),(&uf('+7U9910#'v910^C)),&uf('+7G9910'),(|DPEXZ=|G9910/)

сценарии добавят только уникальные даты поступления из 910 поля. Повторы ни к чему.

добавить в конец IFS/FST файлов нужных БД строку-ссылку на вложенный сценарий, описанный выше: @ibis_user

Так вы сможете добавлять нужные сценарии в одном файле для нескольких однотипных БД чем вполне облегчите себе жизнь.

2. Создать словари нужных БД заново.

3. Добавить в таблицу Правила обработки форм закладки Поисковые формы в административной панели J-ИРБИС (меню Компоненты - ИРБИС)

строку (по аналогии с тем, что на прилагающемся скриншоте)

4. В файле поисковой формы добавить в нужную позицию, например:
<tr>
<td class="explication">Дата поступления:</td>
<td class="field"><input type="text" name="DPEXZ" id="DPEXZ" class="fields"></td>
</tr>



Редактировано 3 раз. Последний раз 30.05.2018 08:35 пользователем А. Роман.

Вложения: img-2018-05-29-19-08-08.png (35.6KB)  
Re: Поступления за период с .. по ..
Пользователь: xu4kok (IP-адрес скрыт)
Дата: 30, May, 2018 06:56

Роман Сергеевич, спасибо за ответ.
Поиск не заработал, видно я Вас понял не полностью и поиск у меня не заработал (скрин "расширенный поиск").
Проделал следующее:
1. В поисковую форму добавил код
<tr>
<td class="explication">Дата поступления:
</td>
<td class="field">
c&nbsp;
<input type="text" name="date_exz1" id="date_exz1" class="fields" size="8" >
&nbsp;по&nbsp;
<input type="text" name="date_exz2" id="date_exz2" class="fields" size="8" >
</td>
</tr>

2. В админ панели добавил правило обработки форм (скрин "админка")

3. Сделал два файла ibis_user.fst и ibis_user.ifs с кодами ,которые Вы указали, и положил их по пути где установлен сервер ирбис C:\server\IRBIS64\Datai

4. В файлах books.fst и books.ifs в самом конце добавил строку с текстом @ibis_user

Скажите что я сделал неправильно?



Редактировано 1 раз. Последний раз 30.05.2018 06:57 пользователем xu4kok.

Вложения: админка.JPG (91.4KB)   расширенный поиск.JPG (125.7KB)  
Re: Поступления за период с .. по ..
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 30, May, 2018 11:08

Константин Игоревич, пожалуйста извините, не до конца вник вчера в тему.
С утра после чашки кофе все встало на свои места.

В сценариях допустил ошибку. При переносе кода потерялся хвост: ,(|DPEXZ=|G9910/)


С отбором по датам поступления с .. по .. не все так просто.

Для того чтобы сделать самостоятельный, аналогичный имеющемуся (в разделе новых поступлений) блок поисковой формы необходимо прежде всего разобраться, чем не устраивает имеющаяся форма, и только в случае реальной потребности в корректировке сценариев PHP (для функции обработки введенных терминов) - произвести их. Но боюсь, что судя по тексту документации эти изменения уже будут носить нежелательный характер.

Сценарий для поиска по датам поступлений с префиксом DP= имеющийся в ИРБИС в дистрибутивном исполнении на мой взгляд не совсем корректен (учитывает иную логику, чем включение в словарь всех дат поступления из поля 910). Он использует из 910 поля почему-то только первое повторение (это в ряде случаев приводит к неверным результатам поиска, т.к. например, повторения 910 поля могут быть отсортированы перед сохранением по одному из подполей).

Поэтому, если изменить сценарий для DP= на

910 0 &uf('+7'),&uf('+7U9910#'(v910^C/)), &uf('+7G9910'), (|DP=|G9910/), if a(V910) then 'DP=',&uf('Av907^A#1'), else fi

то в словарь попадут все уникальные даты поступления из поля 910, а при его отсутствии - дата из 1-го повторения поля 907 (обычно это характерно для электронных ресурсов, у которых нет поля 910).

Если я угадал с причиной создания отдельного вида поиска, то, вы можете:

1. создать свой словарь, заменить в таблице правил обработки форм префикс DP= на DPEXZ= и включить блок из формы новых поступлений (new_books_default) в нужную форму поиска.

или

2. скорректировать в ИРБИС сценарии для словаря с префиксом DP= и и включить блок из формы новых поступлений (new_books_default) в нужную форму поиска.

Еще раз извините, что не правильно понял задачу изначально.

Re: Поступления за период с .. по ..
Пользователь: xu4kok (IP-адрес скрыт)
Дата: 30, May, 2018 11:15

Роман Сергеевич, спасибо. Можно просто. Константин.
Задача следующая, отбирать записи в библиослайдере и для электронной выставки.
Поиск в электронном каталоге пользователям не нужен, это я пытался проверить.
,(|DPEXZ=|G9910/) этот кусок кода откуда куда?
(не забывайте про чайника moody smiley)

Re: Поступления за период с .. по ..
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 03, June, 2018 16:28

Константин Игоревич, полагаю, что Расширенный поиск, реализованный в J-ИРБИС 2.0, не подошел Вам поскольку в выборку попадают записи по дате создания записи (в т.ч. ретроконверсия). Поэтому Вы решили создать поисковый индекс, отличный от DP=

Но имеет ли смысл помещать в этот новый индекс все даты 910 поля, в т.ч. даты поступления новых партий ранее поступавшей книги? Может быть брать только дату первого поступления.


Тогда в файле books.fst нужно будет добавить строку:

910 0 "DPEXZ="d910,&uf('Av910^C#1')

а в файл books.ifs
910,910 0 "DPEXZ="d910,&uf('Av910^C#1')

Вложенные FST файлы сильно замедляют работу, поэтому их использование сейчас не рекомендуется.

Не забудьте перезапустить АРМ АДминистратор и создать заново словарь.


Чтобы получить запрос для библиослайдера, Вам достаточно скопировать его из интерфейса поиска.


PS
К А.Роману: большая просьба не давать советы на форуме если Вы не вполне уверены в своих силах. Большинство пользователей читает форум и доверяет тому, что здесь пишут...


Приведённая Вами чудовищная конструкция в принципе не должна использоваться.

910 0 &uf('+7'),&uf('+7U9910#'(v910^C/)), &uf('+7G9910'), (|DP=|G9910/), if a(V910) then 'DP=',&uf('Av907^A#1'), else fi

Она не только сильно замедляет работу, но и при определённых условиях может привести к некорректной работе FST. Если уж Вы почему-то решили, что в FST должны попадать только уникальные повторения v910^С (хотя не вполне понятно зачем это нужно в данном случае), то следовало использовать следующий код:

910 0 &uf('+1I'(|DP=|v910^c/)), if a(v910) then 'DP=',&uf('Av907^A#1') fi



Редактировано 2 раз. Последний раз 03.06.2018 16:32 пользователем Кирилл Соколинский (СЗТУ).

Re: Поступления за период с .. по ..
Пользователь: xu4kok (IP-адрес скрыт)
Дата: 04, June, 2018 07:37

Кирилл Евгеньевич, спасибо за ответ!
Вставил код в нужные справочники, построил заново словарь полностью и не получил результата совсем. На запрос в библиослайдере или электронном каталоге или в виртуальной выставке нулевой ответ (отбор не происходит).
Запрос такого вида
(<.>DPEXZ=20180101<.>)*(<.>DPEXZ=20180505<.>)

Я уверен что что-то упускаю или делаю неверно. Может команду DPEXZ нужно ещё где-то прописать (кроме как в админ панели joomla ирбис поисковые формы)?

Re: Поступления за период с .. по ..
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 04, June, 2018 08:08

xu4kok написал(а):
-------------------------------------------------------

> Запрос такого вида
> (<.>DPEXZ=20180101<.>)*(<.>DPEXZ=20180505<.>)


Новые поля в таблице Правила обработки форм Вам нужно зарегистрировать с такими же параметрами, как поля date_income1 и date_income2.

Сейчас вместо оператора диапазона сейчас фигурирует оператор "И" (*).

Пример запроса по диапазону дат можно видеть в результате работы режима "Новые поступления".

Re: Поступления за период с .. по ..
Пользователь: xu4kok (IP-адрес скрыт)
Дата: 05, June, 2018 10:04

При постановке запроса (<.>DPEXZ=20180101<.>)[...](<.>DPEXZ=20180505<.>) в виртуальной выставке отбор работает, но при этом не работает в библиослайдере и в расширенном поиске. В расширенном поиске вообще формируется непонятный запрос. В разделе админки "правила обработки форм в столбце "способ заполнения поля" не могу поставить "date" аналогично правилам date_income1 (скрины прилагаю)

Вложения: админка.JPG (93.6KB)   библиослайдер.JPG (15.7KB)   расширенный поиск.JPG (52.4KB)  
Re: Поступления за период с .. по ..
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 12, June, 2018 23:30

xu4kok написал(а):
-------------------------------------------------------
> При постановке запроса
> (<.>DPEXZ=20180101<.>)[...](<.>DPEXZ=20180505<.>)

В норме выражение не должно содержать скобок.

(<.>DPEXZ=20180101<.>[...]<.>DPEXZ=20180505<.>)



> В разделе админки "правила
> обработки форм в столбце "способ заполнения поля"
> не могу поставить "date" аналогично правилам
> date_income1 (скрины прилагаю)

Всё верно, функция date_income1 ориентирована на то чтобы превращать дату, где год и месяц отделены точками (такая дата генерируется виджетом Календарь) в дату формата ИРБИС. Я расширил функционал -- теперь дата в формате ИРБИС (ГГГГММДД) тоже поддерживается. Все подписанные на автоматическое обновление сайты обновлены.



Редактировано 1 раз. Последний раз 13.06.2018 00:03 пользователем Кирилл Соколинский (СЗТУ).



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