АИС для учета работы гаражного кооператива

 















Пояснительная записка

к курсовой работе

АИС для учета работы гаражного кооператива



Введение


Целью курсовой работы является приобретение практических навыков проектирования и разработки приложений баз данных, программирования на Delphi; закрепление знаний, полученных в ходе изучения дисциплины «Организация баз данных и знаний».

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

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

Для выполнения курсовой работы выбран язык Delphi, так как он обеспечивает поддержку различных SQL-серверов и выполнение различных SQL-запросов на локальном компьютере. Delphi объединяет в себе удобство визуальных методов разработки, производительность оптимизирующего компилятора и мощность, заложенную в архитектуре клиент / сервер. Delphi позволяет многократно использовать однажды созданный код, уменьшая время, затраченное на разработку. Это мощный язык программирования, включающий обработку ошибочных ситуаций, позволяющих повысить надежность программ. Delphi содержит Borland Data Base Engine - система, поддерживающая различные форматы файлов данных и диалекты языка SQL большинства производителей с помощью обычных драйверов и ODBC драйверов. Новые и улучшенные способы доступа к данным, увеличение вероятности повторного использования кода, благодаря наследованию визуальных форм и другие возможности этого инструмента, среди которых особенно выделяются кэширование обновлений, фильтры, фоновое выполнение запросов и компоненты построения отчётов. Таблицы базы данных были выполнены в Paradox 7.0.



1. Анализ предметной области


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

программный база данный пользователь

Предметная область (ПО) курсовой работы - учет работы гаражного кооператива.

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

хранение информации обо всех гаражах;

регистрация членов кооператива;

учет членских взносов;

создание отчета о собственниках гаражей;

создание отчета о гаражах кооператива.

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

Глоссарий предметной области:

Гаражный кооператив - это разновидность потребительского кооператива, созданный с целью объединения граждан для вложения в строительство гаражного общества паевых взносов.

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

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

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

Членский взнос - денежный взнос, ежегодно уплачиваемый членом кооператива для обеспечения текущей деятельности кооперативного объединения.


1.2Техническое задание на разработку программного продукта


Введение

Программный продукт (ПП) представляет собой реализацию АИС для учета работы гаражного кооператива.

Основание для разработки

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

Условное обозначение разработки - Жужик.

Назначение разработки

Разрабатываемая система предназначена для автоматизации труда председателя гаражного кооператива: автоматизация составления отчетов; добавление и редактирование данных; поиск и анализ информации.

Требования к программному продукту

Требования к функциональным характеристикам

ПП должен выполнять следующие функции:

хранение информации о членах кооператива, гаражах кооператива, и сумме ежегодных членских взносов;

внесение в базу данных новой информации и редактирование существующей;

создание отчетов о гаражах кооператива, а также о собственниках гаражей;

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

Требования к надежности

- ПП должен устойчиво функционировать и не приводить к сбоям операционной системы;

- ПП должен обеспечивать обработку ошибочных действий пользователя с выдачей соответствующих сообщений.

Условия эксплуатации

Условия эксплуатации ПП определяются СанПиН 2.2.2 545-96 «Гигиенические требования к видеодисплейным терминалам, персональным вычислительным машинам и организации работы».

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

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

Требования к информационной и программной совместимости

ПП выполняется под Windows. Разработан в среде Delphi 7.

Требования к программной документации

Программная документация должна включать:

  • записка к курсовой работе;
  • исходные коды ПП с комментариями;
  • руководство пользователя.

Таблица 1.1 - Стадии и этапы разработки

№ЭтапСодержание этапа1Техническое заданиеАнализ и формализация требования к ПП, планирование работ.2ДиаграммыАнализ ПО, реализация диаграмм прецедентов и классов.3Технический проектРазработка первоначальной версии ПП с основной функциональностью.4Рабочий проектКорректировка и доработка программного обеспечения; разработка документации.5Защита курсовой работыЗащита проекта «АИС для учета работы гаражного кооператива»


2. Проектирование структуры базы данных


.1 Построение ER-диаграмм


В ходе анализа предметной области были выделены основные сущности: «Член кооператива», «Гараж», «Членский взнос», «Ежегодный взнос» а также связи: «Принадлежит», «Оплата». Всего 4 сущности и 2 двухсторонние связи. Сущность «Ежегодный взнос» является справочной и в связях не учавствует. Полученная ER-диаграмма представлена на рисунке 2.1, а диаграмма ER-экземпляров, представлена на рисунке 2.2:


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


Рисунок 2.2 - Диаграмма ER - экземпляров

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

1)Член кооператива - Гараж

R1 (A, B, C, D);(I, J, K);(A, I, F, G, H);

2)Гараж - Членский взнос

R4 (I, J, K);(L, M, N, O, I);

3)Гараж - Ежегодный взнос

R6 (I, J, K);

R7 (P).

Так как R2, R4 и R6 - одна и та же сущность, получим следующий набор отношений: R=(R1, R2, R3, R5, R7).


2.2 Построение диаграммы функциональных зависимостей


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

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

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

Полученная ФЗ обеспечивает нахождение таблиц в НФБК: значения всех атрибутов - атомарны; каждый непервичный атрибут функционально полно и нетранзистивно зависит от первичного ключа; каждый детерминант является возможным ключом. Следовательно, универсальное отношение находится в НФБК и в декомпозиции не нуждается.


2.3 Окончательный набор таблиц и описание полей


В результате процесса проектирования с помощью ER-диаграмм и концепции ФЗ были получены отношения, которые соответствуют набору из пяти таблиц. Окончательный набор таблиц и описание полей представлены в таблицах 2.1-2.5. «*» - отмечены ключи.


Таблица 2.1 - Описание таблицы Garages

ПолеТипНазначениеGarage_number *ShortНомер гаражаGarage_typeAlpha(10)Тип гаражаGarage_spaceShortПлощадь гаража

Таблица 2.2 - Описание таблицы Members

ПолеТипНазначениеId_number *Alpha(10)Ид. номерNameAlpha(40)Ф.И.О.Passport_numberAlpha(8)Номер паспортаPhone_numberAlpha(13)Телефонный номер

Таблица 2.3 - Описание таблицы Membership

ПолеТипНазначениеContract_number *Alpha(5)Номер контрактаGarage_numberShortНомер гаражаId_numberAlpha(10)Ид. номерOwn_beginDateНачало владенияOwn_endDateКонец владениия

Таблица 2.4 - Описание таблицы Membership_fee

ПолеТипНазначениеPay_number *AutoinkrementНомер квитанцииGarage_numberShortНомер гаражаDateDateДата оплатыYearAlpha(4)Год взносаPaymentNumberСумма

Таблица 2.5 - Описание таблицы Annual_fee

ПолеТипНазначениеGarage_typeAlpha(10)Тип гаражаSum_in_yearNumberСумма в год




3. Разработка и реализация АИС


.1 Построение диаграммы прецедентов использования и диаграммы классов


Цели, которые должны быть достигнуты в результате автоматизации данной предметной области и задачи, которые должны быть решены для достижения цели изображены в таблице 3.1.


Таблица 3.1 - Цели и задачи автоматизации ПО

Наименование целиПеречень задач для достижения цели1. Хранение данных о гаражах, членах кооператива, о том кому принадлежат гаражи и о членских взносах. 2. Создание отчетов о работе гаражного кооператива. 3. Предоставление информации о гараже, собственниках гаража, долге, оплате по гаражу за весь период для выбранного гаража.- просмотр данных; - модификация данных. - создание отчета о гаражах кооператива; - создание отчета о членах кооператива. - выполнение запросов для выбранного гаража.

Диаграмма прецедентов использования для заданной предметной области изображена на рисунке 3.1.



Рисунок 3.1 - Диаграмма прецедентов использования


Основной сценарий использования «Модификация информации».

Краткое описание.

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

Основное действующее лицо этого варианта использования - председатель кооператива.

Поток событий.

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

Основной поток.

Добавить запись:

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

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

Альтернативные потоки.

) Изменить запись:

Председатель кооператива заполняет необходимые поля под надписью «Изменить (добавить) запись». Некоторые поля заполняются вручную, некоторые выбираются из выпадающего списка. Председатель кооператива нажимает кнопку «Изменить запись».

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

) Удалить запись:

Председатель кооператива заполняет поле под надписью «Удалить запись». Председатель кооператива нажимает кнопку «Удалить запись».

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

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

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

Диаграмма классов ПО.

Создадим классы-сущности Garage (Гараж), Member (Член кооператива) и Membership_Fee (Членский взнос), Annual_Fee (Ежегодный взнос).

Добавим отношения между классами:

-класс Garage и Member - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Один гараж в разное время может принадлежать одному или нескольким членам кооператива, члену кооператива может принадлежать один или несколько гаражей, поэтому кратность связи со стороны классов Гараж и Член кооператива - 1..*;

-класс Garage и Membership_Fee - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Один гараж может оплачиваться несколькими взносами или не оплачиваться вообще, каждый членский взнос поступает только от одного гаража, поэтому кратность связи со стороны класса Garage - 1, со стороны Membership_Fee - 0..*;

-класс Garage и Annual_Fee - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Каждому гаражу назначен только один ежегодный взнос, один ежегодный взнос назначен нескольким гаражам, поэтому кратность связи со стороны класса Garage - *, со стороны Annual _Fee - 1.

Структура классов изображена на рисунке 3.2.


Рисунок 3.2 - Диаграмма классов


3.2 Создание таблиц с помощью СУБД


Для создания таблиц была использована программа DatabaseDesktop.

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


3.3 Описание реализации основных функций приложения БД


Структурные и функциональные особенности приложения

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



Рисунок 3.3 - Связи модулей приложения


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

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


Таблица 3.2 - Используемые компоненты

ТТаbleДля связи с физической таблицей данныхTDBGridДля визуализации данных в таблицеTDataSourceДля связи видимых и невидимых компонентов БД

Листинг основных функций программы приведен в приложении А.


Сортировка, фильтрация, и поиск записей

Сортировка записей производится путем подключения различных индексов, созданных при создании таблиц в DatabaseDesktop.

Пример сортировки в таблице «Члены кооператива» представлен ниже:


Рисунок 3.4 - Сортировка данных в таблице «Члены кооператива»


procedure TForm3. RadioButton1Click (Sender: TObject);. IndexFieldNames:='Id_number';;

TForm3. RadioButton2Click (Sender: TObject);. IndexFieldNames:='Name';;

TForm3. RadioButton3Click (Sender: TObject);. IndexFieldNames:='Passport_number';

end;


Фильтрация в таблице «Членские взносы» может производиться по двум критериям - номеру гаража и учетному году. В других таблицах фильтрация производится аналогично.

Пример фильтрации в таблице «Членские взносы» представлен ниже:


Рисунок 3.5 - Фильтрация данных в таблице «Членские взносы»


procedure TForm5. Button2Click (Sender: TObject);filtr, add: string;. Filtered:=False;:='';Length (Edit5. Text) > 0 then:= 'Garage_number ='+ Edit5. Text;

length (Edit6. Text) > 0 thenLength(filtr) > 0 then add:= ' and ' else add:='';:=filtr + add + 'Payment_year ='+ Edit6. Text;;

length(filtr) > 0 then. Filter:= filtr;.filtered:=True;MessageDlg ('Все поля пусты!', mtInformation, [mbOk], 0);

;


В каждой таблице реализован поиск записей при помощи функции Locate и возврат значений из найденной записи при помощи функции Lookup.

Пример поиска в таблице «Гаражи» представлен ниже:



Рисунок 3.6 - Поиск записи в таблице «Гаражи»


procedure TForm2. Button1Click (Sender: TObject);Res1, Res2: Variant;. Locate ('Garage_number', Edit4. Text, [loCaseInsensitive, loPartialKey]);not Table1. Locate ('Garage_number', Edit4. Text, [loCaseInsensitive, loPartialKey])MessageDlg ('Запись не найдена!', mtInformation, [mbOk], 0) else:=Table1. Lookup ('Garage_number', Edit4. Text, 'Garage_type');:=Table1. Lookup ('Garage_number', Edit4. Text, 'Garage_space');('тип гаража: '+String(Res1)+#13+'площадь гаража: '+String(Res2), mtInformation, [mbOk], 0);

end;;

Запросы к базе данных, реализованные в приложении

Запросы выполняются при помощи компонента TQuery. Результаты запроса выводятся в компоненте TDBGrid, посредством TDataSource.

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

)Содержит информацию о долге заданного гаража.


SELECT Garage_number as Номер_гаража, ((2013-2009)*(SELECT a. Sum_in_yearAnnual_fee a, Garages ba. Garage_type=b. Garage_type AND b. Garage_number=4) -

(SELECT sum(Payment)Membership_feeGarage_number=4)) as ДолгGarages

WHERE Garage_number=4


Результат запроса представлен на рисунке 3.7.


Рисунок 3.7 - Результат запроса №1



2)содержит информацию о собственнике заданного гаража.

SELECT a. Contract_date as Дата_контракта, b. Id_number as Ид_номер, b. Name as Ф.И.О., b. Passport_number as Номер_паспорта, b. Phone_number as Номер_телефонаMembership a, Members ba. Id_number=b. Id_number AND a. Garage_number=4

Результат запроса представлен на рисунке 3.8.


Рисунок 3.8 - Результат запроса №2


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


SELECT Payment_date as Дата_оплаты, Payment_year as Год, Payment as СуммаMembership_feeGarage_number=4



Результат запроса представлен на рисунке 3.9.


Рисунок 3.9 - Результат запроса №3


)содержит информацию о заданном гараже, включая Ф.И.О. текущего собственника.


SELECT a. Garage_type as Тип_гаража, a. Garage_space as Площадь_гаража, c. Name as СобственникGarages a, Membership b, Members cc. Id_number=b. Id_number AND a. Garage_number=b. Garage_number AND a. Garage_number=4b. Contract_date=(SELECT MAX (Contract_date)MembershipGarage_number=a. Garage_number)


Отчеты о содержимом базы данных, реализованные в приложении

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


Рисунок 3.10 - Отчет о гаражах кооператива



Рисунок 3.11 - Отчёт о собственниках гаражей


Политика безопасности

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

Контроль ввода в необходимых полях при добавлении и редактировании записей в таблицы базы данных.

4. Руководство пользователя


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

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

При выборе запросов открывается окно «Запросы», в котором необходимо выбрать номер гаража и запрос и нажать кнопку выполнить. Результат запроса отобразится в текущем окне.

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

Внешний вид форм приведён в приложении Б.


Заключение


Данный программный комплекс является реализацией курсовой работы по дисциплине «Организация баз данных и знаний» и предполагает разработку базы данных «Автоматизированная информационная система (АИС) учета работы гаражного кооператива». АИС позволяет вести автоматизированный учет всех гаражей и членов кооператива, а также вести учет оплаты членских взносов. Это позволяет существенно облегчить рутинную работу председателя кооператива, избежать возможности ошибок и повысить эффективность работы гаражного кооператива.


Список используемой литературы


1Сагайда П.І. Розробка та організація баз даних у системах автоматизації проектування та управління: Навчальний посібник для студентів спеціальності 7.080402. - Краматорськ.: ДДМА, 2003. - 160 с.

2Четвериков В.Н., Ревунков Г.И., Самохвалов Э.Н. Базы и банки данных: Учеб. для ВУЗов. - М.: Высш. шк., 1987. - 248 с.

Базы данных: Учебник для вузов / Под ред. А.Д. Хомоненко. - СПб.: Корона принт, 2000. - 416 с.

4Хансен Г., Хансен Дж. Базы данных: разработка и управление. - М.: Бином, 1999. - 560 с.

Наумов А.Н. и др. Системы управления базами данных и знаний. - М.: Финансы и статистика, 1991. - 315 с.

6Программирование в среде Delphi: Пер. с англ. / Джефф Дантеманн, Джим Мишел, Дон Тейлор.-К:НИПФ «ДиаСофтЛтд.», 1995.-608 с.

7Фаронов В.В., Шумаков П.В. Delphi 5 Руководство разработчика БД - М.: Нолидж, 2000-640 с.

Бобровский С.И. Delphi 7 Учебный курс - СПб.: Питер, 2005 - 736 с.

В. Гофман, А. Хоменко Работа с базами данных в Delphi.-C-П.: «БХВ-Петербург», 2002.-621 с.


Приложение А


Функции приложения

1. Добавление записи в базу данных (на примере таблицы «Гаражи»).


procedure TForm2. ButtonAddClick (Sender: TObject);((Edit2. Text='') and (Edit3. Text='')) then MessageDlg ('Введите номер и площадь гаража', mtInformation, [mbOk], 0) elseEdit2. Text='' then MessageDlg ('Введите номер гаража', mtInformation, [mbOk], 0) elseEdit3. Text='' then MessageDlg ('Введите площадь гаража', mtInformation, [mbOk], 0). Close;.SQL. Clear;.SQL. Add ('SELECT * FROM Garages WHERE Garage_number='+Edit2. Text);. Open;Query1. RecordCount<>0 then MessageDlg ('Запись уже существует, введите корректный номер гаража', mtInformation, [mbOk], 0). Close;.SQL. Clear;.SQL. Add ('INSERT INTO Garages');.SQL. Add ('VALUES('+Edit2. Text+', «'+ComboBox1. Text+''', '+Edit3. Text+')');. ExecSQL;('Запись добавлена!', mtInformation, [mbOk], 0);. Refresh;;;;


2. Редактирование записи в базе данных (на примере таблицы «Гаражи»).


procedure TForm2. ButtonChangeClick (Sender: TObject);((Edit2. Text='') and (Edit3. Text='')) then MessageDlg ('Введите номер и площадь гаража', mtInformation, [mbOk], 0) elseEdit2. Text='' then MessageDlg ('Введите номер гаража', mtInformation, [mbOk], 0) elseEdit3. Text='' then MessageDlg ('Введите площадь гаража', mtInformation, [mbOk], 0). Close;.SQL. Clear;.SQL. Add ('SELECT * FROM Garages WHERE Garage_number='+Edit2. Text);. Open;Query1. RecordCount=0 then MessageDlg ('Записи не существует, введите корректный номер гаража', mtInformation, [mbOk], 0). Close;.SQL. Clear;.SQL. Add ('UPDATE Garages');.SQL. Add ('SET Garage_type='''+ComboBox1. Text+''', Garage_space='+Edit3. Text);.SQL. Add ('WHERE Garage_number='+Edit2. Text);. ExecSQL;('Запись изменена!', mtInformation, [mbOk], 0);. Refresh;;;;


3. Удаление записи из базы данных (на примере таблицы «Гаражи»).


procedure TForm2. ButtonDeleteClick (Sender: TObject);Edit1. Text='' then MessageDlg ('Введите номер гаража', mtInformation, [mbOk], 0). Close;.SQL. Clear;.SQL. Add ('SELECT * FROM Garages WHERE Garage_number='+Edit1. Text);. Open;Query1. RecordCount=0 then MessageDlg ('Записи не существует, введите корректный номер гаража', mtInformation, [mbOk], 0). Close;.SQL. Clear;.SQL. Add ('DELETE FROM Garages');.SQL. Add ('WHERE Garage_number='+Edit1. Text);. ExecSQL;('Запись удалена!', mtInformation, [mbOk], 0);. Refresh;;;;


4. Выполнение SQL-запросов, выбранных пользователем.


procedure TForm6. Button1Click (Sender: TObject);ComboBox1. Text='' then MessageDlg ('Выберите номер гаража', mtInformation, [mbOk], 0) elseRadioButton1. Checked then. Caption:='Результат запроса для гаража № '+ComboBox1. Text+':';. Close;.SQL. Clear;.SQL. Add ('SELECT ((2013-2009)*(SELECT a. Sum_in_year FROM Annual_fee a, Garages b WHERE a. Garage_type=b. Garage_type AND b. Garage_number='+ComboBox1. Text+') - (SELECT sum(Payment) FROM Membership_fee WHERE Garage_number='+ComboBox1. Text+')) as Долг');.SQL. Add ('FROM Garages');.SQL. Add ('WHERE Garage_number='+ComboBox1. Text);. ExecSQL;. Active:=True;RadioButton2. Checked then

begin. Caption:='Результат запроса для гаража № '+ComboBox1. Text+':';. Close;.SQL. Clear;.SQL. Add ('SELECT a. Contract_date as Дата_контракта, b. Id_number as Ид_номер, b. Name as Ф.И.О., b. Passport_number as Номер_паспорта, b. Phone_number as Номер_телефона');.SQL. Add ('FROM Membership a, Members b');.SQL. Add ('WHERE a. Id_number=b. Id_number AND a. Garage_number='+ComboBox1. Text);. ExecSQL;. Active:=True;RadioButton3. Checked then. Caption:='Результат запроса для гаража № '+ComboBox1. Text+':';. Close;.SQL. Clear;.SQL. Add ('SELECT Payment_date as Дата_оплаты, Payment_year as Год, Payment as Сумма');.SQL. Add ('FROM Membership_fee');.SQL. Add ('WHERE Garage_number='+ComboBox1. Text);. ExecSQL;. Active:=True;RadioButton4. Checked then

begin. Caption:='Результат запроса для гаража № '+ComboBox1. Text+':';. Close;.SQL. Clear;.SQL. Add ('SELECT a. Garage_type as Тип_гаража, a. Garage_space as Площадь_гаража, c. Name as Собственник');.SQL. Add ('FROM Garages a, Membership b, Members c');.SQL. Add ('WHERE c. Id_number=b. Id_number AND a. Garage_number=b. Garage_number AND a. Garage_number='+ComboBox1. Text);.SQL. Add ('AND b. Contract_date=(SELECT MAX (Contract_date) FROM Membership WHERE Garage_number=a. Garage_number)');. ExecSQL;. Active:=True;

end;;


. Создание резервной копии БД.


procedure TForm1.mniBackUpClick (Sender: TObject);SR:TSearchRec;:integer;not DirectoryExists ('c:\DB\Garage\')Exit;:=FindFirst ('c:\DB\Garage\'+'*.*', faAnyFile, SR);Res<>0 then Exit elseDirectoryExists ('c:\DB\Garage_backup\'+DateToStr(Date)+'\')

then begin('Резервное копирование возможно выполнить тоько 1 раз в сутки', mtInformation, [mbOk], 0);

Exit;ForceDirectories ('c:\DB\Garage_backup\'+DateToStr(Date)+'\');(SR. Name<>'') and (SR. Name<>'.') and (SR. Name<>'..') then CopyFile (PAnsiChar('c:\DB\Garage\'+SR. Name), PAnsiChar ('c:\DB\Garage_backup\'+DateToStr(Date)+'\'+SR. Name), true);FindNext(SR)<>0;('Резервное копирование выполнено', mtInformation, [mbOk], 0);


. Восстановление БД.

TForm10. ButtonRepairClick (Sender: TObject);SR:TSearchRec;:integer;ComboBox1. Text='' then MessageDlg ('Не выбрана дата создания резервной копии', mtInformation, [mbOk], 0) else:=FindFirst ('c:\DB\Garage\'+'*.*', faAnyFile, SR);Res<>0 then Exit else(SR. Name<>'') and (SR. Name<>'.') and (SR. Name<>'..') then(PAnsiChar('c:\DB\Garage\'+SR. Name));FindNext(SR)<>0;:=FindFirst ('c:\DB\Garage_backup\'+ComboBox1. Text+'\'+'*.*', faAnyFile, SR);Res<>0 then Exit else(SR. Name<>'') and (SR. Name<>'.') and (SR. Name<>'..') then(PAnsiChar('c:\DB\Garage_backup\'+ComboBox1. Text+'\'+SR. Name), PAnsiChar ('c:\DB\Garage\'+SR. Name), true);FindNext(SR)<>0;('База данных восстановлена', mtInformation, [mbOk], 0)

end;




Приложение Б


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


Рисунок Б1 - Главная форма приложения


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



Рисунок Б3 - Форма запросов


Рисунок Б4 - Форма отчетов


Пояснительная записка к курсовой работе АИС для учета работы гаражного кооператива Введ

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ