UNIFOR — различия между версиями

Материал из Wikipedia
Перейти к: навигация, поиск
Строка 1: Строка 1:
 
==Перечень функций формат-программы UNIFOR с примерами их применения==
 
==Перечень функций формат-программы UNIFOR с примерами их применения==
 +
 +
===Функции для обработки строк===
 +
 +
{{Описание функции UNIFOR
 +
|name=9
 +
|title=Удалить двойные кавычки из заданной строки
 +
}}
 +
 +
9<исх.строка>
 +
 +
'''Примеры:'''
 +
&unifor("9"v200^a)
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=0
+
|name=E
|title=Выдать содержимое документа полностью
+
|title=Вернуть заданное количество слов с начала строки
|description=Выдать содержимое документа полностью (формат ALLl)
+
}}
 +
 
 +
EN<строка>
 +
где <tt>N</tt> - количество слов (одна цифра).
 +
 
 +
 
 +
'''Примеры:'''
 +
&unifor("E3"v200^a)
 +
 
 +
{{Описание функции UNIFOR
 +
|name=F
 +
|title=Вернуть часть строки, начиная со следующего слова после указанного и до конца строки
 +
}}
 +
 
 +
FN<строка>
 +
где <tt>N</tt> - количество слов (одна цифра).
 +
 
 +
'''Примеры:'''
 +
&unifor("F3"v200^a)
 +
 
 +
{{Описание функции UNIFOR
 +
|name=G
 +
|title=Вернуть часть строки до или начиная с заданного символа
 +
}}
 +
 
 +
GNA<строка>
 +
где:
 +
* N=0 если ДО заданного символа (не включая его); N=1 если начиная С заданного символа (включая его).
 +
* А - заданный символ (# - обозначает цифру; $ - обозначает букву).
 +
 
 +
'''Примеры:'''
 +
&unifor("G0#"v700)
 +
&unifor("G1-"v700^a)
 +
 
 +
{{Описание функции UNIFOR
 +
|name=T
 +
|title=Транслитерация кириллических символов с помощью латиницы
 +
}}
 +
 
 +
TN<строка>
 +
где N - вид таблицы транслитерации (0 или 1).
 +
 
 +
'''Примеры:'''
 +
&unifor("T0"V200)
 +
 
 +
{{Описание функции UNIFOR
 +
|name=X
 +
|title=Удаление из заданной строки фрагментов, выделенных угловыми скобками <>
 +
}}
 +
 
 +
X<строка>
 +
 
 +
'''Примеры:'''
 +
&unifor("X"v200)
 +
 
 +
{{Описание функции UNIFOR
 +
|name=Q
 +
|title=Вернуть заданную строку в нижнем регистре
 +
}}
 +
 
 +
Q<строка>
 +
 
 +
'''Примеры:'''
 +
&unifor("Q"v200)
 +
 
 +
{{Описание функции UNIFOR
 +
|name=+3E
 +
|title=Кодирование данных для представления в URL
 
}}
 
}}
  0
+
 
 +
  +3E<данные>
  
 
'''Примеры:'''
 
'''Примеры:'''
  &unifor('0')
+
  &unifor(‘+3E’,v1007)
 +
 
 +
{{Описание функции UNIFOR
 +
|name=+3D
 +
|title=Декодирование данных из URL
 +
}}
 +
 
 +
+3D<данные>
 +
 
 +
===Функции для работы с датой и временем===
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
Строка 35: Строка 124:
 
'''Примеры:'''
 
'''Примеры:'''
 
  &unifor('36',&unifor('34'))
 
  &unifor('36',&unifor('34'))
 +
 +
===Функции для работы с глобальными переменными===
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=9
+
|name=+7
|title=Удалить двойные кавычки из заданной строки
+
|title=Очистить (опустошить) все глобальные переменные
 
}}
 
}}
  
  9<исх.строка>
+
  +7
  
 
'''Примеры:'''
 
'''Примеры:'''
  &unifor("9"v200^a)
+
  &unifor('+7')
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=A
+
|name=+7R
|title=Выдать заданное повторение поля
+
|title=Чтение глобальной переменной
 
}}
 
}}
  
  AV<tag>^<delim>*<offset>.<length>#<occur>
+
  +7RNNN,nnn
 
где:
 
где:
* <tt><tag></tt> метка поля;
+
* NNN номер  переменной.
* <tt><delim></tt> – разделитель подполя;
+
* nnn – номер повторения. По умолчанию - номер текущего повторения в повторяющейся группе.
* <tt><offset></tt> – смещение;
+
Эквивалентная конструкция языка форматирования GNNN.
* <tt><length></tt> – длина;
 
* <tt><occur></tt> – номер повторения.
 
  
 
'''Примеры:'''
 
'''Примеры:'''
  &unifor('Av200#2')
+
  &unifor(‘+7R100’)
&unifor('Av910^a#5')
+
эквивалентная конструкция языка форматирования:
  &unifor('Av10^b*2.10#2')
+
  G100
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=P
+
|name=+7W
|title=Выдать заданное оригинальное повторение поля
+
|title=Запись глобальной переменной
|formatSeeAlsoName=A
 
|formatSeeAlsoTitle=Выдать заданное повторение поля
 
|exampleSeeAlsoName=A
 
|exampleSeeAlsoTitle=Выдать заданное повторение поля
 
 
}}
 
}}
 +
 +
+7WNNN#SSSS
 +
где:
 +
* NNN – номер переменной;
 +
* SSSS – список строк (результат расформатирования); каждая строка становится отдельным повторением.
 +
 +
'''Примеры:'''
 +
&unifor(‘+7W100#’,(v910/))
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=B
+
|name=+7U
|title=Выдать библиографическую свертку документа
+
|title=Добавление повторений глобальной переменной
 
}}
 
}}
  
  B
+
  +7UNNN#SSSS
 +
где:
 +
* NNN – номер  переменной;
 +
* SSSS – список строк (результат расформатирования); каждая строка становится отдельным повторением.
 +
 
 +
{{Описание функции UNIFOR
 +
|name=+7M
 +
|title=Логическое перемножение повторений двух переменных
 +
}}
  
'''Примеры:'''
+
+7MNNN#MMM
&unifor('B')
+
Результат перемножения записывается в первую переменную.
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=C
+
|name=+7S
|title=Контроль ISSN/ISBN
+
|title=Логическое вычитание повторений двух переменных
|description=Контроль ISSN/ISBN. Возвращаемое значение: 0 - при положительном результате, 1 - при отрицательном
 
 
}}
 
}}
  
  С<ISSN/ISBN>
+
  +7SNNN#MMM
 +
Результат вычитания записывается в первую переменную.
 +
 
 +
{{Описание функции UNIFOR
 +
|name=+7A
 +
|title=Логическое сложение повторений двух переменных
 +
}}
  
'''Примеры:'''
+
+7ANNN#MMM
&unifor("C"v10^a)
+
Результат сложения записывается в первую переменную.
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=E
+
|name=+7G
|title=Вернуть заданное количество слов с начала строки
+
|title=Исключение неоригинальных повторений переменной
 
}}
 
}}
  
  EN<строка>
+
  +7GNNN
где <tt>N</tt> - количество слов (одна цифра).
+
Результат исключения записывается в ту же переменную.
  
 +
{{Описание функции UNIFOR
 +
|name=+7T
 +
|title=Сортировка повторений переменной
 +
}}
  
'''Примеры:'''
+
+7TNNN
&unifor("E3"v200^a)
+
Результат сортировки записывается в ту же переменную.
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=F
+
|name=+1
|title=Вернуть часть строки, начиная со следующего слова после указанного и до конца строки
+
|title=Очистить (опустошить) все глобальные переменные
 
}}
 
}}
  
  FN<строка>
+
  +1
где <tt>N</tt> - количество слов (одна цифра).
 
  
 
'''Примеры:'''
 
'''Примеры:'''
  &unifor("F3"v200^a)
+
  &unifor('+1')
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=G
+
|name=+1R
|title=Вернуть часть строки до или начиная с заданного символа
+
|title=Чтение глобальных переменных
 
}}
 
}}
  
  GNA<строка>
+
  +1RNNN,nnn
 
где:
 
где:
* N=0 если ДО заданного символа (не включая его); N=1 если начиная С заданного символа (включая его).
+
* NNN – номер первой или единственной переменной, возможна конструкция *+-<число>. * - номер текущего повторения в повторяющейся группе.
* А - заданный символ (# - обозначает цифру; $ - обозначает букву).
+
* nnn – кол-во переменных (по умолчанию 1).
 +
 
  
 
'''Примеры:'''
 
'''Примеры:'''
  &unifor("G0#"v700)
+
  &unifor(‘+1R100,2’)
&unifor("G1-"v700^a)
 
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=S
+
|name=+1W
|title=Универсальный счетчик
+
|title=Запись в глобальные переменные
 
}}
 
}}
  
  SN
+
  +1WNNN,MMM#SSSS
 
где:
 
где:
* N=0 - обнулить счетчик.
+
* NNN – номер первой или единственной переменной, возможна конструкция *+-<число>. * - номер текущего повторения в повторяющейся группе.
* N=1..9 - увеличить значение счетчика на со-отв. значение.
+
* MMM – номер переменной для сохранения кол-ва записанных переменных (по умолчанию  не используется).
* N=A - вернуть значение счетчика - арабскими цифрами.
+
* SSSS – список строк (результат расформатирования). Если задан MMM – каждая строка пишется в отдельную переменную, в противном случае все пишется в одну переменную.
* N=X - вернуть значение счетчика - римскими цифрами.
 
  
 
'''Примеры:'''
 
'''Примеры:'''
  &unifor('S0')
+
  &unifor(‘+1W100,0#’,(v910/))
&unifor('S1')
 
&unifor('SA')
 
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=L
+
|name=+1K
|title=Вернуть окончание термина
+
|title=Групповая мультираскодировка переменных
 
}}
 
}}
  
  L<начало_термина>
+
  +1K<MNU>|NNN,nnn
 +
где:
 +
* NNN – номер первой или единственной переменной.
 +
* nnn – кол-во переменных (по умолчанию 1).
  
 
'''Примеры:'''
 
'''Примеры:'''
  &unifor("L"v101)
+
  &unifor(‘+1Kmhr.mnu|100,10’)
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=U
+
|name=+1M
|title=Кумуляция номеров журналов
+
|title=Перемножение двух списков (групп переменных)
 
}}
 
}}
  
  U<strbase>,<stradd>
+
  +1MNNN,nnn#MMM,mmm
где:
+
где параметры аналогичны описанным для функции {{Описание функции UNIFOR (ссылка)|name=+1K|title=Групповая мультираскодировка переменных}}
* <strbase> - исходная кумулированная строка.
+
* <stradd> - кумулируемые номера.
+
{{Описание функции UNIFOR
 +
|name=+1S
 +
|title=Вычитание списков (групп переменных)
 +
}}
  
'''Примеры:'''
+
+1SNNN,nnn#MMM,mmm
&unifor("U"v909^h",12")
+
где параметры аналогичны описанным для функции {{Описание функции UNIFOR (ссылка)|name=+1K|title=Групповая мультираскодировка переменных}}
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=V
+
|name=+1A
|title=Декумуляция номеров журналов
+
|title=Сложение списков (групп переменных)
 
}}
 
}}
  
  V<strbase>
+
  +1ANNN,nnn#MMM,mmm
где:
+
где параметры аналогичны описанным для функции {{Описание функции UNIFOR (ссылка)|name=+1K|title=Групповая мультираскодировка переменных}}
<strbase> - исходная строка для декумуляции.
+
 
 +
{{Описание функции UNIFOR
 +
|name=+1G
 +
|title=Исключение неоригинальных значений из группы переменных
 +
}}
  
'''Примеры:'''
+
+1GNNN,nnn
&unifor("V"v909^h")
+
где параметры аналогичны описанным для функции {{Описание функции UNIFOR (ссылка)|name=+1K|title=Групповая мультираскодировка переменных}}
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=W
+
|name=+1T
|title=Контроль кумуляции
+
|title=Сортировка группы переменных
 
}}
 
}}
  
  W<strbadd>,<strbase>
+
  +1TNNN,nnn
где:
+
где параметры аналогичны описанным для функции {{Описание функции UNIFOR (ссылка)|name=+1K|title=Групповая мультираскодировка переменных}}
* <strbase> - исходная кумулированная строка.
 
* <stradd> - кумулируемый номер.
 
'''Возвращаемые значения:'''
 
* 0 - если <stradd> не присутствует в <strbase>.
 
* 1 - если <stradd> присутствует в <strbase>.
 
  
'''Примеры:'''
+
===Функции для работы с базой данных===
&unifor("W12,"v909^h)
 
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=Z
+
|name=0
|title=Размножение экземпляров
+
|title=Выдать содержимое документа полностью
|description=Размножение экземпляров. Функция ничего не возвращает. Можно применять только в глобальной корректировке
+
|description=Выдать содержимое документа полностью (формат ALLl)
 
}}
 
}}
 
+
  0
  Z
 
  
 
'''Примеры:'''
 
'''Примеры:'''
  &unifor('Z')
+
  &unifor('0')
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=R
+
|name=A
|title=Генерация случайного числа
+
|title=Выдать заданное повторение поля
 
}}
 
}}
  
  RNN
+
  AV<tag>^<delim>*<offset>.<length>#<occur>
где NN - кол-во знаков в случайном числе (по умолчанию - 6).
+
где:
 +
* <tt><tag></tt> – метка поля;
 +
* <tt><delim></tt> – разделитель подполя;
 +
* <tt><offset></tt> – смещение;
 +
* <tt><length></tt> – длина;
 +
* <tt><occur></tt> – номер повторения.
  
 
'''Примеры:'''
 
'''Примеры:'''
  &unifor('R10')
+
  &unifor('Av200#2')
 +
&unifor('Av910^a#5')
 +
&unifor('Av10^b*2.10#2')
  
 +
{{Описание функции UNIFOR
 +
|name=P
 +
|title=Выдать заданное оригинальное повторение поля
 +
|formatSeeAlsoName=A
 +
|formatSeeAlsoTitle=Выдать заданное повторение поля
 +
|exampleSeeAlsoName=A
 +
|exampleSeeAlsoTitle=Выдать заданное повторение поля
 +
}}
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
Строка 257: Строка 381:
 
'''Примеры:'''
 
'''Примеры:'''
 
  (/&unifor('1*R; ?v910^h#1'))
 
  (/&unifor('1*R; ?v910^h#1'))
 
{{Описание функции UNIFOR
 
|name=T
 
|title=Транслитерация кириллических символов с помощью латиницы
 
}}
 
 
TN<строка>
 
где N - вид таблицы транслитерации (0 или 1).
 
 
'''Примеры:'''
 
&unifor("T0"V200)
 
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
Строка 295: Строка 408:
 
'''Примеры:'''
 
'''Примеры:'''
 
  &unifor('DBOOK,/K=AAA/,v200')
 
  &unifor('DBOOK,/K=AAA/,v200')
 
{{Описание функции UNIFOR
 
|name=X
 
|title=Удаление из заданной строки фрагментов, выделенных угловыми скобками <>
 
}}
 
 
X<строка>
 
 
'''Примеры:'''
 
&unifor("X"v200)
 
 
{{Описание функции UNIFOR
 
|name=Q
 
|title=Вернуть заданную строку в нижнем регистре
 
}}
 
 
Q<строка>
 
 
'''Примеры:'''
 
&unifor("Q"v200)
 
 
{{Описание функции UNIFOR
 
|name=M
 
|title=Отсортировать повторения заданного поля
 
|description=Отсортировать повторения заданного поля (имеется в виду строковая сортировка) - функция ничего не возвращает. Можно применять только в глобальной корректировке
 
}}
 
 
MX<tag>^<delims>
 
где:
 
* X - вид сортировки: I - по возрастанию; D - по убыванию.
 
* <tag> - метка поля.
 
* <delims> - разделители подполей, определяющих ключ сортировки.
 
 
'''Примеры:'''
 
&unifor('MI910^BD')
 
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
Строка 367: Строка 445:
 
'''Примеры:'''
 
'''Примеры:'''
 
  &unifor('+F')
 
  &unifor('+F')
 
{{Описание функции UNIFOR
 
|name=+1
 
|title=Очистить (опустошить) все глобальные переменные
 
}}
 
 
+1
 
 
'''Примеры:'''
 
&unifor('+1')
 
 
{{Описание функции UNIFOR
 
|name=+1R
 
|title=Чтение глобальных переменных
 
}}
 
 
+1RNNN,nnn
 
где:
 
* NNN – номер первой или единственной переменной, возможна конструкция *+-<число>. * - номер текущего повторения в повторяющейся группе.
 
* nnn – кол-во переменных (по умолчанию 1).
 
 
 
'''Примеры:'''
 
&unifor(‘+1R100,2’)
 
 
{{Описание функции UNIFOR
 
|name=+1W
 
|title=Запись в глобальные переменные
 
}}
 
 
+1WNNN,MMM#SSSS
 
где:
 
* NNN – номер первой или единственной переменной, возможна конструкция *+-<число>. * - номер текущего повторения в повторяющейся группе.
 
* MMM – номер переменной для сохранения кол-ва записанных переменных (по умолчанию  не используется).
 
* SSSS – список строк (результат расформатирования). Если задан MMM – каждая строка пишется в отдельную переменную, в противном случае все пишется в одну переменную.
 
 
'''Примеры:'''
 
&unifor(‘+1W100,0#’,(v910/))
 
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
Строка 418: Строка 458:
 
'''Примеры:'''
 
'''Примеры:'''
 
  &unifor(‘+1Omhr.mnu|’,(v910^m/))
 
  &unifor(‘+1Omhr.mnu|’,(v910^m/))
 
{{Описание функции UNIFOR
 
|name=+1K
 
|title=Групповая мультираскодировка переменных
 
}}
 
 
+1K<MNU>|NNN,nnn
 
где:
 
* NNN – номер первой или единственной переменной.
 
* nnn – кол-во переменных (по умолчанию 1).
 
 
'''Примеры:'''
 
&unifor(‘+1Kmhr.mnu|100,10’)
 
 
{{Описание функции UNIFOR
 
|name=+1M
 
|title=Перемножение двух списков (групп переменных)
 
}}
 
 
+1MNNN,nnn#MMM,mmm
 
где параметры аналогичны описанным для функции {{Описание функции UNIFOR (ссылка)|name=+1K|title=Групповая мультираскодировка переменных}}
 
 
{{Описание функции UNIFOR
 
|name=+1S
 
|title=Вычитание списков (групп переменных)
 
}}
 
 
+1SNNN,nnn#MMM,mmm
 
где параметры аналогичны описанным для функции {{Описание функции UNIFOR (ссылка)|name=+1K|title=Групповая мультираскодировка переменных}}
 
 
{{Описание функции UNIFOR
 
|name=+1A
 
|title=Сложение списков (групп переменных)
 
}}
 
 
+1ANNN,nnn#MMM,mmm
 
где параметры аналогичны описанным для функции {{Описание функции UNIFOR (ссылка)|name=+1K|title=Групповая мультираскодировка переменных}}
 
 
{{Описание функции UNIFOR
 
|name=+1G
 
|title=Исключение неоригинальных значений из группы переменных
 
}}
 
 
+1GNNN,nnn
 
где параметры аналогичны описанным для функции {{Описание функции UNIFOR (ссылка)|name=+1K|title=Групповая мультираскодировка переменных}}
 
 
{{Описание функции UNIFOR
 
|name=+1T
 
|title=Сортировка группы переменных
 
}}
 
 
+1TNNN,nnn
 
где параметры аналогичны описанным для функции {{Описание функции UNIFOR (ссылка)|name=+1K|title=Групповая мультираскодировка переменных}}
 
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
Строка 515: Строка 502:
 
  &unifor('+I?0,,'v951^i'?',v951^t,|INTERNET|n951^t)
 
  &unifor('+I?0,,'v951^i'?',v951^t,|INTERNET|n951^t)
 
  &unifor(|+I?1,,,,I=|v421^w|?|,v421^a)
 
  &unifor(|+I?1,,,,I=|v421^w|?|,v421^a)
 
{{Описание функции UNIFOR
 
|name=+3E
 
|title=Кодирование данных для представления в URL
 
}}
 
 
+3E<данные>
 
 
'''Примеры:'''
 
&unifor(‘+3E’,v1007)
 
 
{{Описание функции UNIFOR
 
|name=+3D
 
|title=Декодирование данных из URL
 
}}
 
 
+3D<данные>
 
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
Строка 567: Строка 537:
 
'''Примеры:'''
 
'''Примеры:'''
 
  … if &unifor(‘+6’)=’0’ then ‘запись логически удаленная’ fi …
 
  … if &unifor(‘+6’)=’0’ then ‘запись логически удаленная’ fi …
 +
 +
===Функции для работы с базой данных электронного каталога===
 +
 +
{{Описание функции UNIFOR
 +
|name=B
 +
|title=Выдать библиографическую свертку документа
 +
}}
 +
 +
B
 +
 +
'''Примеры:'''
 +
&unifor('B')
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=+9
+
|name=C
|title=Группа технических форматных выходов
+
|title=Контроль ISSN/ISBN
 +
|description=Контроль ISSN/ISBN. Возвращаемое значение: 0 - при положительном результате, 1 - при отрицательном
 
}}
 
}}
  
  +9T<исходные_данные>
+
  С<ISSN/ISBN>
T – определяет тип и принимает следующие значения:
+
 
* 0 - вернуть номер текущего повторения в повторяющейся группе (исходные данные не задаются);
+
'''Примеры:'''
* 1 - вернуть имя файла из заданного полного пути/имени;
+
  &unifor("C"v10^a)
* 2 - вернуть путь из заданного полного пути/имени;
 
* 3 - вернуть расширение из заданного полного пути/имени;
 
* 4 – вернуть имя диска из заданного полного пути;
 
* 5 - вернуть длину исходной строки;
 
* 6 - вернуть фрагмент строки:
 
+96A*SSS.NNN#<строка>
 
где:
 
** A - направление: 0 - с начала строки; 1 - с конца;
 
** SSS – смещение;
 
** NNN - кол-во символов;
 
* 7 - вернуть строку в верхнем регистре;
 
* 8 - заменить в заданной строке один символ на другой (регистр учитывается):
 
  +98ab<строка>
 
где:
 
** a - заменяемый символ;
 
** b – заменяющий символ;
 
* 9 - групповая установка глобальных переменных (для ИРБИС-Навигатора). Исходная строка закодирована через URLEncode (&unifor('+3E....). После раскодировки рассматривается как список строк(TStringList.Text). Каждая строка этого списка имеет структуру:  NNN#<значение_глобальной_переменной_NNN>;
 
* C – вставить данные из заданного текстового файла:
 
+9С<path>,<dbname>,<filename>
 
** <path> – определяет относительный путь к файлу в рамках ИР-БИС и принимает значения: 0 – основная директория системы (для ИРБИС32 – та, где находятся исполняемые модули; для ИРБИС64 – та, где находятся исполняемые модули сервера); 1 – общая директория баз данных (по умолчанию \DATAI); 10 – директо-рия конкретной БД;
 
** <dbname> – имя БД (имеет смысл только при path=10). По умолчанию – предполагается текущая БД;
 
** <filename> – имя файла;
 
* D – сохранить заданный внутренний двоичный объект в заданном файле: +9DNN#<полный путь>, где NN – номер внутреннего двоичного объекта;
 
* F – вернуть ANSI-символ с заданным кодом;
 
* G - преобразовать заданную строку в список слов.
 
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=+7
+
|name=L
|title=Очистить (опустошить) все глобальные переменные
+
|title=Вернуть окончание термина
 
}}
 
}}
  
  +7
+
  L<начало_термина>
  
 
'''Примеры:'''
 
'''Примеры:'''
  &unifor('+7')
+
  &unifor("L"v101)
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=+7R
+
|name=U
|title=Чтение глобальной переменной
+
|title=Кумуляция номеров журналов
 
}}
 
}}
  
  +7RNNN,nnn
+
  U<strbase>,<stradd>
 
где:
 
где:
* NNN – номер  переменной.
+
* <strbase> - исходная кумулированная строка.
* nnn – номер повторения. По умолчанию - номер текущего повторения в повторяющейся группе.
+
* <stradd> - кумулируемые номера.
Эквивалентная конструкция языка форматирования GNNN.
 
  
 
'''Примеры:'''
 
'''Примеры:'''
  &unifor(‘+7R100’)
+
  &unifor("U"v909^h",12")
эквивалентная конструкция языка форматирования:
 
G100
 
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=+7W
+
|name=V
|title=Запись глобальной переменной
+
|title=Декумуляция номеров журналов
 
}}
 
}}
  
  +7WNNN#SSSS
+
  V<strbase>
 
где:
 
где:
* NNN – номер переменной;
+
<strbase> - исходная строка для декумуляции.
* SSSS – список строк (результат расформатирования); каждая строка становится отдельным повторением.
 
  
 
'''Примеры:'''
 
'''Примеры:'''
  &unifor(‘+7W100#’,(v910/))
+
  &unifor("V"v909^h")
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=+7U
+
|name=W
|title=Добавление повторений глобальной переменной
+
|title=Контроль кумуляции
 
}}
 
}}
  
  +7UNNN#SSSS
+
  W<strbadd>,<strbase>
 
где:
 
где:
* NNN – номер переменной;
+
* <strbase> - исходная кумулированная строка.
* SSSS – список строк (результат расформатирования); каждая строка становится отдельным повторением.
+
* <stradd> - кумулируемый номер.
 +
'''Возвращаемые значения:'''
 +
* 0 - если <stradd> не присутствует в <strbase>.
 +
* 1 - если <stradd> присутствует в <strbase>.
 +
 
 +
'''Примеры:'''
 +
&unifor("W12,"v909^h)
 +
 
 +
===Функции, используемые только в глобальной корректировке===
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=+7M
+
|name=Z
|title=Логическое перемножение повторений двух переменных
+
|title=Размножение экземпляров
 +
|description=Размножение экземпляров. Функция ничего не возвращает. Можно применять только в глобальной корректировке
 
}}
 
}}
  
  +7MNNN#MMM
+
  Z
Результат перемножения записывается в первую переменную.
+
 
 +
'''Примеры:'''
 +
&unifor('Z')
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=+7S
+
|name=M
|title=Логическое вычитание повторений двух переменных
+
|title=Отсортировать повторения заданного поля
 +
|description=Отсортировать повторения заданного поля (имеется в виду строковая сортировка) - функция ничего не возвращает. Можно применять только в глобальной корректировке
 
}}
 
}}
  
  +7SNNN#MMM
+
  MX<tag>^<delims>
Результат вычитания записывается в первую переменную.
+
где:
 +
* X - вид сортировки: I - по возрастанию; D - по убыванию.
 +
* <tag> - метка поля.
 +
* <delims> - разделители подполей, определяющих ключ сортировки.
 +
 
 +
'''Примеры:'''
 +
&unifor('MI910^BD')
 +
 
 +
===Функции, не вошедшие в другие категории===
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=+7A
+
|name=S
|title=Логическое сложение повторений двух переменных
+
|title=Универсальный счетчик
 
}}
 
}}
  
  +7ANNN#MMM
+
  SN
Результат сложения записывается в первую переменную.
+
где:
 +
* N=0 - обнулить счетчик.
 +
* N=1..9 - увеличить значение счетчика на со-отв. значение.
 +
* N=A - вернуть значение счетчика - арабскими цифрами.
 +
* N=X - вернуть значение счетчика - римскими цифрами.
 +
 
 +
'''Примеры:'''
 +
&unifor('S0')
 +
&unifor('S1')
 +
&unifor('SA')
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=+7G
+
|name=R
|title=Исключение неоригинальных повторений переменной
+
|title=Генерация случайного числа
 
}}
 
}}
  
  +7GNNN
+
  RNN
Результат исключения записывается в ту же переменную.
+
где NN - кол-во знаков в случайном числе (по умолчанию - 6).
 +
 
 +
'''Примеры:'''
 +
&unifor('R10')
 +
 
  
 
{{Описание функции UNIFOR
 
{{Описание функции UNIFOR
|name=+7T
+
|name=+9
|title=Сортировка повторений переменной
+
|title=Группа технических форматных выходов
 
}}
 
}}
  
  +7TNNN
+
  +9T<исходные_данные>
Результат сортировки записывается в ту же переменную.
+
T – определяет тип и принимает следующие значения:
 +
* 0 - вернуть номер текущего повторения в повторяющейся группе (исходные данные не задаются);
 +
* 1 - вернуть имя файла из заданного полного пути/имени;
 +
* 2 - вернуть путь из заданного полного пути/имени;
 +
* 3 - вернуть расширение из заданного полного пути/имени;
 +
* 4 – вернуть имя диска из заданного полного пути;
 +
* 5 - вернуть длину исходной строки;
 +
* 6 - вернуть фрагмент строки:
 +
+96A*SSS.NNN#<строка>
 +
где:
 +
** A - направление: 0 - с начала строки; 1 - с конца;
 +
** SSS – смещение;
 +
** NNN - кол-во символов;
 +
* 7 - вернуть строку в верхнем регистре;
 +
* 8 - заменить в заданной строке один символ на другой (регистр учитывается):
 +
+98ab<строка>
 +
где:
 +
** a - заменяемый символ;
 +
** b – заменяющий символ;
 +
* 9 - групповая установка глобальных переменных (для ИРБИС-Навигатора). Исходная строка закодирована через URLEncode (&unifor('+3E....). После раскодировки рассматривается как список строк(TStringList.Text). Каждая строка этого списка имеет структуру:  NNN#<значение_глобальной_переменной_NNN>;
 +
* C – вставить данные из заданного текстового файла:
 +
+9С<path>,<dbname>,<filename>
 +
** <path> – определяет относительный путь к файлу в рамках ИР-БИС и принимает значения: 0 – основная директория системы (для ИРБИС32 – та, где находятся исполняемые модули; для ИРБИС64 – та, где находятся исполняемые модули сервера); 1 – общая директория баз данных (по умолчанию \DATAI); 10 – директо-рия конкретной БД;
 +
** <dbname> – имя БД (имеет смысл только при path=10). По умолчанию – предполагается текущая БД;
 +
** <filename> – имя файла;
 +
* D – сохранить заданный внутренний двоичный объект в заданном файле: +9DNN#<полный путь>, где NN – номер внутреннего двоичного объекта;
 +
* F – вернуть ANSI-символ с заданным кодом;
 +
* G - преобразовать заданную строку в список слов.
 +
 
  
  
  
 
[[Категория:Язык форматирования системы ИРБИС]]
 
[[Категория:Язык форматирования системы ИРБИС]]

Версия 13:56, 8 апреля 2010

Содержание

Перечень функций формат-программы UNIFOR с примерами их применения

Функции для обработки строк

Удалить двойные кавычки из заданной строки – &uf('9…

Вид функции: 9.

Назначение: Удалить двойные кавычки из заданной строки.

Формат (передаваемая строка):

9<исх.строка>

Примеры:

&unifor("9"v200^a)

Вернуть заданное количество слов с начала строки – &uf('E…

Вид функции: E.

Назначение: Вернуть заданное количество слов с начала строки.

Формат (передаваемая строка):

EN<строка>

где N - количество слов (одна цифра).


Примеры:

&unifor("E3"v200^a)

Вернуть часть строки, начиная со следующего слова после указанного и до конца строки – &uf('F…

Вид функции: F.

Назначение: Вернуть часть строки, начиная со следующего слова после указанного и до конца строки.

Формат (передаваемая строка):

FN<строка>

где N - количество слов (одна цифра).

Примеры:

&unifor("F3"v200^a)

Вернуть часть строки до или начиная с заданного символа – &uf('G…

Вид функции: G.

Назначение: Вернуть часть строки до или начиная с заданного символа.

Формат (передаваемая строка):

GNA<строка>

где:

  • N=0 если ДО заданного символа (не включая его); N=1 если начиная С заданного символа (включая его).
  • А - заданный символ (# - обозначает цифру; $ - обозначает букву).

Примеры:

&unifor("G0#"v700)
&unifor("G1-"v700^a)

Транслитерация кириллических символов с помощью латиницы – &uf('T…

Вид функции: T.

Назначение: Транслитерация кириллических символов с помощью латиницы.

Формат (передаваемая строка):

TN<строка>

где N - вид таблицы транслитерации (0 или 1).

Примеры:

&unifor("T0"V200)

Удаление из заданной строки фрагментов, выделенных угловыми скобками <> – &uf('X…

Вид функции: X.

Назначение: Удаление из заданной строки фрагментов, выделенных угловыми скобками <>.

Формат (передаваемая строка):

X<строка>

Примеры:

&unifor("X"v200)

Вернуть заданную строку в нижнем регистре – &uf('Q…

Вид функции: Q.

Назначение: Вернуть заданную строку в нижнем регистре.

Формат (передаваемая строка):

Q<строка>

Примеры:

&unifor("Q"v200)

Кодирование данных для представления в URL – &uf('+3E…

Вид функции: +3E.

Назначение: Кодирование данных для представления в URL.

Формат (передаваемая строка):

+3E<данные>

Примеры:

&unifor(‘+3E’,v1007)

Декодирование данных из URL – &uf('+3D…

Вид функции: +3D.

Назначение: Декодирование данных из URL.

Формат (передаваемая строка):

+3D<данные>

Функции для работы с датой и временем

Выдача данных, связанных с датой и временем – &uf('3…

Вид функции: 3.

Назначение: Выдача данных, связанных с датой и временем.

Формат (передаваемая строка):

Имеются следующие подфункции:

  • 3 - выдать текущую дату в виде ГГГГММДД.
  • 30 - выдать текущий год в виде ГГГГ.
  • 31 - выдать текущий месяц в виде ММ (с лидирующим нулем).
  • 32 - выдать текущий день в виде ДД (с лидирующим нулем).
  • 33 - выдать текущий год в виде ГГ.
  • 34 - выдать текущий месяц в виде М (без лидирующего нуля).
  • 35 - выдать текущий день в виде Д (без лидирующего нуля).
  • 36MM - выдать по заданному номеру месяца его название на русском языке в именительном падеже.
  • 37MM - выдать по заданному номеру месяца его название на русском языке в родительном падеже.
  • 38MM - выдать по заданному номеру месяца его название на английском языке.
  • 39 - выдать текущее время.
  • - выдать номер текущего дня от начала года.
  • 3BГГГГММДД/ддд - прибавить/вычесть из заданной даты в виде ГГГГММДД заданное количество дней (ддд – м.б. с минусом) и вернуть полученную дату в виде ГГГГММДД.
  • 3СГГГГММДД/ГГГГММДД - вычесть из одной даты в виде ГГГГММДД другую дату в виде ГГГГММДД и вернуть разницу в виде количества дней.

Примеры:

&unifor('36',&unifor('34'))

Функции для работы с глобальными переменными

Очистить (опустошить) все глобальные переменные – &uf('+7…

Вид функции: +7.

Назначение: Очистить (опустошить) все глобальные переменные.

Формат (передаваемая строка):

+7

Примеры:

&unifor('+7')

Чтение глобальной переменной – &uf('+7R…

Вид функции: +7R.

Назначение: Чтение глобальной переменной.

Формат (передаваемая строка):

+7RNNN,nnn

где:

  • NNN – номер переменной.
  • nnn – номер повторения. По умолчанию - номер текущего повторения в повторяющейся группе.

Эквивалентная конструкция языка форматирования GNNN.

Примеры:

&unifor(‘+7R100’)

эквивалентная конструкция языка форматирования:

G100

Запись глобальной переменной – &uf('+7W…

Вид функции: +7W.

Назначение: Запись глобальной переменной.

Формат (передаваемая строка):

+7WNNN#SSSS

где:

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

Примеры:

&unifor(‘+7W100#’,(v910/))

Добавление повторений глобальной переменной – &uf('+7U…

Вид функции: +7U.

Назначение: Добавление повторений глобальной переменной.

Формат (передаваемая строка):

+7UNNN#SSSS

где:

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

Логическое перемножение повторений двух переменных – &uf('+7M…

Вид функции: +7M.

Назначение: Логическое перемножение повторений двух переменных.

Формат (передаваемая строка):

+7MNNN#MMM

Результат перемножения записывается в первую переменную.

Логическое вычитание повторений двух переменных – &uf('+7S…

Вид функции: +7S.

Назначение: Логическое вычитание повторений двух переменных.

Формат (передаваемая строка):

+7SNNN#MMM

Результат вычитания записывается в первую переменную.

Логическое сложение повторений двух переменных – &uf('+7A…

Вид функции: +7A.

Назначение: Логическое сложение повторений двух переменных.

Формат (передаваемая строка):

+7ANNN#MMM

Результат сложения записывается в первую переменную.

Исключение неоригинальных повторений переменной – &uf('+7G…

Вид функции: +7G.

Назначение: Исключение неоригинальных повторений переменной.

Формат (передаваемая строка):

+7GNNN

Результат исключения записывается в ту же переменную.

Сортировка повторений переменной – &uf('+7T…

Вид функции: +7T.

Назначение: Сортировка повторений переменной.

Формат (передаваемая строка):

+7TNNN

Результат сортировки записывается в ту же переменную.

Очистить (опустошить) все глобальные переменные – &uf('+1…

Вид функции: +1.

Назначение: Очистить (опустошить) все глобальные переменные.

Формат (передаваемая строка):

+1

Примеры:

&unifor('+1')

Чтение глобальных переменных – &uf('+1R…

Вид функции: +1R.

Назначение: Чтение глобальных переменных.

Формат (передаваемая строка):

+1RNNN,nnn

где:

  • NNN – номер первой или единственной переменной, возможна конструкция *+-<число>. * - номер текущего повторения в повторяющейся группе.
  • nnn – кол-во переменных (по умолчанию 1).


Примеры:

&unifor(‘+1R100,2’)

Запись в глобальные переменные – &uf('+1W…

Вид функции: +1W.

Назначение: Запись в глобальные переменные.

Формат (передаваемая строка):

+1WNNN,MMM#SSSS

где:

  • NNN – номер первой или единственной переменной, возможна конструкция *+-<число>. * - номер текущего повторения в повторяющейся группе.
  • MMM – номер переменной для сохранения кол-ва записанных переменных (по умолчанию не используется).
  • SSSS – список строк (результат расформатирования). Если задан MMM – каждая строка пишется в отдельную переменную, в противном случае все пишется в одну переменную.

Примеры:

&unifor(‘+1W100,0#’,(v910/))

Групповая мультираскодировка переменных – &uf('+1K…

Вид функции: +1K.

Назначение: Групповая мультираскодировка переменных.

Формат (передаваемая строка):

+1K<MNU>|NNN,nnn

где:

  • NNN – номер первой или единственной переменной.
  • nnn – кол-во переменных (по умолчанию 1).

Примеры:

&unifor(‘+1Kmhr.mnu|100,10’)

Перемножение двух списков (групп переменных) – &uf('+1M…

Вид функции: +1M.

Назначение: Перемножение двух списков (групп переменных).

Формат (передаваемая строка):

+1MNNN,nnn#MMM,mmm

где параметры аналогичны описанным для функции Групповая мультираскодировка переменных – &uf('+1K…

Вычитание списков (групп переменных) – &uf('+1S…

Вид функции: +1S.

Назначение: Вычитание списков (групп переменных).

Формат (передаваемая строка):

+1SNNN,nnn#MMM,mmm

где параметры аналогичны описанным для функции Групповая мультираскодировка переменных – &uf('+1K…

Сложение списков (групп переменных) – &uf('+1A…

Вид функции: +1A.

Назначение: Сложение списков (групп переменных).

Формат (передаваемая строка):

+1ANNN,nnn#MMM,mmm

где параметры аналогичны описанным для функции Групповая мультираскодировка переменных – &uf('+1K…

Исключение неоригинальных значений из группы переменных – &uf('+1G…

Вид функции: +1G.

Назначение: Исключение неоригинальных значений из группы переменных.

Формат (передаваемая строка):

+1GNNN,nnn

где параметры аналогичны описанным для функции Групповая мультираскодировка переменных – &uf('+1K…

Сортировка группы переменных – &uf('+1T…

Вид функции: +1T.

Назначение: Сортировка группы переменных.

Формат (передаваемая строка):

+1TNNN,nnn

где параметры аналогичны описанным для функции Групповая мультираскодировка переменных – &uf('+1K…

Функции для работы с базой данных

Выдать содержимое документа полностью – &uf('0…

Вид функции: 0.

Назначение: Выдать содержимое документа полностью (формат ALLl).

Формат (передаваемая строка):

0

Примеры:

&unifor('0')

Выдать заданное повторение поля – &uf('A…

Вид функции: A.

Назначение: Выдать заданное повторение поля.

Формат (передаваемая строка):

AV<tag>^<delim>*<offset>.<length>#<occur>

где:

  • <tag> – метка поля;
  • <delim> – разделитель подполя;
  • <offset> – смещение;
  • <length> – длина;
  • <occur> – номер повторения.

Примеры:

&unifor('Av200#2')
&unifor('Av910^a#5')
&unifor('Av10^b*2.10#2')

Выдать заданное оригинальное повторение поля – &uf('P…

Вид функции: P.

Назначение: Выдать заданное оригинальное повторение поля.

Формат (передаваемая строка): см. формат для функции Выдать заданное повторение поля – &uf('A….

Примеры: см. примеры для функции Выдать заданное повторение поля – &uf('A….

Раскодировка через справочник (меню) – &uf('K…

Вид функции: K.

Назначение: Раскодировка через справочник (меню).

Формат (передаваемая строка):

K<имя_меню>\<исх_значение>

Примеры:

&unifor("Kjz.mnu\"v101)

Вернуть параметр из INI-файла – &uf('I…

Вид функции: I.

Назначение: Вернуть параметр из INI-файла.

Формат (передаваемая строка):

I<SECTION>,<PAR_NAME>,<DE-FAULT_VALUE>

Примеры:

&unifor('IPRIVATE,NAME,NONAME')

Вернуть заданный подэлемент – &uf('1…

Вид функции: 1.

Назначение: Вернуть заданный подэлемент.

Формат (передаваемая строка):

1NCXY?V<tag>^<delim>*<offset>.<length>#<occur>

где:

  • N - номер повторения подэлемента; если указана * - номер подэлемента совпадает со счетчиком повторяющейся группы.
  • ХY - разделители между подэлементами.
  • С - принимает значения: R - разделители справа от каждого подэлемента, кроме последнего; L - разделители слева от каждого подэлемента; D - каждый подэлемент заключен слева разделителем Х и справа - Y.
  •  ? - символ-разделитель.
  • Остальные параметры аналогичны параметрам для функции Выдать заданное повторение поля – &uf('A….

Примеры:

(/&unifor('1*R; ?v910^h#1'))

Вернуть кол-во ссылок для заданного термина – &uf('J…

Вид функции: J.

Назначение: Вернуть кол-во ссылок для заданного термина.

Формат (передаваемая строка):

J<dbn>,<термин>

<dbn> - имя БД; по умолчанию используется текущая.

Примеры:

&unifor('JBOOK,',"A="v200^a)

Форматирование документа из другой БД – &uf('D…

Вид функции: D.

Назначение: Форматирование документа из другой БД (REF на другую БД – отношение «от одного к одному»).

Формат (передаваемая строка):

D<dbn>,<@mfn|/termin/>,<@имя_формата|формат|*>

Передаются три параметра, разделенные запятой:

  • Первый - имя БД;
  • Второй - или непосредственно MFN с предшествующим символом @ или термин, ссылающийся на документ (термин - заключается в ограничительные символы);
  • Третий - или имя формата с предшествующим символом @ или непосредственно формат.

Если задается *, данные выводятся по прямой ссылке (метка поля, номер повторения).

Примеры:

&unifor('DBOOK,/K=AAA/,v200')

Расформатирование группы связанных документов из другой БД – &uf('7…

Вид функции: 7.

Назначение: Расформатирование группы связанных документов из другой БД (отношение «от одного к многим»).

Формат (передаваемая строка):

7<имя_БД>,</termin/>,<@имя_формата|формат|*>

где:

  • имя_БД - имя базы данных, из которой будут браться связанные документы; по умолчанию используется текущая БД.
  • /termin/ - ключевой термин, на основе которого отбираются связанные документы; термин заключается в уникальные ограничители (например. /), в качестве которых используется символ, не входящий (гарантированно) в термин.
  • @имя_формата|формат|* - имя формата или формат в явном виде, в соответствии с которым будут расформатироваться связанные документы. Если задается имя формата, то он берется из директории БД, заданной параметром <имя_БД>. Если задается *, данные выводятся по прямой ссылке (метка поля, номер повторения).

Примеры:

&unifor('7TEST,',"/T="v200^a"/",',v903"\par "')

Команда постредактуры: очистить результат расформатирования от двойных разделителей – &uf('!…

Вид функции: !.

Назначение: Команда постредактуры: очистить результат расформатирования от двойных разделителей (двойных точек или двойных конструкций <. - >). Имеет смысл использовать один раз в любом месте формата.

Формат (передаваемая строка):

!

Примеры:

&unifor('!')

Команда постредактуры: очистить результат расформатирования от RTF-конструкций – &uf('+F…

Вид функции: +F.

Назначение: Команда постредактуры: очистить результат расформатирования от RTF-конструкций. Имеет смысл использовать один раз в любом месте формата.

Формат (передаваемая строка):

+F

Примеры:

&unifor('+F')

Групповая мультираскодировка списка – &uf('+1O…

Вид функции: +1O.

Назначение: Групповая мультираскодировка списка.

Формат (передаваемая строка):

+1O<MNU>|SSSS

где:

  • <MNU> имя справочника (с расширением).
  • SSSS – список строк (результат расформатирования.

Примеры:

&unifor(‘+1Omhr.mnu|’,(v910^m/))

Исключение неоригинальных значений из списка – &uf('+1I…

Вид функции: +1I.

Назначение: Исключение неоригинальных значений из списка.

Формат (передаваемая строка):

+1ISSSS

где параметры аналогичны описанным для функции Групповая мультираскодировка списка – &uf('+1O…

Сортировка списка – &uf('+1V…

Вид функции: +1V.

Назначение: Сортировка списка.

Формат (передаваемая строка):

+1VSSSS

где параметры аналогичны описанным для функции Групповая мультираскодировка списка – &uf('+1O…

Формирования ссылки (гиперссылки) – &uf('+I…

Вид функции: +I.

Назначение: Формирования ссылки (гиперссылки).

Формат (передаваемая строка):

+I/содержание_ссылки/название_ссылки

/содержание_ссылки/ - внутренние данные ссылки, ограниченные уникальным разделителем. Имеют структуру

NNN,HHH,<параметры>

где:

  • NNN - тип ссылки, возможные значения:
    • 0 - ссылки на внешние объекты;
    • 1 - ссылка на связанный документ (возможно в другой БД) - "от одного к одному";
    • 2 - ссылка на связанные документы (возможно в другой БД) - "от одного к многим";
  • HHH - экранная подсказка, может иметь вид: @iii - где iii - номер текста в файле IRBISMSG.TXT, \text\ - собственно текст подсказки в уникальных ограничителях.

<параметры>:

  • Для ссылок типа 0 представляет собой в общем виде URL внешнего объекта (в том числе - полный путь на файл).
  • Для ссылок типа 1 и 2 <параметры> имеют следующую структуру:
имя_БД,имя_формата,termin

где:

  • имя_БД - имя базы данных, из которой будут браться связанные документы; по умолчанию используется текущая БД.
  • имя_формата - имя формата, в соответствии с которым будут расформатироваться связанные документы. (по умолчанию - используется оптимизированный формат).
  • termin - ключевой термин, на основе которого отбираются (ищутся) связанные документы.


Примеры:

&unifor('+I?0,,'v951^i'?',v951^t,|INTERNET|n951^t)
&unifor(|+I?1,,,,I=|v421^w|?|,v421^a)

Выдача метки, порядкового номера и значения поля в соответствии с индексом (номером повторения) повторяющейся группы – &uf('+4…

Вид функции: +4.

Назначение: Выдача метки, порядкового номера и значения поля в соответствии с индексом (номером повторения) повторяющейся группы.

Формат (передаваемая строка):

+4XY 

где:

  • Х принимает три значения: T – выдать метку; F – выдать значение поле; N – выдать порядковый номер поля в записи (отличается от индекса повторения, если Y принимает значение 1);
  • Y принимает значения: 0 – поля выдаются в порядке расположения в записи; 1 – поля выдаются в порядке возрастания меток (по умолчанию 0).

Примеры:

(…&unifor(‘+4T1’),’_’ &unifor(‘+4N1’),’: ‘, &unifor(‘+4F1’),’
’…)

Выдача элемента списка/справочника в соответствии с индексом (номером повторения) повторяющейся группы – &uf('+5…

Вид функции: +5.

Назначение: Выдача элемента списка/справочника в соответствии с индексом (номером повторения) повторяющейся группы.

Формат (передаваемая строка):

+5Х<имя_справочника/списка> 

где Х принимает значения: Т – выдать значение; F – выдать пояснение (имеет смысл, если задается справочник, т.е. файл с расширением MNU).

Примеры:

…(…&unifor(‘+5Tfield.mnu’),’ - ’,&unifor(‘+5Ffield.mnu’),’
’…)

Выдать статус записи – &uf('+6…

Вид функции: +6.

Назначение: Выдать статус записи. Если запись логически удаленная, возвращается 0, в противном случае - 1.

Формат (передаваемая строка):

+6

Примеры:

… if &unifor(‘+6’)=’0’ then ‘запись логически удаленная’ fi …

Функции для работы с базой данных электронного каталога

Выдать библиографическую свертку документа – &uf('B…

Вид функции: B.

Назначение: Выдать библиографическую свертку документа.

Формат (передаваемая строка):

B

Примеры:

&unifor('B')

Контроль ISSN/ISBN – &uf('C…

Вид функции: C.

Назначение: Контроль ISSN/ISBN. Возвращаемое значение: 0 - при положительном результате, 1 - при отрицательном.

Формат (передаваемая строка):

С<ISSN/ISBN>

Примеры:

&unifor("C"v10^a)

Вернуть окончание термина – &uf('L…

Вид функции: L.

Назначение: Вернуть окончание термина.

Формат (передаваемая строка):

L<начало_термина>

Примеры:

&unifor("L"v101)

Кумуляция номеров журналов – &uf('U…

Вид функции: U.

Назначение: Кумуляция номеров журналов.

Формат (передаваемая строка):

U<strbase>,<stradd>

где:

  • <strbase> - исходная кумулированная строка.
  • <stradd> - кумулируемые номера.

Примеры:

&unifor("U"v909^h",12")

Декумуляция номеров журналов – &uf('V…

Вид функции: V.

Назначение: Декумуляция номеров журналов.

Формат (передаваемая строка):

V<strbase>

где: <strbase> - исходная строка для декумуляции.

Примеры:

&unifor("V"v909^h")

Контроль кумуляции – &uf('W…

Вид функции: W.

Назначение: Контроль кумуляции.

Формат (передаваемая строка):

W<strbadd>,<strbase>

где:

  • <strbase> - исходная кумулированная строка.
  • <stradd> - кумулируемый номер.

Возвращаемые значения:

  • 0 - если <stradd> не присутствует в <strbase>.
  • 1 - если <stradd> присутствует в <strbase>.

Примеры:

&unifor("W12,"v909^h)

Функции, используемые только в глобальной корректировке

Размножение экземпляров – &uf('Z…

Вид функции: Z.

Назначение: Размножение экземпляров. Функция ничего не возвращает. Можно применять только в глобальной корректировке.

Формат (передаваемая строка):

Z

Примеры:

&unifor('Z')

Отсортировать повторения заданного поля – &uf('M…

Вид функции: M.

Назначение: Отсортировать повторения заданного поля (имеется в виду строковая сортировка) - функция ничего не возвращает. Можно применять только в глобальной корректировке.

Формат (передаваемая строка):

MX<tag>^<delims>

где:

  • X - вид сортировки: I - по возрастанию; D - по убыванию.
  • <tag> - метка поля.
  • <delims> - разделители подполей, определяющих ключ сортировки.

Примеры:

&unifor('MI910^BD')

Функции, не вошедшие в другие категории

Универсальный счетчик – &uf('S…

Вид функции: S.

Назначение: Универсальный счетчик.

Формат (передаваемая строка):

SN

где:

  • N=0 - обнулить счетчик.
  • N=1..9 - увеличить значение счетчика на со-отв. значение.
  • N=A - вернуть значение счетчика - арабскими цифрами.
  • N=X - вернуть значение счетчика - римскими цифрами.

Примеры:

&unifor('S0')
&unifor('S1')
&unifor('SA')

Генерация случайного числа – &uf('R…

Вид функции: R.

Назначение: Генерация случайного числа.

Формат (передаваемая строка):

RNN

где NN - кол-во знаков в случайном числе (по умолчанию - 6).

Примеры:

&unifor('R10')


Группа технических форматных выходов – &uf('+9…

Вид функции: +9.

Назначение: Группа технических форматных выходов.

Формат (передаваемая строка):

+9T<исходные_данные>

T – определяет тип и принимает следующие значения:

  • 0 - вернуть номер текущего повторения в повторяющейся группе (исходные данные не задаются);
  • 1 - вернуть имя файла из заданного полного пути/имени;
  • 2 - вернуть путь из заданного полного пути/имени;
  • 3 - вернуть расширение из заданного полного пути/имени;
  • 4 – вернуть имя диска из заданного полного пути;
  • 5 - вернуть длину исходной строки;
  • 6 - вернуть фрагмент строки:
+96A*SSS.NNN#<строка>

где:

    • A - направление: 0 - с начала строки; 1 - с конца;
    • SSS – смещение;
    • NNN - кол-во символов;
  • 7 - вернуть строку в верхнем регистре;
  • 8 - заменить в заданной строке один символ на другой (регистр учитывается):
+98ab<строка>

где:

    • a - заменяемый символ;
    • b – заменяющий символ;
  • 9 - групповая установка глобальных переменных (для ИРБИС-Навигатора). Исходная строка закодирована через URLEncode (&unifor('+3E....). После раскодировки рассматривается как список строк(TStringList.Text). Каждая строка этого списка имеет структуру: NNN#<значение_глобальной_переменной_NNN>;
  • C – вставить данные из заданного текстового файла:
+9С<path>,<dbname>,<filename>
    • <path> – определяет относительный путь к файлу в рамках ИР-БИС и принимает значения: 0 – основная директория системы (для ИРБИС32 – та, где находятся исполняемые модули; для ИРБИС64 – та, где находятся исполняемые модули сервера); 1 – общая директория баз данных (по умолчанию \DATAI); 10 – директо-рия конкретной БД;
    • <dbname> – имя БД (имеет смысл только при path=10). По умолчанию – предполагается текущая БД;
    • <filename> – имя файла;
  • D – сохранить заданный внутренний двоичный объект в заданном файле: +9DNN#<полный путь>, где NN – номер внутреннего двоичного объекта;
  • F – вернуть ANSI-символ с заданным кодом;
  • G - преобразовать заданную строку в список слов.