Смекни!
smekni.com

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

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” были реализованы следующие функции:

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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