Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Книговыдача :  ИРБИС Irbis
 
Как считать штрафы
Пользователь: Sergienko (IP-адрес скрыт)
Дата: 09, February, 2012 09:05

Уважаемые разработчики и пользователи системы ИРБИС!
Как считать штрафы?
Нам известно: дата фактического возврата, дата предполагаемого возврата. Вернуть разницу в виде количества дней мы можем при помощи форматного выхода &uf('3СГГГГММДД/ГГГГММДД').
На руках у читателя может быть много книг, если посчитать количество просроченных дней по каждой книге, приплюсовать их, потом все это умножить на сумму за просроченную книгу за сутки. Было бы здорово реализовать это разработчиками в других версиях. Спасибо. Может сделать закладку "Денежные расчеты с читателем". Хотелось бы поразмышлять по этому вопросу.

Re: Как считать штрафы
Пользователь: Sergienko (IP-адрес скрыт)
Дата: 22, February, 2012 05:40

Неужели подсчет штрафов автоматически никого не заинтересовал?

Re: Как считать штрафы
Пользователь: KrVs (IP-адрес скрыт)
Дата: 25, January, 2017 09:52

Подскажите пожалуйста, как на Unifor можно умножить число?

Мне нужно число из поля 907^a умножить на -1. Как это сделать? Чтобы выдало число в формате &uf(..... для дальнейше работы с ним.

Re: Как считать штрафы
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 25, January, 2017 11:06

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

> Мне нужно число из поля 907^a умножить на -1. Как
> это сделать? Чтобы выдало число в формате
> &uf(..... для дальнейше работы с ним.

907^a — дата ввода/редактирования записи. Зачем её умножать на -1 ? confused smiley

Но если это действительно надо сделать, достаточно приписать знак «минус» перед числом, например, так:
( |-|v907^a, / )
Также можно применить полноценную математику, т. е. умножение на -1:
( f(-1 * val(v907^a),0,0), / )



Редактировано 2 раз. Последний раз 25.01.2017 11:10 пользователем amironov73.

Re: Как считать штрафы
Пользователь: KrVs (IP-адрес скрыт)
Дата: 25, January, 2017 12:18

Большое спасибо за ответ.

Дело в том, что хотел изменить метод сортировки в компоненте "Книжные выставки" в J-irbis v.1

Нужно чтобы книги и статьи выходили на странице не по алфавиту, как сейчас, а по дате ввода в ИРБИС. Обычными методами никак нельзя это сделать, так как не поддерживаются параметры сортировки в компоненте. Поэтому решил нестандартным путем пойти.

Там есть только такой параметр в компоненте, как ключ сортировки. Поэтому пытаюсь его изменить, добавив сортировку по дате ввода.

'<sortkey>',&uf('X',&uf('9',&uf('av461^x#1'),&uf('av461^c#1'),&uf('val(v907^a#1)*-1'),&uf('av200^a#1'),&uf('av461^c#1'),&uf('av200^v#1'))),'</sortkey>'


То есть чтобы выборка шла по дате добавления статьи. Но как подумал, если дату изменить, умножив на -1, то можно добиться, чтобы сортировка в обратном порядке шла, от меньшего к большему. Тогда и на странице все наоборот выстроится. Правда не знаю, сработает это или нет. ИРБИС понимает вообще знак "-" при сортировке или нет.

Но еще правда нужно, что только первое повторение подполя 907^a умножалось на -1.



Редактировано 1 раз. Последний раз 25.01.2017 12:27 пользователем KrVs.

Re: Как считать штрафы
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 25, January, 2017 15:18

KrVs написал(а):
-------------------------------------------------------
> То есть чтобы выборка шла по дате добавления
> статьи. Но как подумал, если дату изменить,
> умножив на -1, то можно добиться, чтобы сортировка
> в обратном порядке шла, от меньшего к большему.
> Тогда и на странице все наоборот выстроится.
> Правда не знаю, сработает это или нет. ИРБИС
> понимает вообще знак "-" при сортировке или нет.

Умножение на -1 не сработает, т. к. ключи в словаре упорядочиваются строго в алфавитном порядке, но никак не в числовом. Например, значение "1000000" всегда будет меньше "2". Добавление константного текста (в Вашем случае знака "минус") в начало строки ничего не поменяет. "-1000000" всё равно будет считаться меньше "-2".

Можно попробовать отнимать от большого числа значение подполя v907^a, например, так:
f ( 99999999 - val(&uf('Av907^a#1')), 8, 0 )



Редактировано 1 раз. Последний раз 25.01.2017 15:19 пользователем amironov73.

Re: Как считать штрафы
Пользователь: KrVs (IP-адрес скрыт)
Дата: 26, January, 2017 08:23

amironov73 написал(а):
-------------------------------------------------------
> Можно попробовать отнимать от большого числа
> значение подполя v907^a, например, так:
>
> f ( 99999999 - val(&uf('Av907^a#1')), 8, 0 )
>

Большое спасибо. Но к сожалению тоже не работает. Точнее частично выстраивается, первый и последний совпадают, а внутри нет. Видно все-таки не понимает Ирбис сортировку по числам в ключи, а только по алфавиту.

Но тогда последний вариант остается. Если числа обозначить буквами, это сработает? Например числам 0 1 2 3 4 5 6 7 8 9 присвоить значения А Б В Г Д Е Ж З И К. Конвертирование сделать. Чтобы даты выходили в виде, например, "20160312" как "ВАБЖАГБВ".

Каким способом это лучше сделать?



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