Файл: Проектирование реализации операций бизнес-процесса Управление персоналом.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 17.05.2023

Просмотров: 270

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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;

If AdoQuery1.RecordCount=0 then begin ShowMessage('Для выбранного работника в базе данны не добавлен договор.'+#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;