Simple-Scada forum
Simple-Scada 2 => Ваши вопросы => Тема начата: alan54 от 24 Октября 2019, 18:11:36
-
Здравствуйте. Есть диаграмма в виде гистограмм. Требуется, кроме столбиков переменной величины, провести горизонтальные линии средних значений отображаемых параметров. В качестве исходных данных используются пользовательские источники MySQL - первый для получения текущих значений для гистограмм, второй для получения средних значений. Подскажите, пожалуйста, как это сделать.
-
Здравствуйте.
Т.е. в области каждого столбика гистограммы должна отображаться горизонтальная линия соответствующая среднему значению для данного столбика? Т.е. у каждого столбика линия будет на его среднем уровне. Если так, то соответствует ли друг другу количество строк в двух источниках данных?
По оси X отображается время? Если да, то время в строках источников данных тоже полностью совпадает? Или может отличаться?
-
...в области каждого столбика гистограммы должна отображаться горизонтальная линия соответствующая среднему значению для данного столбика? Т.е. у каждого столбика линия будет на его среднем уровне. Если так, то соответствует ли друг другу количество строк в двух источниках данных?
Нет. Линия среднего значения должна проходить по всему тренду по типу константной линии. Что-то наподобие этого (см.вложение).
...По оси X отображается время? Если да, то время в строках источников данных тоже полностью совпадает? Или может отличаться?
Да. Ось времени общая.
-
Чтобы отобразить на диаграмме не константную прямую, нужно в источнике данных создать новую рассчитываемую колонку. Значение этой колонки "растянется" на весь период источника данных формируя прямую линию. Далее остаётся только отобразить эту линию в диаграмме. Для этого нужно создать в диаграмме новый ряд с типом "Линия" и в свойство "Колонка данных значений" назначить ранее созданную рассчитываемую колонку. Готово. Значение рассчитываемой колонки можно легко менять перед построением отчета. Например, можно вывести в рассчитываемую колонку значение какой-либо переменной отчёта (которая в свою очередь может быть связана с переменной проекта) и при построении значение переменной будет взято в рассчитываемую колонку.
В Вашем случае вся сложность в том, что значения для прямых линий находятся в строках отдельного пользовательского источника данных. И нужно из собственного источника данных взять по одному значению из каждой строки и расставить эти значения в соответствующие рассчитываемые колонки источника, отобразив прямые линии. А если отчет строится за произвольный интервал времени и количество прямых линий может меняться при каждом построении, то задача усложняется ещё сильнее, ведь рассчитываемые колонки можно добавлять только на этапе создания отчёта, а не в момент его построения.
И здесь нет какого-то простого решения, остаётся только придумывать различные способы как расставить значения из пользовательского источника в рассчитываемые колонки. Например, можно попробовать получить список средних значений через SQL-запрос в скриптах скады ещё до построения отчета. Затем в отдельном скрипте проходить по результатам выборки и полученные средние значения расставлять в соответствующие переменные для отчёта, а затем в отчёте использовать их в рассчитываемых колонках.
-
Спасибо за подробный ответ. Не думал, что это будет так сложно. Пока ограничусь выводом в отчет с диаграммой числовых средних значений, получаемых с помощью SQL-запросов.