Главное меню

Карта сайта
Главная
Курсовые работы
Отчеты по практикам
Лабораторные работы
Методические пособия
Рефераты
Дипломы
Лекции



ИС учета и поверки контрольно-измерительного оборудования

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

Данная информационная система предназначена для ведения учета контрольно-измерительного оборудования. Должен обеспечиваться одновременный доступ нескольких пользователей. ИС метролог хранит информацию о каждом приборе, сведенья обо всех поверках и ремонтных работах. Поэтому разрабатываемая система со временем будет разрастаться, становиться более сложной. В связи с этим было принято решение преобразования базы данных Microsoft Access в формат Microsoft SQL Server с целью оптимизации производительности, масштабируемости, безопасности, надежности, способности к восстановлению и доступности базы данных и приложения.

Во многих случаях Microsoft SQL Server обеспечивает более высокую производительность, чем база данных Microsoft Access. Microsoft SQL Server снижает загруженность сети, выполняя обработку запросов базы данных на сервере перед отправкой результатов на клиентский компьютер. В приложении также предусматривается использование сохраненных процедур и триггеров для централизации и распределения логики приложения, для проверки условий на значение и целостность данных на сервере, а не на клиентском компьютере.

База данных из Microsoft Access была преобразована в формат Microsoft SQL Server с помощью мастера.

После переноса базы данных в SQL Server Мастер преобразования в формат SQL Server присоединяил к приложению все созданные на сервере таблицы, старые таблицы делаел локальными и создал документ — отчет о переносе базы данных, в котором описаны результаты работы мастера и все возникшие проблемы, если они были (см стр. 35).

Рис.13. Окно Мастер преобразования в формат SQL Server

Рис. 14. Окно Мастер преобразования в формат SQL Server. Экспорт таблиц

Рис.15. Схема данных.

Следующим шагом реализации базы данных явилось создание представлений, хранимых процедур, триггеров, функций, отчетов и программных модулей, требуемых в техническом задании на курсовое проектирование. При создании использовался язык SQL. Этот язык является декларативным: с его помощью можно указать результат, который требуется получить в результате запроса, написанного на SQL, но не указывается процедура достижения этого результата. SQL является общепризнанным стандартом и поддерживается большинством систем управления реляционных баз данных.

Задача запрет удаления данных о приборах находящихся в эксплуатации

Для решения данной задачи был создан триггер

SQL код:

CREATE TRIGGER Zapret_Ydaleniya

ON Приборы

FOR delete

AS

IF

(SELECT count(*) from deleted, Приборы WHERE Приборы.Состояние=deleted.Состояние) = «эксплуатация»

BEGIN

rollback transaction

raiserror 50001 'Прибор находится на эксплуатации'

END

Задача запрет введения отрицательного числа в поле оклад таблицу «Кадры».

Для решения данной задачи также был создан триггер:

CREATE TRIGGER Proverka

ON Кадры

AFTER update

AS

BEGIN

SET NOCOUNT ON;

IF (SELECT Оклад FROM INSERTED)<0

PRINT'НЕЛЬЗЯ ВСТАВЛЯТЬ ЗАПИСЬ С ОТРИЦАТЕЛЬНЫМ ОКЛАДОМ'

ROLLBACK

END

Задача списание прибора, срок службы которых превышает 30 лет.

Каждый прибор имеет определенный срок службы. По его истеченью прибор должен быть списан. Данная процедура позволяет автоматически присвоить записи Состояние прибора таблица «Приборы» значение списан.

Код сохраненной процедуры:

CREATE PROCEDURE "Списание прибора"

as

update Поверка SET

If SELECT (YEAR(dbo.Поверка.[Дата установки]))>30

Then [Состояние]= "Списан "

End

Задача автоматического обновления данных в поле «Дата следующей поверки»

Цель: При вводе новых данных в форме «Поверка» назначить процедуру, которая позволяет:

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

Данная функция уже создавалась ранее, однако в формате SQL Server реализация задачи выполняется гораздо проще.

Для осуществления этой задачи была создана кнопка, при нажатии на которую выполняется хранимая процедура:

CREATE PROCEDURE "Назначение даты поверки"

AS

update Поверка SET

SELECT [Дата следующей поверки]=DateAdd ("yyyy", 1, [Дата последней поверки ])

WHERE [Годен_негоден]=1

END

Запрос по данным о поверках по типам приборов

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

СREATE PROCEDURE Zapros

@tip text

AS

SELECT dbo.Поверка.[Заводской номер], dbo.Приборы.Наименование, dbo.Приборы.[Тип прибора], dbo.Приборы.[Место установки], dbo.Поверка .[Методика поверки], dbo.Поверка.[Дата последней поверки] as [Дата поверки] , dbo.Поверка.[Код поверяющего]

FROM dbo.Приборы INNER JOIN

dbo.Поверка ON dbo.Приборы.[Заводской номер] =

dbo.Поверка.[Заводской номер]

WHERE dbo.Приборы.[Тип прибора]= @tip

END

Задача создания долгосрочного плана поверки с возможностью его распечатки

Цель: вывести перечень приборов необходимых поверить в следующем году. Построить график плана поверки. Возможность распечатки.

Очень важно заранее распределять будущею работу. Разработка плана позволит снизить денежные и временные издержки.

Для решения данной задачи был сформировано представление на выборку. В качестве источника использовались таблицы «Поверка» и «Приборы». Выборка производилась по полю «Дата последующей поверки ».

SQL код:

SELECT dbo.Поверка.[Дата последующей поверки] AS [Дата планируемой поверки], dbo.Поверка.[Заводской номер], dbo.Приборы.Наименование, dbo.Приборы.[Тип прибора], dbo.Приборы.[Место установки], dbo.Поверка .[Методика поверки]

FROM dbo.Приборы INNER JOIN

dbo.Поверка ON dbo.Приборы.[Заводской номер] =

dbo.Поверка.[Заводской номер]

WHERE (YEAR(dbo.Поверка.[Дата последующей поверки]) = 2010)

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

Задача вывода списка приборов прошедших поверку за определенный период.

Цель: пользователь вводит интересующий его период времени и получает список приборов прошедших проверку за это время.

Для решения данной задачи был создан запрос на выборку. В качестве источника – таблица «Поверка», поля: номер протокола, Заводской номер, дата последней поверки, Годен_Негоден. Затем с помощью мастера отчетов был создан отчет.

SQL код:

SELECT TOP 100 PERCENT [Номер протокола], [Заводской номер], [Дата последней поверки]

FROM dbo.Поверка

WHERE ([Дата последней поверки] BETWEEN @период_от_ AND @до) AND (Годен_Негоден = 1)

ORDER BY [Дата последней поверки]

Рис.17. Запрос «Приборы прошедшие поверку за определенный период»

Запрос «Приборы находящиеся на ремонте»

SELECT dbo.[Ремонтные работы].[Номер наряда], dbo.[Ремонтные работы].

[Заводской номер], dbo.[Ремонтные работы].[Дата приема], dbo.[Ремонтные работы].[Дата окончания], dbo.Приборы.Наименование, dbo.Приборы.[Место установки]

FROM dbo.[Ремонтные работы] INNER JOIN dbo.Приборы

ON dbo.[Ремонтные работы].[Заводской номер] = dbo.Приборы.[Заводской номер]

WHERE (dbo.[Ремонтные работы].[Дата окончания] > GETDATE())

Запрос «Длительность ремонта»

Данный запрос позволяет подсчитать время нахождения прибора в днях. Значения подсчета выводятся в столбце «Время ремонта».

SQL код:

SELECT [Номер наряда], [Заводской номер], [Дата приема], [Дата окончания],

DATEDIFF (y, [Дата приема], [Дата окончания]) AS [Время ремонта в днях]

FROM dbo.[Ремонтные работы])

Рис.18. Представление «Длительность ремонтных работ»

Задача ежемесячный отчет

Отчет создавался на основе представления. Итоговые данные выводятся в форму «Ежемесячный отчет». Предусмотрена кнопка «Подробнее», где выводятся данные о поверенных приборах в текущем месяце.

SQL код:

SELECT COUNT(dbo.[Ремонтные работы].[Номер наряда]) AS Количество, COUNT(dbo.Поверка.[Номер протокола]) AS [Количество поверенных приборов]

FROM dbo.[Ремонтные работы] CROSS JOIN dbo.Поверка

WHERE (MONTH(dbo.[Ремонтные работы].[Дата окончания]) = MONTH(GETDATE())) AND (YEAR(dbo.[Ремонтные работы].[Дата окончания]) = YEAR(GETDATE())) OR (YEAR(dbo.Поверка.[Дата последней поверки]) = YEAR(GETDATE())) AND (MONTH(dbo.Поверка.[Дата последней поверки]) = MONTH(GETDATE()))

Рис. 19. Форма «Ежемесячный отчет»