Разработка клиент-серверного приложения управления персоналом предприятия

Изучение истории достижений корпорации Oracle. Разработка клиент-серверного приложения на языке Delphi XE, реализующего возможность управления персоналом на предприятии. Основные структуры данных. Создание инструкции работы с приложением "Отдел кадров".

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 08.06.2013
Размер файла 974,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

procedure TForm2.acRefreshExecute(Sender: TObject);

begin

if Spisok = MestoRaboti then

form5.ShowMestoRaboti(True, Asceding)

else

form5.showAlfavit(True, Asceding);

end;

procedure TForm2.acReportExecute(Sender: TObject);

begin

//

end;

procedure TForm2.acSearchExecute(Sender: TObject);

begin

case ActiveForm of

Sotrudnik:

if not form5.Panel3.Visible then

begin

form5.Edit1.Clear;

form5.ComboBox1.ItemIndex := 0;

form5.Panel3.Visible := True;

form5.Edit1.SetFocus;

end;

Pensioner:

if not form14.Panel3.Visible then

begin

form14.Edit1.Clear;

form14.ComboBox1.ItemIndex := 0;

form14.Panel3.Visible := True;

form14.Edit1.SetFocus;

end;

end;

end;

procedure TForm2.AcSettingExecute(Sender: TObject);

begin

Form4.ShowModal;

end;

procedure TForm2.acSortAscExecute(Sender: TObject);

begin

case ActiveForm of

Sotrudnik:

if Spisok = Alfavit then

form5.showAlfavit(True, Asceding)

else

form5.ShowMestoRaboti(True, Asceding);

Pensioner:

form14.ShowPensioneri(True, Asceding);

end;

end;

procedure TForm2.acSortDescExecute(Sender: TObject);

begin

case ActiveForm of

Sotrudnik:

if Spisok = Alfavit then

form5.showAlfavit(True, Desceding)

else

form5.ShowMestoRaboti(True, Desceding);

Pensioner:

form14.ShowPensioneri(True, Desceding);

end;

end;

procedure TForm2.AcSotrudnikiExecute(Sender: TObject);

begin

if form5 = nil then

begin

form5 := TForm5.Create(Application);

TabSet1.Tabs.AddObject(form5.Caption, TObject(form5));

TabSet1.TabIndex := TabSet1.Tabs.Count - 1;

end

else

form5.Show;

end;

procedure TForm2.acSpecialnostExecute(Sender: TObject);

begin

if not FindForm('Справочник - Специальность') then

begin

CommandText := 'SPECIALNOST';

Form6 := TForm6.Create(Form2);

Form6.Caption := 'Справочник - Специальность';

TabSet1.Tabs.AddObject(Form6.Caption, TObject(Form6));

TabSet1.TabIndex := TabSet1.Tabs.Count - 1;

end;

end;

procedure TForm2.Action1Execute(Sender: TObject);

begin

ShowMessage(IntToStr(form5.TreeView1.Items.Item[0].Level));

end;

procedure TForm2.acTipKontaktDanixExecute(Sender: TObject);

begin

if not FindForm('Справочник - Тип контактных данных') then

begin

CommandText := 'TIP_KONTAKT_DANNIX';

Form6 := TForm6.Create(Form2);

Form6.Caption := 'Справочник - Тип контактных данных';

TabSet1.Tabs.AddObject(Form6.Caption, TObject(Form6));

TabSet1.TabIndex := TabSet1.Tabs.Count - 1;

end;

end;

procedure TForm2.acTipMestaShitelstvaExecute(Sender: TObject);

begin

if not FindForm('Справочник - Тип места жительства') then

begin

CommandText := 'TIP_MESTA_SHITELSTVA';

Form6 := TForm6.Create(Form2);

Form6.Caption := 'Справочник - Тип места жительства';

TabSet1.Tabs.AddObject(Form6.Caption, TObject(Form6));

TabSet1.TabIndex := TabSet1.Tabs.Count - 1;

end;

end;

procedure TForm2.acTipNasPunktaExecute(Sender: TObject);

begin

if not FindForm('Справочник - Тип населенного пункта') then

begin

CommandText := 'TIP_NAS_PUNKTA';

Form6 := TForm6.Create(Form2);

Form6.Caption := 'Справочник - Тип населенного пункта';

TabSet1.Tabs.AddObject(Form6.Caption, TObject(Form6));

TabSet1.TabIndex := TabSet1.Tabs.Count - 1;

end;

end;

procedure TForm2.acTipPasportaExecute(Sender: TObject);

begin

if not FindForm('Справочник - Тип паспорта') then

begin

CommandText := 'TIP_PASPORTA';

Form6 := TForm6.Create(Form2);

Form6.Caption := 'Справочник - Тип паспорта';

TabSet1.Tabs.AddObject(Form6.Caption, TObject(Form6));

TabSet1.TabIndex := TabSet1.Tabs.Count - 1;

end;

end;

procedure TForm2.acTipUcZavedExecute(Sender: TObject);

begin

if not FindForm('Справочник - Тип учебного заведения') then

begin

CommandText := 'TIP_UCH_ZAVEDENIA';

Form6 := TForm6.Create(Form2);

Form6.Caption := 'Справочник - Тип учебного заведения';

TabSet1.Tabs.AddObject(Form6.Caption, TObject(Form6));

TabSet1.TabIndex := TabSet1.Tabs.Count - 1;

end;

end;

procedure TForm2.acUchZavedExecute(Sender: TObject);

begin

if not FindForm('Справочник - Учебное заведение') then

begin

CommandText := 'UCHEBNOE_ZAVEDENIE';

Form6 := TForm6.Create(Form2);

Form6.Caption := 'Справочник - Учебное заведение';

TabSet1.Tabs.AddObject(Form6.Caption, TObject(Form6));

TabSet1.TabIndex := TabSet1.Tabs.Count - 1;

end;

end;

procedure TForm2.acUlocaExecute(Sender: TObject);

begin

if not FindForm('Справочник - Улицы') then

begin

CommandText := 'ULICA';

Form6 := TForm6.Create(Form2);

Form6.Caption := 'Справочник - Улицы';

TabSet1.Tabs.AddObject(Form6.Caption, TObject(Form6));

TabSet1.TabIndex := TabSet1.Tabs.Count - 1;

end;

end;

procedure TForm2.acVozrastnoiExecute(Sender: TObject);

begin

if not FileExists(ExtractFileDir(Application.ExeName) + '\Report\Statistika.rav') then

begin

MessageBox(handle, 'Файл отчета не найден!', 'Ошибка', MB_ICONWARNING + MB_OK);

Exit;

end;

with DataModule2 do

begin

SimpleDataSet_report.Close;

SimpleDataSet_report.DataSet.Close;

SimpleDataSet_report.Connection := DataModule1.SQLConnection1;

SimpleDataSet_report.DataSet.SchemaName := DataModule1.Login;

SimpleDataSet_report.DataSet.CommandText := 'select * from VW_STASTIKA';

SimpleDataSet_report.DataSet.Open;

SimpleDataSet_report.Open;

RvProject1.Close;

RvProject1.ProjectFile := ExtractFileDir(Application.ExeName) + '\Report\Statistika.rav';

RvProject1.Execute;

end;

end;

procedure TForm2.acVsePensioneriExecute(Sender: TObject);

begin

if not FileExists(ExtractFileDir(Application.ExeName) + '\Report\Pensioneri.rav') then

begin

MessageBox(handle, 'Файл отчета не найден!', 'Ошибка', MB_ICONWARNING + MB_OK);

Exit;

end;

with DataModule2 do

begin

SimpleDataSet_report.Close;

SimpleDataSet_report.DataSet.Close;

SimpleDataSet_report.Connection := DataModule1.SQLConnection1;

SimpleDataSet_report.DataSet.SchemaName := DataModule1.Login;

SimpleDataSet_report.DataSet.CommandText := 'select ROWNUM, A.* from (' +

'Select FAMILIA, IMIA, OTCHESTVO from VW_PENSIONERI order by FAMILIA) A';

SimpleDataSet_report.DataSet.Open;

SimpleDataSet_report.Open;

RvProject1.Close;

RvProject1.ProjectFile := ExtractFileDir(Application.ExeName) + '\Report\Pensioneri.rav';

RvProject1.Execute;

end;

end;

procedure TForm2.acVseSotrudnikiExecute(Sender: TObject);

begin

if not FileExists(ExtractFileDir(Application.ExeName) + '\Report\Sotrudniki.rav') then

begin

MessageBox(handle, 'Файл отчета не найден!', 'Ошибка', MB_ICONWARNING + MB_OK);

Exit;

end;

with DataModule2 do

begin

SimpleDataSet_report.Close;

SimpleDataSet_report.DataSet.Close;

SimpleDataSet_report.Connection := DataModule1.SQLConnection1;

SimpleDataSet_report.DataSet.SchemaName := DataModule1.Login;

SimpleDataSet_report.DataSet.CommandText := 'select ROWNUM, A.* from (' +

'Select FAMILIA, IMIA, OTCHESTVO from VW_SOTRUDNIKI order by FAMILIA) A';

SimpleDataSet_report.DataSet.Open;

SimpleDataSet_report.Open;

RvProject1.Close;

RvProject1.ProjectFile := ExtractFileDir(Application.ExeName) + '\Report\Sotrudniki.rav';

RvProject1.Execute;

end;

end;

procedure TForm2.acVseSotrudnikiParamExecute(Sender: TObject);

begin

try

Form18 := TForm18.Create(Form2);

Form18.ShowModal;

finally

FreeAndNil(Form18);

end;

end;

procedure TForm2.AcVsiaRabotaExecute(Sender: TObject);

begin

with DataModule2 do

begin

SimpleDataSet_report.Close;

SimpleDataSet_report.DataSet.Close;

SimpleDataSet_report.Connection := DataModule1.SQLConnection1;

SimpleDataSet_report.DataSet.SchemaName := DataModule1.Login;

SimpleDataSet_report.DataSet.CommandText :=

'select DATA_PRIEMA, DATA_OKONCHANIA, PREF, DOLSHNOST, SUF, MESTO_RAB ' +

' from VW_FULL_RABOTA' + ' where ID_SOTR = :id and DATA_OKONCHANIA is not null' +

' order by DATA_PRIEMA';

SimpleDataSet_report.DataSet.ParamByName('id').AsInteger := Sotrudniki.id;

SimpleDataSet_report.DataSet.Open;

SimpleDataSet_report.Open;

SimpleDataSet_report_2.Close;

SimpleDataSet_report_2.DataSet.Close;

SimpleDataSet_report_2.Connection := DataModule1.SQLConnection1;

SimpleDataSet_report_2.DataSet.SchemaName := DataModule1.Login;

SimpleDataSet_report_2.DataSet.CommandText := 'select * from VW_REPORT where id = :id';

SimpleDataSet_report_2.DataSet.ParamByName('id').AsInteger := Sotrudniki.id;

SimpleDataSet_report_2.DataSet.Open;

SimpleDataSet_report_2.Open;

RvProject1.Close;

if FileExists(ExtractFileDir(Application.ExeName) + '\Report\Spisok.rav') then

begin

RvProject1.ProjectFile := ExtractFileDir(Application.ExeName) + '\Report\Spisok.rav';

RvProject1.Execute;

end;

end;

end;

procedure TForm2.acZvanieExecute(Sender: TObject);

begin

if not FindForm('Справочник - Звания') then

begin

CommandText := 'ZVANIE';

Form6 := TForm6.Create(Form2);

Form6.Caption := 'Справочник - Звания';

TabSet1.Tabs.AddObject(Form6.Caption, TObject(Form6));

TabSet1.TabIndex := TabSet1.Tabs.Count - 1;

end;

end;

procedure TForm2.blaExecute(Sender: TObject);

begin

//

end;

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

begin

// Сохранение размера и положения окна при закрытии

ini := TIniFile.Create(ExtractFileDir(Application.ExeName) + '\Options.ini');

try

if WindowState = wsNormal then

begin

ini.WriteInteger('Form', 'Top', Top);

ini.WriteInteger('Form', 'Left', Left);

ini.WriteInteger('Form', 'Height', Height);

ini.WriteInteger('Form', 'Width', Width);

end;

ini.WriteBool('Form', 'WindowState', WindowState = wsMaximized);

finally

ini.Free;

end;

end;

procedure TForm2.FormCreate(Sender: TObject);

// var

// Item: TRibbonTabItem;

// Group: TCustomRibbonGroup;

begin

// Настройки положения окна

ini := TIniFile.Create(ExtractFileDir(Application.ExeName) + '\Options.ini');

try

Top := ini.ReadInteger('Form', 'Top', 200);

Left := ini.ReadInteger('Form', 'Left', 200);

Height := ini.ReadInteger('Form', 'Height', 370);

Width := ini.ReadInteger('Form', 'Width', 620);

if ini.ReadBool('Form', 'WindowState', False) then

WindowState := wsMaximized

else

WindowState := wsNormal;

finally

ini.Free;

end;

// настройка ribbon панели

RibbonPage2.Groups[1].Visible := False;

RibbonPage2.Groups[2].Visible := False;

RibbonPage2.Groups[3].Visible := False;

// Item := Ribbon1.Tabs.Add;

// Item.Caption := 'Сотрудники';

end;

procedure TForm2.FormShow(Sender: TObject);

begin

// Настройки аутентификации

ini := TIniFile.Create(ExtractFileDir(Application.ExeName) + '\Options.ini');

try

if ini.ReadBool('Conn DB', 'SaveAuth', False) then

Form4.RadioButton2.Checked := True

else

Form4.RadioButton1.Checked := True;

finally

ini.Free;

end;

if Form4.RadioButton2.Checked then

begin

ini := TIniFile.Create(ExtractFileDir(Application.ExeName) + '\Auth.ini');

try

Form4.LabeledEdit3.Text := ini.ReadString('Auth', 'DB', 'Opa');

Form4.LabeledEdit1.Text := ini.ReadString('Auth', 'user', 'Opa');

Form4.LabeledEdit2.Text := ini.ReadString('Auth', 'pas', 'Opa');

finally

ini.Free;

end;

end;

end;

procedure TForm2.N1Click(Sender: TObject);

begin

TForm(TabSet1.Tabs.Objects[TabSet1.TabIndex]).WindowState := wsMinimized;

end;

procedure TForm2.N2Click(Sender: TObject);

begin

TForm(TabSet1.Tabs.Objects[TabSet1.TabIndex]).WindowState := wsMaximized;

end;

procedure TForm2.N3Click(Sender: TObject);

begin

TForm(TabSet1.Tabs.Objects[TabSet1.TabIndex]).WindowState := wsNormal;

end;

procedure TForm2.N5Click(Sender: TObject);

begin

TForm(TabSet1.Tabs.Objects[TabSet1.TabIndex]).Close;

end;

procedure TForm2.PMTabSetPopup(Sender: TObject);

procedure EnabledPopupMenu(Enabled: Boolean);

begin

N1.Enabled := Enabled;

N2.Enabled := Enabled;

N3.Enabled := Enabled;

N5.Enabled := Enabled;

end;

begin

if TabSet1.Tabs.Count = 0 then

EnabledPopupMenu(False)

else

EnabledPopupMenu(True);

end;

procedure TForm2.ScreenTipsManager1ShowScreenTip(Manager: TObject; Action: TBasicAction;

var ShowScreenTip: Boolean);

begin

// ряд 1 из 3

if (Action = WindowCascade1) or (Action = WindowTileHorizontal1) or

(Action = WindowTileVertical1) then

ScreenTipsManager1.DisplayOffset.Y := 69

// ряд 2 из 3

else if Action = WindowMinimizeAll1 then

ScreenTipsManager1.DisplayOffset.Y := 47

// ряд 1 из 2

else if (Action = AcMasterAdd) or (Action = acFullExpand) or (Action = acFullCollapse) or

(Action = DataSetFirst1) or (Action = DataSetPrior1) or (Action = DataSetNext1) or

(Action = DataSetLast1) or (Action = DataSetRefresh1) then

ScreenTipsManager1.DisplayOffset.Y := 61

// ряд 2 из 2

else if (Action = acSortAsc) or (Action = acSortDesc) or (Action = acReport) then

ScreenTipsManager1.DisplayOffset.Y := 30

ScreenTipsManager1.DisplayOffset.Y := 25;

end;

procedure TForm2.TabSet1Change(Sender: TObject; NewTab: Integer; var AllowChange: Boolean);

var

i: Integer;

begin

if (TForm(TabSet1.Tabs.Objects[NewTab]) is TForm6) then

begin

for i := 0 to MDIChildCount - 1 do

if MDIChildren[i].Caption = TabSet1.Tabs[NewTab] then

MDIChildren[i].Show;

end

else

TForm(TabSet1.Tabs.Objects[NewTab]).Show;

end;

procedure TForm2.WindowArrange1Execute(Sender: TObject);

begin

if MessageBox(handle, pWideChar('Вы действительно хотете закрыть все окна приложения?'),

'Закрыть все', MB_ICONQUESTION + MB_YESNO) = mrYes then

while Form2.MDIChildCount > 0 do

Form2.MDIChildren[Form2.MDIChildCount - 1].Close;

end;

Приложение В. Модуль приложения Sotrudniki.pas

unit Sotrudniki;

interface

uses

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

Dialogs, ToolWin, ComCtrls, ExtCtrls, StdCtrls, FMTBcd, DB, SqlExpr, DBClient,

SimpleDS, ImgList, Menus, Ribbon, ActnList, ActnMan, Buttons;

type

TForm5 = class(TForm)

Panel1: TPanel;

Splitter1: TSplitter;

Panel2: TPanel;

TreeView1: TTreeView;

ImageList_16: TImageList;

ScrollBox1: TScrollBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

StaticText1: TStaticText;

StaticText2: TStaticText;

StaticText3: TStaticText;

SQLQuery2: TSQLQuery;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

StaticText4: TStaticText;

StaticText5: TStaticText;

StaticText6: TStaticText;

Image1: TImage;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

StaticText7: TStaticText;

StaticText8: TStaticText;

StaticText9: TStaticText;

StaticText10: TStaticText;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

StaticText11: TStaticText;

StaticText12: TStaticText;

StaticText13: TStaticText;

Panel3: TPanel;

Edit1: TEdit;

SimpleDataSet1: TSimpleDataSet;

ComboBox1: TComboBox;

PopupMenu1: TPopupMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N6: TMenuItem;

SimpleDataSet2: TSimpleDataSet;

N4: TMenuItem;

SpeedButton1: TSpeedButton;

ToolBar1: TToolBar;

Bevel1: TBevel;

procedure FormActivate(Sender: TObject);

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

procedure ClearTree;

procedure TreeView1Change(Sender: TObject; Node: TTreeNode);

procedure FormCreate(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure ComboBox1Change(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure PopupMenu1Popup(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure TreeView1DblClick(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure N6Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

procedure showAlfavit(Active: boolean; Sort: string);

procedure ShowMestoRaboti(Active: boolean; Sort: string);

end;

var

Form5: TForm5;

mas_StaticText: array [1 .. 4] of TStaticText;

id: integer;

implementation

Uses Main, DataModule, Lico, Pensioneri;

{$R *.dfm}

// Отображение дерева сотрудников по алфавиту

procedure TForm5.showAlfavit(Active: boolean; Sort: string);

// Поиск родителя

function FindNode(c: Char): TTreeNode;

var

i: integer;

begin

Result := nil;

for i := 0 to TreeView1.Items.Count - 1 do

if TreeView1.Items.Item[i].Text = c then

begin

Result := TreeView1.Items.Item[i];

break;

end;

end;

var

obj: ^integer;

ferst: Char;

Node: TTreeNode;

begin

// если Active = True, перечитываю данные с БД,

// если False работаю с тем же набором данных

if Active then

begin

with SimpleDataSet1 do

begin

Close;

DataSet.Close;

DataSet.SchemaName := DataModule1.Login;

DataSet.CommandText := 'select ID, FAMILIA, IMIA, OTCHESTVO from VW_SOTRUDNIKI';

DataSet.SortFieldNames := 'FAMILIA ' + Sort;

DataSet.Open;

Open;

end;

end;

ClearTree;

with TreeView1.Items do

begin

BeginUpdate;

with SimpleDataSet1 do

begin

First;

while not Eof do

begin

New(obj);

ferst := FieldByName('FAMILIA').AsString[1];

obj^ := FieldByName('ID').AsInteger;

Node := FindNode(ferst);

if Node = nil then

begin

TreeView1.Items.Add(nil, ferst);

Node := FindNode(ferst);

end;

TreeView1.Items.AddChildObject(Node, FieldByName('FAMILIA').AsString + ' ' +

FieldByName('IMIA').AsString + FieldByName('OTCHESTVO').AsString, obj);

Next;

end;

EndUpdate;

end;

end;

form2.Spisok := Alfavit;

end;

// Отображение дерева сотрудников по месту работы

procedure TForm5.ShowMestoRaboti(Active: boolean; Sort: string);

// Поиск родителя

function FindNode(c: integer): TTreeNode;

var

i: integer;

begin

Result := nil;

for i := 0 to TreeView1.Items.Count - 1 do

if integer(TreeView1.Items.Item[i].Data^) = c then

begin

Result := TreeView1.Items.Item[i];

break;

end;

end;

var

obj: ^integer;

Node: TTreeNode;

begin

// если Active = True, перечитываю данные с БД,

// если False работаю с тем же набором данных

if Active then

begin

with SimpleDataSet2 do

begin

Close;

DataSet.Close;

DataSet.SchemaName := DataModule1.Login;

DataSet.CommandText := 'Select * from MESTO_RABOTI ' + 'where id_podrazdelenie is not null';

DataSet.Open;

Open;

end;

with SimpleDataSet1 do

begin

Close;

DataSet.Close;

DataSet.CommandText :=

'select lico.id, FAMILIA, IMIA, OTCHESTVO, id_mesto_rab, MESTO_RABOTI.nazvanie ' +

'from lico, rabota, MESTO_RABOTI ' + 'where lico.id = rabota.id_sotr ' +

'and rabota.id_mesto_rab = mesto_raboti.id and rabota.data_okonchania is null';

DataSet.SortFieldNames := 'FAMILIA ' + Sort;

DataSet.Open;

Open;

end;

end;

ClearTree;

with TreeView1.Items do

begin

BeginUpdate;

with SimpleDataSet2 do

begin

First;

while not Eof do

begin

New(obj);

obj^ := FieldByName('ID').AsInteger;

Node := FindNode(FieldByName('ID_PODRAZDELENIE').AsInteger);

AddChildObject(Node, FieldByName('NAZVANIE').AsString, obj);

Next;

end;

end;

with SimpleDataSet1 do

begin

First;

while not Eof do

begin

New(obj);

obj^ := FieldByName('id').AsInteger;

Node := FindNode(FieldByName('id_mesto_rab').AsInteger);

AddChildObject(Node, FieldByName('FAMILIA').AsString + ' ' + FieldByName('IMIA').AsString +

' ' + FieldByName('OTCHESTVO').AsString, obj);

Next;

end;

end;

EndUpdate;

end;

form2.Spisok := MestoRaboti;

end;

procedure TForm5.SpeedButton1Click(Sender: TObject);

begin

Panel3.Visible := False;

SimpleDataSet1.Filtered := False;

if form2.Spisok = Alfavit then

showAlfavit(False, Asceding)

else

ShowMestoRaboti(False, Asceding);

TreeView1.SetFocus;

end;

procedure TForm5.FormActivate(Sender: TObject);

begin

if form2.TabSet1.Tabs.IndexOf(Form5.Caption) <> -1 then

begin

form2.TabSet1.TabIndex := form2.TabSet1.Tabs.IndexOf(Form5.Caption);

// TreeView1Change(TreeView1, TreeView1.Selected);

end;

form2.RibbonPage2.Groups[1].Items[form2.RibbonPage1.Groups[1].Items.Count - 1].Visible := True;

form2.RibbonPage2.Groups[1].Items[form2.RibbonPage1.Groups[1].Items.Count - 2].Visible := True;

// form2.acAlfavit.Enabled := True;

form2.ActiveForm := Sotrudnik;

end;

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

begin

ClearTree;

form2.TabSet1.Tabs.Delete(form2.TabSet1.Tabs.IndexOf(Form5.Caption));

if form14 = nil then

begin

form2.RibbonPage2.Groups[1].Visible := False;

form2.RibbonPage2.Groups[2].Visible := False;

form2.RibbonPage2.Groups[3].Visible := False;

end;

Free;

Form5 := nil;

end;

procedure TForm5.FormCreate(Sender: TObject);

var

i: integer;

begin

// очишаю все staticText

for i := 0 to ComponentCount - 1 do

if (Components[i] is TStaticText) then

(Components[i] as TStaticText).Caption := '';

mas_StaticText[1] := StaticText7;

mas_StaticText[2] := StaticText8;

mas_StaticText[3] := StaticText9;

mas_StaticText[4] := StaticText10;

// настраиваем sqlquery и simpleDataset

SQLQuery2.SchemaName := DataModule1.Login;

SimpleDataSet1.DataSet.SchemaName := DataModule1.Login;

SimpleDataSet2.DataSet.SchemaName := DataModule1.Login;

// Строим дерево по алфавиту

showAlfavit(True, Asceding);

form2.RibbonPage2.Groups[1].Visible := True;

form2.RibbonPage2.Groups[2].Visible := True;

form2.RibbonPage2.Groups[3].Visible := True;

// form2.RibbonPage2.Groups[1].Items[form2.RibbonPage1.Groups[1].Items.Count - 1].Visible := False;

// form2.RibbonPage2.Groups[1].Items[form2.RibbonPage1.Groups[1].Items.Count - 2].Visible := False;

end;

// свернуть все дерево

procedure TForm5.N1Click(Sender: TObject);

begin

TreeView1.FullCollapse;

end;

// развернуть все дерево

procedure TForm5.N2Click(Sender: TObject);

begin

TreeView1.FullExpand;

end;

// показать личную карточку

procedure TForm5.N4Click(Sender: TObject);

begin

form2.AcKartochkaExecute(form2.AcKartochka);

end;

// удалить сотрудеика

procedure TForm5.N6Click(Sender: TObject);

begin

form2.AcDeleteExecute(form2.AcDelete);

end;

// настройка контекстноо меню при выборе элемента дерева

procedure TForm5.PopupMenu1Popup(Sender: TObject);

procedure EnablePopupMenu(Enabled: boolean);

begin

N4.Enabled := Enabled;

N6.Enabled := Enabled;

end;

begin

if TreeView1.Selected.getFirstChild = nil then

EnablePopupMenu(True)

else

EnablePopupMenu(False);

end;

// очистка дерева

procedure TForm5.ClearTree;

var

i: integer;

begin

for i := 0 to TreeView1.Items.Count - 1 do

if TreeView1.Items.Item[i].Data <> nil then

Dispose(TreeView1.Items.Item[i].Data);

TreeView1.Items.Clear;

end;

// изменение поля поиска по дереву

procedure TForm5.ComboBox1Change(Sender: TObject);

begin

Edit1.Clear;

Edit1.SetFocus;

end;

// поля для ввода фильтра записей в наборе данных

procedure TForm5.Edit1Change(Sender: TObject);

var

str: string;

i: integer;

begin

// если ничего не введено

if Length(Trim(Edit1.Text)) = 0 then

begin

SimpleDataSet1.Filtered := False;

if form2.Spisok = Alfavit then

showAlfavit(False, Asceding)

else

ShowMestoRaboti(False, Asceding);

end

else

begin

// настройка фильтра

case ComboBox1.ItemIndex of

0:

str := 'FAMILIA ';

1:

str := 'IMIA ';

2:

str := 'OTCHESTVO ';

end;

SimpleDataSet1.Filter := str + ' LIKE ' + QuotedStr(Edit1.Text + '%');

SimpleDataSet1.Filtered := True;

// перестроение списка

if form2.Spisok = Alfavit then

showAlfavit(False, Asceding)

else

ShowMestoRaboti(False, Asceding);

i := TreeView1.Items.Count - 1;

if form2.Spisok = MestoRaboti then

if TreeView1.Items.Count > 0 then

while i >= 0 do

begin

if (TreeView1.Items.Item[i].getFirstChild = nil) and

(TreeView1.Items.Item[i].Level < 2) then

TreeView1.Items.Delete(TreeView1.Items.Item[i]);

Dec(i);

end;

// развернуть все дерево

TreeView1.FullExpand;

end;

end;

// запрет ввода цифр, преобразование первого символа в загланую букву

procedure TForm5.Edit1KeyPress(Sender: TObject; var Key: Char);

var

s: string;

begin

if Key = #27 then

begin

SpeedButton1Click(SpeedButton1);

exit;

end;

if Key in ['1' .. '9'] then

Key := #0;

if Edit1.SelStart = 0 then

s := AnsiUpperCase(Key)

else

s := AnsiLowerCase(Key);

Key := s[1];

end;

// отображение информации о выбраном сотрулнике в дереве

procedure TForm5.TreeView1Change(Sender: TObject; Node: TTreeNode);

var

i: integer;

M: TMemoryStream;

begin

if Node.getFirstChild <> nil then

begin

form2.AcKartochka.Enabled := False;

form2.AcDelete.Enabled := False;

form2.AcPrint.Enabled := False;

end

else

begin

form2.AcKartochka.Enabled := True;

form2.AcDelete.Enabled := True;

form2.AcPrint.Enabled := True;

end;

if Node.getFirstChild = nil then

begin

id := integer(Node.Data^);

with SQLQuery2 do

begin

// Общая инфа

Close;

SQL.Clear;

SQL.Add('select * from vw_FULL_SOTRUDNIKI where id = :id');

ParamByName('id').AsInteger := id;

Open;

StaticText1.Caption := FieldByName('familia').AsString;

StaticText2.Caption := FieldByName('imia').AsString;

StaticText3.Caption := FieldByName('Otchestvo').AsString;

StaticText4.Caption := FieldByName('Pol').AsString;

StaticText5.Caption := FieldByName('vozrast').AsString;

StaticText6.Caption := FormatDateTime('DD MMM, YYYY', FieldByName('data_roshdenia')

.Value) + ' г.';

// загрузка картинки, если есть

if (FieldByName('photo') as TBlobField).IsNull = False then

begin

M := TMemoryStream.Create;

(FieldByName('photo') as TBlobField).SaveToStream(M);

M.Position := 0;

Image1.Picture.Bitmap.LoadFromStream(M);

M.Free;

end

else

Image1.Picture := nil;

Close;

// контактные данние

for i := 1 to 4 do

mas_StaticText[i].Caption := '-';

SQL.Clear;

SQL.Add('select * from vw_kontakti_sotr where id_lico = :id');

ParamByName('id').AsInteger := id;

Open;

while not Eof do

begin

if FieldByName('NAZVANIE').AsString = 'Домашний' then

StaticText7.Caption := FieldByName('DANNIE').AsString

else if FieldByName('NAZVANIE').AsString = 'Мобильный' then

StaticText8.Caption := FieldByName('DANNIE').AsString

else if FieldByName('NAZVANIE').AsString = 'Рабочий' then

StaticText9.Caption := FieldByName('DANNIE').AsString

else

StaticText10.Caption := FieldByName('DANNIE').AsString;

Next;

end;

Close;

// Место работы

SQL.Clear;

SQL.Add('Select * from vw_rabota where id_sotr = :id');

ParamByName('id').AsInteger := id;

Open;

StaticText11.Caption := FieldByName('MESTO_RABOTI').AsString;

StaticText12.Caption := FieldByName('DOLSHNOST').AsString;

StaticText13.Caption := FieldByName('DATA_PRIEMA').AsString;

Close;

end;

// вызов личной карточки сотрудника

procedure TForm5.TreeView1DblClick(Sender: TObject);

begin

form2.AcKartochkaExecute(Self);

end.

Размещено на Allbest.ru


Подобные документы

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

    дипломная работа [4,7 M], добавлен 22.08.2016

  • Сетевое программное обеспечение: общее понятие, содержание, функции. Этапы развития теории компьютерных сетей. Проектирование в среде программирования Borland Builder C++ клиент серверного приложения с использованием сокетов, листинг данной программы.

    курсовая работа [191,5 K], добавлен 07.01.2015

  • Многоуровневые архитектуры клиент–сервер. Диаграммы классов, реализующих уровни презентации, бизнес–логики и базы данных приложения. Словесное описание процесса выполнения транзакций. Создание, изменение и удаление хранимых процедур, их выполнение.

    курсовая работа [3,4 M], добавлен 23.03.2013

  • Разработка клиент-серверного приложения, позволяющего взаимодействовать друг с другом с использованием доступа к базам данных. Проектирование связи сервера с базой данных с помощью технологии ODBC. Разработка интерфейса программы, ее тестирование.

    курсовая работа [352,0 K], добавлен 24.08.2016

  • Разработка клиент-серверного приложения под управлением Windows на языке программирования Delphi, реализующего функции дистанционного обучения (тесты). Основная форма программы, которая состоит из меню, панели активации пользователя и панели чата.

    курсовая работа [4,3 M], добавлен 15.04.2019

  • Основные концепции разработки приложения в трёхуровневой архитектуре. Проектное решение, реализующее модель реляционной БД. Спецификация на разработку интерфейса. Описание выполнения транзакций прибытия и убытия судна. Инсталляционные файлы приложения.

    курсовая работа [4,0 M], добавлен 26.12.2011

  • Характеристика подходов к построению CRM-систем. Разработка клиент-серверного приложения, которое предоставляет возможность управления взаимоотношениями с клиентами на платформе ASP.NET Web Froms. Проработка некоторых аспектов безопасности CRM-систем.

    курсовая работа [686,2 K], добавлен 24.04.2015

  • Основные концепции разработки приложения в архитектуре MVVM. Проектирование базы данных, предназначенной для сбора информации о дорожно-транспортных происшествиях. Классификация и типы архитектуры "клиент–сервер", ее основные достоинства и недостатки.

    курсовая работа [4,1 M], добавлен 25.11.2015

  • Создание клиент-серверного приложения "Чат" с помощью среды визуальной разработки приложений Borland C++ Builder версии 6. Описание функциональности приложения: наличие клиент-серверной архитектуры, обмен короткими сообщениями, а также передача файлов.

    курсовая работа [302,0 K], добавлен 30.01.2012

  • Угрозы безопасности баз данных. Политика информационной безопасности предприятия в области использования сетевых ресурсов. Разработка и введение в эксплуатацию защищенного клиент-серверного приложения. Средства аутентификации объектов базы данных.

    дипломная работа [4,6 M], добавлен 21.02.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.