<< Click to Display Table of Contents >> Navigation: Проект > Документы объектов > Генератор отчетов > Источники данных и переменные > Источники данных > Прочие источники |
Основным источником данных является источник "Архив MasterSCADA". Однако редактор отчетов также позволяет работать и с другими различными источниками данных - различными СУБД, OLE DB, ODBC, текстовые файлы различных форматов (csv, XML, JSON). Указанные источники данных предназначены для решения специальных задач и применяются редко.
В некоторых случаях данные необходимо получить другими путями – через файлы таблиц csv или, например, напрямую из базы данных – используя SQL запрос.
Создадим пример, в котором, используя редактор отчетов, мы получать данные из SQL-сервера за определенный промежуток времени. Отчет должен содержать таблицу следующего вида: "ID" (уникальный номер записи), "Время", "Величина значения". Все данные мы будет получать из SQL-сервера, переменные "Начало" и "Конец", для задания диапазона выборки значения, мы будем получать из дерева объектов MasterSCADA.Для таких отчетов необходимо использовать источник данных "Данные из SQL соединения". В качестве SQL сервера будем использовать Microsoft SQL Server 2008. Сначала создадим базу данных и наполним ее данными.
Используя администратор баз Microsoft SQL Server Management Studio, создадим новую базу данных.
Назовем ее "report_database".
Добавим новую таблицу. Назовем ее "my_table". Сделаем три поля: уникальный номер поля – "ID" (тип bigint, поле не может быть null), значение переменное – "Value" (тип int), и время переменной – "Time" (тип datetime).
Наполним таблицу данными:
Создание базы завершено – закроем администратор баз.
Запустим MasterSCADA и создадим проект. В проект добавим объект, в объект добавим две переменные типа время – "начало" и "конец". На закладке Опрос зададим переменным параметр Значение до опроса - в этом случае мы сможем просмотреть отчет в режиме предварительного просмотра (не запуская систему в режим исполнения). Этими переменными мы будем ограничивать диапазон времени выборки переменных из базы данных.
На закладке объекта Отчеты добавим отчет. Перетащим в словарь отчета переменные "начало" и "конец" из дерева объектов. Переменные появятся в словаре.
Теперь получим данные из базы данных.
Для этого сначала нужно установить соединение с базой данных. Вызовем контекстное меню словаря и выберем пункт: Новое соединение.
В появившемся окне выберем – SQL соединение.
В появившемся окне введем имя соединения – "SQL_connection".
В поле Строка соединения нужно ввести параметры соединения – имя базы данных, имя пользователя, пароль. Можно это сделать вручную, но лучше воспользоваться автоматическим построением. Для этого нажмем на кнопку: Построить.
В появившемся окне введем имя соединения с базой данных, и выберем нужную нам базу данных и нажмем ОК.
Строка соединения пропишется в поле
Проверим соединение – нажмем на кнопку Проверка.
Соединение успешно установлено. Нажмем на ОК сообщения, и на ОК окна.
Соединения появилось в словаре:
Теперь добавим источник данных. Вызовем контекстное меню и выберем пункт Данные из SQL соединения.
Появится окно настройки. В верхнем поле Наименование в источнике вводится имя SQL соединения, из которого необходимо получить данные. У нас соединение одно, поэтому оно прописалось в строку автоматически.
Введем имя данных – "Данные".
Теперь необходимо настроить получение и выборку данных. Для этого в поле Текст запроса введем следующий SQL запрос:
Select*Frommy_table
Этот запрос выберет из базы все колонки. Нажмем на кнопку с восклицательным знаком (выполнить запрос).
Нажмем на ОК сообщения, а затем нажмем на кнопку: Получить все колонки. Колонки добавятся в окно.
Нам необходимо ограничить выборку при помощи двух параметров времени – "начало" и "конец". Добавим эти параметры.
Для этого щелкнем правой кнопкой мыши по объекту "Параметры" и выберем пункт Новый параметр.
Зададим имя параметру – "Начало" и тип – datetime .
Аналогично создадим параметр "Конец".
Теперь нам необходимо построить запрос выборки при помощи этих двух параметров. Для того чтобы использовать в запросе параметр, перед его именем нужно поставить символ @.
Подправим наш запрос:
Select*From my_table where Time>@Начало and Time<@Конец
Этот запрос будет выбирать только те значения, время которых больше параметра "Начало", и меньше параметра "Конец".
Можно удостоверится в правильности составления запроса и снова нажать на кнопку: Выполнить запрос.
После этого нажмем ОК.
В словарь добавился новый источник, с тремя колонками и двумя параметрами
Теперь присвоим параметрам значения переменных.
Для этого выберем параметр "Начало" и перейдем на закладку Свойства. Щелкнем мышью в поле Выражение и нажмем на кнопку с тремя точками.
В появившемся окне введем имя переменной "Начало" (можно перетянуть ее из объекта Переменные), и нажмем ОК.
Проделаем аналогичные действия c параметром "Конец".
Теперь перетащим источник на рабочее поле страницы – создастся бэнд"Данные", в окне настроек укажем нужные переменные и их порядок отображения. Нажмем: ОК.
Отформатируем поля – зададим выравнивание по центру, более крупный шрифт и сделаем у полей границу.
Теперь запустим предварительный просмотр и посмотрим на результат.
Данные выбраны из базы данных и отфильтрованы.