Re: Версия 2015.1
Пользователь:
Alio (IP-адрес скрыт)
Дата: 16, February, 2015 13:32
Язык форматирования.
Расширена возможность форматного выхода &uf('6<имя_формата>') - новая конструкция имеет вид:
&uf('6<имя_шаблон-формата>#<параметр1>,<параметр2>,...<параметрN>')
где:
<параметр1>,<параметр2>,...<параметрN> - список значений переменных параметров
Шаблон-формат - формат, содержащий переменные параметры в виде %N - где
N - номер параметра в списке значений
В качестве переменных параметров шаблон-формата могут выступать ЛЮБЫЕ конструкции языка форматирования (метки полей/подполей, литералы и т.д.)
Данная конструкция &uf('6... позволяет сократить тексты форматов - например, в тех случаях, когда для вывода разных элементов данных используются идентичные конструкции.
Пример (упрощенный).
Для вывода сведения об индивидуальной ответственности (авторов) из различных полей (700, 701, 702, 330 и т.д.) используются идентичные конструкции, отличающиеся только значением метки поля.
Поступаем следующим образом.
Создаем шаблон-формат AUTHOR, в котором в качестве метки используем переменный параметр %1
(if p(v%1) then |A=|v%1^a,| |v%1^d,|, |v%1^g,if a(v%1^g) then |, |d%1^b,if v%1^b:'. 'or (not(v%1^b:'.')) then v%1^b else &unifor('G0.'v%1^b),'. '&unifor('G2.'v%1^b) fi fi,if &uf('Ag700#1')='1' then else if s(v%1^1,v%1^c,v%1^f)<>''then' (',v%1^1,if s(v%1^1)<>''then| ; |d%1^c fi,v%1^c,if s(v%1^1,v%1^c)<>''then| ; |d%1^f fi,v%1^f,')' fi,|\|v%1^4*4,|, |v%1^5*4,|, |v%1^6*4,|(|v%1^7|)|,|\|d%1^4 fi fi,|%|d%1/)
Теперь для вывода сведений из конкретного поля используем конструкции
&uf('6author#700')
или
&uf('6author#701')
и т.д.
Редактировано 1 раз. Последний раз 16.02.2015 13:47 пользователем Alio.