TemplateBind

<< Click to Display Table of Contents >>

Navigation:  Проект в MasterSCADA 4D > Дерево библиотек > Библиотека BaseObjects > BaseObjects.ФБ.Системные > Работа со строками >

TemplateBind

Функциональный блок TemplateBind служит формирования строки из структуры или из массива структур.

Функциональный блок может использоваться для подготовки данных для сохранения в файл, или для отправки по электронной почте  и т.п.

Вид в дереве

Вид в редакторе FBD

TemplateBind

TemplateBind_1

Входы и выходы ФБ:

Название

Тип

Назначение

Входы

Template

STRING

Задается шаблон строки. В шаблон могут быть интегрированы различные поля сложного типа данных (массива структур, структуры). Текст, который задан без специальных символов будет передан на выход без изменений. Если внутри специальных символов указаны имена полей типа данных, который присутствуют в типе данных, которые заданы на входе Data, то будет использоваться значения, которые находятся в источнике данных.

Специальные символы:

{{ variable }} - Вставка переменной, используется для получения значения в строке простого типа

{% block name %} - Начало блока под именем name, используется для работы со сложными типами данных. После начала работы с блоком (с полем сложного типа), к его дочерним полям можно обращаться используя фигурные скобки, которые служат для получения значения простого типа.

{% endblock %} - Завершение блока

Data

ANY

Источник данных, значения которого нужно преобразовать в строку. На вход можно подать структуру или массив структур. Или структуру, которая состоит как из полей простых типов, так и из полей сложных типов (см. пример ниже).

Run

BOOL

Запускает формирование строки

Выходы

Output

STRING

Выдается результат работы ФБ.

Пример работы с функциональным блоком

Рассмотрим работу с функциональным блоком на примере. Пусть нужно выдать данные в виде документа HTML.

Пусть на вход Data подается параметр типа структура:

TemplateBind_2

Где Header имеет тип STRING, а Items имеет тип массив состоящий из структуры Item:

TemplateBind_3

Т.е. в пользовательской библиотеке есть три типа данных:

TemplateBind_4

Параметр 1 имеет тип Исходные данные, связанный со входом Data принимает значение:

TemplateBind_5

Вход 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>