бесплатные рефераты

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

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 Цель испытаний

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

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

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

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

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

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

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

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

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

5.2 Методы отладки программы

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

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

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

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

5.3 Тестирование программы

Тестирование программы включало в себя несколько компонентов:

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

- тестирование методов обработки данных;

- тестирование оптимизационных алгоритмов.

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

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

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

5.4 Выявление ошибок

Выявление ошибок иначе называют тестированием. Некоторые ошибки проявляются после первого же запуска программы на выполнение, а некоторые проявляются в чисто случайные моменты работы программы. Эти ошибки считаются самыми сложными.

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

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

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

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

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

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

Отладка программы осуществлялась встроенными средствами среды Delphi. С помощью встроенного компилятора были обнаружены синтаксические ошибки, которые тут же исправлялись с помощью встроенного редактора текста программы.

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

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

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

6. Область применения программы

6.1 Назначение программы

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

На данный момент пробная версия программы проходит апробацию в УВД Миноблисполкома.

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

6.2 Условия применения

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

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

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

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

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

6.3 Справочная система

Справочная система имеет три раздела:

· Работа с данными

· Поиск информации

· Выходная информация

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

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

В разделе “Выходная информация” находится информация по формированию отчета.

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

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

На рисунке 6.1 представлено содержание справочной системы приложения.

Рисунок 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

Страницы: 1, 2, 3


© 2010 РЕФЕРАТЫ