Приложение с базой данных для учета договоров с поставщиками и клиентами

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



едставление результатов 3й выборки

Рисунок 5.3 - представление результатов 4й выборки

Рисунок 5.4 - представление результатов 5й выборки

Рисунок 5.5 - представление результатов 6й выборки

Рисунок 5.6 - представление результатов 7й выборки

Рисунок 5.7 - представление результатов 8й выборки

Рисунок 5.8 - представление результатов 9й выборки

6 Проектирование хранимых процедур

В данном проекте были созданы две хранимые процедуры:

. Для определения состояния договора:

CREATE PROCEDURE [dbo].[ОПРЕДЕЛЕНИЕ_СОСТОЯНИЯ_ДОГОВОРА]

@ID bigintNOCOUNT ON;@CNT INT@CNT = ( SELECT Count(*) FROM Обязательство WHERE (Договор=@ID) )EXISTS(SELECT * FROM Договор WHERE (id=@ID AND ДатаЗаключения IS NULL) )'Не заключен'IF (SELECT Count(*) FROM Обязательство (Договор=@ID AND ДатаИсполнения <

(SELECT СрокДействия FROM Договор WHERE (id=@ID) ) ) ) = @CNT'Исполнен'IF (SELECT СрокДействия FROM Договор WHERE (id=@ID) ) > GETDATE()'Активен''Просрочен'

Рисунок 6.1 Результаты работы хранимой процедуры 1

2. Для расiета сумм текущих обязанностей (отдельно пассив и актив):

CREATE PROCEDURE [dbo].[РАСiЕТ_СУММЫ_ОБЯЗАТЕЛЬСТВ]NOCOUNT ON;SUM(Сумма) AS Пассивныеdbo.Обязательство(ДатаИсполнения IS NULL) AND (Сумма >= 0)SUM(Сумма) AS Активныеdbo.Обязательство AS Обязательство_1(ДатаИсполнения IS NULL) AND (Сумма < 0)

Рисунок 6.2 Результаты работы хранимой процедуры 2

7 Разработка механизмов управления данными в базе при помощи триггеров

.1 Триггер для добавления данных

1. Триггер для вставки и обновления данных в таблице Юридическое лицо, проверяющий допустимость ИНН

CREATE TRIGGER [dbo].[СCINSERTION_CHECK][dbo].[ЮридическоеЛицо]INSERT, UPDATENOCOUNT ON;@INN INT@INN = (SELECT [ИНН] FROM [inserted])(@INN999999999999) 'Инн должен быть 12 значным' ROLLBACK TRAN@@ERROR != 0 'Error occurred during related tables' ROLLBACK TRAN

Рисунок 7.1 Результаты работы триггера вставки таблице Юридическое лицо

2. Тригер, проверяющий правильность заполнения полей контрагентов

CREATE TRIGGER [dbo].[DINSERTION_CHECK][dbo].[Договор]INSERT, UPDATENOCOUNT ON;@C1 BIGINT@C2 BIGINT@C1 = (SELECT [КонтрагентЮрЛицо] FROM [inserted])@C2 = (SELECT [КонтрагентФизЛицо] FROM [inserted])(@C1 IS NULL AND @C2 IS NULL) 'Не выбран контрагент' ROLLBACK TRAN((NOT (@C1 IS NULL)) AND (NOT (@C2 IS NULL)))

PRINT 'Должен быть выбран только один контрагент' ROLLBACK TRAN

END@@ERROR != 0 'Error occurred during related tables' ROLLBACK TRAN

RETURN

Рисунок 7.2 Результаты работы триггера вставки таблице Договор

7.2 Триггер для удаления данных

Триггер для каскадного удаления данных из таблицы Обязательство при удалении записи из таблицы Договор

TRIGGER [dbo].[СCASCADE_DEL][dbo].[Договор]DELETENOCOUNT ON;ОбязательствоОбязательство a, deleted da.Договор = d.id@@ERROR != 0 'Error occurred during related tables' ROLLBACK TRAN

RETURN

END

Рисунок 7.3 Результаты работы триггера удаления таблице Договор

7.3 Триггер для обновления данных

Тригер запрещает изменение заключенных договоров

CREATE TRIGGER [dbo].[DUPDATE_CHECK][dbo].[Договор]UPDATENOCOUNT ON;NOT ( (SELECT [ДатаЗаключения] FROM [deleted]) IS NULL )

PRINT 'Нельзя изменить заключенный договор' ROLLBACK TRAN

END@@ERROR != 0 'Error occurred during related tables' ROLLBACK TRAN

Рисунок 7.4 Результаты работы триггера обновления в таблице Договор

8 Разработка технологий доступа к базе данных

.1 Выбор пользователей базы данных

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

8.2 Выбор пользователей базы данных

При запуске клиентского приложения, взаимодействие с БД осуществляется в режиме пользователя. Из меню Файл можно перейти в режим администратора. Это позволит редактировать таблицы, а не только просматривать.

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

9 Организация обмена данными между серверной частью и клиентским приложением

Клиентское приложение осуществляет через экранные формы взаимодействие пользователя с таблицами данных и управляющим сервером по технологии ADO.NET. Экранные формы приложения показаны в Приложении 1.

10 Организация обмена данными между серверной частью и клиентским приложением

В данном проекте обмен данными с другими БД не использовался, однако в случае необходимости для этого необходимо в начале создать так называемое соединение (Connection), после чего на основании этого соединения создать удаленное представление (Remote View).

11 Экономическое обоснование результатов внедрения программного продукта

Данный программный продукт был внедрен с целью увеличения производительности труда, за iет автоматизации учета договоров. Продукт относительно не требователен к ресурсам как сервера, так и отдельной рабочей станции. Для сервера достаточно будет не менее 512 мегабайт оперативной памяти и одноядерного процессора семейства Intel Pentium 4, стоимостью приблизительно 10000 руб., для рабочей станции - не менее 256 мегабайт оперативной памяти и одноядерного процессора семейства Intel Pentium 4, стоимостью приблизительно 8000 руб.. Так как на предприятии Изба-Строй информация о договорах необходима 8 сотрудникам, то необходимо приобрести 8 рабочих станции и 1 сервер. В сумме на приобретение компьютеров будет затрачено 74 000 руб. Все компьютеры находятся в одном здании на расстоянии 10х4, 15х2 и 25х2