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

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

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

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

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

- декомпозиция сложных процессов на более простые;

- объединение функционально однородных подпрограмм в модули;

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

4.3 Выбор методов и средств защиты информации и автоматизированной системы от несанкционированного доступа

Разработанная автоматизированная система имеет 2 уровня доступа: уровень Администратора и уровень Пользователя. Организована система паролей, защищая автоматизированную систему от несанкционированного доступа. В предложенной АС привилегированным набором прав обладает Администратор. Корректировка данных и их ввод доступен только Администратору.

4.4 Проектирование потоков событий и взаимодействия интерфейсов программных компонентов

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

Таблица 4.1 - Соответствие модулей системы задачам системы

Задача

Модуль

Учет всех заданных условий

Клиент базы данных

Поиск информации в базе данных

Подсистема поиска данных

Ведение отчетности

Подсистема отчетов

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

4.4.1 Диаграммы последовательности

Диаграмма последовательности при запросе автоматизированной системы присоединения к серверу представлена на рисунке 4.1

Основной поток событий:

1. Пользователь нажимает на кнопку входа в систему

2. Форма ввода имени и пароля запрашивает имя пользователя

3. Форма ввода имени и пароля запрашивает пароль

4. Форма ввода имени и пароля создает запрос

5. Форма ввода имени и пароля отправляет запрос ADOConnection

6. Компонент ADOConnection переправляет запрос MSSQL Server

7. MSSQL Server обрабатывает запрос и возвращает его ADOConnection

8. Компонент ADOConnection возвращает форме код ошибки

9. Форма возвращает оператору уведомление о соединении или же вызывает поток ошибок Е1

Поток ошибок Е1

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

2. Осуществляется возврат на форму ввода имя пользователя или пароля

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

Диаграмма основного потока событий автоматизированной системы представлена на рисунке 4.1

Основной поток событий:

1. Оператор вводит запрос через графический интерфейс

2. Приложение проверяет правильность введенных данных или же при обнаружении ошибки вызывает поток ошибок Е1

3. Приложение посылает запрос на подтверждение соединения MSSQL Server

4. MSSQL Server подтверждает соединение

5. Приложение обновляет данные

6. Приложение выводит данные

Поток ошибок Е1

1. Программа сообщает об ошибке ввода данных

2. Осуществляется возврат на форму ввода данных

Диаграмма последовательности автоматизированной системы для варианта запроса «Закрыть программу» представлена на рисунке 4.3

Основной поток событий:

1. Оператор нажимает на кнопку закрытия формы

2. Форма посылает ADOConnection запрос на завершение соединения

3. Компонент ADOConnection посылает запрос MSSQL Server на освобождение ресурсов

4. MSSQL Server возвращает ADOConnection уведомление об освобождении ресурсов

5. Компонент ADOConnection освобождает выделенную под соединение память

6. Компонент ADOConnection возвращает форме уведомление о завершении соединения

7. Форма вызывает закрытие приложения

8. Приложение возвращает форме код результата закрытия приложения

9. Форма закрывается или же вызывает поток ошибок Е1

Поток ошибок Е1

1. В случае неудачи программа сообщает об ошибке

2. Вызывается отладка приложения

Рисунок 4.3 - Диаграмма последовательности автоматизированной системы для варианта запроса «Закрыть программу»

4.5 Проектирование классов

Классы анализа преобразуются в проектные классы:

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

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

3. Проектирование управляющих классов - удаление классов, реализующих простоту передачи информации от граничных классов к сущностям.

4. Идентификация устойчивых (persistent) классов, содержащих хранимую информацию.

4.6 Проектирование базы данных

4.6.1 Описание структуры БД

Был определен следующий состав таблиц базы данных. Она содержит информацию, используемую в работе системы. Базу данных решено назвать по аналогии с приложением: STROITEL.mdf.

Рассмотрим основные таблицы базы данных:

Таблица «Организация» (таблица 4.2);

Таблица «Безопасность» (таблица 4.3);

Таблица «Условия ипотеки» (таблица 4.4);

Таблица «Условия инвестирования» (таблица 4.5)

Таблица «Организации» содержит информацию об интересующих организациях в зависимости от вида услуги, о преимуществах и условиях организации.

Имя поля

Описание

Тип представления

OrganizationID

Ключ организации

INT

NameOrganization

Название организации

VARCHAR(100)

OrganizationAbout

Общая информация

VARCHAR (3000)

SpisokYslug

Услуги

VARCHAR (3000)

PreimOrganization

Преимущества

VARCHAR (3000)

YslovZaim

Условия займа

VARCHAR (200)

DokumentsOrg

Необходимые документы

VARCHAR (3000)

UserKod

Код пользователя/администратора, выполняющего добавление/изменение организации

INT

Таблица 4.2 - «Безопасность» содержит данные о правах пользователей (их код, логин и пароль).

Имя поля

Описание

Тип представления

UserID

Номер (код) пользователя (ключ)

INT

UserLogin

Логин пользователя (имя)

VARCHAR(50)

UserPassword

Пароль пользователя

VARCHAR(50)

Таблица 4.3 - Таблица «Условия ипотеки» содержит данные о необходимых условиях ипотечного кредитования

Имя поля

Описание

Тип представления

YslygaIpotekaID

Ключ услуги

INT

NameYslyga

Наименование услуги

VARCHAR(100)

VozrastKlienta

Возраст клиента

INT

PervVznos

Первоначальный взнос

INT

SumDoxod

Суммарный месячный доход

INT

Grajdanstvo

Гражданство клиента

VARCHAR(100)

MestoRaboti

Постоянное место работы

VARCHAR(100)

Таблица 4.4 - «Условия инвестирования» содержит данные о необходимых условиях инвестиционной деятельности

Имя поля

Описание

Тип представления

YslygaInvestID

Ключ услуги

INT

NameYslyga

Наименование услуги

VARCHAR(100)

VozrastKlienta

Возраст клиента

INT

PeriodInvest

Период инвестирования

INT

SumInvest

Сумма инвестиции

INT

Grajdanstvo

Гражданство клиента

VARCHAR(100)

MestoRaboti

Постоянное место работы

VARCHAR(100)

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

Рисунок 4.4 - Схема классов базы данных

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

Данный программный продукт был реализован в среде разработки 32-х разрядных приложений Borland C++. При разработке проекта использовалась технология ADO, позволяющая устанавливать соединение как с локальной базой данных, так и с удаленной, не используя при этом дополнительно установленных приложений. При помощи данной технологии была реализована возможность работать и поддерживать базы данных MS SQL Server 2003.

4.7.1 Описание компонентов программного продукта

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

Label - метка, статический текста;

Edit - поле ввода текста;

Button - кнопка;

BitBtn - кнопка с графикой;

GroupBox - группа компонентов;

MainMenu - меню пользователя;

PopupMenu - всплывающее меню;

XPTweak - компонент адаптации для операционных систем Windows XP;

DBGrid - таблица данных;

PageControl - страничный обзор;

ADOConnection - компонент связи с базой данных;

ADOTable - компонент передачи данных от таблицы данных к базе данных и наоборот;

ADOQuery - компонент построения запросов SQL;

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

StatusBar - информационная панель;

RadioButton - радио кнопка;

Qreport - компонент создания быстрых отчетов:

ADOCommand - компонент выполнения команд запросов.

4.7.2 Описание основных процедур подсистемы

Процедура TMainForm.Org предназначена для отображения на экран списка представленных организаций.

Процедура TMainForm.Vvod предназначена для осуществления ввода данных.

Процедура TMainForm.Admin предназначена для отображения формы добавления, редактирования, удаления пользователей и настройки прав пользования системой.

Процедура TMainForm.Spr предназначена для отображения справочников системы.

Процедура TMainForm.Exit предназначена для осуществления выхода из системы.

Процедура TCompanyForm.Insert предназначена для добавления обновленных данных о компании.

Процедура TCompanyForm.Save предназначена для сохранения изменённых данных о компании.

Процедура TPacYslugForm.Save предназначена для сохранения данных о выбранных услугах.

Процедура TYslugForm.Report предназначена для формирования вариантов выбора.

4.8 Генерация кода

Процесс генерации кода состоит из четырех основных шагов:

1. Проверка корректности модели.

2. Установка свойств генерации кода.

3. Выбор класса, компонента или пакета.

4. Генерация кода.

5. Технические характеристики результатов проектирования автоматизированной системы «STROITEL»

5.1 Описание программного продукта

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

На рисунке 5.1 представлена модульная структура разработанной автоматизированной системы «STROITEL». Каждой подсистеме соответствует своя группа модулей. Их описание приведено в таблице 5.1.

Рисунок 5.1 - Модульная структура автоматизированной системы «STROITEL»

Таблица 5.1 - Основные модули системы

Модуль

Описание

StroitelManager.dpr

Файл проекта. Содержит перечень всех модулей системы.

SecurityModule.dpr

Файл проекта безопасности.

UMain.pas

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

UDM.pas

Файл модуля данных, отвечающий за связь с БД.

UOrg.pas

Файл модуля, отвечающего за вывод, добавление и удаление организации.

UYsl.pas

Файл модуля, отвечающего за управление параметрами услуги.

UModifyYslov.pas

Файл модуля, отвечающего отражение условий.

UVibor.pas

Файл оптимального выбора услуги.

USecurity.pas

Файл модуля, отвечающего за аутентификацию пользователей системы.

UMain.dfm

Главная форма, вывод всех услуг, управление всей системой.

UIpotek.dfm

Форма ипотечной услуги.

UInvest.dfm

Форма инвестиционной услуги

UVibor.dfm

Форма оптимального выбора услуги.

UDM.dfm

Форма связи с БД.

UModifyYslov.dfm

Форма отражения условий.

USecurity.dfm

Форма аутентификации пользователей.

Программа (ее конечный модуль) хранится в файле STROITEL.EXE. Программа скомпилированна таким образом, что для ее работоспособности следует установить дополнительное программное обеспечение Microsoft SQL Server 2003. Для большего удобства советуется использовать манипулятор типа «мышь», а так же перефирийным устройством для печати отчетов или документов. Для работоспособности данного программного продукта необходима операционная система Windows 98 или выше.

5.2 Методика оценки надежности проектирования

5.2.1 Расчет надежности информационной системы

Одной из важнейших характеристик качества программного изделия является надежность.

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

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

Модели надежности подразделяются на аналитические и эмпирические, а аналитические же в свою очередь - на динамические и статические.

Аналитические модели дают возможность рассчитать количественные показатели надежности, основываясь на данных тестирования.

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

Динамические модели (появление отказов) - поведение ПС рассматривается во времени. Для динамических моделей необходимы данные о появлении отказов во времени, интервалы каждого отказа - непрерывная картина появления отказов во времени, или число отказов на интервале времени - дискретное время.

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

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

Рисунок 5.2 - Классификация МНПО

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

5.3.1 Инсталляция и конфигурация системы

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

Для запуска программы необходимо запустить файл STROITEL.exe.

Для работы программы также необходимо подключить базу данных Stroitel к Microsoft SQL Server.

5.3.2 Требования к оборудованию

Автоматизированная система по учету и анализу производственной деятельности строительный предприятий Кубани, применяющих актуальные услуги строительного рынка разработан для IBM-совместимых ПК, имеющих следующую минимальную конфигурацию:

- Процессор: совместимый с Intel Pentium и частотой не ниже 100МГц, для повышения производительности;

- ОЗУ: не менее 8 Мегабайт;

- Видеомонитор: не ниже класса VGA:

- HDD: свободного места не менее 5 Мб для установки программы

Программа может функционировать в операционных системах Microsoft Windows 98/NT4.0/2000/XP.

5.3.3 Основы работы с программой

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

При запуске приложения появляется окно настроек подключения, представленное на рисунке 5.3

Рисунок 5.3 - Настройки подключения

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

Рисунок 5.4 - Авторизация пользователя, настройки подключения к БД, выбор услуги

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

Рисунок 5.5 - Окно ошибки подключения к БД

Рисунок 5.6 - Окно ошибки ввода пароля/пользователя

Вид главного окна показан на рисунке 5.7. Если у пользователя имеется набор прав администратора, то ему доступны такие функции как: Добавление организации, Редактирование организации, Удаление организации.

Рисунок 5.7 - Главное окно АС «STROITEL»

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

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

Рисунок 5.8 - Просмотр общих данных об организации

Рисунок 5.9 - Просмотр информации об организации

Рисунок 5.10 - Просмотр преимуществ выбранной организации

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

При выборе функции «Отбор организации по критериям» появляется окно критериев отбора в зависимости от выбранной услуги (ипотека/инвестирование).

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

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

6. Экономическая часть

6.1 Краткая характеристика предприятия

ООО «БизнесКласс-К» организована в феврале 2003 года и является Краснодарским филиалом московской группы «Норма-Регион-Медиа». Основной вид деятельности данной организации - издательская деятельность. Предприятие занимается изданием журнала «Стройка. Краснодарский выпуск», который является специализированным рекламно-информационным изданием строительного бизнеса. В 2008 году Краснодарскому филиалу исполнилось 5 лет. За эти годы журнал признан лидером в сфере строительной рекламы. Главной стратегической задачей ООО «БизнесКласс-К» является комплексная информационная поддержка краснодарских предпринимателей, работающих в строительной сфере.

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

Показатели

Единицы измерения

2006 г.

2007 г.

Прогноз на 2008 г.

1

Прибыль

руб.

4 800 000

5 130 000

7 000 000

2

Среднемесячная з/п

руб.

9 000

11 000

15 000

3

Среднесписочная численность

чел.

18

26

40

4

Фонд оплаты труда

руб.

1 944 000

3 432 000

7 200 000

Таблица 6.1 - Технико-экономические показатели предприятия

Подразделение

Количество пользователей

Функции

Отдел рекламы

15

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

Отдел маркетинга

4

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

Отдел информации

5

Поиск, анализ и учет интересующей информации, предоставленной в АС

Таблица 6.2 - Количество потенциальных пользователей системы

6.2 Содержание бизнес процесса, в котором используется автоматизированная система

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

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

6.3 Планирование работ для разработки автоматизированной системы

6.3.1 Определение затрат на заработную плату

Необходимо определить затраты по заработной плате. Сведения приведены в таблице 6.3

Таблица 6.3 - Определение затрат по заработной плате

Состав группы

Количество человек

Средняя з/п (руб.)

Итого (руб.)

Руководитель

1

7 000

7 000

Консультант

2

5 000

10 000

6.3.2 Составление списка используемого оборудования в процессе проектирования

Список используемого оборудования приведен в таблице 6.4

Перечень оборудования

Количество (шт.)

Стоимость единицы (руб.)

Общая стоимость (руб.)

ЭВМ

1

16 000

16 000

Принтер

1

4 200

4 200

Сканер

1

3 000

3 000

Модем

1

2 800

2 800

Таблица 6.4 - Оборудование, используемое в процессе проектирования

6.3.3 Определение среднего срока стадий для разработки автоматизированной системы

Средние сроки стадий для разработки АС приведены в таблице 6.5

Стадия

Средний срок (дни)

Средний срок (часы)

I

10

60

II

7

42

III

12

72

IV

6

36

V

4

24

Таблица 6.5 Сроки стадий для разработки АС

Заключение

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

· изучена и описана предметная область;

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

Данный программный продукт может использоваться как одним пользователем, так и группой пользователей работающих в локальной сети с выделенным сервером или без такового. Разработанная АС «STROITEL» адаптирована для работы в любой организации, информирующей об услугах и условиях строительного рынка Кубани.

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

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

Список используемых источников

1. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на C++, 2-е изд.: пер. с англ. - М.: “Бином”, СПб.: “Невский Диалект”, 2000. - 500с.

2. Архангельский А.Я. Delphi 7. Справочное пособие.- М.: ООО «Бином-Пресс», 2004. - 1024 с.: ил.

3. Фаронов В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов.- СПб.: Питер, 2004.- 640 с.: ил.

4. Кватрани Т. Rational Rose 2000 и UML. Визуальное моделирование: Пер. с англ.-М.: ДМК Пресс, 2001.-176с.: ил.

5. Оппель Э. Изучаем SQL / Джим Киу, пер. с англ. Д.А. Терентьева - М.: НТ Пресс, 2007. - 320 с.: ил.

6. Шкрыль А.А. Разработка клиент-серверных приложений в Delphi. - СПб.: БХВ-Петербург, 2006. - 408 с.: ил.

7. Зубов А. Программирование на Delphi. Трюки и эффекты. - СПб.: Питер, 2005. - 396с.: ил.

8. Путилин А.Б., Юрагов Е.А. Компонентное моделирование и программирование на языке UML: Практическое руководство по проектированию информационно-измерительных систем / А.Б. Путилин, Е.А. Юрагов. - М.: НТ Пресс, 2005. - 664с.: ил. - (Проектирование и моделирование).

9. Миклашевская Л.Н., Терехова Р.Л. Математические модели в расчетах на ЭВМ / Белорус. ин-т инж. ж.- д. трансп. - Гомель, 1993. - 54 с. - (Методические указания к лабораторным занятиям для студентов III курса строительного факультета).

Приложение

Исходные тексты программы

unit Main;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdActns, ActnList, ToolWin, ComCtrls, ImgList, StdCtrls,

FR_DSet, FR_DBSet, FR_Class, frRtfExp;

type

TMainForm = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N9: TMenuItem;

N12: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N18: TMenuItem;

N19: TMenuItem;

ActionList1: TActionList;

WindowClose1: TWindowClose;

WindowCascade1: TWindowCascade;

WindowTileHorizontal1: TWindowTileHorizontal;

WindowTileVertical1: TWindowTileVertical;

WindowMinimizeAll1: TWindowMinimizeAll;

WindowArrange1: TWindowArrange;

StatusBar1: TStatusBar;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton9: TToolButton;

ToolButton11: TToolButton;

ImageList1: TImageList;

ToolButton3: TToolButton;

ToolButton4: TToolButton;

ToolButton7: TToolButton;

frReport1: TfrReport;

N4: TMenuItem;

N5: TMenuItem;

C1: TMenuItem;

frReport2: TfrReport;

frDBDataSet1: TfrDBDataSet;

frDBDataSet2: TfrDBDataSet;

procedure N2Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure N3Click(Sender: TObject);

procedure ToolButton3Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure C1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

MainForm: TMainForm;

implementation

uses DataModule, Math, DB, SpisPacint, DateUtils, BistrVvod, Dostup, DateF,

Admin, Spr, ADODB;

{$R *.dfm}

procedure TMainForm.N2Click(Sender: TObject);

var

sp : TSpisPacientForm;

begin

sp := TSpisPacientForm.Create(Application);

If DM.Dostup.Fields.Fields[2].AsInteger = 4 then

begin

sp.ToolButton7.Visible := False;

sp.ToolButton5.Visible := False;

end;

If DM.Dostup.Fields.Fields[2].AsInteger = 5 then

begin

sp.ToolButton1.Visible := False;

sp.ToolButton2.Visible := False;

sp.ToolButton3.Visible := False;

sp.ToolButton9.Visible := False;

sp.ToolButton6.Visible := False;

end;

sp.Show;

end;

procedure TMainForm.N9Click(Sender: TObject);

begin

close;

end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

DM.Pacient.Cancel;

end;

procedure TMainForm.N3Click(Sender: TObject);

begin

DM.Pacient.Insert;

TBistrVvodForm.Create(Application);

end;

procedure TMainForm.ToolButton3Click(Sender: TObject);

begin

TDateForm.Create(Application);

end;

procedure TMainForm.N5Click(Sender: TObject);

begin

with DM.Dostup do

begin

Close;

SQL.Clear;

SQL.Add('sel_Dost;1');

ExecSQL;

Open;

end;

TAdminForm.Create(Application);

end;

procedure TMainForm.C1Click(Sender: TObject);

begin

TSprForm.Create(Application);

end;

end.

unit Admin;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGridEh, ComCtrls, ToolWin, ExtCtrls, DBLookupEh,

StdCtrls, Mask, DBCtrlsEh;

type

TAdminForm = class(TForm)

DBGridEh1: TDBGridEh;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

ToolButton4: TToolButton;

Panel1: TPanel;

ToolBar2: TToolBar;

ToolButton5: TToolButton;

ToolButton6: TToolButton;

ToolButton7: TToolButton;

ToolButton8: TToolButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

DBEditEh1: TDBEditEh;

DBEditEh2: TDBEditEh;

DBLookupComboboxEh1: TDBLookupComboboxEh;

DBEditEh3: TDBEditEh;

Panel2: TPanel;

ToolBar3: TToolBar;

ToolButton9: TToolButton;

ToolButton10: TToolButton;

DBEditEh4: TDBEditEh;

Label5: TLabel;

Label6: TLabel;

DBEditEh5: TDBEditEh;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure ToolButton4Click(Sender: TObject);

procedure ToolButton2Click(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

procedure ToolButton6Click(Sender: TObject);

procedure ToolButton5Click(Sender: TObject);

procedure ToolButton10Click(Sender: TObject);

procedure ToolButton9Click(Sender: TObject);

procedure ToolButton3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AdminForm: TAdminForm;

implementation

uses DataModule, Main, DataModuleSpr, DB, ADODB;

{$R *.dfm}

procedure TAdminForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action := caFree;

end;

procedure TAdminForm.ToolButton4Click(Sender: TObject);

begin

close;

end;

procedure TAdminForm.ToolButton2Click(Sender: TObject);

begin

try

with DM.Query do

begin

Close;

SQL.Clear;

SQL.Add('delete from dostup');

SQL.Add('where id_dostup = ' + IntToStr(DM.Dostup.Fields.Fields[0].AsInteger));

ExecSQL;

Open;

end;

except

end;

DM.Dostup.Requery([]);

end;

procedure TAdminForm.ToolButton1Click(Sender: TObject);

begin

DBEditEh1.Text := '';

DBEditEh2.Text := '';

DBEditEh3.Text := '';

DM.Dost.Insert;

Panel1.Visible := True;

ToolButton1.Enabled := False;

ToolButton2.Enabled := False;

ToolButton3.Enabled := False;

end;

procedure TAdminForm.ToolButton6Click(Sender: TObject);

begin

DM.Dost.Cancel;

ToolButton1.Enabled := True;

ToolButton2.Enabled := True;

ToolButton3.Enabled := True;

Panel1.Visible := False;

end;

procedure TAdminForm.ToolButton5Click(Sender: TObject);

begin

if Trim(DBEditEh2.Text) <> Trim(DBEditEh3.Text) then

begin

ShowMessage(`Неверный пользователь или пароль`);

DBEditEh2.Text := '';

DBEditEh3.Text := '';

end

else

begin

DMSpr.Nam.Insert;

DMSpr.Nam.Fields.Fields[1].AsString := DBEditEh1.Text;

DMSpr.Nam.Post;

DM.Dost.Fields.Fields[1].AsInteger := DMSpr.Nam.Fields.Fields[0].AsInteger;

DM.Dost.Fields.Fields[3].AsString := trim(DBEditEh2.Text);

DM.Dost.Post;

DM.Dostup.Requery([]);

Panel1.Visible := False;

ToolButton1.Enabled := True;

ToolButton2.Enabled := True;

ToolButton3.Enabled := True;

end;

end;

procedure TAdminForm.ToolButton10Click(Sender: TObject);

begin

DM.Dost.Cancel;

Panel2.Visible := False;

ToolButton1.Enabled := True;

ToolButton2.Enabled := True;

ToolButton3.Enabled := True;

end;

procedure TAdminForm.ToolButton9Click(Sender: TObject);

begin

if Trim(DBEditEh2.Text) <> Trim(DBEditEh3.Text) then

begin

ShowMessage('Ошибка подключения);

DBEditEh4.Text := '';

DBEditEh5.Text := '';

end

else

begin

DM.Dostup.Fields.Fields[3].AsString := trim(DBEditEh5.Text);

DM.Dostup.Post;

DM.Dostup.Requery([]);

Panel2.Visible := False;

ToolButton1.Enabled := True;

ToolButton2.Enabled := True;

ToolButton3.Enabled := True;

end;

end;

procedure TAdminForm.ToolButton3Click(Sender: TObject);

begin

DBEditEh4.Text := '';

DBEditEh5.Text := '';

DM.Dostup.Edit;

ToolButton1.Enabled := False;

ToolButton2.Enabled := False;

ToolButton3.Enabled := False;

Panel2.Visible := True;

end;

end.

unit AmnB;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, DBCtrls, ComCtrls, ToolWin;

type

TAmnBForm = class(TForm)

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton4: TToolButton;

ToolButton11: TToolButton;

DBMemo1: TDBMemo;

procedure ToolButton11Click(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AmnBForm: TAmnBForm;

implementation

uses DataModule;

{$R *.dfm}

procedure TAmnBForm.ToolButton11Click(Sender: TObject);

begin

DM.AnmB.Cancel;

close;

end;

procedure TAmnBForm.ToolButton1Click(Sender: TObject);

begin

DM.AnmB.Fields.Fields[1].AsInteger := DM.PacAll.Fields.Fields[0].AsInteger;

DM.AnmB.Post;

end;

procedure TAmnBForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action := caFree;

end;

end.

unit AmnZ;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, ToolWin, StdCtrls, DBCtrls;

type

TAmnZForm = class(TForm)

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton4: TToolButton;

ToolButton11: TToolButton;

DBMemo1: TDBMemo;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure ToolButton11Click(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AmnZForm: TAmnZForm;

implementation

uses Main, DataModule;

{$R *.dfm}

procedure TAmnZForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action := caFree;

end;

procedure TAmnZForm.ToolButton11Click(Sender: TObject);

begin

DM.AnmZ.Cancel;

close;

end;

procedure TAmnZForm.ToolButton1Click(Sender: TObject);

begin

DM.AnmZ.Fields.Fields[1].AsInteger :=

DM.PacAll.Fields.Fields[0].AsInteger;

DM.AnmZ.Post;

end;

end.

unit Antrop;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, ToolWin, ExtCtrls, StdCtrls, Mask, DBCtrlsEh;

type

TAntropForm = class(TForm)

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton4: TToolButton;

ToolButton11: TToolButton;

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Panel4: TPanel;

Panel5: TPanel;

Panel6: TPanel;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

DBNumberEditEh1: TDBNumberEditEh;

DBNumberEditEh2: TDBNumberEditEh;

DBNumberEditEh3: TDBNumberEditEh;

DBNumberEditEh4: TDBNumberEditEh;

DBNumberEditEh5: TDBNumberEditEh;

DBNumberEditEh6: TDBNumberEditEh;

DBNumberEditEh7: TDBNumberEditEh;

DBNumberEditEh8: TDBNumberEditEh;

DBNumberEditEh9: TDBNumberEditEh;

DBNumberEditEh10: TDBNumberEditEh;

DBNumberEditEh11: TDBNumberEditEh;

DBNumberEditEh12: TDBNumberEditEh;

DBNumberEditEh13: TDBNumberEditEh;

DBNumberEditEh14: TDBNumberEditEh;

DBNumberEditEh15: TDBNumberEditEh;

DBNumberEditEh16: TDBNumberEditEh;

DBNumberEditEh17: TDBNumberEditEh;

DBNumberEditEh18: TDBNumberEditEh;

DBNumberEditEh19: TDBNumberEditEh;

DBNumberEditEh20: TDBNumberEditEh;

procedure ToolButton11Click(Sender: TObject);

procedure ToolButton2Click(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AntropForm: TAntropForm;

implementation

uses Main, DataModule;

{$R *.dfm}

procedure TAntropForm.ToolButton11Click(Sender: TObject);

begin

close;

end;

procedure TAntropForm.ToolButton2Click(Sender: TObject);

begin

DM.Antrop.Cancel;

close;

end;

procedure TAntropForm.ToolButton1Click(Sender: TObject);

begin

DM.Antrop.Fields.Fields[1].AsInteger := DM.PacAll.Fields.Fields[0].AsInteger;

DM.Antrop.Post;

end;

procedure TAntropForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action := caFree;

end;

end.

unit BistrVvod;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DBCtrlsEh, DBLookupEh, StdCtrls, ExtCtrls, DBCtrls, Mask,

ComCtrls, ToolWin, ImgList;

type

TBistrVvodForm = class(TForm)

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton9: TToolButton;

ToolButton3: TToolButton;

Panel7: TPanel;

Label17: TLabel;

Label18: TLabel;

DBEditEh17: TDBEditEh;

DBEditEh18: TDBEditEh;

DBEditEh19: TDBEditEh;

DBEditEh20: TDBEditEh;

DBRadioGroup1: TDBRadioGroup;

Button3: TButton;

DBLookupComboboxEh21: TDBLookupComboboxEh;

DBLookupComboboxEh22: TDBLookupComboboxEh;

Button4: TButton;

Label12: TLabel;

DBDateTimeEditEh1: TDBDateTimeEditEh;

ImageList1: TImageList;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure ToolButton2Click(Sender: TObject);

procedure ToolButton3Click(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

BistrVvodForm: TBistrVvodForm;

implementation

uses DataModule, DataModuleSpr, VibVrach, Palat;

{$R *.dfm}

procedure TBistrVvodForm.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

DM.Pacient.Cancel;

Action := caFree;

end;

procedure TBistrVvodForm.ToolButton2Click(Sender: TObject);

begin

DM.Pacient.Cancel;

close;

end;

procedure TBistrVvodForm.ToolButton3Click(Sender: TObject);

begin

DM.Pacient.Insert;

end;

procedure TBistrVvodForm.ToolButton1Click(Sender: TObject);

begin

DM.Pacient.Post;

DM.PacAll.Requery([]);

DM.Pacient.Edit;

end;

procedure TBistrVvodForm.Button4Click(Sender: TObject);

begin

TVibVrachForm.Create(Application);

end;

procedure TBistrVvodForm.Button3Click(Sender: TObject);

begin

TPalatForm.Create(Application);

end;

end.

unit DateF;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, Mask, DBCtrlsEh;

type

TDateForm = class(TForm)

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

Panel1: TPanel;

Label1: TLabel;

DBDateTimeEditEh1: TDBDateTimeEditEh;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure ToolButton2Click(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

DateForm: TDateForm;

implementation

uses Main, Vipisk, DataModule, ADODB, DB, ConvUtils;

{$R *.dfm}

procedure TDateForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action := caFree;

end;

procedure TDateForm.ToolButton2Click(Sender: TObject);

begin

close;

end;

procedure TDateForm.ToolButton1Click(Sender: TObject);

begin

TVipiskForm.Create(Application).Label1.Caption := 'Планируется к выписке на: ' + DBDateTimeEditEh1.Text;

with DM.vipis do

begin

Close;

SQL.Clear;

SQL.Add('sel_pacient;2');

SQL.Add('''' + DBDateTimeEditEh1.Text + '''');

ExecSQL;

Open;

end;

close;

end;

end.

unit Diagnoz;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DBCtrlsEh, StdCtrls, Mask, ExtCtrls, DBCtrls, Grids, DBGridEh,

ComCtrls, ToolWin;

type

TDiagnozForm = class(TForm)

DBGridEh1: TDBGridEh;

Panel1: TPanel;

Label1: TLabel;

DBCheckBoxEh1: TDBCheckBoxEh;

DBRadioGroup1: TDBRadioGroup;

Label2: TLabel;

DBDateTimeEditEh1: TDBDateTimeEditEh;

Label3: TLabel;

DBEditEh1: TDBEditEh;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

ToolButton4: TToolButton;

Panel2: TPanel;

DBMemo1: TDBMemo;

ToolButton5: TToolButton;

ToolButton6: TToolButton;

procedure DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh;

AFont: TFont; var Background: TColor; State: TGridDrawState);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure ToolButton5Click(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

procedure ToolButton2Click(Sender: TObject);

procedure ToolButton4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

DiagnozForm: TDiagnozForm;

implementation

uses DataModule, Main, DataModuleSpr;

{$R *.dfm}

procedure TDiagnozForm.DBGridEh1GetCellParams(Sender: TObject;

Column: TColumnEh; AFont: TFont; var Background: TColor;

State: TGridDrawState);

begin

if DBGridEh1.SumList.RecNo mod 2 = 1 then

Background := $00ddbbff

else

Background := clSkyBlue;

end;

procedure TDiagnozForm.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Action := caFree;

end;

procedure TDiagnozForm.ToolButton5Click(Sender: TObject);

begin

DBMemo1.Clear;

end;

procedure TDiagnozForm.ToolButton1Click(Sender: TObject);

begin

DBMemo1.Text := DBGridEh1.Fields[1].AsString;

end;

procedure TDiagnozForm.ToolButton2Click(Sender: TObject);

begin

close;

end;

procedure TDiagnozForm.ToolButton4Click(Sender: TObject);

begin

DM.Diagn.FieldByName('Id_Pac').AsInteger :=

DM.PacAll.Fields.Fields[0].AsInteger;

DM.Diagn.FieldByName('Diag').AsString := DBMemo1.Text;

close;

end;

end.

unit DataModule;

interface

uses

SysUtils, Classes, DB, ADODB;

type

TDM = class(TDataModule)

ADOConnection: TADOConnection;

Pacient: TADOQuery;

DSPacient: TDataSource;

PacAll: TADOQuery;

DSPacAll: TDataSource;

PacAllF: TStringField;

PacAllN: TStringField;

PacAllO: TStringField;

PacAllNumPut: TSmallintField;

PacAllNumPal: TSmallintField;

PacAllFIO_Vrach: TStringField;

Vrach: TADOQuery;

DSVrach: TDataSource;

PacAllId_Pacient: TAutoIncField;

PacAllNumIB: TStringField;

SrokP: TADOQuery;

DSSrokP: TDataSource;

PacAllZaezdP: TDateTimeField;

PacAllVremZP: TStringField;

PacAllOtezdP: TDateTimeField;

PacAllVremOP: TStringField;

PacAllKolP: TWordField;

Query: TADOQuery;

DSQuery: TDataSource;

PacAllId_sanator: TSmallintField;

PacAllId_Uslug: TSmallintField;

PacAllId_Palat: TSmallintField;

PacAllId_Vrach: TSmallintField;

PacAllPol: TVariantField;

PacAllDR: TDateTimeField;

PacAllLechBoln: TBooleanField;

PacAllRabotnik: TBooleanField;

PacAllId_TipPut: TSmallintField;

PacAllStoimPut: TSmallintField;

PacAllId_Konting: TSmallintField;

PacAllId_SocPol: TSmallintField;

PacAllId_GrOtd: TSmallintField;

PacAllId_Prodav: TSmallintField;

PacAllId_Kategor: TSmallintField;

PacAllMestoRogd: TStringField;

PacAllId_TipDoc: TSmallintField;

PacAllSeriy: TStringField;

PacAllNumber: TStringField;

PacAllDateVid: TDateTimeField;

PacAllVidOrg: TStringField;

PacAllId_Oganiz: TSmallintField;

PacAllId_Otdel: TSmallintField;

PacAllId_Dolgnost: TSmallintField;

PacAllDrugoe: TStringField;

PacAllId_SrokP: TSmallintField;

PacAllId_Transp: TSmallintField;

PacAllNumReis: TSmallintField;

PacAllIz: TStringField;

PacAllKyrit: TBooleanField;

PacAllHropit: TBooleanField;

PacAllAllerg: TBooleanField;

PacAllMeteo: TBooleanField;

PacAllYVOV: TBooleanField;

PacAllIVOV: TBooleanField;

PacAllYLA: TBooleanField;

PacAllPMC: TBooleanField;

PacAllSkart: TBooleanField;

PacAllSEO: TBooleanField;

PacAllId_Sopr: TSmallintField;

PacAllDatePrib: TDateTimeField;

PacAllName_Uslug: TStringField;

PacAllSanator: TStringField;

Sopr: TADOQuery;

DSSopr: TDataSource;

Diagn: TADOQuery;

DSDiagn: TDataSource;

Dostup: TADOQuery;

DSDostup: TDataSource;

vipis: TADOQuery;

DSvipis: TDataSource;

Antrop: TADOQuery;

DSAntrop: TDataSource;

AnmZ: TADOQuery;

DSAnmZ: TDataSource;

AnmB: TADOQuery;

DSAnmB: TDataSource;

Epid: TADOQuery;

DSEpid: TDataSource;

Zakl: TADOQuery;

DSZakl: TDataSource;

Osm: TADOQuery;

DSOsm: TDataSource;

Vip: TADOQuery;

DSVip: TDataSource;

Zam: TADOQuery;

DSZam: TDataSource;

Dost: TADOQuery;

DSDost: TDataSource;

PacAllVidProgiv: TStringField;

PacAllCity: TStringField;

PacAllregion: TStringField;

PacAllStrana: TStringField;

PacAllRaion: TStringField;

PacAllPriCiry: TStringField;

PacAllStreet: TStringField;

PacAllHouse: TSmallintField;

PacAllKorp: TWordField;

PacAllFlat: TSmallintField;

PacAllPhone: TStringField;

PacAllFaks: TStringField;

PacAllEmail: TStringField;

PacAllHttp: TStringField;

PacAllTipdoc: TStringField;

private

{ Private declarations }

public

{ Public declarations }

end;

var

DM: TDM;

implementation

{$R *.dfm}

end.

unit DataModuleSpr;

interface

uses

SysUtils, Classes, DB, ADODB;

type

TDMSpr = class(TDataModule)

Diag: TADOQuery;

DSDiag: TDataSource;

City: TADOQuery;

DSCity: TDataSource;

Dolgnost: TADOQuery;

DSDolgnost: TDataSource;

Kategor: TADOQuery;

DSKategor: TDataSource;

Organiz: TADOQuery;

DSOrganiz: TDataSource;

GrOtbor: TADOQuery;

DSGrOtbor: TDataSource;

Prodavec: TADOQuery;

DSProdavec: TDataSource;

Raion: TADOQuery;

DSRaion: TDataSource;

Region: TADOQuery;

DSRegion: TDataSource;

SocPol: TADOQuery;

DSSocPol: TDataSource;

Strana: TADOQuery;

DSStrana: TDataSource;

Street: TADOQuery;

DSStreet: TDataSource;

TipDoc: TADOQuery;

DSTipDoc: TDataSource;

TipNomer: TADOQuery;

DSTipNomer: TDataSource;

TipPut: TADOQuery;

DSTipPut: TDataSource;

VidTrans: TADOQuery;

DSVidTrans: TDataSource;

VidProgiv: TADOQuery;

DSVidProgiv: TDataSource;

ADOConnection: TADOConnection;

Uslug: TADOQuery;

DSUslug: TDataSource;

Sanator: TADOQuery;

DSSanator: TDataSource;

PriCity: TADOQuery;

DSPriCity: TDataSource;

Palat: TADOQuery;

DSPalat: TDataSource;

Otdel: TADOQuery;

DSOtdel: TDataSource;

Kontin: TADOQuery;

DSKontin: TDataSource;

VidOpl: TADOQuery;

DSVidOpl: TDataSource;

Sopr: TADOQuery;

DSSopr: TDataSource;

Korpus: TADOQuery;

DSKorpus: TDataSource;

Prior: TADOQuery;

DSPrior: TDataSource;

His: TADOQuery;

DSHis: TDataSource;

Nam: TADOQuery;

DSNam: TDataSource;

private

{ Private declarations }

public

{ Public declarations }

end;

var

DMSpr: TDMSpr;

implementation

uses DataModule;

{$R *.dfm}

end.

unit Dostup;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, ToolWin, DBCtrlsEh, StdCtrls, Mask, DBLookupEh,

ImgList, Menus;

type

TDostupForm = class(TForm)

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ImageList1: TImageList;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

DBLookupComboboxEh1: TDBLookupComboboxEh;

DBLookupComboboxEh2: TDBLookupComboboxEh;

DBEditEh1: TDBEditEh;

MainMenu1: TMainMenu;

N11: TMenuItem;

N12: TMenuItem;

N21: TMenuItem;

procedure ToolButton2Click(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

{ Private declarations }

public

{ Public declarations }

end;

var

DostupForm: TDostupForm;

implementation

uses DataModuleSpr, DataModule, DB, ADODB, Main, SpisPacint;

{$R *.dfm}

procedure TDostupForm.ToolButton2Click(Sender: TObject);

begin

MainForm.Close;

end;

procedure TDostupForm.ToolButton1Click(Sender: TObject);

var

q, w : String;

begin

q := IntToStr(DBLookupComboboxEh1.KeyValue);

w := IntToStr(DBLookupComboboxEh2.KeyValue);

with DM.Dostup do

begin

Close;

SQL.Clear;

SQL.Add('select * from Dostup');

SQL.Add('where Id_Name = ''' + q + '''');

SQL.Add('and id_Prior = ''' + w + '''');

ExecSQL;

Open;

end;

If Trim(DM.Dostup.Fields.Fields[3].AsString) = Trim(DBEditEh1.Text) then

begin

if Trim(DBLookupComboboxEh2.Text) = 'Регистратор' then

begin

MainForm.N4.Visible := False;

MainForm.C1.Visible := False;

end;

if Trim(DBLookupComboboxEh2.Text) = 'Врач' then

begin

MainForm.N4.Visible := False;

MainForm.N3.Visible := False;

MainForm.C1.Visible := False;

MainForm.ToolButton2.Visible := False;

MainForm.ToolButton3.Visible := False;

MainForm.ToolButton4.Visible := False;

MainForm.ToolButton7.Visible := False;

end;

MainForm.Show;

hide;

end

else

ShowMessage('Не верный пароль или пользователь');

end;

procedure TDostupForm.FormCreate(Sender: TObject);

begin

DBEditEh1.Text := '';

DostupForm.ShowModal;

end;

procedure TDostupForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

MainForm.Close;

end;

end.

unit Epid;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, ToolWin, StdCtrls, Mask, DBCtrlsEh;

type

TEpidForm = class(TForm)

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton4: TToolButton;

ToolButton11: TToolButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

DBEditEh1: TDBEditEh;

DBEditEh2: TDBEditEh;

DBEditEh3: TDBEditEh;

DBEditEh4: TDBEditEh;

DBEditEh5: TDBEditEh;

DBEditEh6: TDBEditEh;

DBEditEh7: TDBEditEh;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure ToolButton11Click(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

EpidForm: TEpidForm;

implementation

uses Main, DataModule;

{$R *.dfm}

procedure TEpidForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action := caFree;

end;

procedure TEpidForm.ToolButton11Click(Sender: TObject);

begin

DM.Epid.Cancel;

close;

end;

procedure TEpidForm.ToolButton1Click(Sender: TObject);

begin

DM.Epid.Fields.Fields[1].AsInteger :=

DM.PacAll.Fields.Fields[0].AsInteger;

DM.Epid.Post;

end;

end.

unit History;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGridEh;

type

THistoryForm = class(TForm)

DBGridEh1: TDBGridEh;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure DBGridEh1CellClick(Column: TColumnEh);

private

{ Private declarations }

public

{ Public declarations }

end;

var

HistoryForm: THistoryForm;

implementation

uses DataModuleSpr, Info, PacDiag, DataModule, Antrop, DB, AmnZ, Osm, Vip,

Zakl, Zam, AmnB, Epid;

{$R *.dfm}

procedure THistoryForm.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Action := caFree;

end;

procedure THistoryForm.DBGridEh1CellClick(Column: TColumnEh);

begin

case DMSpr.His.Fields.Fields[0].AsInteger of

1 : TInfoForm.Create(Application);

2 :

begin

with DM.Diagn do

begin

Close;

SQL.Clear;

SQL.Add('select * from Diagn');

SQL.Add('where Id_Pac = ' +

IntToStr(DM.Pacient.Fields.Fields[0].AsInteger));

ExecSQL;

Open;

end;

TPacDiagForm.Create(Application);

end;

4 :

begin

with DM.AnmZ do

begin

Close;

SQL.Clear;

SQL.Add('select * from AnZ');

SQL.Add('where Id_Pac = ' +

IntToStr(DM.PacAll.Fields.Fields[0].AsInteger));

ExecSQL;

Open;

if Fields.Fields[0].AsString <> '' then

Edit

else

Insert;

end;

TAmnZForm.Create(Application);

end;

5 :

begin

with DM.AnmB do

begin

Close;

SQL.Clear;

SQL.Add('select * from AnB');

SQL.Add('where Id_Pac = ' +

IntToStr(DM.PacAll.Fields.Fields[0].AsInteger));

ExecSQL;

Open;

if Fields.Fields[0].AsString <> '' then

Edit

else

Insert;

end;

TAmnBForm.Create(Application);

end;

6 :

begin

with DM.Epid do

begin

Close;

SQL.Clear;

SQL.Add('select * from Epid');

SQL.Add('where Id_Pac = ' +

IntToStr(DM.PacAll.Fields.Fields[0].AsInteger));

ExecSQL;

Open;

if Fields.Fields[0].AsString <> '' then

Edit

else

Insert;

end;

TEpidForm.Create(Application);

end;

8 :

begin

with DM.Antrop do

begin

Close;

SQL.Clear;

SQL.Add('select * from Antrop');

SQL.Add('where Id_Pac = ' +

IntToStr(DM.PacAll.Fields.Fields[0].AsInteger));

ExecSQL;

Open;

if Fields.Fields[0].AsString <> '' then

Edit

else

Insert;

end;

TAntropForm.Create(Application);

end;

10 :

begin

with DM.Osm do

begin

Close;

SQL.Clear;

SQL.Add('select * from Osm');

SQL.Add('where Id_Pac = ' +

IntToStr(DM.PacAll.Fields.Fields[0].AsInteger));

ExecSQL;

Open;

end;

TOsmForm.Create(Application);

end;

13 :

begin

with DM.Vip do

begin

Close;

SQL.Clear;

SQL.Add('select * from Vipis');

SQL.Add('where Id_Pac = ' +

IntToStr(DM.PacAll.Fields.Fields[0].AsInteger));

ExecSQL;

Open;

if Fields.Fields[0].AsString <> '' then

Edit

else

Insert;

end;

TVipForm.Create(Application);

end;

15 :

begin

with DM.Zakl do

begin

Close;

SQL.Clear;

SQL.Add('select * from ZAkl');

SQL.Add('where Id_Pac = ' +

IntToStr(DM.PacAll.Fields.Fields[0].AsInteger));

ExecSQL;

Open;

if Fields.Fields[0].AsString <> '' then

Edit

else

Insert;

end;

TZaklForm.Create(Application);

end;

16 :

begin

with DM.Zam do

begin

Close;

SQL.Clear;

SQL.Add('select * from Zam');

SQL.Add('where Id_Pac = ' +

IntToStr(DM.PacAll.Fields.Fields[0].AsInteger));

ExecSQL;

Open;

if Fields.Fields[0].AsString <> '' then

Edit

else

Insert;

end;

TZamForm.Create(Application);

end;

end;

end;

end.

unit Info;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, ComCtrls, ToolWin, StdCtrls, Mask, DBCtrlsEh,

DBLookupEh;

type

TInfoForm = class(TForm)

ToolBar2: TToolBar;

ToolButton13: TToolButton;

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Label1: TLabel;

Label2: TLabel;

DBLookupComboboxEh1: TDBLookupComboboxEh;

DBLookupComboboxEh2: TDBLookupComboboxEh;

DBEditEh1: TDBEditEh;

DBEditEh2: TDBEditEh;

DBEditEh3: TDBEditEh;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

DBDateTimeEditEh1: TDBDateTimeEditEh;

Label7: TLabel;

DBLookupComboboxEh3: TDBLookupComboboxEh;

GroupBox1: TGroupBox;

Label26: TLabel;

Label27: TLabel;

Label28: TLabel;

Label29: TLabel;

Label30: TLabel;

DBEditEh30: TDBEditEh;

DBEditEh31: TDBEditEh;

DBLookupComboboxEh9: TDBLookupComboboxEh;

DBDateTimeEditEh3: TDBDateTimeEditEh;

DBEditEh32: TDBEditEh;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

DBLookupComboboxEh4: TDBLookupComboboxEh;

DBLookupComboboxEh5: TDBLookupComboboxEh;

DBLookupComboboxEh6: TDBLookupComboboxEh;

procedure ToolButton13Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

{ Private declarations }

public

{ Public declarations }

end;

var

InfoForm: TInfoForm;

implementation

uses DataModule, DataModuleSpr;

{$R *.dfm}

procedure TInfoForm.ToolButton13Click(Sender: TObject);

begin

close;

end;

procedure TInfoForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action := caFree;

end;

end.

unit Osm;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, ToolWin, Grids, DBGridEh, StdCtrls, Mask, DBCtrlsEh;


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

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