TEMPLATE — различия между версиями
Материал из GB wiki
Alexey (обсуждение | вклад) |
Alexey (обсуждение | вклад) |
||
Строка 8: | Строка 8: | ||
|Пояснение=строка, описание шаблона.<p></p> | |Пояснение=строка, описание шаблона.<p></p> | ||
:Шаблон состоит из обычного текста, полей датасета, переменных. | :Шаблон состоит из обычного текста, полей датасета, переменных. | ||
− | :Имена переменных и | + | :Имена переменных, полей и выражения должны быть заключены в двойные квадратные скобки, например: <nowiki>[[:Npp]], [[SubStr(Articul.Name,1,25)]]</nowiki>. |
:Также имеются следующие конструкции: | :Также имеются следующие конструкции: | ||
:*условная: <nowiki>[[$if условие]] истина [[$else]] ложь [[$endif]]</nowiki> | :*условная: <nowiki>[[$if условие]] истина [[$else]] ложь [[$endif]]</nowiki> | ||
Строка 30: | Строка 30: | ||
'''Info'''( | '''Info'''( | ||
'''Template'''( | '''Template'''( | ||
− | <nowiki>`Номер [[DocNumber]][[$whileds Goodies]] | + | <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 | ||
+ | Это заказ | ||
+ | <br> | ||
+ | '''Template'''( | ||
+ | `Товар:[[$whileds Goodies]][[Articul.Name]][[<50>]]Количество[[Quantity]][[$wend]] [[$if DocType=17]]. Это заказ [[$else]] Это не заказ [[$endif]]`, | ||
+ | `ds` | ||
+ | ) | ||
}} | }} | ||
− |
Версия 12:25, 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 Это заказ
Template( `Товар:$whileds GoodiesArticul.Name[[<50>]]КоличествоQuantity$wend $if DocType=17. Это заказ $else Это не заказ $endif`, `ds` )