Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 35

Тема: Агрегатные функции в отчёте

  1. #11

    По умолчанию

    Цитата Сообщение от ks21 Посмотреть сообщение
    В отчёте мне нужно вывести значения данных в моменты некоторых событий. Мне нужно знать время, когда эти события произошли и посмотреть в архиве значения других данных в эти моменты. Для этого я архивирую время. Имея время события я могу использовать его в фильтрах вывода. Может быть есть другой способ - не архивируя время? Подскажите. Есть ли, к примеру, у логической переменной при переходах из ИСТИНА в ЛОЖЬ и наоборот метки времени, которые можно получить в дереве объекта или в отчёте? Сейчас-то я их сам формирую, видели в примере - получается много вспомогательных ФБ и связей. Допустим в архиве есть колонка логической переменной. Можно ли как то сформировать дополнительную колонку со значениями времени этих переходов, не архивируя время явно, как я?
    Посмотрите пример "отчет по условию":
    http://www.masterscada.ru/?additional_section_id=233
    это примерно соответсвует вашему отчету.
    Спасибо.

  2. #12

    По умолчанию

    Спасибо, посмотрю.

  3. #13

    По умолчанию

    Жизнь снова вернула к вопросу об агрегатных функциях в отчёте. Теперь система Win10 32бита , Скада - 3.8.0.58188 3.8(RT32ReleaseMax)_17_04_21_13_34. И опять не работают агрегатные функции FIRST, LAST для типов данных float, double. И изменение типа данных double (Nullable) на double теперь не помогает. Отчёт просто не строится и ошибок при компиляции не показывает. Может быть я что-то не так делаю? Работают ли функции функции FIRST, LAST для типов данных float, double в этой версии MasterScada? Досадно терять то, что раньше, в версии 3.6 работало... И просмотр данных в отчётах в версии 3.8 не работает, а, ведь, в версии 3.6 он прекрасно работал...

  4. #14

    По умолчанию

    Работает.
    Пришлите ваш проект (выполните Проект - Экспортировать), укажите путь к проблемному отчету.
    Спасибо.

  5. #15

    По умолчанию

    Годы идут, вопросы так и остаются.))) Снова пришлось воспользоваться агрегатными функциями в отчёте. И снова те же самые вопросы - как заставить работать агрегатные функции с типами отличными от string? Проект, для примера самый простейший - один объект, в нём одна переменная "вещественный двойной точности". Создаём отчёт для объекта с этой переменной. Создаём данные в отчёте на основе архива Мастерскада. Кидаем в данные нашу переменную. Тип переменной в отчёте получается double (Nullable). Выводим эту переменную на страницу отчёта. Отчёт строится - переменная выводится.
    Создаём данные на основе других данных и указываем в них нашу переменную. Применяем в итогах агрегатную функцию Last, к примеру. Выводим её на страницу - отчёт не строится, а в Скаде появляется сообщение от ошибке:
    "System.NotSupportedException: DataSet не поддерживает System.Nullable<>.
    в System.Data.DataColumn..ctor(String columnName, Type dataType, String expr, MappingType type)
    в System.Data.DataColumn..ctor(String columnName, Type dataType)"
    Изменяем тип переменной в данных на основе других данных на double. После этого отчёт строится.
    Вопрос-то в чём - в том, что нельзя изменить тип переменных в данных на основе архива мастерскада. Изменить-то его можно, но при закрытии скады и новом запуске он опять восстановится в double (Nullable). И применять к нему агрегатные функции будет нельзя. Надо создавать данные на основе других данных, добавлять в них результаты, выбирать функцию обработки... Получается какая-то двойная работа. Сначала перенеси данные в отчёт, а потом создай те же самые данные на основе других данных с типами без Nullable. Что удручает - что эти ухищрения в документации я не нашёл, хотя может плохо искал. Или я не понимаю Вашей документации. Но крови себе попортил много, пока хоть немного разобрался. Ранее мне тут предлагали использовать для отчёт тип string. Да - с ним агрегатные функции работают сразу, без прокладок в виде данных на основе других данных. Но, не очень это удобно иногда. Например, надо изменить разрядность вывода - надо в проекте менять, при преобразовании в тип string. А ещё, к примеру тип bool - его как использовать в отчёте? Заменить его каким-нибудь строковым эквивалентом? Не... ну понятно, что безногому и костыль в радость. Но, ведь, "красота спасёт мир" - и было бы здорово, если бы агрегатные функции в отчёте работали сразу после копирования в отчёт переменных из проекта.
    Собственно, кроме этого пожелания вопросов нет, а то, что написано выше, написано на случай, "вдруг кому поможет" и сохранит время потерянное на выяснение особенностей работы отчёта.

  6. #16

    По умолчанию

    Из вашего описания не понятно в чем именно у вас проблема.
    Если у вас переменная типа Nullable, то получить ее значение можно через свойство Value
    Спасибо.

  7. #17

    По умолчанию

    В том, что агрегатные функции работают только с типами без Nullable. А при переносе переменной из проекта создаётся тип с Nullable. И изменить его нельзя. По Вашей документации - я переношу переменную в отчёт и могу с ней делать что угодно, в частности применять к ней агрегатные функции. А это не так. И описание того, что же сделать, чтобы агрегатные функции работали я не нашёл. Укажите ссылку на документ, прочитав который у меня сразу заработает отчёт с агрегатными функциями. Буду признателен за указание. Сам не нашёл.

  8. #18

    По умолчанию

    Цитата Сообщение от ks21 Посмотреть сообщение
    В том, что агрегатные функции работают только с типами без Nullable. А при переносе переменной из проекта создаётся тип с Nullable. И изменить его нельзя. По Вашей документации - я переношу переменную в отчёт и могу с ней делать что угодно, в частности применять к ней агрегатные функции. А это не так. И описание того, что же сделать, чтобы агрегатные функции работали я не нашёл. Укажите ссылку на документ, прочитав который у меня сразу заработает отчёт с агрегатными функциями. Буду признателен за указание. Сам не нашёл.
    Приложите тестовый пример (с одной переменной) с нужной вам агрегатной функцией, который не формируется изначально.
    Спасибо.

  9. #19

    По умолчанию

    Пример приложил
    Вложения Вложения
    • Тип файла: zip test.zip (147.5 Кб, Просмотров: 1)

  10. #20

    По умолчанию

    Если использовать источник "Данные на основе других данных", то да - в нем, у конкретной переменной нужно выставлять тип без Nullable.
    А какая в конечном счете задача? Именно в этом случае чтобы найти последнее значение можно использовать у источника способ формирования "Итоговый" а у переменной - "Последнее значение".
    Спасибо.

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Похожие темы

  1. ТХ01 и функции счета
    от Maksim S.P. в разделе Эксплуатация
    Ответов: 12
    Последнее сообщение: 16.08.2012, 23:35
  2. Функции.
    от Jonikk в разделе Программируемые реле
    Ответов: 11
    Последнее сообщение: 13.09.2011, 18:57
  3. Функции
    от mettled в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 13.02.2008, 10:16

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •