Разработка клиент-серверного приложения управления персоналом предприятия
Изучение истории достижений корпорации 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