Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Общие вопросы Ирбис64 :  ИРБИС Irbis
 
Можно ли использовать js в pft-файлах?
Пользователь: RomanA (IP-адрес скрыт)
Дата: 01, December, 2011 09:34

У нас есть сводный каталог муниципальных библиотек Новосибирска, используется модуль Web-ИРБИСа и обеспечена возможность поиска книг с сайта.

Есть проблема с выводом результатов поиска, а точнее экземпляров. Как понимаю формируется список экземпляров в файле !!lw7ex.pft

Вот его содержимое:
&uf('+7W1#',(&uf('Pv910^d')/)), 
&uf('+7W5#'), 
(if p(g1) then &uf('+7W2#'),&uf('+7W2#',g1),&uf('6EXUVL'),fi/), 

&uf('+7W2#',f(rsum((g5^a|;|)),0,0))
if &uf('+7R2') <> ''
  then '<br><b>Экземпляры всего:</b> ',&uf('+7R2'), &unifor('S0'), '<br>'fi,

(if p(g5) then if &uf('S1A')='1' then else ', 'fi,&uf('G0^'g5),| (|g5^a|)| fi), 
if f(rsum((g5^b|;|)),0,0)<>''then'<br> <b>Свободны: </b>' 
&unifor('S0'),(if p(g5^b) then if &uf('S1A')='1' then else ', 'fi,&uf('G0^'g5),| (|g5^b|)| fi) 
else'<br> <b>Свободных экз. нет</b>' fi

Данные об экземплярах берутся непосредственно из базы. У нас в базе сводного каталога они прописываются в виде "01-Аб.", где 01 - "условная сигла" библиотеки, "Аб." - место хранения.

Т. е. в окне просмотра с результатами поиска видно: "Экземпляры всего:1
01-Аб. (1)", что очень неудобно, так как тому кто просматривает нужно самому обращаться к справочнику и смотреть что 01 - это такая-то библиотека...

Если вставить, например javascript, то можно формировать результаты поиска с названием библиотеки, а не загадочным номером.

Собственно, имеется 2 вопроса:

1)Можно ли использовать JS и если да, то где можно почитать о том, как это сделать.

2)Можно ли другим способом решить данную проблему? Например используя язык форматирования системы ИРБИС и что будет удобнее: он или JS?

Re: Можно ли использовать js в pft-файлах?
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 01, December, 2011 22:40

В данном примере удобнее использовать возможности языка форматирования и заменять на этапе расформатирования записи условную сиглу на название. Для этого удобно будет воспользоваться unifor'ом K.

Re: Можно ли использовать js в pft-файлах?
Пользователь: RomanA (IP-адрес скрыт)
Дата: 02, December, 2011 05:40

Спасибо)) Хотя вчера под вечер уже сам догадался. :)

Заменил строчку:

(if p(g5) then if &uf('S1A')='1' then else ', 'fi,&uf('G0^'g5),| (|g5^a|)| fi),

На:

(if p(g5) then if &uf('S1A')='1' then else ', 'fi, if &uf('kekz.mnu\'&uf('G0^'g5))='' then &uf('G0^'g5) else &uf('kekz.mnu\'&uf('G0^'g5)) fi,| (|g5^a|)| fi),

И все заработало. :)

А вообще, где можно почитать что такое g5 (переменная, как понимаю), и где она формируется? Просто иногда вместо нормального '01-Аб.' возвращается что-то вроде '01-Аб.; 1, 1', хотя в записи все правильно.



Редактировано 5 раз. Последний раз 02.12.2011 07:31 пользователем RomanA.

Re: Можно ли использовать js в pft-файлах?
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 02, December, 2011 08:42

g5 - вывод значения глобальной переменной под 5м номером. Глобальные переменные - это виртуальные поля. С ними можно работать точно так же как с полями. Но если поля в языке форматирования менять нельзя, то глобальные переменные - можно.
Для работы с глобальными переменные используется unfor('+7').

Re: Можно ли использовать js в pft-файлах?
Пользователь: RomanA (IP-адрес скрыт)
Дата: 06, December, 2011 07:37

Спасибо! :)

Правда, где g5 пишется я так и не понял... В файле !!kw7ex.pft встречается
&uf('+7W5#'),

+7WNNN#SSSS
где:
NNN – номер переменной;
SSSS – список строк (результат расформатирования); каждая строка становится отдельным повторением.

После # ничего нет, на самом деле вообще непонятно что происходит и для чего нужна эта строка.

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

(if p(g5) then if &uf('S1A')='1' then else '<br> 'fi, if &uf('kekz.mnu\'&uf('G0^'g5))='' then if &uf('kekz.mnu\'&uf('G0;'g5))='' then &uf('G0^'g5) else &uf('kekz.mnu\'&uf('G0;'g5)) fi else &uf('kekz.mnu\'&uf('G0^'g5)) fi,| (|g5^a|)| fi),



Редактировано 1 раз. Последний раз 06.12.2011 07:39 пользователем RomanA.



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