TEMPLATE — различия между версиями
Материал из GB wiki
Alexey (обсуждение | вклад) |
Alexey (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 8: | Строка 8: | ||
|Пояснение=строка, описание шаблона.<p></p> | |Пояснение=строка, описание шаблона.<p></p> | ||
:Шаблон состоит из обычного текста, полей датасета, переменных. | :Шаблон состоит из обычного текста, полей датасета, переменных. | ||
− | :Имена переменных и | + | :Имена переменных, полей и выражения должны быть заключены в двойные квадратные скобки, например: |
+ | :*<nowiki>[[:Npp]]</nowiki> | ||
+ | :*<nowiki>[[SubStr(Articul.Name,1,25)]]</nowiki> | ||
:Также имеются следующие конструкции: | :Также имеются следующие конструкции: | ||
:*условная: <nowiki>[[$if условие]] истина [[$else]] ложь [[$endif]]</nowiki> | :*условная: <nowiki>[[$if условие]] истина [[$else]] ложь [[$endif]]</nowiki> | ||
:*для получения данных из субсета: <nowiki>[[$whileds датасет]] тут_что-то_выводим [[$wend]]</nowiki> | :*для получения данных из субсета: <nowiki>[[$whileds датасет]] тут_что-то_выводим [[$wend]]</nowiki> | ||
+ | :*дополнение пробелами для достижения заданной длины строки: <nowiki>[[<50>]]</nowiki>. Для каждой строки шаблона допустима только одна такая конструкция. | ||
}} | }} | ||
{{Аргумент | {{Аргумент | ||
Строка 17: | Строка 20: | ||
|Пояснение=строка, имя датасета, значение полей текущей записи которого используется как источник для шаблона | |Пояснение=строка, имя датасета, значение полей текущей записи которого используется как источник для шаблона | ||
}} | }} | ||
− | |Результат=строка | + | |Результат=строка, отформатированный согласно шаблону текст |
|Пример=Прочитать документ, вывести по шаблону данные документа (основного датасета) и товарной строки (субсета): | |Пример=Прочитать документ, вывести по шаблону данные документа (основного датасета) и товарной строки (субсета): | ||
'''OpenDataSet'''( | '''OpenDataSet'''( | ||
Строка 29: | Строка 32: | ||
'''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 | ||
+ | Это заказ | ||
}} | }} |
Текущая версия на 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 Это заказ