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;
Полный листинг программы представлен в приложении А.
... к информации с грифом "особой важности" и "совершенно секретно" данные лица не допускаются. Руководители федеральных органов государственной власти, наделенные полномочиями по отнесению документов к государственной тайне, и руководители органов государственной власти субъектов Российской Федерации, заинтересованные в допуске лиц без гражданства к государственной гине, вносят в Правительство РФ ...
... работа по выявлению сведений о лицах немецкой национальности, репрессированных, а также находившихся в ссылке, высылке, на спецпоселении на территории Читинской области. 2. компьютерное обеспечение отделов предприятия Основным направлением работ Вычислительного центра является сопровождение программных продуктов, накопление и обработка информации, поступающей из горрайорганов ОВД, служб и ...
... . Употребление спиртных напитков, наркотических средств или психотропных веществ среди осужденных продолжает оставаться одной из основных причин, отрицательно сказывающихся на обстановке в ИК, и составляет в структуре злостных нарушений 42,9%. 3 МЕРЫ ПО ПРЕДУПРЕЖДЕНИЮ ПРАВОНАРУШЕНИЙ В МЕСТАХ ЛИШЕНИЯ СВОБОДЫ Профилактика это не только деятельность, направленная на выявление и ...
... путем установления рациональной организации, форм и методов работы с документами, унификации документов. Начальнику ОДО подчиняются должностные лица и работники отдела документационного обеспечения управления Костромской таможни(это видно из схемы 1 составленной автором): · Главный государственный таможенный инспектор ОДО: выполняет основные функции пресс-секретаря таможни и секретаря ...
0 комментариев