Разработка WEB - интерфейса для анализа базы метеореологических данных

Автор работы: Пользователь скрыл имя, 03 Апреля 2013 в 16:48, дипломная работа

Описание

С целью анализа базы метеорологических данных, а также контроля данных в реальном времени и был разработан web-интерфейс “Анализ базы метеоданных ”. В программе возможен просмотр метеорологических данных в реальном времени, в виде таблицы статистики с возможностью выбора любого параметра; с полями, в виде отчёта созданного с помощью приложения Crystal Report; так же в виде графика, отражающего зависимость значения метеорологического параметра от времени. Есть так же возможность администрирования базы данных, с целью упорядочить вывод необходимых данных.

Содержание

ВВЕДЕНИЕ 5
1. ПОСТАНОВКА ЗАДАЧ ДИПЛОМНОЙ РАБОТЫ 6
1.1 СТРУКТУРА ВЫВОДА ДАННЫХ 6
1.2 ОСНОВНЫЕ ЗАДАЧИ ПРОГРАММЫ “АНАЛИЗ БАЗЫ МЕТЕОРОЛОГИЧЕСКИХ ДАННЫХ ”. 7
2. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ 8
3. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ 9
3.1 ПРИЧИНЫ ВЫБОРА ПО ДЛЯ РАЗРАБОТКИ WEB-ИНТЕРФЕЙСА. 9
3.2 ЯЗЫК БАЗ ДАННЫХ - ЯЗЫК SQL. 13
3.3 БАЗА ДАННЫХ НА SQL СЕРВЕРЕ. 16
4.ПРОЕКТИРОВАНИЕ WEB ИНТЕРФЕЙСА 22
4.1 НАЗНАЧЕНИЕ ПАКЕТА BPWIN 22
4.2 ПРОЕКТИРОВАНИЕ В VISUAL STUDIO 2003. 22
4.3 ПАКЕТ ГЕНЕРАТОРА ОТЧЕТОВ CRYSTAL REPORT 34
5. РАБОТА С WEB-ИНТЕРФЕЙСОМ. 43
6. ЗАЩИТА ИНФОРМАЦИИ НА WEB-СТРАНИЦЕ. 48
7. ОСОБЕННОСТИ УСТАНОВКИ ПРОЕКТА НА WEB-СЕРВЕР 49
ЗАКЛЮЧЕНИЕ 50
ЛИТЕРАТУРА 51

Работа состоит из  1 файл

Дипломный проект.doc

— 940.50 Кб (Скачать документ)

Подключение к  базе данных с постраничным выводом  запроса

Для создания нового файла  отчета необходимо выбрать в Solution Explorer щелкнуть правой клавишей мыши на узле проекта и выбрать следующий пункт меню – Add -> Add New Item и ввести в качестве имени файла Report.rpt.

После добавления файла  отчета откройте его в среде. На следующем  шаге необходимо добавить подключение  к базе данных, откуда отчет будет  брать данные.

В качестве источника  данных будем использовать Microsoft OLE DB Provider for SQL Server. Щелкните правой клавишей мыши на поле отчета и выберите Database -> Add\Remove Database -> OLDE DB (ADO). При раскрытии этого узла появиться мастер для подключения базы данных SQL сервера. Заполните все необходимые поля, и убедитесь, что в блоке Available Data Sources стало доступно подключение к базе проекта METEOR вашего сервера.

Рисунок 18 – Подключение к базе данных

В качестве источников данных перенесём в блок Selected Tables таблицу agentmeteo.

Теперь к нашему отчету подключена таблица agentmeteo базы проекта METEOR.

Рисунок 19– Вид источника данных Database Expert

Теперь добавим поля таблицы agentmeteo к нашему отчету.

Для этого щелкнем  правой клавишей мыши на поле отчета и  выберем Report -> Report Expert. Далее следуем указаниям мастера:

Закладка Data – в блоке Tables in report оставим agentmeteo

Закладка Fields - в поле Fields to Display добавим поля

Рисунок 20 – Выбор полей источника данных

Закладка Group – в блок Group By добавим agentmeteo.Col003

Закладка Style – укажем стиль Drop Table.

Теперь наш отчет  готов к выполнению.

Далее создадим страницу для отображения отчета. Для этого

добавим в проект новую aspx страницу crystalreport.aspx

на форму из панели инструментов Web forms добавим компоненту CrystalReportViewer.

Для этого элемента выполним следующие настройки:

свойство ID=crPaging

свойство DysplayGroupTree = False

свойство EnableDrillDown= False.

Для вызова созданного нами отчета необходимо в метод Page_Init нашей  страницы добавить инициализацию компоненты crPaging. Так как наш отчет ображается к базе MS SQL Server, требующий авторизации подключений, то так же необходимо обеспечить авторизацию на SQL Server’е.

Для этого после вызова метода InitializeComponent() введем следующий код:

try

ci.ServerName = ConfigurationSettings.AppSettings["server"];

ci.DatabaseName = ConfigurationSettings.AppSettings["database"];

ci.UserID = ConfigurationSettings.AppSettings["user"];

ci.Password = ConfigurationSettings.AppSettings["password"];

log.ConnectionInfo = ci;

rDoc.Load(Server.MapPath("CrystalReport.rpt"));

crPaging.ReportSource = rDoc;  

В этом коде мы создаем  объекты типа TableLogOnInfo и ConnectionInfo, инициализируем их параметрами подключения к  базе данных, которые мы описали в файле web.config.

После этого загружаем  в объект типа ReportDocument наш отчет, и присваиваем его в качестве источника данных для объекта CrystalReportViewer.

Так как у нас в  документе отчета только одна таблица, то для нее мы присваиваем параметры подключения, сохраненные нами в объектах типа TableLogOnInfo и ConnectionInfo. Примерный вид отчета приведен ниже.

Рисунок 21 – Вид отчёта в броузере

 

Отчет на основе SQL запроса

Источником данных для  создания отчета может послужить  и обыкновенный SQL запрос.

Для начала нужно создать  в проекте новый файл отчета report.rpt и подключить SQL сервер к отчету через  команду Database -> Add\Remove Database.

В качестве источника  данных OLE DB (ADO) необходимо указать наш SQL сервер, подключить базу METEOR. Сам же запрос необходимо вводить через команду Add command в блоке Available Data Sources

Щелкните мышью на узле Add Command и введите следующий SQL запрос   

 select CompanyName,ContactName,Address from dbo.Customers order by CompanyName

Далее убедитесь, что все поля, перечисленные в операторе select, доступны в разделе DataBase Fields панели инструментов Field Explorer.

Далее воспользуйтесь мастером-генератором  отчетов и создайте простой табличный  отчет из введенного запроса.

 

Создание отчета на основе хранимой процедуры

Источником данных для отчета может  послужить и хранимая процедура. Для этого необходимо настроить  подключение отчета к базе данных таким образом, чтобы отчет мог  работать с хранимыми процедурами.

Для этого создадим файл отчета report.rpt, и включим возможность отображения хранимых процедур при подключении, щелкнув правой клавишей мыши на поле отчета и выбрав Desiner -> Default Settings -> Database. На этом окне выберем селектор Stored Procedure

Рисунок 22 – Создание отчёта на основе хранимой процедуры

Теперь наш отчет  может работать с хранимыми процедурами  нашего SQL сервера.

Добавим к отчету базу METEOR нашего SQL сервера и в качестве источника данных укажем хранимую процедуру “CrReport3”. Убедимся, что все поля, возвращаемые оператором select хранимой процедуры, присутствуют в Fields Explorer нашего отчета. Создадим простой текстовый отчет, воспользовавшись мастером отчетов Report Expert.

Теперь добавим к проекту  CrystalReport.aspx, в котором будем отображать результаты выборки из хранимой процедуры. Добавим в код инициализации отчетов метод Page_Init, аналогичный предыдущему. Единственное отличие будет заключаться в имени файла загружаемого отчета

rDoc.Load(Server.MapPath("report.rpt"))

 

Параметризированный отчет с полями-параметрами

До этого мы занимались полями таблиц или запросов, добавленных в отчет, причем было невозможно задать какой-нибудь параметр для динамического изменения параметра запроса.

Для того, чтобы можно  было динамически управлять условиями  выборки записей в запросе  отчета, в Crystal Report существуют несколько  способов.

В данном примере мы будем  использовать поля параметры отчета из панели Fields Explorer.

Рисунок 23– Вид панели Fields Explorer

Мы будем использовать хранимую процедуру “ CrReport3” базы METEOR. Данная процедура выбирает данные температур в заданном временном интервале.

 

CREATE procedure CrReport3

@BeginDate varchar(20),

@EndDate varchar(20)

as

SELECT

Col002,Col003,Col028,Col034,Col037,Col040,Col043,Col046,Col049,Col052,Col055

FROM agentmeteo

WHERE

(convert(datetime, Col003, 4)

BETWEEN

convert(datetime, @BeginDate, 104)

AND

convert(datetime, @EndDate, 104))

ORDER by ident desc

GO

 

Добавим в проект файл отчета report.rpt, добавим в качестве источника данных хранимую процедуру базы “ CrReport3 ” базы METEOR. Ей необходимо передать в качестве параметров начало и конец временного интервала. Для этого в панели Fields Explorer в разделе Parameter Fields добавим два поля – BeginingDate и EndingDate типа DateTime.

Для того, чтобы хранимая процедура могла ими пользоваться, необходимо проинициализировать эти  параметры соответствующими значениями. Для этого добавим в проект страницу CrystalReport.aspx. Разместим на ней два объекта Calendar, один – Button, один CrystalReportViewer. При их помощи мы будем устанавливать дату в параметрах отчета и генерировать отчет, соответствующий заданному интервалу.

В качестве отклика на нажатие кнопки введём следующий код

ParameterField paramFromDate = new ParameterField();

ParameterField paramToDate = new ParameterField();

ParameterDiscreteValue dvStartDate = new ParameterDiscreteValue();

ParameterDiscreteValue dvFinishDate = new ParameterDiscreteValue();

paramFromDate = crPaging.ParameterFieldInfo["@BeginDate"];

dvStartDate.Value= date1;

paramFromDate.CurrentValues.Add(dvStartDate);

paramToDate = crPaging.ParameterFieldInfo["@EndDate"];

dvFinishDate.Value= date2;

paramToDate.CurrentValues.Add(dvFinishDate);

 

Tables tables = rDoc.Database.Tables;

foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables )

{

log = table.LogOnInfo;

log.ConnectionInfo = ci;

table.ApplyLogOnInfo(log);

}

В данном примере инициализируются параметры @Ending_Date и @Beginning_Date отчета, после  чего отчет загружается для выполнения.

 

Диаграммы в Crystal Report .NET

В данном примере рассмотрим возможность применения диаграмм в Crystal Report.

Мы построим диаграмму, отображающую зависимость выбранных данных от времени.

Для начала добавим в  проект файл отчета report.rpt и укажем в качестве источника данных в Database Expert таблицy agentmeteo базы METEOR нашего сервера.

Теперь запустим Report Expert и в качестве полей отчета укажем поля Сol028,Col034,Col043

На закладке Group в качестве полей для группировки укажем agentmeteo.Col003. На закладке Style любой стиль отображения данных отчета.

Теперь добавим в  отчет диаграмму. Для этого щелкнем  правой клавишей мыши в поле Report Header отчета. Выберем команду Insert ->Chart и установим тип диаграммы – линия.

В диалоге Chart Expert на закладке Data в блоке On change of выберем agentmeteo.Col003, в блоке Show выберем Percentage of Chart.

Таким образом мы создали  диаграмму, отображающую зависимость данных температуры от времени.

Рисунок 24– Вид панели создания диаграмм Chart Expert

Далее добавим страницу для отображения отчета CrystalReport.asxp. Добавим объект crDialgram типа CrystalReportViewer, установим его свойство SeparatePages в false.

Код для загрузки отчета ничем не отличается от предыдущих примеров, разве что в качестве файла отчета необходимо указать report.rpt в методе Page_Init.

rDoc.Load(Server.MapPath("reports\report.rpt"))

Наша диаграмма будет  следующего вида

 

 

Рисунок 25 –  Вид диаграммы в web-  броузере

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5. Работа с Web-интерфейсом.

 

Открыв web-броузер и набрав в адресной строке адрес Web-интерфейса пользователь попадает на первую страницу программы. Используя указатели RU и LT можно переключиться на другой язык страницы – русский или литовский.

Здесь есть возможность просмотреть  метеорологические данные в реальном времени( частота обновления  данных – раз в 2 минуты ) .

Рисунок 26 –  Первая страница программы

На странице в реальном времени выводятся следующие метеорологические данные :

•  Температура воздуха на высоте 2 м

•  Температура воздуха на высоте 35 м

•  Температура озера 

•  Направление ветра  

•  Скорость ветра 

•  Иннертные радиоактивные  газы

•  Короткоживущие радионуклиды

•  Содержание йода

•  Долгоживущие радионуклиды

 

Вывод данных осуществляется с помощью  скриптов языка Visual Basic . Ниже следует код скрипта Visual Basic .

<%@ Language=VBScript %>

<DIV class="znakfont" align="center"><%=Application("Temp35m")%>&nbsp;</DIV> 

Нажав на кнопку “Посмотреть статистику”  пользователь попадает на страницу анализа  метеорологических данных. Здесь, используя  календарь и выбрав дату, можно  увидеть метеорологические данные за определённый промежуток времени, а  также посмотреть на графике зависимость изменений метеорологических данных от времени

Рисунок 27 –  Вывод метеоданных за период времени

Можно также посмотреть отклонение параметра от нормы

Рисунок 27 –  Вывод отклонения от нормы за период времени

Следующая кнопка “Посмотреть отчёт” – кликнув по ней можно выбрать анализ всех метеорологических данных и  проанализировать данные в отчёте представленном с помощью приложения Crystal Report.

Рисунок 28 –  Вывод отчёта за период времени

 Для редактирования базы  метеорологических  данных нужно нажать на кнопку “Редактирование БД“. Набрав логин и пароль пользователь попадёт в программу администрирования базы данных. 

Рисунок 29 –  Вход на страницу редактирования базы данных

открытие этого окна при входе на форум прописывается в файле Web.config в разделе аутентификация строка: loginUrl="login.aspx". все данные, пересылаемые с этого окна на сервер и обратно, шифруются и проверяются на наличие ошибки, это так же прописывается в файле Web.config  (приложение В) в разделе аутентификация строка: protection="All".

при ошибке ввода имени или пароля появляется извещение об ошибке и приглашение попробовать еще раз.(рисунок 23)

Рисунок 30 - извещение об ошибке

Проверка  логина и пароля производится запросом на SQL сервер. Соединение с SQL сервером происходит после щелчка по кнопке “Ввод”. Команда на соединение описана в файле командного кода login.aspx.cs (приложение Г) для страницы login.aspx.

после правильного ввода логина и пароля открывается основная страница редактирования (рисунок 31). Открытие этого окна прописано в файле default.aspx.cs (приложение Д)

Рисунок 31 –  Редактирование текущих данных

На странице Редактировние базы метеоданных расположено несколько указательных элементов. Выбрав в зависимости от назначения редактируемых данных RUS или LIT  открывается выпадающий список редактируемых метеорологических параметров. Если нажать на кнопку ОК можно редактироветь выбранный метеорологический параметр( есть возможность изменить,удалить и выйти из редактирования параметра нажав на кнопку отмена ).

Нажав на кнопку Добавить новый ресурс можно добавить в имеющийся список метерологических параметров новый параметр.

Рисунок 32 –  Добавление нового параметра

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. Защита информации  на web-странице.

 

При работе с базами данных как в Internet, так и в Intranet существенным вопросом является защита информации от несанкционированного доступа. Работая с Internet Information Server,  можно обеспечить своему Web-приложению такой же уровень защищенности, как и обычному клиент-серверному приложению. Права на доступ к Web-страницам регулируются как права на доступ к файлам Windows NT. Если доступ к определенной странице запрещен для "анонимного пользователя", то при обращении к этой странице пользователю придется пройти т.н. аутентификацию, т.е. ввести имя и пароль. При аутентификации по т.н. механизму "Windows NT Challenge/Response" (что возможно при использовании Internet Explorer) пароль будет передаваться по сети в зашифрованном виде. После аутентификации пользователь получает доступ к Web-страницам в соответствии с правами введенного имени на Windows NT Server. При обращении к SQL Server пользователя, прошедшего аутентификацию, SQL Server "знает", кто к нему обратился и открывает только информацию, к которой данному пользователю разрешен доступ. Есть, правда, определенное ограничение: при использовании вышеописанного механизма аутентификации Internet Information Server и SQL Server должны работать на одном компьютере.

Информация о работе Разработка WEB - интерфейса для анализа базы метеореологических данных