Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Web Ирбис и Z-Ирбис :  ИРБИС Irbis
 
поиск по году не работает
Пользователь: Илья (IP-адрес скрыт)
Дата: 11, February, 2005 16:01

День добрый! Подскажите где может быть загвоздка:

Задача: Создаю в Web-Irbis поиск по году выдачи документа, который хранится в #982^B.

В FST-файле базы данных ввел строку:

2982 0 if p(v982^B) then 'PATD=' v982^B.4 fi

Создаю в INI-файле каталогизатора в SEARCH строку для поиска по этому полю. Проверяю - в "Каталогизаторе" все работает: есть поисковый словарь, поиск идет.

В Web-Irbis в AMAIN.FRM добавляю:

<tr>
<td align=right>
<FONT SIZE=-1>Год выдачи документа:  </FONT>
</td>
<td align=left colspan="3">
<INPUT TYPE="HIDDEN" NAME="2982S21P03" VALUE="PATD=">
<INPUT TYPE="HIDDEN" NAME="2982S21P05" VALUE="Год выдачи документа">
<INPUT class="inp1" NAME="2982S21STR" SIZE="4" MAXLENGTH="4">
</td>
</tr>

При попытке поиска система говорит, что ничего не найдено. В чем дело?


Re: поиск по году не работает
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 11, February, 2005 17:23

Такой словарь
2982 0 if p(v982^B) then 'PATD=' v982^B.4 fi
точно рабоает? Мне кажется, что тут немного не хватает концовочки
2982 0 if p(v982^B) then 'PATD=',v982^B*0.4 fi
Да и вообще строка с форматом не совсем верна. Надо примерно так
982 0 |PATD=|v982^B*0.4/
Попробуйте вот так. А вот параметры в вебе на память вспомнить не могу :)

Re: поиск по году не работает
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 12, February, 2005 01:27

Если я правильно понимаю, в amain.frm должны использоваться иена типа ***S21..., а не ****S21...

Re: поиск по году не работает
Пользователь: Илья (IP-адрес скрыт)
Дата: 14, February, 2005 09:12

М. Паневу:

1) "Такой словарь 2982 0 if p(v982^B) then 'PATD=' v982^B.4 fi точно работает?" ->
Работает. Я организовал доступ через WI к той же БД, которая формируется "Каталогизатором", поэтому всегда есть возможность проверить как формируются словари. Словарь есть - и поиск по нему работает. Более того, у меня еще 2 похожие строки в .FST-файле:

9829 0 if p(v982^9) then 'PATNMB=' v982^9 fi
0982 0 if p(v982^0) then 'PATT=' v982^0 fi

Все три строки нормально формируют словари. И с поиском проблем нет - ни в "Каталогизаторе" ни в WI.

2) " Мне кажется, что тут немного не хватает концовочки" -> если Вы про то,что опущено *<смещение> в команде вывода фрагмента подполя, то, насколько я понимаю, это можно безболезненно опускать (Язык форматир. данных, п.2.3)

3) "Да и вообще строка с форматом не совсем верна. Надо примерно так 982 0 |PATD=|v982^B*0.4/" -> это может и короче, но, по сути то же самое; да и поле неповторяющееся - зачем мне тут повторяющийся литерал?

Роману А.:

1) По-моему, разработчики не накладывают никаких ограничений на параметр *** в командах поиска кроме уникальности внутри раздела
(Знакомство с Web-ИРБИС, гл. 3). К тому же, у меня целых три почти одинаковых блока в Amain.frm, во всех трех параметры *** четырехзначные. Поиск работает нормально по двум первым и не работает только по году.


Re: поиск по году не работает
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 14, February, 2005 11:28

Илье:

2) Я не про *<смещение>, а про символ перевода строки "/" в конце формата. А вот про то, что смещение опускать можно, не видел :), спасибо, конечно, что обратили мое внимание, но всетаки со смещением как-то нагляднее.

3) Так а я и не говорил, что это не тоже самое. Просто это короче. Да и к тому же, хоть поле и не повторяющееся, его очень легко можн сделать повторяющимся :), по этому на всякий случай лучше добовлять символ перевода строки.

Роману:

Ограничений действительно никаких нет. Только вот мне интересно, неужели в этой форме у Ильи почти 3 тыс. переменных?!! Можно посмотретьна эту форму (в смысле УРЛ, а не в форум :)? Так просто, ради повышения квалификации.

Re: поиск по году не работает
Пользователь: Илья (IP-адрес скрыт)
Дата: 14, February, 2005 12:00

Если правильно понял, то вопрос откуда цифра 2982 ?
982 - номер поля; B - 2-я буква латиницы, т.е. чтобы легче было запомнить, что эта строчка относится к #982^B. URL дать не могу, т.к. БД нах-ся во внутренней сети.

По поводу перевода строки (/): В IBIS.FST, например, можно найти достаточно примеров, когда этот символ не используется в конце строки при методе индексирования 0. Я, конечно, попробовал поставить / в конце и создать заново словарь (так, чтобы ответить на вопрос "а ты пробовал?"). Не помогает, как и ожидалось. Опять же, в двух других моих строчках этого символа нет, но все ОК.

Но пока это все упражнения в словесности :).

Мой вопрос не снят, почему в "Каталогизаторе" поиск по году работает, а в WI - нет?


Re: поиск по году не работает
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 14, February, 2005 12:16

Ответ на вопрос: телепатически очень сложно сказать, почему :)... код страницы поиска-то не видно...

Re: поиск по году не работает
Пользователь: Илья (IP-адрес скрыт)
Дата: 15, February, 2005 08:08

Кстати, заменил четырехзначную метку 2982 на трехзначную 015 и поиск заработал. Спасибо Роману, что навел на мысль. Хотя странно, имея в виду то,что написано в описаниии про "любое значение" :)

Re: поиск по году не работает
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 15, February, 2005 11:59

Всегда пожалуйста! :)



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