Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Записка Золотов.docx
Скачиваний:
4
Добавлен:
24.02.2016
Размер:
1.13 Mб
Скачать

Заключение

Разработанное автоматизированное рабочее место работника отдела кадров позволяет быстро и эффективно производить учет работников на предприятии. Избавляет от рутинных работ, связанных с заполнением данных работника (личные данные, сведения об образовании, паспортные данные, сведения трудовой книжки) в различные книги регистраций. Система проста в эксплуатации, удобна и эргономична, не требует особых знаний от пользователя в области программирования и теории баз данных. Разработаны система помощи и руководство пользователю.

Созданный для использования в отделе кадров, программно-методический комплекс, позволит:

  • повысить производительность труда;

  • экономить время;

  • автоматизировать процесс учета кадров;

  • формирование и ведение базы работников;

  • сократить время на формирование (составление) отчетов;

  • хранить информацию в безбумажном виде, на НЖМД.

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

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧЬНИКОВ

  1. Архангельский А., «Программирование в Delphi», Бином, 2000г., 1072 с.

  2. Фленов М., «Библия Delphi», БХВ Петербург: Санкт-Петербург, 2004, 882 с.

  3. Зелковиц, М., Шоу, А., Геннон, Дж. Принципы разработки программного обеспечения/Пер. с англ. – М.: Мир, 1982.-386с.

  4. Александр Леоненков, Самоучитель UML. БХВ-Петербург, 2004.-432с.

  5. Практическое руководство по программированию/ Пер. с англ. Б.Мик, П. Хит, Н.Рашби и др.; под ред. Б. Мика, П.Хит, Н.Рашби. - М.: Радиосвязь, 1986.-168с.

  6. Культин Н. Б. Основы программирования в Delphi 7.- СПб.: БХВ-Петербург, 2003. - 608 с.: ил.

  7. Яфаева, Р.Р. Лекции Программирование

  8. Кэнту М., «Delphi7: Для профессионалов», М. Кэнту — СПб.: Питер, 2004г. — 1101 с.

  9. Гофман В., А. Д. Хомоненко, «Delphi 7», СПб. : Санкт-Петербург, 2005, 576 с.

Приложение а Полный листинг

unit Main_form;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, ADODB, XPStyleActnCtrls, ActnList, ActnMan,

ActnColorMaps, ComCtrls, StdCtrls, ExtCtrls, Grids, DBGrids, Mask, Menus,

CustomizeDlg, DBCtrls,org_unit,OleServer, WordXP,dateutils,ShellApi;

type

TFirst_form = class(TForm)

Kadr_connection: TADOConnection;

XPColorMap1: TXPColorMap;

ActionManager1: TActionManager;

GroupBox1: TGroupBox;

PageControl1: TPageControl;

TabSheet1: TTabSheet;

Find_personal_table: TADOQuery;

Find_personal_src: TDataSource;

Panel1: TPanel;

Label1: TLabel;

Family_name: TEdit;

Label6: TLabel;

Label2: TLabel;

First_name: TEdit;

Button2: TButton;

Pers_result: TDBGrid;

Find_personal_tableDSDesigner: TAutoIncField;

Find_personal_tableDSDesigner2: TIntegerField;

Find_personal_tableDSDesigner3: TWideStringField;

Find_personal_tableDSDesigner4: TWideStringField;

Find_personal_tableDSDesigner5: TWideStringField;

Find_personal_tableDSDesigner6: TWideStringField;

Find_personal_tableDSDesigner7: TWideStringField;

Find_personal_tableDSDesigner8: TWideStringField;

Dolg: TEdit;

GroupBox2: TGroupBox;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

Personal_table: TADOTable;

Personal_tableDSDesigner: TAutoIncField;

Personal_tableDSDesigner2: TIntegerField;

Personal_tableDSDesigner3: TWideStringField;

Personal_tableDSDesigner4: TWideStringField;

Personal_tableDSDesigner5: TWideStringField;

Personal_tableDSDesigner6: TWideStringField;

Personal_tableDSDesigner7: TWideStringField;

Personal_tableDSDesigner8: TWideStringField;

Personal_tableDSDesigner10: TWideStringField;

Personal_tableDSDesigner11: TWideStringField;

Personal_tableDSDesigner12: TWideStringField;

Personal_tableDSDesigner13: TWideStringField;

Personal_tableDSDesigner14: TWideStringField;

Personal_SRC: TDataSource;

Personal_tableDSDesigner9: TDateTimeField;

Label3: TLabel;

Label7: TLabel;

TN: TDBEdit;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

WORK_CHARACTER: TDBComboBox;

DBNavigator1: TDBNavigator;

Label13: TLabel;

ALPHABIT: TDBEdit;

Label14: TLabel;

WORK_TYPE: TDBComboBox;

SEX: TDBComboBox;

Label15: TLabel;

N3: TMenuItem;

N4: TMenuItem;

PageControl2: TPageControl;

TabSheet2: TTabSheet;

Label16: TLabel;

FAMILY: TDBEdit;

Label17: TLabel;

F_NAME: TDBEdit;

Label18: TLabel;

L_NAME: TDBEdit;

TabSheet3: TTabSheet;

Personal_tableDSDesigner15: TDateTimeField;

Personal_tableDSDesigner16: TWideStringField;

Personal_tableDSDesigner17: TWideStringField;

Personal_tableDSDesigner1: TWideStringField;

Personal_tableDSDesigner22: TWideStringField;

Personal_tableDSDesigner18: TWideStringField;

Personal_tableDSDesigner23: TWideStringField;

Personal_tableDSDesigner19: TWideStringField;

Label19: TLabel;

DR: TDBEdit;

Label20: TLabel;

MR: TDBEdit;

Label21: TLabel;

GR: TDBComboBox;

L1: TDBEdit;

Label23: TLabel;

Label22: TLabel;

Label24: TLabel;

L1R: TDBComboBox;

L2: TDBEdit;

L2R: TDBComboBox;

TabSheet4: TTabSheet;

Label25: TLabel;

OBR: TDBComboBox;

Obraz_table: TADOTable;

Obraz_SRC: TDataSource;

Label26: TLabel;

DBGrid1: TDBGrid;

DBNavigator2: TDBNavigator;

Bevel1: TBevel;

Personal_tableDSDesigner20: TWideStringField;

Personal_tableDSDesigner21: TWideStringField;

Personal_tableDSDesigner24: TDateTimeField;

Personal_tableDSDesigner25: TWideStringField;

Label27: TLabel;

PS: TDBEdit;

Label28: TLabel;

PN: TDBEdit;

Label29: TLabel;

DV: TDBEdit;

Label30: TLabel;

KV: TDBEdit;

TabSheet5: TTabSheet;

Personal_tableDSDesigner110: TWideStringField;

Personal_tableDSDesigner26: TWideStringField;

Personal_tableDSDesigner111: TWideStringField;

Personal_tableDSDesigner27: TWideStringField;

Personal_tableDSDesigner28: TDateTimeField;

Personal_tableDSDesigner29: TWideStringField;

Personal_tableDSDesigner30: TWideStringField;

Personal_tableEmail: TWideStringField;

Personal_tableDSDesigner31: TMemoField;

Label31: TLabel;

Bevel2: TBevel;

Label32: TLabel;

I1: TDBEdit;

Label33: TLabel;

A1: TDBEdit;

Bevel3: TBevel;

Label34: TLabel;

Label35: TLabel;

I2: TDBEdit;

Label36: TLabel;

A2: TDBEdit;

Label37: TLabel;

Td: TDBEdit;

Label38: TLabel;

DBEdit6: TDBEdit;

Label39: TLabel;

DBEdit7: TDBEdit;

Label40: TLabel;

DBMemo1: TDBMemo;

Label41: TLabel;

Date_reg: TDBEdit;

Personal_tableDSDesigner32: TWideStringField;

Personal_tableDSDesigner33: TWideStringField;

Personal_tableDSDesigner34: TWideStringField;

Personal_tableDSDesigner35: TWideStringField;

Personal_tableDSDesigner36: TWideStringField;

Personal_tableDSDesigner37: TWideStringField;

Personal_tableDSDesigner38: TWideStringField;

Personal_tableDSDesigner39: TWideStringField;

Personal_tableDSDesigner40: TWideStringField;

TabSheet6: TTabSheet;

Label42: TLabel;

KZ: TDBEdit;

Label43: TLabel;

VZ: TDBComboBox;

Label44: TLabel;

Label45: TLabel;

VUS: TDBEdit;

Label46: TLabel;

Label47: TLabel;

NVK: TDBEdit;

Label48: TLabel;

Label49: TLabel;

SON: TDBEdit;

Label50: TLabel;

SS: TDBEdit;

Label51: TLabel;

OOS: TDBEdit;

Family_table: TADOTable;

Family_tableDSDesigner: TAutoIncField;

Family_tableDSDesigner2: TWideStringField;

Family_tableDSDesigner3: TWideStringField;

Family_tableDSDesigner4: TWideStringField;

Family_tableDSDesigner5: TWideStringField;

Family_tableDSDesigner6: TDateTimeField;

Family_tableLink_to: TIntegerField;

Family_SRC: TDataSource;

TabSheet7: TTabSheet;

Personal_tableDSDesigner41: TWideStringField;

SEM_POL: TDBComboBox;

Label52: TLabel;

Label53: TLabel;

DBGrid2: TDBGrid;

DBNavigator3: TDBNavigator;

Obraz_tableDSDesigner: TAutoIncField;

Obraz_tableLink_to: TIntegerField;

Obraz_tableDSDesigner2: TWideStringField;

Obraz_tableDSDesigner3: TWideStringField;

Obraz_tableDSDesigner4: TWideStringField;

Obraz_tableDSDesigner5: TWideStringField;

Obraz_tableDSDesigner6: TDateTimeField;

Obraz_tableDSDesigner7: TWideStringField;

Obraz_tableDSDesigner8: TWideStringField;

Obraz_tableDSDesigner9: TWideStringField;

Obraz_tableDSDesigner10: TWideStringField;

TabSheet8: TTabSheet;

Personal_tableDSDesigner42: TWideStringField;

Personal_tableDSDesigner43: TWideStringField;

Label54: TLabel;

PO: TDBEdit;

Label55: TLabel;

PD: TDBEdit;

TabSheet9: TTabSheet;

Priem_i_perevod: TADOTable;

Priem_i_perevod_SCR: TDataSource;

DBGrid3: TDBGrid;

DBNavigator4: TDBNavigator;

Priem_i_perevodDSDesigner: TAutoIncField;

Priem_i_perevodDSDesigner2: TDateTimeField;

Priem_i_perevodDSDesigner3: TWideStringField;

Priem_i_perevodDSDesigner4: TWideStringField;

Priem_i_perevodDSDesigner5: TWideStringField;

Priem_i_perevodDSDesigner6: TWideStringField;

Priem_i_perevodDSDesigner7: TWideStringField;

Priem_i_perevodDSDesigner8: TWideStringField;

Priem_i_perevodDSDesigner9: TWideStringField;

Priem_i_perevodDSDesigner10: TWideStringField;

Priem_i_perevodLink_to: TIntegerField;

Attest: TADOTable;

TabSheet10: TTabSheet;

Attest_SRC: TDataSource;

DBNavigator5: TDBNavigator;

DBGrid4: TDBGrid;

AttestDSDesigner: TAutoIncField;

AttestDSDesigner2: TDateTimeField;

AttestDSDesigner3: TWideStringField;

AttestDSDesigner4: TWideStringField;

AttestDSDesigner5: TWideStringField;

AttestDSDesigner6: TWideStringField;

AttestLink_to: TIntegerField;

pov_kv_table: TADOTable;

pov_kv_tableDSDesigner: TAutoIncField;

pov_kv_tableDSDesigner2: TDateTimeField;

pov_kv_tableDSDesigner3: TDateTimeField;

pov_kv_tableDSDesigner4: TWideStringField;

pov_kv_tableDSDesigner5: TWideStringField;

pov_kv_tableDSDesigner6: TWideStringField;

pov_kv_tableDSDesigner7: TWideStringField;

pov_kv_tableDSDesigner8: TDateTimeField;

pov_kv_tableDSDesigner9: TWideStringField;

pov_kv_tableLink_to: TIntegerField;

TabSheet11: TTabSheet;

pov_kv_SRC: TDataSource;

DBGrid5: TDBGrid;

DBNavigator6: TDBNavigator;

TabSheet12: TTabSheet;

prof_perepodg_table: TADOTable;

prof_perepodg_tableDSDesigner: TAutoIncField;

prof_perepodg_tableDSDesigner2: TDateTimeField;

prof_perepodg_tableDSDesigner3: TDateTimeField;

prof_perepodg_tableDSDesigner4: TWideStringField;

prof_perepodg_tableDSDesigner5: TWideStringField;

prof_perepodg_tableDSDesigner6: TWideStringField;

prof_perepodg_tableDSDesigner7: TDateTimeField;

prof_perepodg_tableDSDesigner8: TWideStringField;

prof_perepodg_tableLink_to: TIntegerField;

Prof_perepodg_SRC: TDataSource;

DBGrid6: TDBGrid;

DBNavigator7: TDBNavigator;

nagr_table: TADOTable;

Nagr_SRC: TDataSource;

nagr_tableDSDesigner: TAutoIncField;

nagr_tableDSDesigner2: TWideStringField;

nagr_tableDSDesigner3: TWideStringField;

nagr_tableDSDesigner4: TWideStringField;

nagr_tableDSDesigner5: TDateTimeField;

nagr_tableLink_to: TIntegerField;

TabSheet13: TTabSheet;

DBGrid7: TDBGrid;

DBNavigator8: TDBNavigator;

Otp_table: TADOTable;

Otp_tableDSDesigner: TAutoIncField;

Otp_tableDSDesigner2: TWideStringField;

Otp_tableDSDesigner3: TDateTimeField;

Otp_tableDSDesigner4: TDateTimeField;

Otp_tableDSDesigner5: TWideStringField;

Otp_tableDSDesigner6: TDateTimeField;

Otp_tableDSDesigner7: TDateTimeField;

Otp_tableDSDesigner8: TWideStringField;

Otp_tableLink_to: TIntegerField;

Otp_src: TDataSource;

TabSheet14: TTabSheet;

DBGrid8: TDBGrid;

DBNavigator9: TDBNavigator;

TabSheet15: TTabSheet;

Sl_table: TADOTable;

Sl_tableDSDesigner: TAutoIncField;

Sl_tableDSDesigner2: TWideStringField;

Sl_tableDSDesigner3: TWideStringField;

Sl_tableDSDesigner4: TDateTimeField;

Sl_tableDSDesigner5: TWideStringField;

Sl_tableLink_to: TIntegerField;

Sl_SRC: TDataSource;

DBGrid9: TDBGrid;

DBNavigator10: TDBNavigator;

SP: TDBComboBox;

KG: TDBComboBox;

Label56: TLabel;

DBComboBox1: TDBComboBox;

TabSheet16: TTabSheet;

Structure: TTreeView;

Otdels_table: TADOTable;

Otdels_tableDSDesigner: TAutoIncField;

Otdels_tableDSDesigner2: TWideStringField;

Otdels_tableDSDesigner3: TMemoField;

Bevel4: TBevel;

DateTimePicker1: TDateTimePicker;

DBEdit2: TDBEdit;

Personal_tableDSDesigner44: TWideStringField;

DBEdit3: TDBEdit;

DateTimePicker2: TDateTimePicker;

DBEdit4: TDBEdit;

DBEdit5: TDBEdit;

Button1: TButton;

DBEdit1: TDBEdit;

Label4: TLabel;

Personal_tableDSDesigner47: TWideStringField;

Personal_tableOD: TWideStringField;

Personal_tableOF: TWideStringField;

Personal_tablesrokOD: TIntegerField;

Personal_tablesrokOF: TIntegerField;

N5: TMenuItem;

procedure First_nameChange(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Family_nameChange(Sender: TObject);

procedure BirthdayChange(Sender: TObject);

procedure SnilsChange(Sender: TObject);

procedure DolgChange(Sender: TObject);

procedure INNChange(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure N4Click(Sender: TObject);

procedure Pers_resultCellClick(Column: TColumn);

procedure N2Click(Sender: TObject);

procedure DateTimePicker1Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure DateTimePicker2Change(Sender: TObject);

procedure N5Click(Sender: TObject);

private

procedure change_filter;

procedure refresh_structure;

{ Private declarations }

public

{ Public declarations }

Curent_org:Torg;

end;

var

First_form: TFirst_form;

implementation

uses Org_info, T2, Unit1, Unit2;

{$R *.dfm}

procedure TFirst_form.change_filter;

begin

find_personal_table.close;

Find_personal_table.Parameters.ParamByName('First_name').Value:='%'+first_name.Text+'%';

Find_personal_table.Parameters.ParamByName('Family_name').Value:='%'+Family_name.Text+'%';

Find_personal_table.Parameters.ParamByName('Dolg').Value:='%'+Dolg.Text+'%';

find_personal_table.open;

end;

procedure TFirst_form.First_nameChange(Sender: TObject);

begin

Change_filter;

end;

procedure TFirst_form.FormCreate(Sender: TObject);

begin

Personal_table.Active:=true;

Family_table.Active:=true;

Obraz_table.Active:=true;

Priem_i_perevod.Active:=true;

Pov_kv_table.Active:=true;

Prof_perepodg_table.Active:=true;

Nagr_table.Active:=true;

otp_table.Active:=true;

Attest.Active:=true;

Sl_table.Active:=true;

Change_filter;

Curent_org:=Torg.Create;

Curent_org.Read_info;

// Построение штатного дерева

//otdels_table.Active:=true;

//refresh_structure;

end;

procedure TFirst_form.Family_nameChange(Sender: TObject);

begin

Change_filter;

end;

procedure TFirst_form.BirthdayChange(Sender: TObject);

begin

Change_filter;

end;

procedure TFirst_form.SnilsChange(Sender: TObject);

begin

Change_filter;

end;

procedure TFirst_form.DolgChange(Sender: TObject);

begin

Change_filter;

end;

procedure TFirst_form.INNChange(Sender: TObject);

begin

Change_filter;

end;

procedure TFirst_form.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Personal_table.Active:=false;

end;

procedure TFirst_form.N4Click(Sender: TObject);

begin

Org_param_form.showmodal;

end;

procedure TFirst_form.Pers_resultCellClick(Column: TColumn);

var

selected:string;

begin

selected:=find_personal_table.FieldByName('Код').AsString;

personal_table.locate('Код',selected,[loCaseInsensitive]);

end;

procedure TFirst_form.N2Click(Sender: TObject);

var

NII:word;

i:word;

WORD:Twordapplication;

file_name,Unit_,Count:olevariant;

errorcode:boolean;

docname:string;

max_obr_level:string;

move_to:olevariant;

procedure bookmark_out (b_m,text:string);

var

bookmark:olevariant;

begin

Bookmark:=b_m;

WORD.ActiveDocument.Bookmarks.Item(Bookmark).Select;

Word.Selection.Text:=text;

end;

begin

// Создание формы Т-2

WORD.free;

WORD:=TWordApplication.Create(First_form);

WORD.connectkind:=ckNewInstance;

docname:='results\'+FAMILY.text+' '+F_NAME.Text+'.doc';

deletefile(docname);

copyfile(pchar(getcurrentdir+'\forms\T2.doc'),pchar(docname),errorcode);

file_name:=getcurrentdir+'\'+docname;

WORD.Documents.Open(file_name,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

bookmark_out ('Org_name',curent_org.orgname);

bookmark_out ('ALPHABIT',ALPHABIT.Text);

bookmark_out ('CHAR_WORK',WORK_CHARACTER.Text);

if sex.Text='Мужской' then bookmark_out ('SEX','М');

if sex.Text='Женский' then bookmark_out ('SEX','Ж');

bookmark_out ('TN',TN.Text);

bookmark_out ('WORK_TYPE',WORK_TYPE.Text);

bookmark_out ('Family_name',FAMILY.Text);

bookmark_out ('First_name',F_NAME.Text);

bookmark_out ('Last_name',L_NAME.Text);

bookmark_out ('DR',DR.Text);

bookmark_out ('MR',MR.Text);

bookmark_out ('GR',GR.Text);

bookmark_out ('L1',L1.Text);

bookmark_out ('L2',L2.Text);

bookmark_out ('L1R',L1R.Text);

bookmark_out ('L2R',L2R.Text);

bookmark_out ('OBR',OBR.Text);

bookmark_out ('PS',PS.Text);

bookmark_out ('PN',PN.Text);

bookmark_out ('DV',DV.Text);

bookmark_out ('PH',KV.Text);

bookmark_out ('i1',i1.Text);

bookmark_out ('i2',i2.Text);

bookmark_out ('a1',a1.Text);

bookmark_out ('a2',a2.Text);

bookmark_out ('dreg',date_reg.Text);

bookmark_out ('n_tel',td.Text);

bookmark_out ('KZ',KZ.Text);

bookmark_out ('VZ',VZ.Text);

bookmark_out ('SP',SP.Text);

bookmark_out ('VUS',VUS.Text);

bookmark_out ('NVK',NVK.Text);

bookmark_out ('SO',SON.Text);

bookmark_out ('KG',KG.Text);

bookmark_out ('SS',SS.Text);

bookmark_out ('OSV',OOS.Text);

if sex.Text = 'Мужской'then if SEM_POL.Text = 'Холост/Незамужем' then bookmark_out ('SEM_pol','Холост');

if sex.Text = 'Женский'then if SEM_POL.Text = 'Холост/Незамужем' then bookmark_out ('SEM_pol','Не замужем');

if sex.Text = 'Мужской'then if SEM_POL.Text = 'Женат/Замужем' then bookmark_out ('SEM_pol','Женат');

if sex.Text = 'Женский'then if SEM_POL.Text = 'Женат/Замужем' then bookmark_out ('SEM_pol','Замужем');

if family_table.RecordCount<>0 then family_table.FindFirst;

move_to:='Sost_sem';

Unit_:=wdCell;

Count:=1;

WORD.ActiveDocument.Bookmarks.Item(move_to).Select;

for i:=1 to family_table.RecordCount do

begin

Word.Selection.Text:=family_table.FieldByName('Степень родства').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=family_table.FieldByName('Фамилия').AsString+' '+family_table.FieldByName('Имя').AsString+' '+family_table.FieldByName('Отчество').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=family_table.FieldByName('Дата рождения').AsString;

if i<>family_table.RecordCount then begin

family_table.FindNext;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

end;

end;

if obraz_table.RecordCount<>0 then obraz_table.FindFirst;

NII:=1;

for i:=1 to obraz_table.RecordCount do

begin

if NII=2 then

if obraz_table.FieldByName('Образовательный уровень').AsString='Высшее профессиональное' then

begin

bookmark_out ('O1',obraz_table.FieldByName('Наименование образовательного учреждения').AsString);

bookmark_out ('DSN1',obraz_table.FieldByName('Серия').AsString+' '+obraz_table.FieldByName('Номер').AsString);

bookmark_out ('K1',obraz_table.FieldByName('Квалификация по диплому').AsString);

bookmark_out ('GO1',inttostr(YearOf(obraz_table.FieldByName('Дата окончания').AsDateTime)));

bookmark_out ('NS1',obraz_table.FieldByName('Направление или специальность по диплому').AsString);

NII:=NII+1;

end;

if NII=1 then

if obraz_table.FieldByName('Образовательный уровень').AsString='Высшее профессиональное' then

begin

bookmark_out ('O2',obraz_table.FieldByName('Наименование образовательного учреждения').AsString);

bookmark_out ('DSN2',obraz_table.FieldByName('Серия').AsString+' '+obraz_table.FieldByName('Номер').AsString);

bookmark_out ('K2',obraz_table.FieldByName('Квалификация по диплому').AsString);

bookmark_out ('GO2',inttostr(YearOf(obraz_table.FieldByName('Дата окончания').AsDateTime)));

bookmark_out ('NS2',obraz_table.FieldByName('Направление или специальность по диплому').AsString);

NII:=NII+1;

end;

if obraz_table.FieldByName('Образовательный уровень').AsString='Аспирантура' then

begin

bookmark_out ('PPO_T','Аспирантура');

bookmark_out ('NONU',obraz_table.FieldByName('Наименование образовательного учреждения').AsString);

bookmark_out ('UNDV',obraz_table.FieldByName('Номер').AsString+', '+obraz_table.FieldByName('Дата окончания').AsString);

bookmark_out ('GO',inttostr(YearOf(obraz_table.FieldByName('Дата окончания').AsDateTime)));

bookmark_out ('SPS',obraz_table.FieldByName('Направление или специальность по диплому').AsString);

end;

if obraz_table.FieldByName('Образовательный уровень').AsString='Адъюнктура' then

begin

bookmark_out ('PPO_T','Адъюнктура');

bookmark_out ('NONU',obraz_table.FieldByName('Наименование образовательного учреждения').AsString);

bookmark_out ('UNDV',obraz_table.FieldByName('Номер').AsString+', '+obraz_table.FieldByName('Дата окончания').AsString);

bookmark_out ('GO',inttostr(YearOf(obraz_table.FieldByName('Дата окончания').AsDateTime)));

bookmark_out ('SPS',obraz_table.FieldByName('Направление или специальность по диплому').AsString);

end;

if obraz_table.FieldByName('Образовательный уровень').AsString='Докторантура' then

begin

bookmark_out ('PPO_T','Докторантура');

bookmark_out ('NONU',obraz_table.FieldByName('Наименование образовательного учреждения').AsString);

bookmark_out ('UNDV',obraz_table.FieldByName('Номер').AsString+', '+obraz_table.FieldByName('Дата окончания').AsString);

bookmark_out ('GO',inttostr(YearOf(obraz_table.FieldByName('Дата окончания').AsDateTime)));

bookmark_out ('SPS',obraz_table.FieldByName('Направление или специальность по диплому').AsString);

end;

if i<>obraz_table.RecordCount then obraz_table.FindNext;

end;

bookmark_out ('PO',PO.Text);

bookmark_out ('PD',PD.Text);

bookmark_out ('RKSD',curent_org.inspect_dolg);

bookmark_out ('RKSN',curent_org.inspect_name);

bookmark_out ('RKSD1',curent_org.inspect_dolg);

bookmark_out ('RKSN1',curent_org.inspect_name);

if priem_i_perevod.Recordcount<>0 then Priem_i_perevod.FindFirst;

move_to:='PPNDR';

Unit_:=wdCell;

Count:=1;

WORD.ActiveDocument.Bookmarks.Item(move_to).Select;

for i:=1 to Priem_i_perevod.RecordCount do

begin

Word.Selection.Text:=Priem_i_perevod.FieldByName('Дата').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=Priem_i_perevod.FieldByName('Структурное подразделение').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=Priem_i_perevod.FieldByName('Должность').AsString+', '+Priem_i_perevod.FieldByName('Разряд').AsString+', '+Priem_i_perevod.FieldByName('Класс').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=Priem_i_perevod.FieldByName('Оклад').AsString+', '+Priem_i_perevod.FieldByName('Надбавка').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=Priem_i_perevod.FieldByName('Основание').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

if i<>Priem_i_perevod.RecordCount then begin

Priem_i_perevod.FindNext;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

end;

end;

// Аттестации и решение аттестационной комиссии

if attest.RecordCount<>0 then attest.FindFirst;

move_to:='ATT';

WORD.ActiveDocument.Bookmarks.Item(move_to).Select;

for i:=1 to attest.RecordCount do

begin

Word.Selection.Text:=attest.FieldByName('Дата аттестации').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=attest.FieldByName('Решении комиссии').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=attest.FieldByName('Документ номер').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=attest.FieldByName('Документ дата').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=attest.FieldByName('Основание').AsString;

if i<>attest.RecordCount then begin

attest.FindNext;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

end;

end;

// Повышение квалификации

if pov_kv_table.RecordCount<>0 then pov_kv_table.FindFirst;

move_to:='Pov_kv';

WORD.ActiveDocument.Bookmarks.Item(move_to).Select;

for i:=1 to pov_kv_table.RecordCount do

begin

Word.Selection.Text:=pov_kv_table.FieldByName('Дата начала обучения').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=pov_kv_table.FieldByName('Дата окончания обучения').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=pov_kv_table.FieldByName('Вид повышения квалификации').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=pov_kv_table.FieldByName('Наименование образовательного учреждения').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=pov_kv_table.FieldByName('Нименование документа').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=pov_kv_table.FieldByName('Серия').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=pov_kv_table.FieldByName('Дата').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=pov_kv_table.FieldByName('Основание').AsString;

if i<>pov_kv_table.RecordCount then begin

pov_kv_table.FindNext;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

end;

end;

// Профессиональная переподготовка

if Prof_perepodg_table.RecordCount<>0 then Prof_perepodg_table.FindFirst;

move_to:='PP';

WORD.ActiveDocument.Bookmarks.Item(move_to).Select;

for i:=1 to Prof_perepodg_table.RecordCount do

begin

Word.Selection.Text:=Prof_perepodg_table.FieldByName('Дата начала').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=Prof_perepodg_table.FieldByName('Дата окончания').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=Prof_perepodg_table.FieldByName('Специальность').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=Prof_perepodg_table.FieldByName('Документ наименование').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=Prof_perepodg_table.FieldByName('Номер').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=Prof_perepodg_table.FieldByName('Дата').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=Prof_perepodg_table.FieldByName('Основание').AsString;

if i<>Prof_perepodg_table.RecordCount then begin

Prof_perepodg_table.FindNext;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

end;

end;

// Награды и поощрения

if nagr_table.RecordCount<>0 then nagr_table.FindFirst;

move_to:='Nagr';

WORD.ActiveDocument.Bookmarks.Item(move_to).Select;

for i:=1 to nagr_table.RecordCount do

begin

Word.Selection.Text:=nagr_table.FieldByName('Наименование награды').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=nagr_table.FieldByName('Наименование документа').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=nagr_table.FieldByName('Номер').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=nagr_table.FieldByName('Дата').AsString;

if i<>nagr_table.RecordCount then begin

nagr_table.FindNext;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

end;

end;

// Отпуск

if otp_table.RecordCount<>0 then otp_table.FindFirst;

move_to:='Otp';

WORD.ActiveDocument.Bookmarks.Item(move_to).Select;

for i:=1 to otp_table.RecordCount do

begin

Word.Selection.Text:=otp_table.FieldByName('Вид отпуска').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=otp_table.FieldByName('Период работы с').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=otp_table.FieldByName('Период работы по').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=otp_table.FieldByName('Количество дней отпуска').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=otp_table.FieldByName('Дата начала').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=otp_table.FieldByName('Дата окончания').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=otp_table.FieldByName('Основание').AsString;

if i<>otp_table.RecordCount then begin

otp_table.FindNext;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

end;

end;

// Социальные льготы

if Sl_table.RecordCount<>0 then Sl_table.FindFirst;

move_to:='sl';

WORD.ActiveDocument.Bookmarks.Item(move_to).Select;

for i:=1 to Sl_table.RecordCount do

begin

Word.Selection.Text:=Sl_table.FieldByName('Наименование льготы').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=Sl_table.FieldByName('Номер').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=Sl_table.FieldByName('Дата выдачи').AsString;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

Word.Selection.Text:=Sl_table.FieldByName('Основание').AsString;

if i<>Sl_table.RecordCount then begin

Sl_table.FindNext;

Word.Selection.MoveRight(Unit_,count,EmptyParam);

end;

end;

WORD.Visible:=true;

end;

procedure TFirst_form.refresh_structure;

// Обновление штатной структуры организации

var

Otdels,All_personal:Ttreenode;

People:Ttreenode;

i:word;

begin

structure.Items.Clear;

// Очищение структуры организации

otdels:=structure.Items.AddFirst(structure.TopItem,curent_org.orgname);

// Создание категории все сотрудники

All_personal:=structure.Items.AddchildFirst(otdels,'Все сотрудники');

personal_table.FindFirst;

for i:=1 to personal_table.RecordCount do

begin

People:=structure.Items.AddchildFirst(ALL_personal,personal_table.fieldbyname('Фамилия').AsString+' '+personal_table.fieldbyname('Имя').AsString+' '+personal_table.fieldbyname('Отчество').AsString);

if i<>personal_table.RecordCount then personal_table.FindNext;

end;

All_personal.AlphaSort;

// Создание категорий отделов организации

otdels_table.FindFirst;

for i:=1 to otdels_table.RecordCount do

begin

structure.Items.AddchildFirst(otdels,otdels_table.fieldbyname('Название отдела').AsString);

if i<>otdels_table.RecordCount then otdels_table.FindNext;

end;

end;

procedure TFirst_form.DateTimePicker1Change(Sender: TObject);

begin

DBEdit2.Text:=DateToStr(DateTimePicker1.Date);

end;

procedure TFirst_form.Button1Click(Sender: TObject);

begin

Form1.Show;

end;

procedure TFirst_form.DateTimePicker2Change(Sender: TObject);

begin

DBEdit4.Text:=DateToStr(DateTimePicker2.Date);

end;

procedure TFirst_form.N5Click(Sender: TObject);

begin

ShellExecute(Application.Handle,'open','help.chm',nil,nil,SW_SHOW);

end;

end.