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

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

Автор Тема: Вопрос по отчету  (Прочитано 5992 раз)

niyaz

  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Вопрос по отчету
« : 29 Декабря 2019, 18:11:50 »
Здравствуйте, извините за нелепые вопросы.
Есть переменная name, которое связано с полем Field, текст в котором может меняться, в зависимости от выбранного пользователем компонента. При добавлении данной переменной в отчет, ничего не отображается. В чем может заключатся проблема ? Поле не пустое.
Есть ли возможность данные из таблицы в Scade вывести в отчет или в exel ? Также можно ли в отчете вывести результат запроса с объединением таблиц с помощью INNER JOIN ?
« Изменён: 29 Декабря 2019, 18:13:43 от niyaz »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3211
    • Просмотр профиля
    • Simple-Scada
Re: Вопрос по отчету
« Ответ #1 : 05 Января 2020, 16:24:32 »
Здравствуйте.

Вы уверены что правильно добавили переменную в отчет? Нужно добавлять как описано в этой статье. Если Вы всё сделали так, но значение не выводится, то вышлите нам на support@simple-scada.com текущую версию проекта для проверки.

Цитировать
Есть ли возможность данные из таблицы в Scade вывести в отчет или в exel ? Также можно ли в отчете вывести результат запроса с объединением таблиц с помощью INNER JOIN ?
Напрямую из компонента Таблица вывести данные в отчет нельзя. Но можно вывести любые данные из БД (в том числе с INNER JOIN) в отчет. Для этого в отчете можно создать пользовательский источник данных, написать нужный Вам запрос на выборку и вывести этот источник данных на страницу отчета. Подробное описание есть в этой статье.

niyaz

  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Re: Вопрос по отчету
« Ответ #2 : 07 Января 2020, 18:43:25 »
Спасибо, разобрался с переменными.
Но не понятно, как вывести результат запроса с INNER JOIN. У меня есть 3 таблицы и из каждой из них необходимо вывести определенные столбцы. Получается в каждой таблице нужно написать запрос с INNER JOIN ? Еще не могу в отчете поменять размеры столбцов, строк и ячеек, как это сделать ?
« Изменён: 07 Января 2020, 18:44:32 от niyaz »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3211
    • Просмотр профиля
    • Simple-Scada
Re: Вопрос по отчету
« Ответ #3 : 08 Января 2020, 10:57:42 »
Цитировать
Но не понятно, как вывести результат запроса с INNER JOIN. У меня есть 3 таблицы и из каждой из них необходимо вывести определенные столбцы. Получается в каждой таблице нужно написать запрос с INNER JOIN ?
Если эти три таблицы находятся в БД, то Вы можете выполнять к ним любые SQL-запросы, разрешенные СУБД. Если Вы создали пользовательский источник данных как в этой статье, то Вы можете написать для этого источника данных любой SQL-запрос любой сложности (с INNER JOIN или без него, не важно). При построении отчета этот SQL-запрос будет отправлен к БД и выполнен, а результат SQL-запроса будет отображен в источнике данных отчета. При желании Вы можете сначала написать нужный запрос и протестировать его правильность через MySQL Workbench. Когда Вы убедитесь что запрос выполняется как нужно, можно скопировать этот запрос и назначить его источнику данных в отчете.

Цитировать
Еще не могу в отчете поменять размеры столбцов, строк и ячеек, как это сделать ?
Просто выделите элемент и растяните его по ширине или высоте (пример на скрине во вложении)

asutpvit

  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
Re: Вопрос по отчету
« Ответ #4 : 14 Января 2020, 12:02:54 »
День добрый, просьба не пинаться :D спрошу здесь:
с отчетами начинаю только разбираться, ответа в справочнике не нашел.
Имеется колонка с нарастающими данными, необходимо получить в итоговой ячейке разницу между последней ячейкой колонки и первой.
Затык именно на функции вычитания, как реализовать???

Пробовал создавать отдельные колонки данных в которых писались значения last и first, но как дальше организовать разницу между ними....
Прошу подсказки

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3211
    • Просмотр профиля
    • Simple-Scada
Re: Вопрос по отчету
« Ответ #5 : 15 Января 2020, 12:04:25 »
Здравствуйте.

Вставьте такое выражение в ячейку итога:
Код: (c#)
{(double)Last(DataДанные, Данные.Value) - (double)First(DataДанные, Данные.Value)}
, где "DataДанные" - имя бэнда данных. "Данные" - имя источника данных. "Value" - имя колонки в источнике данных по которой мы считаем разницу.

asutpvit

  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
Re: Вопрос по отчету
« Ответ #6 : 15 Января 2020, 12:18:35 »
 ;) Спасибо
« Изменён: 14 Апреля 2022, 22:04:08 от Simple-Scada »

teplocom

  • Новичок
  • *
  • Сообщений: 47
  • с чувством уверенности в завтрашнем дне
    • Просмотр профиля
Re: Вопрос по отчету
« Ответ #7 : 14 Апреля 2022, 21:36:29 »
Здравствуйте.

Вставьте такое выражение в ячейку итога:
Код: (c#)
{(double)Last(DataДанные, Данные.Value) - (double)First(DataДанные, Данные.Value)}
, где "DataДанные" - имя бэнда данных. "Данные" - имя источника данных. "Value" - имя колонки в источнике данных по которой мы считаем разницу.
Наконец-то!
А добавьте сию полезную информацию в руководство по отчетам, задача-то часто попадающаяся - подвести итоги по счетчику с нарастающими данными.
2 дня экспериментов на рабочем проекте, уж начал в поддержку писать, а потом, думаю, проштудирую в лишний раз форум, не может быть, что я буду первым, кто такую задачу решал, поиск по форуму на 48 месте выдал то, что нужно. :D
Оказывается (double) мне не хватало  :-\

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1393
    • Просмотр профиля
Re: Вопрос по отчету
« Ответ #8 : 15 Апреля 2022, 13:34:58 »
Здравствуйте.

Добавим этот и другие подобные примеры в руководство по отчетам.