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

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

Автор Тема: Как в диаграмме изобразить линии средних значений?  (Прочитано 1419 раз)

alan54

  • Постоялец
  • ***
  • Сообщений: 145
    • Просмотр профиля
Здравствуйте. Есть диаграмма в виде гистограмм. Требуется, кроме столбиков переменной величины, провести горизонтальные линии средних значений отображаемых параметров. В качестве исходных данных используются пользовательские источники MySQL - первый для получения текущих значений для гистограмм, второй для получения средних значений. Подскажите, пожалуйста, как это сделать. 

Simple-Scada

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

Т.е. в области каждого столбика гистограммы должна отображаться горизонтальная линия соответствующая среднему значению для данного столбика? Т.е. у каждого столбика линия будет на его среднем уровне. Если так, то соответствует ли друг другу количество строк в двух источниках данных?
По оси X отображается время? Если да, то время в строках источников данных тоже полностью совпадает? Или может отличаться?

alan54

  • Постоялец
  • ***
  • Сообщений: 145
    • Просмотр профиля
...в области каждого столбика гистограммы должна отображаться горизонтальная линия соответствующая среднему значению для данного столбика? Т.е. у каждого столбика линия будет на его среднем уровне. Если так, то соответствует ли друг другу количество строк в двух источниках данных?
Нет. Линия среднего значения должна проходить по всему тренду по типу константной линии. Что-то наподобие этого (см.вложение).
...По оси X отображается время? Если да, то время в строках источников данных тоже полностью совпадает? Или может отличаться?
Да. Ось времени общая.
« Изменён: 25 Октября 2019, 21:07:39 от alan54 »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3009
    • Просмотр профиля
    • Simple-Scada
Чтобы отобразить на диаграмме не константную прямую, нужно в источнике данных создать новую рассчитываемую колонку. Значение этой колонки "растянется" на весь период источника данных формируя прямую линию. Далее остаётся только отобразить эту линию в диаграмме. Для этого нужно создать в диаграмме новый ряд с типом "Линия" и в свойство "Колонка данных значений" назначить ранее созданную рассчитываемую колонку. Готово. Значение рассчитываемой колонки можно легко менять перед построением отчета. Например, можно вывести в рассчитываемую колонку значение какой-либо переменной отчёта (которая в свою очередь может быть связана с переменной проекта) и при построении значение переменной будет взято в рассчитываемую колонку.
В Вашем случае вся сложность в том, что значения для прямых линий находятся в строках отдельного пользовательского источника данных. И нужно из собственного источника данных взять по одному значению из каждой строки и расставить эти значения в соответствующие рассчитываемые колонки источника, отобразив прямые линии. А если отчет строится за произвольный интервал времени и количество прямых линий может меняться при каждом построении, то задача усложняется ещё сильнее, ведь рассчитываемые колонки можно добавлять только на этапе создания отчёта, а не в момент его построения.
И здесь нет какого-то простого решения, остаётся только придумывать различные способы как расставить значения из пользовательского источника в рассчитываемые колонки. Например, можно попробовать получить список средних значений через SQL-запрос в скриптах скады ещё до построения отчета. Затем в отдельном скрипте проходить по результатам выборки и полученные средние значения расставлять в соответствующие переменные для отчёта, а затем в отчёте использовать их в рассчитываемых колонках.

alan54

  • Постоялец
  • ***
  • Сообщений: 145
    • Просмотр профиля
Спасибо за подробный ответ. Не думал, что это будет так сложно. Пока ограничусь выводом в отчет с диаграммой числовых средних значений, получаемых с помощью SQL-запросов.