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

Материал из GB wiki
Перейти к: навигация, поиск
(Новая страница: «{{Функция ГБ |Название=TEMPLATE |Описание=Позволяет форматировать текст по шаблону |Синтаксис=T…»)
 
 
(не показано 5 промежуточных версий этого же участника)
Строка 6: Строка 6:
 
{{Аргумент
 
{{Аргумент
 
  |Название=Шаблон
 
  |Название=Шаблон
  |Пояснение=строка, описание шаблона
+
  |Пояснение=строка, описание шаблона.<p></p>
 +
:Шаблон состоит из обычного текста, полей датасета, переменных.
 +
:Имена переменных, полей и выражения должны быть заключены в двойные квадратные скобки, например:
 +
:*<nowiki>[[:Npp]]</nowiki>
 +
:*<nowiki>[[SubStr(Articul.Name,1,25)]]</nowiki>
 +
:Также имеются следующие конструкции:
 +
:*условная: <nowiki>[[$if условие]] истина [[$else]] ложь [[$endif]]</nowiki>
 +
:*для получения данных из субсета: <nowiki>[[$whileds датасет]] тут_что-то_выводим [[$wend]]</nowiki>
 +
:*дополнение пробелами для достижения заданной длины строки: <nowiki>[[<50>]]</nowiki>. Для каждой строки шаблона допустима только одна такая конструкция.
 
}}
 
}}
 
{{Аргумент
 
{{Аргумент
Строка 12: Строка 20:
 
  |Пояснение=строка, имя датасета, значение полей текущей записи которого используется как источник для шаблона
 
  |Пояснение=строка, имя датасета, значение полей текущей записи которого используется как источник для шаблона
 
}}
 
}}
|Результат=строка. Текст, отформатированный согласно шаблону
+
|Результат=строка, отформатированный согласно шаблону текст
|Пример=Прочитать документ, вывести по шаблону данные документа (основного датасета) и товарную строку (субсет):
+
|Пример=Прочитать документ, вывести по шаблону данные документа (основного датасета) и товарной строки (субсета):
  OpenDataSet(
+
  '''OpenDataSet'''(
 
   `documents_get`,
 
   `documents_get`,
 
   [
 
   [
Строка 22: Строка 30:
 
   `ds`
 
   `ds`
 
  ),
 
  ),
  Info(
+
  '''Info'''(
   Template(
+
   '''Template'''(
     <nowiki>`Номер [[DocNumber]][[$whileds Goodies]] Товар [[Articul.Name]][[$wend]] [[$if DocType=17]] это заказ [[$else]] это не заказ [[$endif]]`,
+
     <nowiki>`Номер: [[DocNumber]].`
 +
    + \
 +
    + `[[$whileds Goodies]] Товар: [[SubStr(Articul.Name,1,28)]] [[<50>]]Кол-во: [[Quantity]]`
 +
    + \
 +
    + `[[$wend]][[$if DocType=17]]Это заказ[[$else]]Это не заказ[[$endif]]`,
 
     `ds`
 
     `ds`
 
   )
 
   )
 
  )</nowiki>
 
  )</nowiki>
 +
Результат будет таким:
 +
Номер: АП12345.
 +
  Товар: Пончик "Лакомство для копа"    Кол-во: 5
 +
  Товар: Лимонад "Глотни, если смелый!"  Кол-во: 1
 +
  Товар: Лопата "Сапёрная", в чехле      Кол-во: 1
 +
Это заказ
 
}}
 
}}

Текущая версия на 12:33, 23 декабря 2016

Позволяет форматировать текст по шаблону

Синтаксис

TEMPLATE(Шаблон, Датасет)

Аргументы

Шаблон
строка, описание шаблона.

Шаблон состоит из обычного текста, полей датасета, переменных.
Имена переменных, полей и выражения должны быть заключены в двойные квадратные скобки, например:
  • [[:Npp]]
  • [[SubStr(Articul.Name,1,25)]]
Также имеются следующие конструкции:
  • условная: [[$if условие]] истина [[$else]] ложь [[$endif]]
  • для получения данных из субсета: [[$whileds датасет]] тут_что-то_выводим [[$wend]]
  • дополнение пробелами для достижения заданной длины строки: [[<50>]]. Для каждой строки шаблона допустима только одна такая конструкция.
Датасет
строка, имя датасета, значение полей текущей записи которого используется как источник для шаблона

Тип результата

строка, отформатированный согласно шаблону текст

Примеры

Прочитать документ, вывести по шаблону данные документа (основного датасета) и товарной строки (субсета):

OpenDataSet(
  `documents_get`,
  [
    `ids` : 1125,
    `props` : `*`
  ],
  `ds`
),
Info(
  Template(
    `Номер: [[DocNumber]].`
     + \
     + `[[$whileds Goodies]]  Товар: [[SubStr(Articul.Name,1,28)]] [[<50>]]Кол-во: [[Quantity]]`
     + \
     + `[[$wend]][[$if DocType=17]]Это заказ[[$else]]Это не заказ[[$endif]]`,
     `ds`
   )
 )

Результат будет таким:

Номер: АП12345.
  Товар: Пончик "Лакомство для копа"     Кол-во: 5
  Товар: Лимонад "Глотни, если смелый!"  Кол-во: 1
  Товар: Лопата "Сапёрная", в чехле      Кол-во: 1
Это заказ