Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Web Ирбис и Z-Ирбис :  ИРБИС Irbis
 
Количество оригинальных повторений элементов списка
Пользователь: sanlazar (IP-адрес скрыт)
Дата: 09, June, 2020 10:45

Столкнулся с такой проблемой:
Создал список, исключил оригинальные повторения, отсортировал, занес в переменную,
вывел в столбик:
&uf('+1W100,3#',&uf('+1V',&uf('+1I',&uf('7OKF,!ANC=КТ!,(mhl,v700^a/)'))))
&uf('+1R100,10000')/
&uf('+1R3')
Как сделать, чтобы напротив каждой записи вывести количество ее оригинальных повторений?
Не используя генератор табличных форм.
Сразу скажу, что этa задача ставилась уважаемым Пыневым Максимом
еще 27.09.2005 - [irbis.elnit.org].
Мало что понял, но учитывая 15-летнюю давность, наверное, изменнились и
подходы к решению проблемы.
И еще вопрос, чем отличаются функции вида: +7 от +1 ?. Заменив единичку на семерку
вышеприведенная схема перестала работать.

С уважением,
В. Лазарев

Re: Количество оригинальных повторений элементов списка
Пользователь: Alio (IP-адрес скрыт)
Дата: 09, June, 2020 10:48

Почему этот вопрос в этом разделе форума?

Re: Количество оригинальных повторений элементов списка
Пользователь: sanlazar (IP-адрес скрыт)
Дата: 09, June, 2020 11:15

Alio написал(а):
-------------------------------------------------------
> Почему этот вопрос в этом разделе форума?

Потому, что этот список в виде гиперссылок планирую вывести в ВЭБЕ,
а конкретно в standart_search_form.

Re: Количество оригинальных повторений элементов списка
Пользователь: SokV (IP-адрес скрыт)
Дата: 09, June, 2020 17:06

В вебе имеется возможность перенести обработку данных в браузер, возложив её на Javascript вместо использования языка форматирования. В некоторых случаях это может быть вполне оправданным решением. Например, когда средств языка форматирования не хватает.

Например, это можно сделать следующим образом (в контексте языка форматирования):
'<script>
var v700a = "',(if p(v700^a) then &uf('++1',v700^a),'|' fi),'";
</script>'

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

В результате, в переменную v700a будут записаны все значения из v700^a, разделенные вертикальной чертой |. И на html странице переменную v700a, содержащую массив соответствующих значений, можно обработать, пользуясь Javascript, который предоставляет много удобных возможностей, отсутствующих в языке форматирования.

Для использования этой идеи версия системы - это существенный момент. &uf('++1' необходим для кодирования символов, чтобы они не нарушали синтаксис и содержимое литерала в Javascript. Например, символы кавычек, которые могут встретиться в полях. Этот юнифор работает только в ИРБИС+. Это можно пытаться как то обходить в старых версиях, но потребует дополнительных телодвижений.



Редактировано 1 раз. Последний раз 09.06.2020 18:43 пользователем SokV.



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