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

Исторически реализация дополнительной логики осуществлялась с использованием скриптовых языков программирования. В зависимости от продукта Stimulsoft, это могли быть C#, VB.NET или JavaScript. Поддержка конкретного языка зависит от среды выполнения: отчеты с логикой на C# не будут работать, например, в Node.js-продуктах, что существенно затрудняет перенос таких решений между платформами.

Для повышения универсальности была внедрена интеграция с Google Blockly – визуальной no-code платформой для программирования. Решение позволяет создавать скрипты в виде блоков, не требуя написания кода вручную. Несмотря на то, что функционал Blockly присутствует в продуктах Stimulsoft сравнительно давно, в контексте роста популярности подобных решений актуально рассмотреть возможности no-code программирования в отчетах и дашбордах более подробно.

Использование скриптов

В ранних версиях продуктов Stimulsoft скрипты применялись исключительно в событиях компонентов страниц отчета и самого шаблона. Позже в дашбордах появился элемент Кнопка (Button), который позволил запускать действия по пользовательскому событию, а сравнительно недавно была добавлена возможность создавать пользовательские функции и использовать их в шаблоне.

Таким образом, на текущий момент скрипты в Stimulsoft используются в следующих случаях:
  • обработка событий компонентов и шаблонов;
  • логика, привязанная к элементу Кнопка в дашборде;
  • использование пользовательских функций.

Во всех этих сценариях допустимы два способа реализации
  • написание скриптов на поддерживаемом языке программирования;
  • создание скрипта с помощью Blockly – визуального конструктора no-code логики.
ОБРАТИТЕ ВНИМАНИЕ!

Начиная с версии 2025.3.1 в режиме вычисления отчета «Интерпретация» появилась поддержка выполнения скриптов на языке программирования. Кроме того, теперь скрипты можно использовать внутри выражений при помощи оператора return. Однако формирование скриптов через Blockly непосредственно в выражениях на текущий момент не поддерживается.

Что такое Blockly и зачем он нужен в Stimulsoft

Blockly – это библиотека от Google, позволяющая создавать скрипты путем визуального соединения логических блоков. Каждый блок представляет собой конструкцию: условие, цикл, операция, переменная и так далее. В контексте линеек продуктов Stimulsoft Reports и Stimulsoft Dashboards, использование Blockly предоставляет доступ к программной логике в формате no-code, то есть без необходимости писать код вручную.

Основные преимущества:
  • Универсальность: скрипты, созданные с помощью Blockly, работают во всех продуктах Stimulsoft, независимо от платформы;
  • Безопасность: Blockly предоставляет ограниченный, контролируемый набор логики. Некоторые возможности сознательно урезаны, что снижает риски выполнения небезопасного или критичного кода;
  • Доступность: создание скриптов возможно без знания языков программирования, что делает инструмент удобным для аналитиков и бизнес-пользователей. При этом базовое понимание алгоритмов и логики желательно.

Вызов редактора Blockly

В зависимости от способа создания скриптов в отчете, будет открыт редактор в том или ином режиме. Для написания скриптов при помощи скриптовых языков программирования используется один режим, для работы с Blockly – другой. Выбор режима редактора для событий и элемента дашборда Кнопка зависит от параметра Редактор скриптов по умолчанию (Default Script Mode) в окне Параметры (Options) конструктора отчетов. Этот параметр определяет, какой редактор будет использоваться по умолчанию, и может принимать одно из следующих значений:
  • Код (Code) - используется редактор для ручного написания кода.
    Исключение: если в шаблоне установлен режим вычисления Интерпретация (Interpretation) и свойство Разрешить запуск скриптов (Allow Scripts to Run) установлено в значение Нет (False), редактор не будет активирован;
  • Блоки (Blocks) - всегда вызывается редактор Blockly, независимо от других параметров;
  • Авто (Auto) - значение по умолчанию. Приоритетно вызывается редактор для написания кода, за исключением случаев, когда:
    1. В шаблоне установлен режим Интерпретация (Interpretation), и свойство Разрешить запуск скриптов имеет значение Нет (False);
    2. В шаблоне уже присутствует хотя бы один скрипт, созданный с использованием Blockly – в этом случае будет автоматически открыт редактор Blockly.

Переключение редактора из режима кода в режим Blockly и обратно осуществляется при помощи элемента управления Переключиться на Блокли (Switch to Blockly) и Переключить на Код (Switch to Code) соответственно.

При создании скриптов в пользовательских функциях, необходимо в редакторе функции перейти на вкладку Blockly script и нажать кнопку Редактировать с блокли (Edit with Blockly).

Редактор скриптов в режиме Blockly

Рассмотрим кратко редактор скриптов в режиме Blockly.

В редакторе доступны следующие компоненты:
  • Блоки, сгруппированные по категориям (логика, циклы, переменные и т.д.);
  • Рабочая область, где осуществляется построение скрипта;
  • Кнопки Сохранить (Save) и Открыть (Open), позволяют сохранить текущий скрипт в файл или загрузить его из файла. Удобно при повторном использовании скриптов в разных отчетах;
  • Кнопки масштабирования, предназначенные для изменения масштаба рабочей области;
  • Корзина, куда можно перемещать ненужные блоки. Поддерживается восстановление блоков из корзины;
  • Кнопка Переключить на код – переводит редактор в режим ручного написания скрипта;
  • Кнопки ОК и Отмена (Cancel) – применяют или отклоняют изменения в скрипте.

Добавление блоков в рабочую область осуществляется простым перетаскиванием (drag-and-drop).

Blockly editor

Описание категорий блоков

Как уже было сказано выше, все блоки разделены по категориям. Блоки из различных категорий могут комбинироваться в одном скрипте. Рассмотрим кратко каждую категорию:
  • Объекты (Objects) - в этой категории содержатся блоки для работы с объектами отчета. Например, блок для выбора компонента, чтения (set) и записи (get) свойств компонента;
  • Визуальные элементы (Visuals) - в этой категории содержатся блоки для работы с визуальным оформлением. Например, блоки выбора цвета, изменения закругления границ;
  • Данные (Data) - в этой категории содержатся блоки для работы с данными отчета. Например, блоки получения данных из колонки или источника данных по имени;
  • Переменные (Variables) - в этой категории содержатся блоки для работы с переменными отчета. Например, блоки чтения (set) и записи (get) переменной отчета;
  • Процесс (Process) - в этой категории содержатся блоки для работы с процессами. Например, блоки открыть гиперссылку, сбросить все фильтры, обновить вьювер;
  • Функции (Functions) - в этой категории содержатся блоки для работы со встроенными функциями. Все функции распределены по категориям также как в Словаре данных (Dictionary), а каждая функция представлена отдельным блоком;
  • Логика (Logic) - в этой категории содержатся блоки для создания логического ветвления. Например, блоки условий, сравнения;
  • Циклы (Loops) - в этой категории содержатся блоки для создания циклов в скриптах. Например, аналоги цикла for и while;
  • Математика (Math) - в этой категории содержатся блоки для математических операций. Например, блоки сложения, извлечения квадратного корня;
  • Текст (Text) - в этой категории содержатся блоки для работы со строковыми литералами. Например, блоки получения длины строки, поиск подстроки;
  • Списки (Lists) - в этой категории содержатся блоки для работы со списочными данными. Например, блоки создания списка, его сортировки;
  • Локальные переменные (Local Variables) - в этой категории содержатся блоки для работы с локальными переменными. Область видимости этих переменных ограничивается только текущим скриптом. В других местах отчета они будут недоступны, в отличие от переменных отчета.

При создании скрипта в пользовательских функциях будет присутствовать еще одна категория:
  • User function – в этой категории содержится блок оператора return. Дело в том, что при создании скрипта пользовательской функции использование оператора return является обязательным. Без него скрипт функции работать не будет.

Первый скрипт в Blockly

Давайте на практике сделаем наш первый скрипт Blockly по шагам:
  1. Запустите дизайнер отчетов;
  2. Создайте пустой отчет;
  3. Добавьте текстовый компонент в отчет;
  4. Выделите область шаблона отчета (серая зона между страницей и панелью свойств) или на вкладке Отчет (Report) нажмите кнопку Свойства (Properties);
  5. На панели свойств перейдите к событиям отчета;
  6. Нажмите кнопку Обзор (Browse) у события Построение (Rendering);
  7. Если вызвался редактор в режиме кода, переключите редактор в режим Blockly;
  8. Из категории Объекты (Objects) добавьте блок "Set Property, of, to" в рабочую область;
  9. Из категории Объекты добавьте блок со списком компонентов и пристыкуйте его в блоке "Set Property, of, to" в секцию "of".
  10. В блоке со списком компонентов, выберите текстовый компонент. Например, Text1;
  11. В секции "Set Property" напишите "Text";
  12. Из категории Текст (Text) добавьте блок для ввода текста и пристыкуйте его в блоке "Set Property, of, to" в секцию "to";
  13. Укажите строковое значение в секции "to", например, "Hello, World!";
  14. Нажмите кнопку ОК в редакторе скриптов;
  15. Перейдите на вкладку Просмотр (Preview), чтобы построить отчет.

Теперь в компоненте отчета Text1 будет отображаться значение Hello, World!.

Result script
Использование Blockly в скриптах Stimulsoft существенно расширяет возможности настройки логики отчетов и дашбордов без необходимости написания кода вручную. Это повышает универсальность и безопасность решений, обеспечивая кроссплатформенную совместимость. Внедрение визуального редактора скриптов упрощает работу как для инженеров, так и для бизнес-пользователей, снижая порог вхождения в создание интерактивных отчетов. Таким образом, использование no-code подхода становится важным инструментом для повышения эффективности и гибкости разработки в Stimulsoft.
Узнайте больше, посмотрев наши обучающие видео на нашем канале YouTube.

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