<< Click to Display Table of Contents >> Navigation: Проект в MasterSCADA 4D > Дерево библиотек > Библиотека BaseObjects > BaseObjects.ФБ.Системные > Работа со строками > TemplateBind |
Функциональный блок TemplateBind служит формирования строки из структуры или из массива структур.
Функциональный блок может использоваться для подготовки данных для сохранения в файл, или для отправки по электронной почте и т.п.
Вид в дереве |
Вид в редакторе FBD |
Входы и выходы ФБ:
Название |
Тип |
Назначение |
Входы |
||
Template |
STRING |
Задается шаблон строки. В шаблон могут быть интегрированы различные поля сложного типа данных (массива структур, структуры). Текст, который задан без специальных символов будет передан на выход без изменений. Если внутри специальных символов указаны имена полей типа данных, который присутствуют в типе данных, которые заданы на входе Data, то будет использоваться значения, которые находятся в источнике данных. Специальные символы: •{{ variable }} - Вставка переменной, используется для получения значения в строке простого типа •{% block name %} - Начало блока под именем name, используется для работы со сложными типами данных. После начала работы с блоком (с полем сложного типа), к его дочерним полям можно обращаться используя фигурные скобки, которые служат для получения значения простого типа. •{% endblock %} - Завершение блока |
Data |
ANY |
Источник данных, значения которого нужно преобразовать в строку. На вход можно подать структуру или массив структур. Или структуру, которая состоит как из полей простых типов, так и из полей сложных типов (см. пример ниже). |
Run |
BOOL |
Запускает формирование строки |
Выходы |
||
Output |
STRING |
Выдается результат работы ФБ. |
Рассмотрим работу с функциональным блоком на примере. Пусть нужно выдать данные в виде документа HTML.
Пусть на вход Data подается параметр типа структура:
Где Header имеет тип STRING, а Items имеет тип массив состоящий из структуры Item:
Т.е. в пользовательской библиотеке есть три типа данных:
Параметр 1 имеет тип Исходные данные, связанный со входом Data принимает значение:
Вход Template равен:
<html>
<body>
<h1>{{ header }}</h1>
<p>Items:</p>
{% block items %}
<p>
Title: {{ title }}<br/>
Text: {{ text }}<br/>
</p>
{% endblock %}
</body>
</html>
Тогда по переднему входу параметра Run на выходе Output получим:
<html>
<body>
<h1>Заголовок</h1>
<p>Items:</p>
<p>
Title: Подзаголовок_1<br/>
Text: Текст_1<br/>
</p>
<p>
Title: Подзаголовок_2<br/>
Text: Текст_2<br/>
</p>
<p>
Title: Подзаголовок_3<br/>
Text: Текст_3<br/>
</p>
</body>
</html>