Формат-программа UNIFOR

Navigation:  ПРИЛОЖЕНИЯ > 4. ЯЗЫК ФОРМАТИРОВАНИЯ ДАННЫХ. РЕДАКТОР ФОРМАТОВ > Функции > Строковые функции > Форматные выходы >

Формат-программа UNIFOR

Previous pageReturn to chapter overviewNext page

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

 

Таблица 1. Перечень функций формат-программы UNIFOR и примеры их применения.

 

п/п

Вид функции

Назначение

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

Пример

1

0

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

0

….&unifor('0')….

2

3

Выдача данных, связанных с ДАТОЙ и ВРЕМЕНЕМ

 

3…

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

3 - выдать текущую дату в виде ГГГГММДД

30 - выдать теекущий год в виде ГГГГ

31 - выдать текущий месяц в виде ММ (с лидирующим нулем)

32 - выдать текущий день в виде ДД (с лидирующим нулем)

33 - выдать текущий год в виде ГГ

34 - выдать текущий месяц в виде М (без лидирующего нуля)

35 - выдать текущий день в виде Д (без лидирующего нуля)

36MM - выдать по заданному номеру месяца его название на русском языке в именительном падеже

37MM - выдать по заданному номеру месяца его название на русском языке в родительном падеже

38MM - выдать по заданному номеру месяца его название на английском языке

39 - выдать текущее время

- выдать номер текущего дня от начала года

3BГГГГММДД/ддд - прибавить/вычесть из заданной даты в виде ГГГГММДД заданное количество дней (ддд – м.б. с минусом) и вернуть полученную дату в виде ГГГГММДД;

3СГГГГММДД/ГГГГММДД - вычесть из одной даты в виде ГГГГММДД другую дату в виде ГГГГММДД и вернуть разницу в виде количества дней;

3JГГГГММДД - который переводит заданную юлианскую дату ГГГГММДД в грегорианскую.     (&uf('3JГГГГММДД') )

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

2.1

4

ФОРМАТИРОВАНИЕ ПРЕДЫДУЩЕЙ КОПИИ ТЕКУЩЕЙ ЗАПИСИ

4N,Format

где

N - номер копии (в обратном порядке),

Format - формат (или в виде @имя_формата).

&unifor('41,@brief')

(...&unifor('4,v200^a')...)

&unifor('4*,(v910/)')

2.2

6

 

 

 

3

9

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

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

….&unifor("9"v200^a)….

4

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')….

5

P

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

то же самое

то же самое

6

B

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

B

…..&unifor('B')…..

7

C

Контроль ISSN/ISBN

При положительном результате - 0

При отрицательном - 1

С<ISSN/ISBN>

….&unifor("C"v10^a)….

8

E

Вернуть заданное количество первых слов в строке

EN<строка>

где

N - кол-во слов (одна цифра)

…..&unifor("E3"v200^a)….

9

F

Вернуть конец  строки после заданного кол-ва первых слов

FN<строка>

где

N - кол-во слов (одна цифра)

…..&unifor("F3"v200^a)….

10

G

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

GNA<строка>

где:

N=0 если ДО заданного символа (не включая его);

N=1 если начиная С заданного символа (включая его);

А - заданный символ (# - обозначает цифру; $ - обозначает букву)

….&unifor("G0#"v700)…

….&unifor("G1-"v700^a)…

11

S

Универсальный счетчик

SN

где:

N=0 - обнулить счетчик;

N=1..9 - увеличить значение счетчика на соотв.значение}

N=A - вернуть значение счетчика - арабскими цифрами}

N=X - вернуть значение счетчика - римскими цифрами

….&unifor('S0')…..

….&unifor('S1')……

….&unifor('SA')……

12

L

Вернуть окончание термина

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

…..&unifor("L"v101)….

13

U

Куммуляция номеров журналов

U<strbase>,<stradd>

где:

<strbase> - исходная куммулированная строка

<stradd> - куммулируемые номера

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

14

V

Декуммуляция номеров журналов

V<strbase>

где:

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

…..&unifor("V"v909^h")…..

15

W

Контроль куммуляции

W<strbadd>,<strbase>

где:

<strbase> - исходная куммулированная строка

<stradd> - куммулируемый номер.

Возврат:

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

1 - если <stradd>  присутствует в <strbase>

…..&unifor("W12,"v909^h)…..

16

Z

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

Z

…..&unifor('Z')……

17

R

Генерация случайного числа

RNN

где:

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

…..&unifor('R10')……

18

K

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

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

….&unifor("Kjz.mnu\"v101)

19

I

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

I<SECTION>,<PAR_NAME>,<DEFAULT_VALUE>

….&unifor('IPRIVATE,NAME,NONAME')….

20

1

Вернуть заданный подэлемент

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

где:

N - номер повторения подэлемента; если указана * - номер подэлемента совпадает со счетчиком повторяющейся группы;

ХY - разделители между подэлементами;

С - принимает значения: R - разделители справа от каждого подэлемента, кроме последнего; L - разделители слева от каждого подэлемента; D - каждый подэлемент заключен слева разделителем Х и справа - Y;

? - символ-разделитель.

Остальные параметры аналогичны параметрам для функции А (см. выше)

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

21

T

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

TN<строка>

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

….&unifor("T0"V200)…..

22

J

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

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

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

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

23

D

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

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

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

Первый - имя БД;

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

Третий - или имя формата с предшествующим символом @ или непосредственно формат.

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

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

24

X

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

X<строка>

…&unifor("X"v200)….

25

Q

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

Q<строка>

….&unifor("Q"v200)….

26

M

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

MX<tag>^<delims>

X - вид сортировки: I - по возрастанию; D - по убыванию.

<tag> - метка поля.

<delims> - разделители подполей, определяющих ключ сортировки.

…&unifor('MI910^BD')…..

27

7

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

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

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

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

@имя_формата|формат|* - имя формата или формат в явном виде, в соответствии с которым будут расформатироваться связанные документы. Если задается имя формата, то он берется из директории БД, заданной параметром <имя_БД>.

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

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

28

!

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

!

…&unifor(‘!’)….

29

+F

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

формата

+F

…&unifor(‘+F’)…

30

+1

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

+1

….&unifor('+1')….

31

+1R

Чтение глобальных переменных

+1RNNN,nnn

где:

NNN – номер первой или единственной переменной, возможна конструкция *+-<число>

* - номер текущего повторения в повторяющейся группе;

nnn – кол-во переменных (по умолчанию 1)

…&unifor(‘+1R100,2’)….

32

+1W

Запись в глобальные переменные

+1WNNN,MMM#SSSS

где:

NNN – номер первой или единственной переменной, возможна конструкция *+-<число>

* - номер текущего повторения в повторяющейся группе;

MMM – номер переменной для сохранения кол-ва записанных переменных (по умолчанию  не используется);

SSSS – список строк (результат расформатирования). Если задан MMM – каждая строка пишется в отдельную переменную, в противном случае все пишется в одну переменную

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

33

+1O

Групповая мультираскодировка списка

+1O<MNU>|SSSS

где:

<MNU> имя справочника (с расширением);

SSSS – список строк (результат расформатирования

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

34

+1K

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

+1K<MNU>|NNN,nnn

где:

NNN – номер первой или единственной переменной,;

nnn – кол-во переменных (по умолчанию 1)

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

35

+1M

Перемножение двух списков (групп переменных)

+1MNNN,nnn#MMM,mmm

 

36

+1S

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

+1SNNN,nnn#MMM,mmm

 

37

+1A

Сложение списков (групп переменных)

+1ANNN,nnn#MMM,mmm

 

38

+1G

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

+1GNNN,nnn

 

39

+1I

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

+1ISSSS

 

40

+1T

Сортировка группы переменных

+1TNNN,nnn

 

41

+1V

Сортировка списка

+1VSSSS

 

42

+I

(см. Формирование ссылки (гиперссылки))

 

….&unifor('+I?0,,'v951^i'?',v951^t,|INTERNET|n951^t)….

….&unifor(|+I?1,,,,I=|v421^w|?|,v421^a)…..

43

+3E

Кодирование данных для представления в URL

+3E<данные>

…&unifor(‘+3E’,v1007)…

44

+3D

Декодирование данных из URL

+3D<данные>

 

45

+4

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

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

…(…..&unifor(‘+4T1’),’_’ &unifor(‘+4N1’),’: ‘, &unifor(‘+4F1’),’<br>’….)

46

+5

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

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

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

47

+6

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

+6

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

48

+7

(см. Подкоманды UNIFOR)

 

 

49

+8

(см. Подключение функций пользователя &unifor(‘+8…))

+8<имя_DLL>,<имя_функции>,<передаваемые_данные>

50

+9

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

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

 

+9L

Проверить наличие файла/корректность URL

         &unifor('+9L',<path>,<dbname>,<filename>)

 

<path> - условный путь к файлу, принимает значения:

0 - основная папка IRBIS64 на сервере (\irbis64\);

1 - папка DATAPATH (\irbis64\datai\)

2,3,10 - папка БД <dbname>

11 - абсолютный путь/URL

<dbname> - имя БД, имеет смысл только при path=2,3,10

<filename> - имя файла (в случае path=11 - полный путь и имя файла ИЛИ URL)

Функция возвращает:

0 - если файл отсутствует/некорректный URL

1 - если файл присутствует/корректный URL

&uf('+9L1,,\deposit\rksu.fst')

(....&uf('+9L10,',&uf('+D'),',',v951^A)....)

51

=

(см. сравнение по маске)

 

&uf(‘=!<маска>!<значение>’)

 

 

 

52

+E

возвращает порядковый номер заданного поля в записи.

&uf('+Etag#occ'),

где:

tag - метка поля

occ - номер повторения поля (по умолчанию - 1). Может принимать значение * - что означает: номер текущего повторения в повторяющейся группе. При отсутствии в записи заданного поля возвращается пустота.

 

53

++B..

 

 

 

 


См. также:

Строковые функции

Гиперссылки формирование

Глобальные переменные индивидуальные

Подключение функций пользователя

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

Маска-сравнение

ФОРМАТИРОВАНИЕ ПРЕДЫДУЩЕЙ КОПИИ ТЕКУЩЕЙ ЗАПИСИ