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

Разработка программного приложения по учету договоров с поставщиками и клиентами для строительного предприятия. Особенности использования технологии Net Framework 2.0 в алгоритмически-логическом аспекте на основе реляционной базы, управляемой языком SQL.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 25.06.2011
Размер файла 3,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

  • ВВЕДЕНИЕ 2
  • 2 Описание предметной области 3
  • 3 ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ 5
  • 4 Организация выборки информации из базы данных 10
  • 5 Разработка представлений для отображения результатов выборки 13
  • 6 Проектирование хранимых процедур 15
  • 7 Разработка механизмов управления данными в базе при помощи триггеров
  • 7.1 Триггер для добавления данных 18
  • 7.2 Триггер для удаления данных 20

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

  • 8.1 Выбор пользователей базы данных 23
  • 8.2 Выбор пользователей базы данных 23
  • 9 Организация обмена данными между серверной частью и клиентским приложением 24
  • 10 Организация обмена данными между серверной частью и клиентским приложением 25
  • 11 Экономическое обоснование результатов внедрения программного продукта 26
  • 12 Требования к техническому обеспечению 28
  • 13 Инструкция по эксплуатации базы данных и клиентского приложения 29
  • ЗАКЛЮЧЕНИЕ 30
  • СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 31
  • ПРИЛОЖЕНИЕ 1 Экранные формы приложения 32
  • ПРИЛОЖЕНИЕ 2 Листинг программы 34

ВВЕДЕНИЕ

программный учет договор net framework

Приложение «Договор» было разработано для предприятия «Изба-Строй», которое занимается строительством жилых и нежилых помещений. Данное приложение разработано для учета договоров с поставщиками и клиентами. База данных занимает одно из главенствующих мест в системе учета и контроля данного предприятия и требует особо внимания к своей работоспособности, при ее разработке учитывались мнение, как начальников данной организации, так и простых операторов ПК, непосредственно работающих с базой данных. Данное приложение использует технологии .Net Framework 2.0 в алгоритмически-логическом аспекте приложения. В качестве хранилища данных была использована реляционная база, управляемая языком SQL, из наличия использованных средств следует, что данное приложение будет использовано на операционных системах семейства Windows.

2 Описание предметной области

2.1 Общее описание предметной области

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

Оформление, рассмотрение и подписание договоров осуществляется ответственными лицами организации и может происходить в разные дни.

Для учета договоров необходима информация об их типах, определяющих является ли они входящими или исходящими, а так же возможных контрагентов. Например, тип договоров «C поставщиками и подрядчиками» определяет входящие документы, а тип «Поставка товара» - исходящие.

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

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

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

2.2 Описание входных документов и сообщений

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

2.3 Описание выходных документов и сообщений

Выходными документами и сообщения будут являться результаты выполнения запросов, а так же модифицированные поля таблиц.

2.4 Список ограничений

1. Ограничения, связанные с типом данных полей.

2. Максимальные длины строковых данных: ФИО и должность ответственных лиц, названия и адреса организаций - 100 символов, паспортные данные физических лиц - 25 символов, ИНН - 12 цифр, описание сути договоров - 1000 символов.

3. Ограничения, связанные с целостностью по ссылкам.

4. Таблица «Договоры» содержит два поля для контрагента: для физического лица и для юридического, но одновременно может быть заполнено только одно из них.

3 ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

В данном курсовом проекте была разработана реляционная база данных для описания предметной области «Договор». Разработанная база данных предназначена для ввода, накопления и долговременного хранения информации о договорах, их типах, о контрагентах, оответственных лицах также в ней формируется информация для анализа.

3.1 Инфологическая модель базы данных

При концептуальном проектировании были выбраны основные сущности:

1) «договор»;

2) «обязательство»;

3) «тип договора»;

4) «ответственное лицо»;

5) «контрагент-физическое лицо»;

6) «контрагент-юридическое лицо».

3.1.1 Описание сущностей

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

1) сущность «договор»

Id

Дата оформления

Дата заключения

Срок действия

Тип договора

Контрагент физ

Контрагент юр

Суть договора

Ответственные лица:

Рассмотрел, Оформил, Подписал

2) сущность «обязательство»

Id

Сумма

Дата исполнения

Суть

3) сущность «тип договора»

Id

Название

Исходящий(Флаг)

4) сущность «ответственное лицо»

Id

ФИО

Должность

5) сущность «контрагент-физическое лицо»

Id

Фамилия

Имя

Отчество

Дата рождения

ИНН

6) сущность «контрагент-юридическое лицо»

Id

Название

Адрес

Телефон

ИНН

3.1.2 Описание связей

Классификация связей приведена в таблице 3.1

Таблица 2.1 «Классификация связей»

Номер связи

Родительская сущность

Дочерняя сущность

Тип связи

1

Договор

Обязательство

1:М

2

Ответственное лицо

Договор

3:М

3

Тип договора

Договор

1:М

4

Физическое лицо

Договор

1:М

5

Юридическое лицо

Договор

1:М

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

3.1.3 ER-диаграмма

Рисунок 3.1 - ER-диаграмма

3.2 Даталогическая модель

3.2.1 Диаграмма связи по полям

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

Таблица 3.2- состав таблицы Договор

Имя

Функциональные зависимости

id

Размещено на http://www.allbest.ru/

Дата оформления

Дата заключения

Срок действия

Тип договора

Контрагент физ

Суть договора

Рассмотрел

Оформил

Подписал

Таблица 3.3- состав таблицы Обязательство

Имя

Функциональные зависимости

id

Размещено на http://www.allbest.ru/

Сумма

Дата исполнения

Суть

Таблица 3.4 - состав таблицы Тип договора

Имя

Функциональные зависимости

id

Размещено на http://www.allbest.ru/

Название

Исходящий(Флаг)

Таблица 3.5 - состав таблицы Ответственное лицо

Имя

Функциональные зависимости

id

Размещено на http://www.allbest.ru/

ФИО

Должность

Таблица 3.6 - состав таблицы Контрагент-физическое лицо

Имя

Функциональные зависимости

id

Размещено на http://www.allbest.ru/

Фамилия

Имя

Отчество

Дата рождения

ИНН

Таблица 3.7 - состав таблицы Контрагент- юридическое лицо

Имя

Функциональные зависимости

id

Размещено на http://www.allbest.ru/

Название

Адрес

Телефон

ИНН

4 Организация выборки информации из базы данных

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

1. Выборка договоров, подписанных гендиректором

SELECT id, ДатаОформления, ДатаЗаключения, СрокДействия, ТипДоговора, КонтрагентФизЛицо, КонтрагентЮрЛицо, СутьДоговора, Рассмотрел, Оформил, Подписал

FROM dbo.Договор

WHERE (Подписал = (SELECT id

FROM dbo.ОтветственноеЛицо

WHERE (Должность LIKE '%Гендиректор%')))

2.

3.

Рисунок 4.1 Результаты первой выборки

2. Выборка договоров с физическими лицами

SELECT id, ДатаОформления, ДатаЗаключения, СрокДействия, ТипДоговора, КонтрагентФизЛицо, КонтрагентЮрЛицо, СутьДоговора, Рассмотрел,

Оформил, Подписал

FROM dbo.Договор

WHERE (NOT (КонтрагентФизЛицо IS NULL))

3. Выборка договоров с юридическими лицами

SELECT id, ДатаОформления, ДатаЗаключения, СрокДействия, ТипДоговора, КонтрагентФизЛицо, КонтрагентЮрЛицо, СутьДоговора, Рассмотрел,

Оформил, Подписал

FROM dbo.Договор

WHERE (NOT (КонтрагентЮрЛицо IS NULL))

4. Выборка договоров, требующих рассмотрения

SELECT id, ДатаОформления, ДатаЗаключения, СрокДействия, ТипДоговора, КонтрагентФизЛицо, КонтрагентЮрЛицо, СутьДоговора, Рассмотрел, Оформил, Подписал

FROM dbo.Договор WHERE (ДатаЗаключения IS NULL)

5. Выборка исполненных договоров

SELECT id, ДатаОформления, ДатаЗаключения, СрокДействия, ТипДоговора, КонтрагентФизЛицо, КонтрагентЮрЛицо, СутьДоговора, Рассмотрел,

Оформил, Подписал

FROM dbo.Договор

WHERE (NOT (ДатаЗаключения IS NULL)) AND EXISTS

(SELECT id, Договор, Сумма, ДатаИсполнения, Суть

FROM dbo.Обязательство

WHERE (Договор = dbo.Договор.id)) AND (NOT EXISTS

(SELECT id, Договор, Сумма, ДатаИсполнения, Суть

FROM dbo.Обязательство AS O1

WHERE (Договор = dbo.Договор.id) AND (ДатаИсполнения > dbo.Договор.СрокДействия OR

ДатаИсполнения IS NULL)))

6. Выборка исходящих договоров

SELECT id, ДатаОформления, ДатаЗаключения, СрокДействия, ТипДоговора, КонтрагентФизЛицо, КонтрагентЮрЛицо, СутьДоговора, Рассмотрел, Оформил, Подписал

FROM dbo.Договор

WHERE (ТипДоговора IN (SELECT idFROM dbo.ТипДоговора

WHERE (Исходящий = 1)))

7. Выборка просроченных договоров

SELECT id, ДатаОформления, ДатаЗаключения, СрокДействия, ТипДоговора, КонтрагентФизЛицо, КонтрагентЮрЛицо, СутьДоговора, Рассмотрел,

Оформил, Подписал

FROM dbo.Договор

WHERE (СрокДействия < GETDATE()) AND EXISTS

(SELECT id, Договор, Сумма, ДатаИсполнения, Суть FROM dbo.Обязательство WHERE (Договор = dbo.Договор.id) AND (ДатаИсполнения > dbo.Договор.СрокДействия OR ДатаИсполнения IS NULL))

8. Выборка текущих договоров

SELECT id, ДатаОформления, ДатаЗаключения, СрокДействия, ТипДоговора, КонтрагентФизЛицо, КонтрагентЮрЛицо, СутьДоговора, Рассмотрел,

Оформил, Подписал

FROM dbo.Договор

WHERE (СрокДействия >= GETDATE()) AND (NOT (ДатаЗаключения IS NULL)) AND EXISTS

(SELECT id, Договор, Сумма, ДатаИсполнения, Суть

FROM dbo.Обязательство

WHERE (ДатаИсполнения IS NULL))

9. Выборка текущих обязательств

SELECT Сумма, 'Пассивное' AS Тип

FROM dbo.Обязательство

WHERE (ДатаИсполнения IS NULL) AND (Сумма >= 0)

UNION

SELECT Сумма, 'Активное' AS Тип

FROM dbo.Обязательство AS Обязательство_1

WHERE (ДатаИсполнения IS NULL) AND (Сумма < 0)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ID bigint

AS

BEGIN

SET NOCOUNT ON;

DECLARE @CNT INT

SELECT @CNT = ( SELECT Count(*) FROM Обязательство WHERE (Договор=@ID) )

IF EXISTS(SELECT * FROM Договор WHERE (id=@ID AND ДатаЗаключения IS NULL) )

BEGIN

SELECT 'Не заключен'

END

ELSE IF (SELECT Count(*) FROM Обязательство

WHERE (Договор=@ID AND ДатаИсполнения <

(SELECT СрокДействия FROM Договор WHERE (id=@ID) ) ) ) = @CNT

BEGIN

SELECT 'Исполнен'

END

ELSE IF (SELECT СрокДействия FROM Договор WHERE (id=@ID) ) > GETDATE()

BEGIN

SELECT 'Активен'

END

ELSE

BEGIN

SELECT 'Просрочен'

END

END

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

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

CREATE PROCEDURE [dbo].[РАССЧЕТ_СУММЫ_ОБЯЗАТЕЛЬСТВ]

AS

BEGIN

SET NOCOUNT ON;

SELECT SUM(Сумма) AS Пассивные

FROM dbo.Обязательство

WHERE (ДатаИсполнения IS NULL) AND (Сумма >= 0)

SELECT SUM(Сумма) AS Активные

FROM dbo.Обязательство AS Обязательство_1

WHERE (ДатаИсполнения IS NULL) AND (Сумма < 0)

END

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

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

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

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

CREATE TRIGGER [dbo].[СCINSERTION_CHECK]

ON [dbo].[ЮридическоеЛицо]

FOR INSERT, UPDATE

AS

BEGIN

SET NOCOUNT ON;

DECLARE @INN INT

SELECT @INN = (SELECT [ИНН] FROM [inserted])

IF (@INN<100000000000 OR @INN>999999999999)

BEGIN

PRINT 'Инн должен быть 12 значным' ROLLBACK TRAN

END

IF @@ERROR != 0

BEGIN

PRINT 'Error occurred during related tables' ROLLBACK TRAN

END

RETURN

END

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

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

CREATE TRIGGER [dbo].[DINSERTION_CHECK]

ON [dbo].[Договор]

FOR INSERT, UPDATE

AS

BEGIN

SET NOCOUNT ON;

DECLARE @C1 BIGINT

DECLARE @C2 BIGINT

SELECT @C1 = (SELECT [КонтрагентЮрЛицо] FROM [inserted])

SELECT @C2 = (SELECT [КонтрагентФизЛицо] FROM [inserted])

IF (@C1 IS NULL AND @C2 IS NULL)

BEGIN

PRINT 'Не выбран контрагент' ROLLBACK TRAN

END

IF ((NOT (@C1 IS NULL)) AND (NOT (@C2 IS NULL)))

BEGIN

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

END

IF @@ERROR != 0

BEGIN

PRINT 'Error occurred during related tables' ROLLBACK TRAN

END

RETURN

END

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

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

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

TRIGGER [dbo].[СCASCADE_DEL]

ON [dbo].[Договор]

FOR DELETE

AS

BEGIN

SET NOCOUNT ON;

DELETE Обязательство

FROM Обязательство a, deleted d

WHERE a.Договор = d.id

IF @@ERROR != 0

BEGIN

PRINT 'Error occurred during related tables' ROLLBACK TRAN

END

RETURN

END

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

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

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

CREATE TRIGGER [dbo].[DUPDATE_CHECK]

ON [dbo].[Договор]

FOR UPDATE

AS

BEGIN

SET NOCOUNT ON;

IF NOT ( (SELECT [ДатаЗаключения] FROM [deleted]) IS NULL )

BEGIN

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

END

IF @@ERROR != 0

BEGIN

PRINT 'Error occurred during related tables' ROLLBACK TRAN

END

RETURN

END

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

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

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

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

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

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

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

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

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

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

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

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

Данный программный продукт был внедрен с целью увеличения производительности труда, за счет автоматизации учета договоров. Продукт относительно не требователен к ресурсам как сервера, так и отдельной рабочей станции. Для сервера достаточно будет не менее 512 мегабайт оперативной памяти и одноядерного процессора семейства Intel Pentium 4, стоимостью приблизительно 10000 руб., для рабочей станции - не менее 256 мегабайт оперативной памяти и одноядерного процессора семейства Intel Pentium 4, стоимостью приблизительно 8000 руб.. Так как на предприятии «Изба-Строй» информация о договорах необходима 8 сотрудникам, то необходимо приобрести 8 рабочих станции и 1 сервер. В сумме на приобретение компьютеров будет затрачено 74 000 руб. Все компьютеры находятся в одном здании на расстоянии 10х4, 15х2 и 25х2 метров от сервера. Метр сетевого кабеля стоит 5 рублей, коммутатор на 16 портов стоит 1000 рублей. В сумме на прокладку ЛВС будет затрачено 1600 рублей. На приобретение программного обеспечения необходимо затратить 50 000 руб. Всего необходимо 125 600 рублей.

Экономический эффект от внедрения разработки в течение года использования можно определить по формуле:

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

Экономию средств от внедрения продукта можно рассчитать по формуле:

. (5)

Здесь - затраты на ручную обработку информации, руб, , - объем информации, обрабатываемой вручную, Мбайт, Ц - стоимость одного часа работы, руб/час, - коэффициент, учитывающий дополнительные затраты времени на логические операции при ручной обработке информации, - норма выработки, Мбайт/час. За - затраты на автоматизированную обработку информации, руб, - время автоматической обработки (час), - стоимость одного часа машинного времени, руб/час; - время работы оператора, час; - стоимость одного часа работы оператора, руб./час.

Эу = Он*Ц*Гдр - taм*t00 = 500*220*1.5/2 - 30*1*5*1*200

= 82500 - 30000 = 52500

Эффективность разработки:

Er = 52500 - 0.2*25 000 = 47500

Тогда эффективность разработки может быть определена по формуле:

= 47500*0.4/25000 = 0.76

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

12 Требования к техническому обеспечению

Для работы приложений требуется следующее программное обеспечение: операционной системе Windows 2000/XP/Vista c установленным .Net Framwork 2.0. Аппаратные требования данного продукта совпадают с аппаратными требованиями операционной системы, для которых он предназначен.

Объем ОЗУ для эффективной работы приложения определяется по формуле:

,

где - минимальные требования со стороны операционной системы, - минимальный размер подгружаемых модулей, - дополнительное пространство ОЗУ.

Итак, имеем:

V= 200+150+50=400 мегабайт

Свободное пространство на жестком диске определяется равенством:

,

где - объем инсталляционного пакета программы; - объем файлов базы данных; - объем временных файлов, создающихся программой в ходе запуска.

Итак, имеем

W=2+4+1=9 мегабайт

13 Инструкция по эксплуатации базы данных и клиентского приложения

Вызов данной программы не отличается от запуска любой другой программы из среды операционной систем: пользователю необходимо скопировать файлы приложения на жесткий диск и запустить приложение с расширением .exe в корневом каталоге программы. Данное приложение для работы требует наличие установленного .net framework 2.0 версии и выше. Никаких дополнительных действий от пользователя не требуется.

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

ЗАКЛЮЧЕНИЕ

В итоге курсового проектирования была разработана реляционная база «Договоры» и клиентское приложение «Договор» для организации «Изба-Строй». Были подробно рассмотрены все аспекты функционирования этой системы, логической, программной и физической ее реализации.

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

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

1. Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. Базы данных: Учебник для высших учебных заведений / Под ред. проф. А. Д. Хомоненко. - Издание второе, дополненное и переработанное. - СПб.: КОРОНА принт, 2002.- 672 с.

2. Глушаков С. В., Ломотько Д. В. Базы данных: Учебный курс. - Харьков: Фолио; Ростов н/Д: Феникс; Киев: Абрис, 2000. - 504 с.

3. Мишенин А. И. Теория экономических информационных систем -М.: Финансы и статистика, 1999. - 168 с.

4. Смирнова Г. Н., Сорокин А. А., Тельнов Ю. Ф. Проектирование экономических информационных систем: Учебник для высших учебных заведений / Под ред. Ю. Ф.

ПРИЛОЖЕНИЕ 1

Экранные формы приложения

Рисунок 1- главное окно программы

Рисунок 2 - окна просмотра и редактирования таблиц

Рисунок 3 - окна отчетов

ПРИЛОЖЕНИЕ 2

Листинг программы

Файл: Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace Договор

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

public bool adm;

private void типыДоговоровToolStripMenuItem_Click(object sender, EventArgs e)

{

ТипыДоговоров win = new ТипыДоговоров(this.adm);

win.MdiParent = this;

win.Show();

}

private void договорToolStripMenuItem_Click(object sender, EventArgs e)

{

Договоры win = new Договоры(this.adm);

win.MdiParent = this;

win.Show();

}

private void обязательстваToolStripMenuItem_Click(object sender, EventArgs e)

{

Обязательства win = new Обязательства(this.adm);

win.MdiParent = this;

win.Show();

}

private void ответственныеЛицаToolStripMenuItem_Click(object sender, EventArgs e)

{

ОтветственныеЛица win = new ОтветственныеЛица(this.adm);

win.MdiParent = this;

win.Show();

}

private void юридическиеЛицаToolStripMenuItem_Click(object sender, EventArgs e)

{

КонтрагентыЮрЛица win = new КонтрагентыЮрЛица(this.adm);

win.MdiParent = this;

win.Show();

}

private void физическиеЛицаToolStripMenuItem_Click(object sender, EventArgs e)

{

КонтрагентыФизЛица win = new КонтрагентыФизЛица(this.adm);

win.MdiParent = this;

win.Show();

}

private void просроченныеДоговорыToolStripMenuItem_Click(object sender, EventArgs e)

{

ПросроченныеДоговоры win = new ПросроченныеДоговоры();

win.MdiParent = this;

win.Show();

}

private void договорыСФизЛицамиToolStripMenuItem_Click(object sender, EventArgs e)

{

ДоговорыСФизЛицами win = new ДоговорыСФизЛицами();

win.MdiParent = this;

win.Show();

}

private void договорыСЮрЛицамиToolStripMenuItem_Click(object sender, EventArgs e)

{

ДоговорыСЮрЛицами win = new ДоговорыСЮрЛицами();

win.MdiParent = this;

win.Show();

}

private void исходящиеДоговорыToolStripMenuItem_Click(object sender, EventArgs e)

{

ИсходящиеДоговоры win = new ИсходящиеДоговоры();

win.MdiParent = this;

win.Show();

}

private void неПодписанныеДоговорыToolStripMenuItem_Click(object sender, EventArgs e)

{

НеПодписанныеДоговоры win = new НеПодписанныеДоговоры();

win.MdiParent = this;

win.Show();

}

private void текущиеОбязательстваToolStripMenuItem_Click(object sender, EventArgs e)

{

ТекущиеОбязательства win = new ТекущиеОбязательства();

win.MdiParent = this;

win.Show();

}

private void определитьСостояниеДоговораToolStripMenuItem_Click(object sender, EventArgs e)

{

ОпределитьСостояние win = new ОпределитьСостояние();

win.MdiParent = this;

win.Show();

}

private void рассчетСуммыОбязательствToolStripMenuItem_Click(object sender, EventArgs e)

{

РассчетОбязательств win = new РассчетОбязательств();

win.MdiParent = this;

win.Show();

}

private void Form1_FormClosed(object sender, FormClosedEventArgs e)

{

contractsDataSet.AcceptChanges();

}

private void режимАдминистратораToolStripMenuItem_Click(object sender, EventArgs e)

{

if (this.adm)

{

режимАдминистратораToolStripMenuItem.Text = "Режим администратора";

this.adm = false;

return;

}

Adm win = new Adm();

win.ShowDialog();

if (win.DialogResult == DialogResult.OK)

{

if (win.passwd == "12345")

this.adm = true;

режимАдминистратораToolStripMenuItem.Text = "Режим пользователя";

}

}

private void выходToolStripMenuItem_Click(object sender, EventArgs e)

{

Application.Exit();

}

}

}

Файл: Договоры.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace Договор

{

public partial class Договоры : Form

{

public Договоры(bool a)

{

InitializeComponent();

this.adm = a;

if (!a)

{

bindingNavigatorAddNewItem.Enabled = false;

bindingNavigatorDeleteItem.Enabled = false;

dataGridView1.AllowUserToAddRows = false;

dataGridView1.AllowUserToDeleteRows = false;

dataGridView1.ReadOnly = true;

}

}

public bool adm;

private void Договоры_Load(object sender, EventArgs e)

{

// TODO: данная строка кода позволяет загрузить данные в таблицу "contractsDataSet.Договор". При необходимости она может быть перемещена или удалена.

this.договорTableAdapter.Fill(this.contractsDataSet.Договор);

}

}

}

Файл: Обязательства.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace Договор

{

public partial class Обязательства : Form

{

public Обязательства(bool a)

{

InitializeComponent();

this.adm = a;

if (!a)

{

bindingNavigatorAddNewItem.Enabled = false;

bindingNavigatorDeleteItem.Enabled = false;

dataGridView1.AllowUserToAddRows = false;

dataGridView1.AllowUserToDeleteRows = false;

dataGridView1.ReadOnly = true;

}

}

public bool adm;

private void Обязательства_Load(object sender, EventArgs e)

{

// TODO: данная строка кода позволяет загрузить данные в таблицу "contractsDataSet.Обязательство". При необходимости она может быть перемещена или удалена.

this.обязательствоTableAdapter.Fill(this.contractsDataSet.Обязательство);

}

}

}

Файл: ОпределитьСостояние.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace Договор

{

public partial class ОпределитьСостояние : Form

{

public ОпределитьСостояние()

{

InitializeComponent();

}

private void ОпределитьСостояние_Load(object sender, EventArgs e)

{

// TODO: данная строка кода позволяет загрузить данные в таблицу "contractsDataSet.Договор". При необходимости она может быть перемещена или удалена.

this.договорTableAdapter.Fill(this.contractsDataSet.Договор);

}

private void button1_Click(object sender, EventArgs e)

{

System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(Properties.Settings.Default.ContractsConnectionString);

con.Open();

string query;

System.Data.SqlClient.SqlCommand cmd;

System.Data.SqlClient.SqlDataReader r;

string res = "";

query = "EXECUTE ОПРЕДЕЛЕНИЕ_СОСТОЯНИЯ_ДОГОВОРА "+contract.SelectedValue.ToString();

cmd = new System.Data.SqlClient.SqlCommand(query, con);

r = cmd.ExecuteReader();

if (r.HasRows)

{

r.Read();

res=r[0].ToString();

}

r.Close();

con.Close();

MessageBox.Show(res);

}

}}

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.