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

Здравствуйте. На главной странице Веб-Ирбиса необходимо скрыть определенные года в области "Поступления за ... год". Как это можно осуществить?

Re: Поступления за ... год
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 24, July, 2017 10:31

Если я правильно понял, Вы хотите удалить из формы выпадающий список с перечнем годов. Полагаю, простейшим способом будет визуальное сокрытие списка в web_news_all_1.pft



'<select style="display:none" size="1" class="inp1" name="S21YEAR" onchange="submit()"','>'/
&uf('+1W721#',&uf('30')),
(if val(&uf('+1R721'))>(val(&uf('30'))-10) then  
'<option value="',&uf('+1R721'),'"'if &uf('+1R721')=&uf('Av3333#1') and  &uf('Av3333#1')<>'' then ' selected=1'  fi'>',&uf('+1R721'),'</option>'
&uf('+1W721#',f(val(&uf('+1R721'))-1,0,0)),
else, 
break 
fi
/)
'</select>'/

Re: Поступления за ... год
Пользователь: Talgat (IP-адрес скрыт)
Дата: 25, July, 2017 12:45

Не совсем. Я хочу удалить не весь список с перечнем годов, а убрать из этого списка определенный перечень(диапазон годов)

Re: Поступления за ... год
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 27, July, 2017 20:41

в тексте формата указанного файла (web_news_all_1.pft) в строке:

(if val(&uf('+1R721'))>(val(&uf('30'))-10) then

10 можно заменить на то число лет (в ретроспективе от текущего года) которое вы хотите включить в меню выбора года, например 5 или 20.

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

Например, если код изменить:
...
(if val(&uf('+1R721'))>(val(&uf('30'))-10) then if '2009,2010,2013':&uf('+1R721') then else
'<option value="',&uf('+1R721'),'"'if &uf('+1R721')=&uf('Av3333#1') and &uf('Av3333#1')<>'' then ' selected=1' fi'>',&uf('+1R721'),'</option>' fi
&uf('+1W721#',f(val(&uf('+1R721'))-1,0,0)),
else,
...

то из меню будут исключены (несмотря ни на что) 2009,2010 и 2013 годы.

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

...
(if val(&uf('+1R721'))>(val(&uf('30'))-10) then if val(&uf('+3J'&uf('+R2')',DP='&uf('+1R721')))<1 then else
'<option value="',&uf('+1R721'),'"'if &uf('+1R721')=&uf('Av3333#1') and &uf('Av3333#1')<>'' then ' selected=1' fi'>',&uf('+1R721'),'</option>' fi
&uf('+1W721#',f(val(&uf('+1R721'))-1,0,0)),
else,
...



Редактировано 1 раз. Последний раз 27.07.2017 20:43 пользователем А. Роман.

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

Talgat написал(а):
-------------------------------------------------------
> Не совсем. Я хочу удалить не весь список с
> перечнем годов, а убрать из этого списка
> определенный перечень(диапазон годов)

Поясните, что заставило Вас заняться решением такой необычно задачи? Если литературы для некоторых лет издания нет и Вы хотите исключить эти годы, то лучше воспользоваться конструкцией UF("+3S

Впрочем, если Вы желаете исключить ДИАПАЗОН, воспользуйтесь условной конструкцией типа

if val(&uf('+1R721'))>1998 and val(&uf('+1R721'))<2008 then 
'<option value="',&uf('+1R721'),'"'if &uf('+1R721')=&uf('Av3333#1') and  &uf('Av3333#1')<>'' then ' selected=1'  fi'>',&uf('+1R721'),'</option>'

fi,

PS
Любые изменения в форматах требуют изучения языка форматирования ИРБИС!

Re: Поступления за ... год
Пользователь: Talgat (IP-адрес скрыт)
Дата: 25, September, 2017 11:41

Мне нужно такое провернуть только с одной БД, не со всеми. Как я понял файл web_news_all_1.pft влияет на все БД?

Re: Поступления за ... год
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 30, September, 2017 13:11

Talgat написал(а):
-------------------------------------------------------
> Мне нужно такое провернуть только с одной БД, не
> со всеми. Как я понял файл web_news_all_1.pft
> влияет на все БД?

Разумеется. Хотите сделать ограничение для конкретной базы (в данном примере -- IBIS), измените код

if (val(&uf('+1R721'))>1998 and val(&uf('+1R721'))<2008) or &uf('Av3331@#1')<>'IBIS'  then

Но Вы по-прежнему не объяснили смысл этих настроек...



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