Автоматизированный учет дисциплинарной практики в УВД

 

Содержание


Введение

1. Постановка задачи

1.1 Организационно-экономическая сущность задачи

1.2 Структура входных и выходных данных

2. Вычислительная система

2.1 Используемые технические средства

2.2 Инструменты разработки

3. Проектирование задачи

3.1 Описание модели данных

3.2 Объектно-ориентированный анализ

3.3 Концептуальный прототип

4 Описание программы

4.1 Концептуальный прототип

4.2 Организация данных

4.3 Реализация функций

5. Тестирование

5.1 Тесты на использование

5.2 Функциональное тестирование

5.3 Полное тестирование

6. Описание применения

6.1 Требования к программному и аппаратному обеспечению компьютера

6.2 Требования к приложению

6.3 Функциональное назначение и область применения программы

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

Заключение

Приложение


Введение


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

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

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

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

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

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

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

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

Данная пояснительная записка является полным описанием разработанного ПС и разбита на ряд глав по содержательному признаку.

Первый раздел “Постановка задачи” исследует предметную область; определяет круг задач, которые должны быть автоматизированы или модифицированы; включает описание бизнес-процессов; определяет функциональные требования и как решается задача в настоящее время. Также первый раздел включает модель, которая отображает функциональную структуру объектов, то есть производимые ими действия и связи между этими действиями в виде диаграммы вариантов использования, диаграммы деятельности, диаграммы компонентов.

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

В разделе “Проектирование задачи ” находятся сведения о требованиях к пользовательскому интерфейсу. Описывается структура пользовательского интерфейса - система меню, диалоговых окон и элементов управления. В разделе находятся сведения о логической и физической структуре данных в контексте среды разработки. Содержится информация о разработанных функциях, которые закреплены за определенными элементами управления, структура и описание функций пользователя в рамках среды разрабатываемого приложения. Содержится информация о взаимосвязях функций, о составе модулей и принципах объединения функций в модули. В конце раздела приводятся листинги всех модулей с комментариями и указанием элементов управления, которые инициируют их выполнение.

Четвертый раздел “Описание программного средства” содержит общие сведения об обозначении и именовании приложения, программное обеспечение, необходимое для функционирования программы, принципы инсталляции программного средства. Находятся сведения о классах решаемых задач и назначение программы. Также четвертый раздел включает информацию о входных и выходных данных, их характер, организацию, формат и описание.

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

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

Приложения к пояснительной записке содержат текст программы и отчет журнала “Приложение”.

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


1 Постановка задачи


1.1    Организационно-экономическая сущность задачи


Разрабатываемый программный продукт на тему: “Автоматизация учета правонарушений в УВД Миноблисполкома”, предназначен для учета сотрудников УВД, нарушивших дисциплинарные нормы.

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

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

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

Разрабатываемая программа будет использоваться в УВД Миноблисполкома постоянно. Это обусловлено тем, что благодаря ей будет осуществлен контроль работников организации. Широкое применение получат функции автоматического снятия взыскания и автоматизации ввода информации.

Исходя из анализа предметной области разрабатываемое приложение должно содержать:

- БД сотрудников, получивших взыскания;

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

- выбор должности, звания, областей, службы и подразделения из блока;

- запросы по блокам по фамилии, области, службе, подразделению, по должностям и по приказу;

- отчеты по запросам с возможностью предварительного просмотра и выводом на печать;

- автоматическое снятие взыскания через год;

- досрочное снятие взыскания.

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

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

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

- структура алгоритма не должна быть слишком сложной;

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

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

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

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


1.2    Структура входных и выходных данных


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

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

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

- ФИО;

- звание;

- область ил УВД;

- служба;

- подразделение;

- должность;

- взыскание;

- чей приказ;

- номер приказа;

- дата приказа;

- краткое описание проступка.

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

Выходными документами в данной программе являются отчёты, а также данные, отображаемые в DBGrid. По нажатию на кнопку “Отчет” или подменю “Печать” пользователь может вывести отчёт на печать или предварительно его просмотреть, пример отчета приведен на рисунке 1. В отчётах по запросам будут входить только те записи, которые удовлетворяют заданному критерию.

Для создания отчетов используется технология Rave Reports, которая является авторизованным членом Комитета открытых систем и разрабатывает программное обеспечение для Delphi. В ее основе лежит идея отделения процесса разработки от процесса создания отчета за счет использования промежуточного документа, который называется проектом отчета. Проект отчета создается с помощью среды Rave (Report Authoring Visual Environment - визуальная среда автора отчета), а в создаваемую программу внедряется так называемая машина генератора отчета, которая по данным, полученным из файла проекта, создает документ отчета. Пример отчета











 

Рисунок - 1

2. Вычислительная система


2.1 Используемые технические средства


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

- процессор: Pentium II 400 МГц и выше;

объем оперативной памяти: 32 Мбайт и выше;

- операционная система: Windows 98, Windows Me, Windows XP;

- свободное место на жестком диске 20 Мбайт и выше;

- наличие монитора VGA с разрешением не менее 800x600 точек;

- наличие манипулятора “мышь”;

- CD-ROM 10х;

- клавиатура IBM PC любой модификации;

- принтер.


2.2 Инструменты разработки


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

- операционная система Microsoft Windows XP Professional;

- интегрированная среда Delphi 7;

- пакет Rational Rose.

Возможности операционной системы Windows XP Professional позволяют использовать ее как основную операционную систему для современных настольных компьютеров и компьютеров Notebook, используемых на предприятиях любого типа. При создании этой системы корпорация Майкрософт сохранила все полезные возможности Windows 98 - технологию Plug and Play, простой и понятный пользовательский интерфейс, широкие возможности управления. Кроме того, их дополнили система безопасности, средства управления и обеспечения надежности, характерные для системы Windows NT. Развертывание системы Windows XP Professional как на одном компьютере, так и в рамках всемирной сети позволяет повысить эффективность использования компьютерных технологий при одновременном снижении общей стоимости владения.

Delphi - это мощная среда визуального, объектно-ориентированного программирования, позволяющая решать множество задач, в частности это комбинация нескольких важнейших технологий:

- Высокопроизводительный компилятор в машинный код;

- объектно-ориентированная модель компонент;

- визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов;

- Масштабируемые средства для построения баз данных.

Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре “клиент-сервер”. Этот компилятор в настоящее время является самым быстрым в мире, его скорость компиляции составляет свыше 120 тысяч строк в минуту на компьютере 486DX33. Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения (4GL) и в то же время обеспечивает качество кода, характерного для компилятора 3GL.

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

Объекты БД в Delphi основаны на SQL и включают в себя полную мощь Borland Database Engine. В состав Delphi также включен Borland SQL Link, поэтому доступ к СУБД Oracle, Sybase, Informix и InterBase происходит с высокой эффективностью. Кроме того, Delphi включает в себя локальный сервер Interbase для того, чтобы можно было разработать расширяемые на любые внешние SQL-сервера приложения в офлайновом режиме.

Данный дипломный проект был выполнен на языке программирования Borland Delphi 7.0 на основе такой технологии как ADO. Таблицы и отчеты разрабатывались в приложении Rave Reports. Для более понятного и удобного интерфейса использовались такие компоненты как DBGrid, DBedit, Dbtext. Запросы создавались с помощью компонента ADOQuery, а доступ к набору данных через ADOTable. А отчёты на основе запросов с помощью компонентов RvQueryConnection.

CASE-средство Rational Rose было выбрано, так как оно позволяет разрабатывать проектную документацию в виде диаграмм и спецификаций. Rational Rose - CASE-средство фирмы Rational Software Corporation - предназначено для автоматизации этапов анализа и проектирования ПО, а также для генерации кодов на различных языках и выпуска проектной документации. Rational Rose использует синтез-методологию объектно-ориентированного анализа и проектирования, основанную на подходах трех ведущих специалистов в данной области: Буча, Рамбо и Джекобсона. Разработанная ими универсальная нотация для моделирования объектов (UML - Unified Modeling Language) претендует на роль стандарта в области объектно-ориентированного анализа и проектирования. Кроме того, Rational Rose содержит средства реинжиниринга программ, обеспечивающие повторное использование программных компонент в новых проектах.

3. Проектирование задачи


3.1 Описание модели данных


Теоретической основой этой модели стала теория отношений, основу которой заложили два логика - американец Чарльз Содерс Пирс (1839-1914) и немец Эрнст Шредер (1841-1902). В руководствах по теории отношений было показано, что множество отношений замкнуто относительно некоторых специальных операций, то есть образует вместе с этими операциями абстрактную алгебру. Это важнейшее свойство отношений было использовано в реляционной модели для разработки языка манипулирования данными, связанного с исходной алгеброй. Американский математик Э. Ф. Кодд в 1970 году впервые сформулировал основные понятия и ограничения реляционной модели, ограничив набор операций в ней семью основными и одной дополнительной операцией. Предложения Кодда были настолько эффективны для систем баз данных, что за эту модель он был удостоен престижной премии Тьюринга в области теоретических основ вычислительной техники.

Основной структурой данных в модели является отношение, именно поэтому модель получила название реляционной (от английского relation - отношение).

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

Структурная часть описывает, какие объекты рассматриваются реляционной моделью. Определяется, что единственной структурой данных, используемой в реляционной модели, являются n-арные отношения.

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

Манипуляционная часть описывает два эквивалентных способа манипулирования реляционными данными - реляционную алгебру и реляционное исчисление.

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

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

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

- домен определен на некотором простом типе данных или на другом домене;

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

- домен несет определенную смысловую нагрузку.

Число атрибутов в отношении называют степенью или арностью отношения.

Мощность множества кортежей отношения называют мощностью отношения.

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

Реляционной базой данных называется набор отношений.

Схемой реляционной базы данных называется набор заголовков входящих в неё отношений.


3.2 Объектно-ориентированный анализ


Основным классом, использующемся в проекте, будет класс TForm. Данный класс будет использоваться для размещения на нем компонентов - элементов создаваемого приложения. Класс TForm будет включать следующие классы, предназначенные для создания интерфейса в программе: TLabel, TEdit, TMemo, TButton, TStringGrid и другие. Класс используется для обозначения множества объектов, которые обладают одинаковой структурой, поведением и отношениями с объектами из других классов.

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

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

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

На главной форме имеется три вкладки:

на первой компонент DataSource1 типа TDataSource является промежуточным звеном между компонентом ADOQuery1 типа ADOQuery, соединенным с таблицей БД сотрудников Аппарата УВД, и визуальным компонентом DBGrid1, с помощью которого пользователь взаимодействует с этой таблицей; на второй компонент DataSource2 типа TDataSource является промежуточным звеном между компонентом ADOQuery2 типа ADOQuery, соединенным с таблицей БД сотрудников всех областей УВД и визуальным компонентом DBGrid2, с помощью которого пользователь взаимодействует с этой таблицей; на третьей компонент DataSource3 типа TDataSource является промежуточным звеном между компонентом ADOTable2 типа ADOTable, соединенным с таблицей БД сотрудников Аппарата УВД, и визуальным компонентом DBGrid3, с помощью которого пользователь взаимодействует с этой таблицей;

Компоненты DBGrid1, DBGrid2, DBGrid3 отображает содержимое таблицы БД в виде сетки, в которой столбцы соответствуют полям, а строки - записям таблицы. Эти компоненты связываются со своим источниками данных через свойство DataSource. Аналогично взаимодействует DBGrid1 формы поиска данных с компонентом ADOQuery3 через DataSource4.

Для компонента ADOConnection1 также с помощью свойства ConnectionString нужно установить соединение с хранилищем данных.

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

Таблица 3.2 - Значения свойств компонентов

Компонент

Свойства

Значения

ADOConnection1

ConnectionString

Pr.mdb

ADOQuery1

Connection

ADOConnection1

ADOQuery2

Connection

ADOConnection1

ADOQuery3

Connection

ADOConnection1

ADOTable2

Connection

ADOConnection1

ADOTable1

Connection

ADOConnection1

DataSource1

DataSet

ADOQuery1

DataSource2

DataSet

ADOQuery2

DataSource3

DataSet

ADOTable2

DataSource4

DataSet

ADOQuery3

DBGrid1 (Главная форма)

DataSource

DataSource1

DBGrid2 (Главная форма)

DataSource

DataSource2

DBGrid3 (Главная форма)

DataSource

DataSource3

DBGrid1 (Форма поиска данных)

DataSource

dsrType


Диаграмма компонентов представлена в графической части на листе 3.


3.3 Концептуальный прототип


Разработанный программный продукт “Учет дисциплинарной практики в УВД Миноблисполкома” представляет собой файл “DisPract.exe”.

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


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

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

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

Для редактирования сотрудника нужно нажать кнопку “Редактирование записи”, после чего на экране появится окно “Редактирование записи” аналогичное окну представленному на рисунке 3.2.


Рисунок 3.2 - Окно “Добавление записи”


Для удаления записи нажмите кнопку “Удаление записи”, после чего программа спросит о том, действительно ли вы хотите удалить запись, если вы нажмите “Ok”, то запись будет удалена.

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

Досрочное снятие сотрудника осуществляется двумя способами:

- выбрать необходимую запись на нужной вкладке и нажать “Файл-Досрочное снятие”;

- выбрать “Поиск-по фамилии”, затем ввести фамилию сотрудника, которого необходимо снять с учета и нажать кнопку “Выбрать”, после чего в новом окне нажать на кнопку “Досрочное снятие”.

Далее программа откроет новое окно, где можно ввести новую дату и номер снятия приказа (рисунок 3.3). После внесения изменений нажмите на кнопку “Записать” и внесенные изменения применятся к записи и вы можете это увидеть, перейдя на третью вкладку главного окна.


Рисунок 3.3 - Окно “Досрочное снятие”


Данный программный продукт осуществляет поиск по фамилии, по званию, по области, по службе, по подразделения, по должности и по месту приказа. Для выполнения поиска по фамилии следует выбрать “Поиск-по фамилии”, после выбора откроется окно ( рисунок 3.4), где необходимо ввести фамилию или выбрать ее из списка.

После выбора фамилии программа выдаст результата поиска в новом окне (рис. 3.5) Если ни одной записи не найдено, то программа выдаст сообщение, в котором будет сказано, что в Базе данных нет сотрудников, удовлетворяющих критерию запроса. Аналогично действуют и выше перечисленные запросы.


Рис. 3.3.4 Окно “Выбор фамилии для поиска”


Рис. 3.3.5 Окно “Выбор фамилии для поиска”


3.4 Функции: логическая и физическая организация и элементы управления


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

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

Для реализации данной функции было создано ряд процедур, которые представлены ниже:

·        процедура сортировки информации областников или аппарата управления и автоматическое снятие взыскания

procedure TForm2.FormActivate(Sender: TObject);

var k:integer;

begin

with datamodule4.ADOQuery1 do begin

 Close;

 SQL.Clear;

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

 sql.Add('where Rugo="Аппарат УВД"');

 Open;

 if RecordCount <> 0 then

 begin

 datamodule4.DataSource1.DataSet :=datamodule4.adoquery1;

 end

 else

 begin

 end;

end;

with datamodule4.ADOQuery2 do begin

 Close;

 SQL.Clear;

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

 sql.Add('where Rugo<>"Аппарат УВД"');

 Open;

 if RecordCount <> 0 then

 begin

 datamodule4.DataSource2.DataSet :=datamodule4.adoquery2;

 end

 else

 begin

 end;

end;

datamodule4.ADOTable1.Open;

datamodule4.ADOTable2.Open;

while not datamodule4.ADOTable1.Eof do

begin

k:=0;

if datamodule4.ADOTable1dataspr.Value<=date() then

begin

datamodule4.ADOTable2.Insert;

datamodule4.ADOTable2['Fam']:=datamodule4.ADOTable1fam.Value;

datamodule4.ADOTable2['Imia']:=datamodule4.ADOTable1imia.Value;

datamodule4.ADOTable2['otc']:=datamodule4.ADOTable1otc.Value;

datamodule4.ADOTable2['zvanie']:=datamodule4.ADOTable1zvanie.Value;

datamodule4.ADOTable2['rugo']:=datamodule4.ADOTable1rugo.Value;

datamodule4.ADOTable2['sl']:=datamodule4.ADOTable1sl.Value;

datamodule4.ADOTable2['podr']:=datamodule4.ADOTable1podr.Value;

datamodule4.ADOTable2['dolj']:=datamodule4.ADOTable1dolj.Value;

datamodule4.ADOTable2['vzisk']:=datamodule4.ADOTable1vzisk.Value;

datamodule4.ADOTable2['chpr']:=datamodule4.ADOTable1chpr.Value;

datamodule4.ADOTable2['nompr']:=datamodule4.ADOTable1nompr.Value;

datamodule4.ADOTable2['datapr']:=datamodule4.ADOTable1datapr.Value;

datamodule4.ADOTable2['opis']:=datamodule4.ADOTable1opis.Value;

datamodule4.ADOTable2['nomspr']:=datamodule4.ADOTable1nomspr.Value;

datamodule4.ADOTable2['dataspr']:=datamodule4.ADOTable1dataspr.Value;

datamodule4.ADOTable2.Post;

datamodule4.ADOTable1.Delete;

k:=1;

end;

datamodule4.ADOTable1.Next;

if k=1 then datamodule4.ADOTable1.Prior;

end;

datamodule4.ADOTable1.Close;

datamodule4.ADOTable2.Close;

datamodule4.ADOTable2.Active:=true;

end;

·        процедура поиска по фамилии (аналогично выполняются и другие запросы)

procedure TForm2.N6Click(Sender: TObject);

var

fam: string[30];

begin

form6.Caption:='Поиск по фамилии';

form6.bsSkinButton2.Visible:=true;

if pagecontrol1.ActivePage=tabsheet1 then begin

fam:=InputBox('Выборка информации из БД','Укажите фамилию, по которой необходимо выполнить поиск', '');

if fam<> '' then

begin

with datamodule4.ADOQuery3 do begin

 Close;

 SQL.Clear; //очищение предыдущего запроса

 SQL.Add('select * from Pract'); //выбирает все данные из таблицы Sotr1

 SQL.Add('where (Fam like "'+fam+ '%") and (Rugo="Аппарат УВД")'); //выбор данных из таблицы, где

 Open;

 if RecordCount <> 0 then //чтение записей пока не дойдет до последней

 begin

 datamodule4.DataSource4.DataSet:=datamodule4.adoquery3;

 end

 else

 begin

 ShowMessage('В БД сотрудников нет записей, удовлетворяющих' +

 #13 + 'критерию запроса.'); exit;

 end;

end;

end;

end;

if pagecontrol1.ActivePage=tabsheet2 then begin

fam:=InputBox('Выборка информации из БД','Укажите фамилию, по которой необходимо выполнить поиск', '');

if fam<> '' then

begin

with datamodule4.ADOQuery3 do begin

 Close;

 SQL.Clear; //очищение предыдущего запроса

 SQL.Add('select * from Pract'); //выбирает все данные из таблицы Sotr1

 SQL.Add('where (Fam like "'+fam+ '%") and (Rugo<>"Аппарат УВД")'); //выбор данных из таблицы, где

 Open;

 if RecordCount <> 0 then //чтение записей пока не дойдет до последней

 begin

 datamodule4.DataSource4.DataSet:=datamodule4.adoquery3;

 end

 else

 begin

 ShowMessage('В БД сотрудников нет записей, удовлетворяющих' +

 #13 + 'критерию запроса.'); exit;

 end;

end;

end;

end;

if pagecontrol1.ActivePage=tabsheet3 then begin

fam:=InputBox('Выборка информации из БД','Укажите фамилию, по которой необходимо выполнить поиск', '');

if fam<> '' then

begin

with datamodule4.ADOQuery3 do begin

 Close;

 SQL.Clear; //очищение предыдущего запроса

 SQL.Add('select * from SnVzisk'); //выбирает все данные из таблицы Sotr1

 SQL.Add('where (Fam like "'+fam+ '%")'); //выбор данных из таблицы, где

 Open;

 if RecordCount <> 0 then //чтение записей пока не дойдет до последней

 begin

 datamodule4.DataSource4.DataSet:=datamodule4.adoquery3;

 end

 else

 begin

 ShowMessage('В БД сотрудников нет записей, удовлетворяющих' +

 #13 + 'критерию запроса.'); exit;

 end;

end;

end;

end;

form6.Show;

end;

·        процедура редактирования записи

procedure TForm2.bsSkinButton3Click(Sender: TObject);

begin

if pagecontrol1.ActivePage=tabsheet1 then begin

if datamodule4.ADOQuery1.IsEmpty then exit;

form5.Show;

form5.DataSource1.DataSet:=datamodule4.ADOQuery1;

form5.DateTimePicker1.Date:=datamodule4.ADOQuery1Datapr.Value;

end;

if pagecontrol1.ActivePage=tabsheet2 then begin

if datamodule4.ADOQuery2.IsEmpty then exit;

form5.Show;

form5.DataSource1.DataSet:=datamodule4.ADOQuery2;

form5.DateTimePicker1.Date:=datamodule4.ADOQuery2Datapr.Value;

end;

if pagecontrol1.ActivePage=tabsheet3 then begin

if datamodule4.ADOtable2.IsEmpty then exit;

form5.Show;

form5.DataSource1.DataSet:=datamodule4.ADOTable2;

form5.DateTimePicker1.Date:=datamodule4.ADOTable2Datapr.Value;

end;

end;

·        процедура удаления записи

procedure TForm2.bsSkinButton2Click(Sender: TObject);

begin

if pagecontrol1.ActivePage=tabsheet1 then begin

if datamodule4.ADOQuery1.IsEmpty then exit;

if datamodule4.ADOQuery1 = nil then Exit;

 if MessageBox(0,'Вы действительно хотите удалить?','Подтверждение',

 33) <> IDOKthen Exit;

 datamodule4.ADOQuery1.Delete;

 datamodule4.ADOQuery1.Requery;

 end;

if pagecontrol1.ActivePage=tabsheet2 then begin

if datamodule4.ADOQuery2.IsEmpty then exit;

if datamodule4.ADOQuery2 = nil then Exit;

 if MessageBox(0,'Вы действительно хотите удалить?','Подтверждение',

 33) <> IDOKthen Exit;

 datamodule4.ADOQuery2.Delete;

 datamodule4.ADOQuery2.Requery;

 end;

if pagecontrol1.ActivePage=tabsheet3 then begin

if datamodule4.ADOTable2.IsEmpty then exit;

if datamodule4.ADOTable2 = nil then Exit;

 if MessageBox(0,'Вы действительно хотите удалить?','Подтверждение',

 33) <> IDOKthen Exit;

 datamodule4.ADOTable2.Delete;

 datamodule4.ADOTable2.Requery;

end;

end;

·        процедура добавления записи

procedure TForm3.Button1Click(Sender: TObject);

var s,b:string;

a:integer;

begin

s:=datetostr(datetimepicker1.Date);

a:=strtoint(copy(s,7,4));

a:=a+1;

b:=copy(s,1,6);

s:=b+inttostr(a);

datamodule4.ADOQuery1.Insert;

datamodule4.ADOQuery1['Fam']:=edit1.Text;

datamodule4.ADOQuery1['Imia']:=edit2.Text;

datamodule4.ADOQuery1['Otc']:=edit3.Text;

datamodule4.ADOQuery1['Zvanie']:=edit4.Text;

datamodule4.ADOQuery1['Rugo']:=combobox2.Text;

datamodule4.ADOQuery1['Sl']:=edit6.Text;

datamodule4.ADOQuery1['Podr']:=edit7.Text;

datamodule4.ADOQuery1['Dolj']:=edit8.Text;

datamodule4.ADOQuery1['Vzisk']:=combobox1.Text;

datamodule4.ADOQuery1['Chpr']:=combobox3.Text;

datamodule4.ADOQuery1['Nompr']:=edit11.Text;

datamodule4.ADOQuery1['Datapr']:=datetimepicker1.Date;

datamodule4.ADOQuery1['Opis']:=edit13.Text;

datamodule4.ADOQuery1['Dataspr']:=strtodate(s);

datamodule4.ADOQuery1.Post;

form3.Hide;

end;

Полный листинг программы представлен в приложении А.


4. Описание программного средства


4.1 Общие сведения


Программное средство «Автоматизация учета правонарушений в УВД Миноблисполкома» облегчает работу по ведению учета сотрудников УВД, нарушивших дисциплинарные нормы. Здесь планируется создавать отчеты и диаграммы по результатам дисциплины как по УВД так и по области в целом, вести статистику изменения показателей по сравнению с прошлым годом, все это преследует цель постоянного контроля сотрудников и принятия мер для прекращения нарушения дисциплины в УВД Миноблисполкома.

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

На компьютере, использующем разрабатываемую программу, должна быть установлена версия ОС Windows (98, 2000, XP Home Edition, XP Professional). Данное требование объясняется тем, что приложения созданные с помощью Delphi 7 рекомендуется использовать на компьютере, на котором установлена одна из перечисленных ОС.

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

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

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


4.2 Функциональное назначение


В приложении “DisPract” были реализованы следующие функции:

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

·        выбор должности, звания, областей, службы и подразделения из блока;

·        запросы по блокам по фамилии, области, службе, подразделению, по фамилии; по должностям; по приказу;

·        отчеты по запросам с возможностью предварительного просмотра и выводом на печать;

·        автоматическое снятие взыскания через год;

·        досрочное снятие взыскания.

Программный продукт хранит информацию о сотрудниках в таблицах Microsoft Office Access, это позволяет легко обмениваться данными между различными пользователями, для это необходимо скопировать в папке DisPract файл pr.mdb.



5. Программа и методика испытаний


5.1 Цель испытаний


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

В процессе отладки программы выделяются этапы:

- трансляция исходного текста программы <#"1.files/image007.gif">







Рисунок 6.1 - Структура справочной системы



ЗАКЛЮЧЕНИЕ


Результатом данной дипломной работы было создание автоматизированного учета правонарушений в УВД Миноблисполкома.

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

Программа найдет широкое применение не только среди работников отдела кадров, но и среди многих сотрудников УВД.

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

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



ЛИТЕРАТУРА


1.  Вьюкова Н.И., Галатенко В.А., Ходулев А.Б. Систематический подход к программированию.-М.: Наука., 1988. - 208 с.

2.  Калверт Ч. Delphi Энциклопедия пользователя: Пер. с англ./Чарлз Калверт.- ДиаСофт, К.:, 2000.

3.  Коннолли Т., Бегг К., Страчан А. Базы данных: Проектирование, реализация и сопровождение. Теория и практика. Издание второе, исправленное, дополненное. - Издательство “Питер”, Санкт-Петербург - 2002г.

4.  Культин Н.Б. Delphi в задачах и примерах. - БХВ-Петербург, СПб., 2004. - 288 с.: ил.

5.  Офицеров Д.В. и др. Программирование на персональных ЭВМ: Практикум: Учеб. пособие. - Мн.: Выш.шк., 1993. -256 с.

6.  Пономаренко Сергей. Базы данных в Delphi 7. Самоучитель. - Издательство «Питер», Санкт-Петербург - 2003 г.

7.  Форонов В.В. Программирование баз данных в Delphi 7. Учебный курс.-СПб.: Питер, 2006.-459 с.: ил.


ПРИЛОЖЕНИЕ А

(обязательное)

Текст программы


unit Unit1; //загрузочная форма

interface

uses

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

 Dialogs, ComCtrls, ExtCtrls, jpeg;

type

 TForm1 = class(TForm)

 Image1: TImage;

 Timer1: TTimer;

 ProgressBar1: TProgressBar;

 procedure Timer1Timer(Sender: TObject);

 procedure FormActivate(Sender: TObject);

 private

 { Private declarations }

 public

 { Public declarations }

 end;

var

 Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);

var

i,k:Integer;

begin

k:=250;

timer1.Enabled:=true;

 for i:=0 to 60 do

 begin

 ProgressBar1.Position:=ProgressBar1.Position+2;

 Sleep(30);

 if i mod 10=0 then begin

 k:=k-30;

 form1.AlphaBlendValue:=k;

 end;

 end;

ProgressBar1.Position:=0;

form2.Show;

form1.Hide;

timer1.Enabled:=false;

form2.PageControl1.ActivePage:=form2.TabSheet1;

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

timer1.Enabled:=true;

end;

end.


unit Unit2;//главная форма отображения информации

interface

uses

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

 Dialogs, StdCtrls, Buttons, ComCtrls, Grids, DBGrids, Menus, bsSkinCtrls,

 bsSkinData, BusinessSkinForm,ShellAPI;

type

 TForm2 = class(TForm)

 PageControl1: TPageControl;

 TabSheet1: TTabSheet;

 TabSheet2: TTabSheet;

 DBGrid1: TDBGrid;

 DBGrid2: TDBGrid;

 TabSheet3: TTabSheet;

 DBGrid3: TDBGrid;

 bsBusinessSkinForm1: TbsBusinessSkinForm;

 bsSkinData1: TbsSkinData;

 bsCompressedStoredSkin1: TbsCompressedStoredSkin;

 bsSkinButton1: TbsSkinButton;

 bsSkinButton2: TbsSkinButton;

 bsSkinButton3: TbsSkinButton;

 bsSkinButton4: TbsSkinButton;

 bsSkinMainMenu1: TbsSkinMainMenu;

 bsSkinMainMenuBar1: TbsSkinMainMenuBar;

 N12: TMenuItem;

 N17: TMenuItem;

 N18: TMenuItem;

 N19: TMenuItem;

 N20: TMenuItem;

 N21: TMenuItem;

 N22: TMenuItem;

 N23: TMenuItem;

 N24: TMenuItem;

 N25: TMenuItem;

 N26: TMenuItem;

 N27: TMenuItem;

 N28: TMenuItem;

 N29: TMenuItem;

 N31: TMenuItem;

 N32: TMenuItem;

 procedure BitBtn2Click(Sender: TObject);

 procedure BitBtn1Click(Sender: TObject);

 procedure FormActivate(Sender: TObject);

 procedure BitBtn3Click(Sender: TObject);

 procedure BitBtn4Click(Sender: TObject);

 procedure N3Click(Sender: TObject);

 procedure N6Click(Sender: TObject);

 procedure N7Click(Sender: TObject);

 procedure N8Click(Sender: TObject);

 procedure N9Click(Sender: TObject);

 procedure N10Click(Sender: TObject);

 procedure N11Click(Sender: TObject);

 procedure N13Click(Sender: TObject);

 procedure bsSkinButton1Click(Sender: TObject);

 procedure bsSkinButton2Click(Sender: TObject);

 procedure bsSkinButton3Click(Sender: TObject);

 procedure bsSkinButton4Click(Sender: TObject);

 procedure N20Click(Sender: TObject);

 procedure N22Click(Sender: TObject);

 procedure N23Click(Sender: TObject);

 procedure N24Click(Sender: TObject);

 procedure N25Click(Sender: TObject);

 procedure N26Click(Sender: TObject);

 procedure N32Click(Sender: TObject);

 procedure N27Click(Sender: TObject);

 procedure N17Click(Sender: TObject);

 procedure N31Click(Sender: TObject);

 procedure N18Click(Sender: TObject);

 procedure N29Click(Sender: TObject);

 private

 { Private declarations }

 public

 { Public declarations }

 end;

var

 Form2: TForm2;

implementation

uses Unit1, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9, Unit10,

 Unit11, Unit12, Unit13, Unit14, Unit15;

{$R *.dfm}

procedure TForm2.BitBtn2Click(Sender: TObject);

begin

Form1.close;

form2.Close;

form3.Close;

form5.Close;

form6.Close;

form7.Close;

form8.Close;

form9.Close;

form10.Close;

form11.close;

form12.close;

form13.close;

end;

procedure TForm2.BitBtn1Click(Sender: TObject);

begin

form3.Show;

end;

procedure TForm2.FormActivate(Sender: TObject);

var k:integer;

begin

with datamodule4.ADOQuery1 do begin

 Close;

 SQL.Clear;

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

 sql.Add('where Rugo="Аппарат УВД"');

 Open;

 if RecordCount <> 0 then

 begin

 datamodule4.DataSource1.DataSet :=datamodule4.adoquery1;

 end

 else

 begin

 end;

end;

with datamodule4.ADOQuery2 do begin

 Close;

 SQL.Clear;

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

 sql.Add('where Rugo<>"Аппарат УВД"');

 Open;

 if RecordCount <> 0 then

 begin

 datamodule4.DataSource2.DataSet :=datamodule4.adoquery2;

 end

 else

 begin

 end;

end;

datamodule4.ADOTable1.Open;

datamodule4.ADOTable2.Open;

while not datamodule4.ADOTable1.Eof do

begin

k:=0;

if datamodule4.ADOTable1dataspr.Value<=date() then

begin

datamodule4.ADOTable2.Insert;

datamodule4.ADOTable2['Fam']:=datamodule4.ADOTable1fam.Value;

datamodule4.ADOTable2['Imia']:=datamodule4.ADOTable1imia.Value;

datamodule4.ADOTable2['otc']:=datamodule4.ADOTable1otc.Value;

datamodule4.ADOTable2['zvanie']:=datamodule4.ADOTable1zvanie.Value;

datamodule4.ADOTable2['rugo']:=datamodule4.ADOTable1rugo.Value;

datamodule4.ADOTable2['sl']:=datamodule4.ADOTable1sl.Value;

datamodule4.ADOTable2['podr']:=datamodule4.ADOTable1podr.Value;

datamodule4.ADOTable2['dolj']:=datamodule4.ADOTable1dolj.Value;

datamodule4.ADOTable2['vzisk']:=datamodule4.ADOTable1vzisk.Value;

datamodule4.ADOTable2['chpr']:=datamodule4.ADOTable1chpr.Value;

datamodule4.ADOTable2['nompr']:=datamodule4.ADOTable1nompr.Value;

datamodule4.ADOTable2['datapr']:=datamodule4.ADOTable1datapr.Value;

datamodule4.ADOTable2['opis']:=datamodule4.ADOTable1opis.Value;

datamodule4.ADOTable2['nomspr']:=datamodule4.ADOTable1nomspr.Value;

datamodule4.ADOTable2['dataspr']:=datamodule4.ADOTable1dataspr.Value;

datamodule4.ADOTable2.Post;

datamodule4.ADOTable1.Delete;

k:=1;

end;

datamodule4.ADOTable1.Next;

if k=1 then datamodule4.ADOTable1.Prior;

end;

datamodule4.ADOTable1.Close;

datamodule4.ADOTable2.Close;

datamodule4.ADOTable2.Active:=true;

end;

procedure TForm2.BitBtn3Click(Sender: TObject);

begin

if pagecontrol1.ActivePage=tabsheet1 then begin

if datamodule4.ADOQuery1.IsEmpty then exit;

form5.Show;

form5.DataSource1.DataSet:=datamodule4.ADOQuery1;

form5.DateTimePicker1.Date:=datamodule4.ADOQuery1Datapr.Value;

end;

if pagecontrol1.ActivePage=tabsheet2 then begin

if datamodule4.ADOQuery2.IsEmpty then exit;

form5.Show;

form5.DataSource1.DataSet:=datamodule4.ADOQuery2;

form5.DateTimePicker1.Date:=datamodule4.ADOQuery2Datapr.Value;

end;

if pagecontrol1.ActivePage=tabsheet3 then begin

if datamodule4.ADOtable2.IsEmpty then exit;

form5.Show;

form5.DataSource1.DataSet:=datamodule4.ADOTable2;

form5.DateTimePicker1.Date:=datamodule4.ADOTable2Datapr.Value;

end;

end;

procedure TForm2.BitBtn4Click(Sender: TObject);

begin

if pagecontrol1.ActivePage=tabsheet1 then begin

if datamodule4.ADOQuery1.IsEmpty then exit;

if datamodule4.ADOQuery1 = nil then Exit;

 if MessageBox(0,'Вы действительно хотите удалить?','Подтверждение',

 33) <> IDOKthen Exit;

 datamodule4.ADOQuery1.Delete;

 datamodule4.ADOQuery1.Requery;

 end;

if pagecontrol1.ActivePage=tabsheet2 then begin

if datamodule4.ADOQuery2.IsEmpty then exit;

if datamodule4.ADOQuery2 = nil then Exit;

 if MessageBox(0,'Вы действительно хотите удалить?','Подтверждение',

 33) <> IDOKthen Exit;

 datamodule4.ADOQuery2.Delete;

 datamodule4.ADOQuery2.Requery;

 end;

if pagecontrol1.ActivePage=tabsheet3 then begin

if datamodule4.ADOTable2.IsEmpty then exit;

if datamodule4.ADOTable2 = nil then Exit;

 if MessageBox(0,'Вы действительно хотите удалить?','Подтверждение',

 33) <> IDOKthen Exit;

 datamodule4.ADOTable2.Delete;

 datamodule4.ADOTable2.Requery;

end;

end;

procedure TForm2.N3Click(Sender: TObject);

begin

form1.Close;

form2.Close;

form3.Close;

form5.Close;

form6.Close;

form7.Close;

form8.Close;

form9.Close;

form10.Close;

form11.Close;

form12.Close;

form13.Close;

end;

procedure TForm2.N7Click(Sender: TObject);

begin

form6.Caption:='Поиск по званию';

form8.Show;

end;

procedure TForm2.N8Click(Sender: TObject);

begin

form6.Caption:='Поиск по области';

form9.show;

end;

procedure TForm2.N9Click(Sender: TObject);

begin

form6.Caption:='Поиск по службе';

form10.show;

end;

procedure TForm2.N10Click(Sender: TObject);

begin

form6.Caption:='Поиск по подразделению';

form11.show;

end;

procedure TForm2.N11Click(Sender: TObject);

begin

form6.Caption:='Поиск по должности';

form12.show;

end;

procedure TForm2.N13Click(Sender: TObject);

begin

form6.Caption:='Поиск по месту приказа';

form13.show;

end;

procedure TForm2.bsSkinButton1Click(Sender: TObject);

begin

Form1.close;

form2.Close;

form3.Close;

form5.Close;

form6.Close;

form7.Close;

form8.Close;

form9.Close;

form10.Close;

form11.close;

form12.close;

form13.close;

form14.Close;

form15.Close;

end;

procedure TForm2.bsSkinButton2Click(Sender: TObject);

begin

if pagecontrol1.ActivePage=tabsheet1 then begin

if datamodule4.ADOQuery1.IsEmpty then exit;

if datamodule4.ADOQuery1 = nil then Exit;

 if MessageBox(0,'Вы действительно хотите удалить?','Подтверждение',

 33) <> IDOKthen Exit;

 datamodule4.ADOQuery1.Delete;

 datamodule4.ADOQuery1.Requery;

 end;

if pagecontrol1.ActivePage=tabsheet2 then begin

if datamodule4.ADOQuery2.IsEmpty then exit;

if datamodule4.ADOQuery2 = nil then Exit;

 if MessageBox(0,'Вы действительно хотите удалить?','Подтверждение',

 33) <> IDOKthen Exit;

 datamodule4.ADOQuery2.Delete;

 datamodule4.ADOQuery2.Requery;

 end;

if pagecontrol1.ActivePage=tabsheet3 then begin

if datamodule4.ADOTable2.IsEmpty then exit;

if datamodule4.ADOTable2 = nil then Exit;

 if MessageBox(0,'Вы действительно хотите удалить?','Подтверждение',

 33) <> IDOKthen Exit;

 datamodule4.ADOTable2.Delete;

 datamodule4.ADOTable2.Requery;

end;

end;

procedure TForm2.bsSkinButton3Click(Sender: TObject);

begin

if pagecontrol1.ActivePage=tabsheet1 then begin

if datamodule4.ADOQuery1.IsEmpty then exit;

form5.Show;

form5.DataSource1.DataSet:=datamodule4.ADOQuery1;

form5.DateTimePicker1.Date:=datamodule4.ADOQuery1Datapr.Value;

end;

if pagecontrol1.ActivePage=tabsheet2 then begin

if datamodule4.ADOQuery2.IsEmpty then exit;

form5.Show;

form5.DataSource1.DataSet:=datamodule4.ADOQuery2;

form5.DateTimePicker1.Date:=datamodule4.ADOQuery2Datapr.Value;

end;

if pagecontrol1.ActivePage=tabsheet3 then begin

if datamodule4.ADOtable2.IsEmpty then exit;

form5.Show;

form5.DataSource1.DataSet:=datamodule4.ADOTable2;

form5.DateTimePicker1.Date:=datamodule4.ADOTable2Datapr.Value;

end;

end;

procedure TForm2.bsSkinButton4Click(Sender: TObject);

begin

form3.Show;

end;

procedure TForm2.N20Click(Sender: TObject);

begin

form1.Close;

form2.Close;

form3.Close;

form5.Close;

form6.Close;

form7.Close;

form8.Close;

form9.Close;

form10.Close;

form11.Close;

form12.Close;

form13.Close;

form14.Close;

form15.Close;

end;

procedure TForm2.N22Click(Sender: TObject);

begin

form6.Caption:='Поиск по фамилии';

form6.bsSkinButton2.Visible:=true;

form14.show;

end;

procedure TForm2.N23Click(Sender: TObject);

begin

form6.Caption:='Поиск по званию';

form8.Show;

end;

procedure TForm2.N24Click(Sender: TObject);

begin

form6.Caption:='Поиск по области';

form9.show;

end;

procedure TForm2.N25Click(Sender: TObject);

begin

form6.Caption:='Поиск по службе';

form10.show;

end;

procedure TForm2.N26Click(Sender: TObject);

begin

form6.Caption:='Поиск по подразделению';

form11.show;

end;

procedure TForm2.N32Click(Sender: TObject);

begin

form6.Caption:='Поиск по должности';

form12.show;

end;

procedure TForm2.N27Click(Sender: TObject);

begin

form6.Caption:='Поиск по месту приказа';

form13.show;

end;

procedure TForm2.N17Click(Sender: TObject);

begin

if pagecontrol1.ActivePage=tabsheet1 then begin

form7.DataSource1.DataSet:=datamodule4.ADOQuery1;

form7.Show;

end;

if pagecontrol1.ActivePage=tabsheet2 then begin

form7.DataSource1.DataSet:=datamodule4.ADOQuery2;

form7.Show;

end;

if pagecontrol1.ActivePage=tabsheet3 then begin

form7.DataSource1.DataSet:=datamodule4.ADOTable2;

form7.Show;

end;

end;

procedure TForm2.N31Click(Sender: TObject);

begin

form15.show;

end;

procedure TForm2.N18Click(Sender: TObject);

begin

if pagecontrol1.ActivePage=tabsheet1 then datamodule4.RvProject1.Execute;

if pagecontrol1.ActivePage=tabsheet2 then datamodule4.RvProject2.Execute;

end;

procedure TForm2.N29Click(Sender: TObject);

begin

shellExeCute(handle,nil,'Справка.chm',nil,nil,sw_restore);

end;

end.


unit Unit3; //форма добавления записи

interface

uses

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

 Dialogs, Menus, StdCtrls, Buttons, ComCtrls, bsSkinCtrls, bsSkinData,

 BusinessSkinForm, bsdbctrls, Mask, bsSkinBoxCtrls;

type

 TForm3 = class(TForm)

 Label2: TLabel;

 Label3: TLabel;

 Label7: TLabel;

 Label8: TLabel;

 Label9: TLabel;

 Label10: TLabel;

 Label11: TLabel;

 Edit11: TEdit;

 Edit13: TEdit;

 Edit4: TEdit;

 PopupMenu1: TPopupMenu;

 N1,N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15, N16, N17, N18, N19,N20: TMenuItem;

 ComboBox1: TComboBox;

 ComboBox2: TComboBox;

 PopupMenu2: TPopupMenu;

 N21,N22,N23,N24,N25, N26, N27, N28, N29, N30,N31,N32,N33,N34,N35,N36,N37,N38,N39,N40,N41,N42,N43,N44,N45,N46,N47,N48, N49,N50,N51,N52,N53,N54,N55,N56,N57,N58,N59,N60,N61: TMenuItem;

 DateTimePicker1: TDateTimePicker;

 ComboBox3: TComboBox;

 bsBusinessSkinForm1: TbsBusinessSkinForm;

 bsSkinData1: TbsSkinData;

 bsCompressedStoredSkin1: TbsCompressedStoredSkin;

 bsSkinButton1: TbsSkinButton;

 Label1: TLabel;

 Edit1: TEdit;

 Edit2: TEdit;

 Edit3: TEdit;

 Label4: TLabel;

 Edit6: TEdit;

 Label5: TLabel;

 Edit7: TEdit;

 Label6: TLabel;

 Edit8: TEdit;

 bsSkinButton2: TbsSkinButton;

 Label12: TLabel;

 Label13: TLabel;

 Label14: TLabel;

 procedure N2Click(Sender: TObject);

 procedure N3Click(Sender: TObject);

 procedure N4Click(Sender: TObject);

 procedure N5Click(Sender: TObject);

 procedure N6Click(Sender: TObject);

 procedure N7Click(Sender: TObject);

 procedure N8Click(Sender: TObject);

 procedure N10Click(Sender: TObject);

 procedure BitBtn1Click(Sender: TObject);

 procedure Button1Click(Sender: TObject);

 procedure FormActivate(Sender: TObject);

 procedure bsSkinButton1Click(Sender: TObject);

 procedure bsSkinButton2Click(Sender: TObject);

 private

 { Private declarations }

 public

 { Public declarations }

 end;

var

 Form3: TForm3;

implementation

uses Unit4;

{$R *.dfm}

procedure TForm3.N2Click(Sender: TObject);

begin

edit4.Text:='рядовой милиции';

end;

procedure TForm3.N3Click(Sender: TObject);

begin

edit4.Text:='младший сержант милиции';

end;

procedure TForm3.N4Click(Sender: TObject);

begin

edit4.Text:='сержант ';

end;

procedure TForm3.N5Click(Sender: TObject);

begin

edit4.Text:='старший сержат';

end;

procedure TForm3.N6Click(Sender: TObject);

begin

edit4.Text:='старшина милиции';

end;

procedure TForm3.N7Click(Sender: TObject);

begin

edit4.Text:='прапорщик';

end;

procedure TForm3.N8Click(Sender: TObject);

begin

edit4.Text:='старший прапорщик';

end;

procedure TForm3.N10Click(Sender: TObject);

begin

edit4.Text:='младший лейтенант милиции';

end;

……….

procedure TForm3.BitBtn1Click(Sender: TObject);

begin

form3.Hide;

end;

procedure TForm3.Button1Click(Sender: TObject);

var s,b:string;

a:integer;

begin

s:=datetostr(datetimepicker1.Date);

a:=strtoint(copy(s,7,4));

a:=a+1;

b:=copy(s,1,6);

s:=b+inttostr(a);

datamodule4.ADOQuery1.Insert;

datamodule4.ADOQuery1['Fam']:=edit1.Text;

datamodule4.ADOQuery1['Imia']:=edit2.Text;

datamodule4.ADOQuery1['Otc']:=edit3.Text;

datamodule4.ADOQuery1['Zvanie']:=edit4.Text;

datamodule4.ADOQuery1['Rugo']:=combobox2.Text;

datamodule4.ADOQuery1['Sl']:=edit6.Text;

datamodule4.ADOQuery1['Podr']:=edit7.Text;

datamodule4.ADOQuery1['Dolj']:=edit8.Text;

datamodule4.ADOQuery1['Vzisk']:=combobox1.Text;

datamodule4.ADOQuery1['Chpr']:=combobox3.Text;

datamodule4.ADOQuery1['Nompr']:=edit11.Text;

datamodule4.ADOQuery1['Datapr']:=datetimepicker1.Date;

datamodule4.ADOQuery1['Opis']:=edit13.Text;

datamodule4.ADOQuery1['Dataspr']:=strtodate(s);

datamodule4.ADOQuery1.Post;

form3.Hide;

end;

procedure TForm3.FormActivate(Sender: TObject);

begin

edit1.Text:='';

edit2.Text:='';

edit3.Text:='';

edit4.Text:='';

combobox1.Text:='';

edit6.Text:='';

combobox2.Text:='';

edit7.Text:='';

edit8.Text:='';

combobox3.Text:='';

edit11.Text:='';

datetimepicker1.Date:=date();

edit13.Text:='';

end;

procedure TForm3.bsSkinButton1Click(Sender: TObject);

var s,b:string;

a:integer;

begin

if (edit1.Text='') or (edit2.Text='') or (edit3.Text='') or (combobox2.Text='') or (combobox3.Text='') then

begin

ShowMessage('Введите все обязательные' +#13 + 'поля');

exit;

end

else begin

s:=datetostr(datetimepicker1.Date);

a:=strtoint(copy(s,7,4));

a:=a+1;

b:=copy(s,1,6);

s:=b+inttostr(a);

datamodule4.ADOQuery1.Insert;

datamodule4.ADOQuery1['Fam']:=edit1.Text;

datamodule4.ADOQuery1['Imia']:=edit2.Text;

datamodule4.ADOQuery1['Otc']:=edit3.Text;

datamodule4.ADOQuery1['Zvanie']:=edit4.Text;

datamodule4.ADOQuery1['Rugo']:=combobox2.Text;

datamodule4.ADOQuery1['Sl']:=edit6.Text;

datamodule4.ADOQuery1['Podr']:=edit7.Text;

datamodule4.ADOQuery1['Dolj']:=edit8.Text;

datamodule4.ADOQuery1['Vzisk']:=combobox1.Text;

datamodule4.ADOQuery1['Chpr']:=combobox3.Text;

datamodule4.ADOQuery1['Nompr']:=edit11.Text;

datamodule4.ADOQuery1['Datapr']:=datetimepicker1.Date;

datamodule4.ADOQuery1['Opis']:=edit13.Text;

datamodule4.ADOQuery1['Dataspr']:=strtodate(s);

datamodule4.ADOQuery1.Post;

form3.Hide;

end;

end;

procedure TForm3.bsSkinButton2Click(Sender: TObject);

begin

form3.Hide;

end;

end.


unit Unit4; //модуль компонент

interface

uses

 SysUtils, Classes, DB, ADODB, RpBase, RpSystem, RpRave, RpDefine, RpCon,

 RpConDS;

type

 TDataModule4 = class(TDataModule)

 ADOQuery1: TADOQuery;

 ADOQuery2: TADOQuery;

 DataSource1: TDataSource;

 DataSource2: TDataSource;

 ADOConnection1: TADOConnection;

 ADOTable1: TADOTable;

 DataSource3: TDataSource;

 ADOQuery1Fam: TWideStringField;

 ADOQuery1Imia: TWideStringField;

 ADOQuery1Otc: TWideStringField;

 ADOQuery1Zvanie: TWideStringField;

 ADOQuery1Rugo: TWideStringField;

 ADOQuery1Sl: TWideStringField;

 ADOQuery1Podr: TWideStringField;

 ADOQuery1Dolj: TWideStringField;

 ADOQuery1Vzisk: TWideStringField;

 ADOQuery1Chpr: TWideStringField;

 ADOQuery1Nompr: TWideStringField;

 ADOQuery1Datapr: TDateTimeField;

 ADOQuery1Opis: TWideStringField;

 ADOQuery1Nomspr: TWideStringField;

 ADOQuery1Dataspr: TDateTimeField;

 ADOQuery2Fam: TWideStringField;

 ADOQuery2Imia: TWideStringField;

 ADOQuery2Otc: TWideStringField;

 ADOQuery2Zvanie: TWideStringField;

 ADOQuery2Rugo: TWideStringField;

 ADOQuery2Sl: TWideStringField;

 ADOQuery2Podr: TWideStringField;

 ADOQuery2Dolj: TWideStringField;

 ADOQuery2Vzisk: TWideStringField;

 ADOQuery2Chpr: TWideStringField;

 ADOQuery2Nompr: TWideStringField;

 ADOQuery2Datapr: TDateTimeField;

 ADOQuery2Opis: TWideStringField;

 ADOQuery2Nomspr: TWideStringField;

 ADOQuery2Dataspr: TDateTimeField;

 ADOTable1Fam: TWideStringField;

 ADOTable1Imia: TWideStringField;

 ADOTable1Otc: TWideStringField;

 ADOTable1Zvanie: TWideStringField;

 ADOTable1Rugo: TWideStringField;

 ADOTable1Sl: TWideStringField;

 ADOTable1Podr: TWideStringField;

 ADOTable1Dolj: TWideStringField;

 ADOTable1Vzisk: TWideStringField;

 ADOTable1Chpr: TWideStringField;

 ADOTable1Nompr: TWideStringField;

 ADOTable1Datapr: TDateTimeField;

 ADOTable1Opis: TWideStringField;

 ADOTable1Nomspr: TWideStringField;

 ADOTable1Dataspr: TDateTimeField;

 ADOQuery3: TADOQuery;

 DataSource4: TDataSource;

 ADOTable2: TADOTable;

 ADOTable2Fam: TWideStringField;

 ADOTable2Imia: TWideStringField;

 ADOTable2Otc: TWideStringField;

 ADOTable2Zvanie: TWideStringField;

 ADOTable2Rugo: TWideStringField;

 ADOTable2Sl: TWideStringField;

 ADOTable2Podr: TWideStringField;

 ADOTable2Dolj: TWideStringField;

 ADOTable2Vzisk: TWideStringField;

 ADOTable2Chpr: TWideStringField;

 ADOTable2Nompr: TWideStringField;

 ADOTable2Datapr: TDateTimeField;

 ADOTable2Opis: TWideStringField;

 ADOTable2Nomspr: TWideStringField;

 ADOTable2Dataspr: TDateTimeField;

 RvDataSetConnection1: TRvDataSetConnection;

 RvProject1: TRvProject;

 RvSystem1: TRvSystem;

 RvDataSetConnection2: TRvDataSetConnection;

 RvProject2: TRvProject;

 RvProject3: TRvProject;

 RvDataSetConnection3: TRvDataSetConnection;

 ADOQuery4: TADOQuery;

 private

 { Private declarations }

 public

 { Public declarations }

 end;

var

 DataModule4: TDataModule4;

implementation

{$R *.dfm}

end.


unit Unit5; //форма редактирования записи

interface

uses

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

 Dialogs, DB, StdCtrls, DBCtrls, ComCtrls, Mask, Buttons, Menus,

 bsSkinData, BusinessSkinForm, bsSkinCtrls;

type

 TForm5 = class(TForm)

 Label2: TLabel;

 Label3: TLabel;

 Label7: TLabel;

 Label8: TLabel;

 Label9: TLabel;

 Label10: TLabel;

 Label11: TLabel;

 DateTimePicker1: TDateTimePicker;

 DBEdit4: TDBEdit;

 DBComboBox1: TDBComboBox;

 DBComboBox2: TDBComboBox;

 DBEdit9: TDBEdit;

 DBEdit10: TDBEdit;

 DataSource1: TDataSource;

 bsBusinessSkinForm1: TbsBusinessSkinForm;

 bsSkinData1: TbsSkinData;

 bsCompressedStoredSkin1: TbsCompressedStoredSkin;

 Label1: TLabel;

 DBEdit1: TDBEdit;

 DBEdit2: TDBEdit;

 DBEdit3: TDBEdit;

 Label4: TLabel;

 DBEdit5: TDBEdit;

 Label5: TLabel;

 DBEdit6: TDBEdit;

 Label6: TLabel;

 DBEdit7: TDBEdit;

 bsSkinButton1: TbsSkinButton;

 bsSkinButton2: TbsSkinButton;

 DBComboBox3: TDBComboBox;

 procedure Button1Click(Sender: TObject);

 procedure BitBtn1Click(Sender: TObject);

 procedure bsSkinButton1Click(Sender: TObject);

 procedure bsSkinButton2Click(Sender: TObject);

 private

 { Private declarations }

 public

 { Public declarations }

 end;

var

 Form5: TForm5;

implementation

uses Unit4;

{$R *.dfm}

procedure TForm5.Button1Click(Sender: TObject);

begin

DataSource1.DataSet.Edit;

DataSource1.DataSet.FieldValues['Datapr']:=DateTimePicker1.Date;

DataSource1.DataSet.Post;

form5.Hide;

end;

procedure TForm5.BitBtn1Click(Sender: TObject);

begin

form5.Hide;

end;

procedure TForm5.bsSkinButton1Click(Sender: TObject);

var s,b:string;

a:integer;

begin

s:=datetostr(datetimepicker1.Date);

a:=strtoint(copy(s,7,4));

a:=a+1;

b:=copy(s,1,6);

s:=b+inttostr(a);

DataSource1.DataSet.Edit;

DataSource1.DataSet.FieldValues['Datapr']:=DateTimePicker1.Date;

DataSource1.DataSet.FieldValues['Dataspr']:=strtodate(s);

DataSource1.DataSet.Post;

form5.Hide;

end;

procedure TForm5.bsSkinButton2Click(Sender: TObject);

begin

form5.Hide;

end;

end.


unit Unit6; //форма отображения найденной информации

interface

uses

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

 Dialogs, StdCtrls, Buttons, Grids, DBGrids, bsSkinCtrls, bsSkinData,

 BusinessSkinForm;

type

 TForm6 = class(TForm)

 DBGrid1: TDBGrid;

 bsBusinessSkinForm1: TbsBusinessSkinForm;

 bsSkinData1: TbsSkinData;

 bsCompressedStoredSkin1: TbsCompressedStoredSkin;

 bsSkinButton1: TbsSkinButton;

 bsSkinButton2: TbsSkinButton;

 bsSkinButton3: TbsSkinButton;

 procedure BitBtn1Click(Sender: TObject);

 procedure BitBtn2Click(Sender: TObject);

 procedure bsSkinButton1Click(Sender: TObject);

 procedure bsSkinButton2Click(Sender: TObject);

 procedure bsSkinButton3Click(Sender: TObject);

 private

 { Private declarations }

 public

 { Public declarations }

 end;

var

 Form6: TForm6;

implementation

uses Unit4, Unit2, Unit1, Unit3, Unit5, Unit7;

{$R *.dfm}

procedure TForm6.BitBtn1Click(Sender: TObject);

begin

dbgrid1.Columns[0].Visible:=true;

dbgrid1.Columns[1].Visible:=true;

dbgrid1.Columns[2].Visible:=true;

dbgrid1.Columns[3].Visible:=true;

dbgrid1.Columns[4].Visible:=true;

dbgrid1.Columns[5].Visible:=true;

dbgrid1.Columns[6].Visible:=true;

dbgrid1.Columns[7].Visible:=true;

dbgrid1.Columns[8].Visible:=true;

dbgrid1.Columns[9].Visible:=true;

dbgrid1.Columns[10].Visible:=true;

dbgrid1.Columns[11].Visible:=true;

dbgrid1.Columns[12].Visible:=true;

form2.show;

form6.Hide;

form6.bsSkinButton2.Visible:=false;

end;


procedure TForm6.BitBtn2Click(Sender: TObject);

begin

form7.DataSource1.DataSet:=datamodule4.ADOQuery3;

form7.Show;

end;

procedure TForm6.bsSkinButton1Click(Sender: TObject);

begin

dbgrid1.Columns[0].Visible:=true;

dbgrid1.Columns[1].Visible:=true;

dbgrid1.Columns[2].Visible:=true;

dbgrid1.Columns[3].Visible:=true;

dbgrid1.Columns[4].Visible:=true;

dbgrid1.Columns[5].Visible:=true;

dbgrid1.Columns[6].Visible:=true;

dbgrid1.Columns[7].Visible:=true;

dbgrid1.Columns[8].Visible:=true;

dbgrid1.Columns[9].Visible:=true;

dbgrid1.Columns[10].Visible:=true;

dbgrid1.Columns[11].Visible:=true;

dbgrid1.Columns[12].Visible:=true;

form2.show;

form6.Hide;

form6.bsSkinButton2.Visible:=false;

end;

procedure TForm6.bsSkinButton2Click(Sender: TObject);

begin

form7.DataSource1.DataSet:=datamodule4.ADOQuery3;

form7.Show;

end;

procedure TForm6.bsSkinButton3Click(Sender: TObject);

begin

datamodule4.RvProject3.Execute;

end;

end.


unit Unit7; //форма досрочного снятия сотрудника

interface

uses

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

 Dialogs, StdCtrls, Mask, DBCtrls, DB, ComCtrls, bsSkinCtrls, bsSkinData,

 BusinessSkinForm;

type

 TForm7 = class(TForm)

 DBEdit1: TDBEdit;

 DBEdit2: TDBEdit;

 DBEdit3: TDBEdit;

 DataSource1: TDataSource;

 Edit1: TEdit;

 DateTimePicker1: TDateTimePicker;

 Label1: TLabel;

 Label2: TLabel;

 Label3: TLabel;

 Label4: TLabel;

 Label5: TLabel;

 bsBusinessSkinForm1: TbsBusinessSkinForm;

 bsSkinData1: TbsSkinData;

 bsCompressedStoredSkin1: TbsCompressedStoredSkin;

 bsBusinessSkinForm2: TbsBusinessSkinForm;

 bsSkinData2: TbsSkinData;

 bsCompressedStoredSkin2: TbsCompressedStoredSkin;

 bsBusinessSkinForm3: TbsBusinessSkinForm;

 bsSkinData3: TbsSkinData;

 bsCompressedStoredSkin3: TbsCompressedStoredSkin;

 bsBusinessSkinForm4: TbsBusinessSkinForm;

 bsSkinData4: TbsSkinData;

 bsCompressedStoredSkin4: TbsCompressedStoredSkin;

 bsSkinButton1: TbsSkinButton;

 bsSkinButton2: TbsSkinButton;

 procedure Button2Click(Sender: TObject);

 procedure Button1Click(Sender: TObject);

 procedure bsSkinButton1Click(Sender: TObject);

 procedure bsSkinButton2Click(Sender: TObject);

 private

 { Private declarations }

 public

 { Public declarations }

 end;

var

 Form7: TForm7;

implementation

uses Unit4, Unit6, Unit5;

{$R *.dfm}

procedure TForm7.Button2Click(Sender: TObject);

begin

form6.show;

form7.Hide;

end;

procedure TForm7.Button1Click(Sender: TObject);

begin

DataSource1.DataSet.Edit;

DataSource1.DataSet.FieldValues['Nomspr']:=edit1.Text;

DataSource1.DataSet.FieldValues['Dataspr']:=DateTimePicker1.Date;

DataSource1.DataSet.Post;

form7.Hide;

end;

procedure TForm7.bsSkinButton1Click(Sender: TObject);

begin

DataSource1.DataSet.Edit;

DataSource1.DataSet.FieldValues['Nomspr']:=edit1.Text;

DataSource1.DataSet.FieldValues['Dataspr']:=DateTimePicker1.Date;

DataSource1.DataSet.Post;

form7.Hide;

end;


procedure TForm7.bsSkinButton2Click(Sender: TObject);

begin

form7.Hide;

end;

end.


unit Unit8; //Поиск по званию (аналогично Unit9-по области; Unit10-по службе; Unit11-по подразделению; Unit12-по должности; Unit13-по месту приказа; Unit14-по фамилии)

interface

uses

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

 Dialogs, StdCtrls, bsSkinCtrls, bsSkinData, BusinessSkinForm;

type

 TForm8 = class(TForm)

 ComboBox1: TComboBox;

 bsBusinessSkinForm1: TbsBusinessSkinForm;

 bsSkinData1: TbsSkinData;

 bsCompressedStoredSkin1: TbsCompressedStoredSkin;

 bsSkinButton1: TbsSkinButton;

 bsSkinButton2: TbsSkinButton;

 procedure Button1Click(Sender: TObject);

 procedure FormActivate(Sender: TObject);

 procedure bsSkinButton1Click(Sender: TObject);

 procedure bsSkinButton2Click(Sender: TObject);

 private

 { Private declarations }

 public

 { Public declarations }

 end;

var

 Form8: TForm8;

implementation

uses Unit6, Unit4, Unit2, Unit3;

{$R *.dfm}

procedure TForm8.Button1Click(Sender: TObject);

var zv: string[30];

begin

form8.Hide;

form6.Caption:='Поиск по званию';

zv:=form8.ComboBox1.Text;

if Form2.PageControl1.ActivePage=form2.tabsheet1 then begin

if zv<> '' then

begin

with datamodule4.ADOQuery3 do begin

 Close;

 SQL.Clear; //очищение предыдущего запроса

 SQL.Add('select * from Pract'); //выбирает все данные из таблицы Sotr1

 SQL.Add('where (Zvanie like "'+zv+ '%") and (Rugo="Аппарат УВД")'); //выбор данных из таблицы, где

 Open;

 if RecordCount <> 0 then //чтение записей пока не дойдет до последней

 begin

 datamodule4.DataSource4.DataSet:=datamodule4.adoquery3;

 end

 else

 begin

 ShowMessage('В БД сотрудников нет записей, удовлетворяющих' +

 #13 + 'критерию запроса.'); exit;

 end;

end;

end;

end;

if form2.PageControl1.ActivePage=form2.tabsheet2 then begin

if zv<> '' then

begin

with datamodule4.ADOQuery3 do begin

 Close;

 SQL.Clear; //очищение предыдущего запроса

 SQL.Add('select * from Pract'); //выбирает все данные из таблицы Sotr1

 SQL.Add('where (Zvanie like "'+zv+ '%") and (Rugo<>"Аппарат УВД")'); //выбор данных

 Open;

 if RecordCount <> 0 then //чтение записей пока не дойдет до последней

 begin

 datamodule4.DataSource4.DataSet:=datamodule4.adoquery3;

 end

 else

 begin

 ShowMessage('В БД сотрудников нет записей, удовлетворяющих' +

 #13 + 'критерию запроса.'); exit;

 end;

end;

end;

end;

if form2.pagecontrol1.ActivePage=form2.tabsheet3 then begin

if zv<> '' then

begin

with datamodule4.ADOQuery3 do begin

 Close;

 SQL.Clear; //очищение предыдущего запроса

 SQL.Add('select * from SnVzisk'); //выбирает все данные из таблицы Sotr1

 SQL.Add('where (zvanie like "'+zv+ '%")'); //выбор данных из таблицы, где

 Open;

 if RecordCount <> 0 then //чтение записей пока не дойдет до последней

 begin

 datamodule4.DataSource4.DataSet:=datamodule4.adoquery3;

 end

 else

 begin

 ShowMessage('В БД сотрудников нет записей, удовлетворяющих' +

 #13 + 'критерию запроса.'); exit;

 end;

end;

end;

end;

form6.Show;

end;

procedure TForm8.FormActivate(Sender: TObject);

begin

combobox1.Text:='';

end;

procedure TForm8.bsSkinButton1Click(Sender: TObject);

var zv: string[30];

begin

form8.Hide;

form6.Caption:='Поиск по званию';

zv:=form8.ComboBox1.Text;

if Form2.PageControl1.ActivePage=form2.tabsheet1 then begin

if zv<> '' then

begin

form6.Show;

form6.bsSkinButton3.Visible:=true;

with datamodule4.ADOQuery4 do begin

 Close;

 SQL.Clear; //очищение предыдущего запроса

 SQL.Add('select * from Pract'); //выбирает все данные из таблицы Sotr1

 SQL.Add('where (Zvanie like "'+zv+ '%") and (Rugo="Аппарат УВД")'); //выбор данных

 Open;

 if RecordCount <> 0 then //чтение записей пока не дойдет до последней

 begin

 datamodule4.DataSource4.DataSet:=datamodule4.adoquery4;

 end

 else

 begin

 form6.hide;

 ShowMessage('В БД сотрудников нет записей, удовлетворяющих' +

 #13 + 'критерию запроса.'); exit;

 end;

end;

end;

end;

if form2.PageControl1.ActivePage=form2.tabsheet2 then begin

if zv<> '' then

begin

form6.Show;

form6.bsSkinButton3.Visible:=true;

with datamodule4.ADOQuery4 do begin

 Close;

 SQL.Clear; //очищение предыдущего запроса

 SQL.Add('select * from Pract'); //выбирает все данные из таблицы Sotr1

 SQL.Add('where (Zvanie like "'+zv+ '%") and (Rugo<>"Аппарат УВД")'); //выбор данных

 Open;

 if RecordCount <> 0 then //чтение записей пока не дойдет до последней

 begin

 datamodule4.DataSource4.DataSet:=datamodule4.adoquery4;

 end

 else

 begin

 form6.hide;

 ShowMessage('В БД сотрудников нет записей, удовлетворяющих' +

 #13 + 'критерию запроса.'); exit;

 end;

end;

end;

end;

if form2.pagecontrol1.ActivePage=form2.tabsheet3 then begin

if zv<> '' then

begin

form6.Show;

form6.bsSkinButton3.Visible:=false;

with datamodule4.ADOQuery3 do begin

 Close;

 SQL.Clear; //очищение предыдущего запроса

 SQL.Add('select * from SnVzisk'); //выбирает все данные из таблицы Sotr1

 SQL.Add('where (zvanie like "'+zv+ '%")'); //выбор данных

 Open;

 if RecordCount <> 0 then //чтение записей пока не дойдет до последней

 begin

 datamodule4.DataSource4.DataSet:=datamodule4.adoquery3;

 end

 else

 begin

 form6.hide;

 ShowMessage('В БД сотрудников нет записей, удовлетворяющих' +

 #13 + 'критерию запроса.'); exit;

 end;

end;

end;

end;

end;

procedure TForm8.bsSkinButton2Click(Sender: TObject);

begin

form8.Hide;

end;

end.


unit Unit15; //форма информации о программе

interface

uses

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

 Dialogs, StdCtrls, bsSkinCtrls, bsSkinData, BusinessSkinForm;

type

 TForm15 = class(TForm)

 bsBusinessSkinForm1: TbsBusinessSkinForm;

 bsSkinData1: TbsSkinData;

 bsCompressedStoredSkin1: TbsCompressedStoredSkin;

 bsSkinButton1: TbsSkinButton;

 Label1: TLabel;

 Label2: TLabel;

 Label3: TLabel;

 Label4: TLabel;

 procedure bsSkinButton1Click(Sender: TObject);

 private

 { Private declarations }

 public

 { Public declarations }

 end;

var

 Form15: TForm15;

implementation

{$R *.dfm}

procedure TForm15.bsSkinButton1Click(Sender: TObject);

begin

form15.Hide;

end;

end.


Содержание Введение 1. Постановка задачи 1.1 Организационно-экономическая сущность задачи 1.2 Структура входных и выходных данных 2. Вычислит

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

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

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

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

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