Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Гибридный отчет(Сообщения+Периодический)  (Прочитано 471 раз)

RadMur

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Здравствуйте!

Можно ли совместить источник Сообщения и Периодический?
В приложении пример отчета. Там два источника. Первый - это
сообщения, через них я записываю в БД события.
Второй - периодический, оттуда берутся вес и температура для графика.
Я попытался перетащить эти показания в DataBand, но туда попали одни(постоянные)
значения. А мне нужны показания на момент наступления каждого события
из источника Сообщения.

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1414
    • Просмотр профиля
Здравствуйте.

Совместить источник "Сообщения" с другим источником не получится. В данном случае можно только создать в БД свою таблицу с нужной структурой и записывать в нее необходимую информацию  - примеры скриптов для работы с БД, см. по ссылке. Далее в отчете использовать пользовательский источник данных - пример см. по ссылке и строить отчет на основании накопленных в нем данных.

RadMur

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Здравствуйте!

Продолжаю эксперименты с отчетами и сообщениями.
Сначала сделал отчет, как в Помощи, т.е. сообщения добавляются через систему. Все работает корректно, колонки Завершено и Длительность содержат данные.
Затем сделал добавление сообщений через скрипт(AddMessageToGroup) и отчет по новой группе сообщений. Сообщения добавляются, но колонки Завершено и Длительность не содержат данных.
Это норма для сообщений, добавленных через скрипт?

Simple Scada

  • Глобальный модератор
  • *****
  • Сообщений: 290
    • Просмотр профиля
    • Simple-Scada
Здравствуйте.

Цитировать
Это норма для сообщений, добавленных через скрипт?
Да, для сообщений, которые формируются через скрипты, колонки "Завершено" и "Длительность" не заполняются.

pan2000

  • Постоялец
  • ***
  • Сообщений: 231
    • Просмотр профиля
  Здравствуйте.

 Для построения таблицы гибридного отчёта можно использовать данные из системных таблиц Simple-Scada по следующему алгоритму:
- по таблице messages строится таблица с необходимыми для отчета колонками и добавлением колонок для переменных. Критерием отбора строк служит номер группы сообщений и временное окно построения;
- из таблицы отчета выбираются все временные метки и помещаются в динамический массив;
- по массиву в цикле выполняются получение значений переменных из архива по временной метке (ArchiveValueByTime) с последующей записью в таблицу отчёта.
Из-за использования архивной функции построение таблицы достаточно медленное. Однако данный алгоритм слабо связан с проектом и не требует дополнительных ресурсов БД.
Пример во вложении предельно упрощен. Секундный генератор переменных. Две кнопки событий и фиксированные имена переменных. Отбор только по номеру группы сообщений (можно предварительно почистить таблицы). Кнопка "Построить таблицу", визуализация результата в таблице Simple-Scada.

RadMur

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Большое спасибо! Обязательно попробую.
« Изменён: 30 Июля 2026, 21:24:22 от Simple_Scada »