Файл: Проектирование реализации операций бизнес-процесса «Управление персоналом (Глава. Аналитическая часть).pdf
Добавлен: 30.03.2023
Просмотров: 238
Скачиваний: 1
СОДЕРЖАНИЕ
1.1. Выбор комплекса задач автоматизации
2.1. Информационная модель и её описание
2.2. Характеристика нормативно-справочной, входной и оперативной информации
2.3. Характеристика результатной информации
2.4. Общие положения (дерево функций и сценарий диалога)
2.5. Характеристика базы данных
2.6. Структурная схема пакета (дерево вызова программных модулей)
2.7 Описание программных модулей
begin
Word :=CreateOleObject('Word.Application');
Word.Documents.Add(ExtractFilePath(ParamStr(0))+'shablon\'+DbGrid2.DataSource.DataSet.FieldByName('path').AsString);
Word.visible:=true;
end
else
begin
Showmessage(' Файл '+DbGrid2.DataSource.DataSet.FieldByName('path').AsString+' ненайден в папкеshablon.'+#10+#13+'Проверьте правильностьназванияфайла и егоналичие в указаннойпапке.');
end;
end;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
n7.Click;
n8.Click;
end;
procedure TForm1.FormResize(Sender: TObject);
begin
panel1.Width:=Round((form1.Width-50)*0.5);
panel2.Width:=Round((form1.Width-50)*0.5);
panel1.Width:=Round(form1.Width*0.5);
BitBtn3.Left:=Round(panel5.Width*0.5)-Round(Bitbtn3.Width*0.5);
DbGrid2.Columns[0].Width:=ROUND(DbGrid2.Width*0.65);
DbGrid2.Columns[1].Width:=ROUND(DbGrid2.Width*0.26);
DbGrid1.Columns[0].Width:=ROUND(DbGrid1.Width*0.65);
DbGrid1.Columns[1].Width:=ROUND(DbGrid1.Width*0.26);
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
const
wdReplaceNone = 0;
wdReplaceOne = 1;
wdReplaceAll = 2;
wdFindContinue = 1;
var
Word, wdRng:Variant;
begin
//проверкауказанлифайл
if DbGrid2.DataSource.DataSet.FieldByName('path').IsNull then begin ShowMessage('Длявыбранногошаблонадоговоранеуказаноимяфайла'); exit; end;
//
if not fileExists(ExtractFilePath(ParamStr(0))+'shablon\'+DbGrid2.DataSource.DataSet.FieldByName('path').AsString) then
begin
Showmessage(' Файл '+DbGrid2.DataSource.DataSet.FieldByName('path').AsString+' ненайден в папкеshablon.'+#10+#13+'Проверьте правильностьназванияфайла и егоналичие в указаннойпапке.');
exit;
end;
//запрашиваемданные
With AdoQuery1 do
begin
close;
SQl.clear;
SQL.Add('SELECT Dogovor.*, Employer.*, Staff.*, TypeDoc.*, Worker.*, TypeWork.*, StaffDoc.*');
SQL.Add('FROM ((TypeWork INNER JOIN (Staff INNER JOIN (Worker INNER JOIN (Employer INNER JOIN Dogovor ON Employer.Id = Dogovor.Employer) ON Worker.Id = Dogovor.Worker) ON Staff.Id = Dogovor.Staff) ');
SQL.add(' ON TypeWork.Id = Dogovor.TypeWork) INNER JOIN StaffDoc ON Staff.Id = StaffDoc.Staff) INNER JOIN TypeDoc ON StaffDoc.TypeDoc = TypeDoc.Id');
SQL.Add(' WHERE (((Worker.Id)= :id ))');
Parameters.ParamByName('id').Value:=DbGrid1.DataSource.DataSet.FieldByName('id').AsString;
open;
end;
IfAdoQuery1.RecordCount=0 thenbeginShowMessage('Для выбранного работника в базе данны не добавлен договор.'+#10+#13+'Добавьте трудовой договор с помощью SAP'); exit; end;
Word :=CreateOleObject('Word.Application');
Word.Documents.Add(ExtractFilePath(ParamStr(0))+'shablon\'+DbGrid2.DataSource.DataSet.FieldByName('path').AsString);
Word.visible:=true;
wdRng:=Word.ActiveDocument.Range;
//Настройка поиска и замены.
wdRng.Find.ClearFormatting;
wdRng.Find.Forward := True;
wdRng.Find.Wrap := wdFindContinue;
//Учёт регистра букв: True - учитывать, False - не учитывать.
wdRng.Find.MatchCase := False;
//True - поиск шаблона как целого слова, иначе - False.
wdRng.Find.MatchWholeWord := False;
wdRng.Find.Text := '<ФИО работника>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('FIO').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Номер>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('NumDogovor').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Дата договора>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('DateDogovor').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Город>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('City').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Полное наименование>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('FullCaption').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Сокращенное наименование>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('ShortCaption').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Должность руководителя>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('DirectorStaff').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<ФИО руководителя>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('DirectorFIO').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Документ руководителя>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('DocCaption').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Должность>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('Staff.caption').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Срок договора>';
if not AdoQuery1.FieldByName('NotLimitDate').isNull then
wdRng.Find.Replacement.Text := 'на неопределенный срок'
else
wdRng.Find.Replacement.Text := 'насрок с '+AdoQuery1.FieldByName('BeginDate').AsString+'по'+AdoQuery1.FieldByName('EndDate').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Испытание>';
if not AdoQuery1.FieldByName('NotTest').isNull then
wdRng.Find.Replacement.Text := 'Работник принимается без испытания'
else
wdRng.Find.Replacement.Text := 'Работнику устанавливается испытание продолжительностью '+AdoQuery1.FieldByName('TestPeriod').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Дата начала работы>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('BeginWorkDate').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Дата начала действия трудового договора>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('BeginDogovorDate').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Типработы>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('TypeWork.caption').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Наименование документа>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('TypeDoc.Caption').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Датаномер>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('StaffDoc.DocDate').AsString+' № '+AdoQuery1.FieldByName('StaffDoc.DocNumber').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Заголовок>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('DocHeader').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<ФИО начальника>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('DirectorFIO').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Дополнительный отпуск>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('AddHoliday').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Основной отпуск>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('BaseHoliday').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Оклад>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('Salary').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);
wdRng.Find.Text := '<Условия премии>';
wdRng.Find.Replacement.Text := AdoQuery1.FieldByName('CondCalcPrem').AsString;
wdRng.Find.Execute(Replace:=wdReplaceAll);