Скачиваний:
9
Добавлен:
17.06.2023
Размер:
1.23 Mб
Скачать

 

подстановки

 

 

 

VZapas_srok

Числовой

Длинное целое

Да

Нет

VZapas_zarplata

Числовой

Длинное целое

Да

Нет

 

 

 

 

 

VZapas_pensia

Числовой

Длинное целое

Да

Нет

VZapas_denplata

Числовой

Длинное целое

Да

Нет

VoenZvanie

 

 

 

 

VZvanie_ID

Счетчик

Длинное целое

Да

Да (Совпадения не

 

 

 

 

допускаются)

VZvanie_name

Текстовый

255

Да

Нет

32

ПРИЛОЖЕНИЕ В

Листинг программы

unit EnterUnit;

close;

 

end

interface

else

 

ShowMessage('Пароль введен неверно!!!');

uses

end;

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

 

Forms,

end.

Dialogs, DMUnit, StdCtrls, Buttons, DBCtrls, DB;

 

 

unit MainUnit;

type

 

TEnterForm = class(TForm)

interface

DBLookupComboBox1: TDBLookupComboBox;

 

Edit1: TEdit;

uses

Label1: TLabel;

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

Label2: TLabel;

Forms,

BitBtn1: TBitBtn;

Dialogs, Menus, StdCtrls, Buttons, DMUnit, IniFiles, ExtCtrls;

BitBtn2: TBitBtn;

 

procedure FormShow(Sender: TObject);

type

//procedure DBLookupComboBox1CloseUp(Sender: TObject);

TMainForm = class(TForm)

procedure BitBtn2Click(Sender: TObject);

MainMenu1: TMainMenu;

procedure BitBtn1Click(Sender: TObject);

FileN: TMenuItem;

 

RelayN: TMenuItem;

private

QuitN: TMenuItem;

{ Private declarations }

VoenInfoN: TMenuItem;

public

IndexN: TMenuItem;

{ Public declarations }

OtchetN: TMenuItem;

end;

OtchVoenPensN: TMenuItem;

 

OtchZaderzhkaN: TMenuItem;

var

OtchMaxIndN: TMenuItem;

EnterForm: TEnterForm;

ServiceN: TMenuItem;

parol:string;

ChUserN: TMenuItem;

 

ChParolN: TMenuItem;

implementation

ReservN: TMenuItem;

 

SpravkaN: TMenuItem;

uses MainUnit;

HelpN: TMenuItem;

 

AboutN: TMenuItem;

 

BitBtn1: TBitBtn;

{$R *.dfm}

BitBtn2: TBitBtn;

 

SpravochN: TMenuItem;

procedure TEnterForm.FormShow(Sender: TObject);

ZvanieN: TMenuItem;

begin

OpenDialog1: TOpenDialog;

dm.ADOConnection1.Connected:=true;

Image1: TImage;

dm.EnterADOQuery.Open;

procedure ZvanieNClick(Sender: TObject);

 

procedure VoenInfoNClick(Sender: TObject);

end;

procedure IndexNClick(Sender: TObject);

 

procedure BitBtn1Click(Sender: TObject);

//procedure TEnterForm.DBLookupComboBox1CloseUp(Sender:

procedure BitBtn2Click(Sender: TObject);

TObject);

procedure OtchMaxIndNClick(Sender: TObject);

//begin

procedure OtchVoenPensNClick(Sender: TObject);

//dm.EnterADOQuery.Active:=true;

procedure OtchZaderzhkaNClick(Sender: TObject);

//dm.EnterADOQuery.Locate('U_ID',DBLookupComboBox1.KeyValue,[

procedure QuitNClick(Sender: TObject);

]);

procedure RelayNClick(Sender: TObject);

//parol:=dm.EnterADOQuery.FieldValues['U_Pass'];

procedure FormCreate(Sender: TObject);

//end;

procedure ChParolNClick(Sender: TObject);

 

procedure ChUserNClick(Sender: TObject);

procedure TEnterForm.BitBtn2Click(Sender: TObject);

private

begin

{ Private declarations }

Application.Terminate;

public

end;

 

 

{ Public declarations }

procedure TEnterForm.BitBtn1Click(Sender: TObject);

end;

begin

 

dm.EnterADOQuery.Active:=true;

var

dm.EnterADOQuery.Locate('U_ID',DBLookupComboBox1.KeyValue,[]

MainForm: TMainForm;

);

 

parol:=dm.EnterADOQuery.FieldValues['U_Pass'];

 

if Edit1.Text=parol then

implementation

begin

 

MainForm:=TMainForm.Create(self);

uses ZvanieUnit, VoenInfoUnit, IndexUnit, ZapasUnit, VidPensUnit,

MainForm.ShowModal;

OIndexMaxUnit,

33

OVoenPensUnit, OZaderzhkaViplatUnit, EnterUnit, PassChangeUnit;

{$R *.dfm}

procedure TMainForm.ZvanieNClick(Sender: TObject); begin

S_VoenZvanie:=TS_VoenZvanie.Create(self); S_VoenZvanie.ShowModal;

end;

procedure TMainForm.VoenInfoNClick(Sender: TObject); begin

S_VoenInfo:=TS_VoenInfo.Create(self); S_VoenInfo.ShowModal;

end;

procedure TMainForm.IndexNClick(Sender: TObject); begin

S_Index:=TS_Index.Create(self); S_Index.ShowModal;

end;

procedure TMainForm.BitBtn1Click(Sender: TObject); begin

S_Zapas:=TS_Zapas.Create(self); S_Zapas.ShowModal;

end;

procedure TMainForm.BitBtn2Click(Sender: TObject); begin

S_PensVid:=TS_PensVid.Create(self); S_PensVid.ShowModal;

end;

procedure TMainForm.OtchMaxIndNClick(Sender: TObject); begin

O_MaxIndex:=TO_MaxIndex.Create(self); O_MaxIndex.ShowModal;

end;

procedure TMainForm.OtchVoenPensNClick(Sender: TObject); begin

O_VoenPens:=TO_VoenPens.Create(self); O_VoenPens.ShowModal;

end;

procedure TMainForm.OtchZaderzhkaNClick(Sender: TObject); begin

O_ZaderzhkaViplat:=TO_ZaderzhkaViplat.Create(self); O_ZaderzhkaViplat.ShowModal

end;

procedure TMainForm.QuitNClick(Sender: TObject); begin

Application.Terminate;

end;

procedure TMainForm.RelayNClick(Sender: TObject); var F:tinifile;//дискриптор ini-файла

DBPath:widestring; //путь к БД begin

//создаём объект Ini-файла, ассоциируя его с физическим файлом на диске

F:=TiniFile.Create(ExtractFilePath(Application.ExeName)+'Options.ini');

//запускаем диалог открытия, если запущен успешно, то...

if OpenDialog1.Execute then begin

//сохраняем указанный в диалоговом окне пользователем путь DBPath:=ExtractFilePath(OpenDialog1.FileName);

//записываем в раздел Section_DBPath значение переменной DBPath в параметр Path ini-файла F.WriteString('Section_DBPath','Path',DBPath); DM.ADOConnection1.Close;

//формируем ConnectionString

DM.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLE

DB.4.0;Data Source='+DBPath+'BD.mdb;Persist Security Info=False';

34

//открываем соединение DM.ADOConnection1.Open; end;

// освобождаем память F.Free;

end;

procedure TMainForm.FormCreate(Sender: TObject); begin

Application.Icon:=Image1.Picture.Icon;

if EnterForm.DBLookupComboBox1.KeyValue=2 then begin

SpravochN.Enabled:=false;

ReservN.Enabled:=false;

end;

if EnterForm.DBLookupComboBox1.KeyValue=3 then begin

SpravochN.Enabled:=false;

ReservN.Enabled:=false;

BitBtn1.Enabled:=false;

BitBtn2.Enabled:=false;

end;

end;

procedure TMainForm.ChParolNClick(Sender: TObject); begin

PassChange:=TPassChange.Create(self);

PassChange.ShowModal;

end;

procedure TMainForm.ChUserNClick(Sender: TObject); begin

EnterForm:=TEnterForm.Create(self);

EnterForm.ShowModal;

//EnterForm.Show;

MainForm.Close;

end;

end.

unit IndexUnit;

interface

uses

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

Dialogs, DMUnit, Grids, DBGrids, ComCtrls, StdCtrls, ExtCtrls, Buttons,

Mask, DBCtrls, DB;

type

TS_Index = class(TForm) Panel1: TPanel; Label1: TLabel;

DateTimePicker1: TDateTimePicker; DBGrid1: TDBGrid;

GroupBox1: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; Label2: TLabel;

DBEdit1: TDBEdit; Label3: TLabel;

DateTimePicker2: TDateTimePicker; DBEdit2: TDBEdit;

Label4: TLabel; DBEdit3: TDBEdit; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; Label5: TLabel; DBEdit4: TDBEdit; Label6: TLabel; Button1: TButton; procedure Refresh;

procedure FormCreate(Sender: TObject); procedure BitBtn3Click(Sender: TObject);

procedure DBGrid1TitleClick(Column: TColumn); procedure BitBtn2Click(Sender: TObject);

procedure DateTimePicker2CloseUp(Sender: TObject); procedure Button1Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure DateTimePicker1Change(Sender: TObject); private

{Private declarations } public

{Public declarations } end;

const INDEX_SQL='SELECT * FROM IndexPens'; var

S_Index: TS_Index;

implementation

{$R *.dfm}

procedure TS_Index.Refresh; begin DM.IndexQuery.Close; DM.IndexQuery.Open;

end;

procedure TS_Index.FormCreate(Sender: TObject); begin

DM.ADOConnection1.Connected:=true;

DM.IndexQuery.SQL.Clear; DM.IndexQuery.SQL.Add(INDEX_SQL+';'); DM.IndexQuery.Open; DateTimePicker2.Date:=StrToDate(DBEdit2.Text);

end;

procedure TS_Index.BitBtn3Click(Sender: TObject); begin

DM.IndexQuery.Delete;

Refresh;

end;

procedure TS_Index.DBGrid1TitleClick(Column: TColumn); var s:string; //направление сортировки

i:integer;

clr:TColor;//цвет колонки при сортировки begin

s:='ASC';

clr:=clMoneyGreen;

if RadioButton2.Checked then begin

s:='DESC';

clr:=clSkyBlue;

end;

//возвращаем исходный цвет всех колонок и подсвечиваем колонку

for i:=0 to DBGrid1.Columns.Count- 1 do DBGrid1.Columns.Items[i].Title.Color:=clBtnFace; DBGrid1.Columns.Items[Column.Index].Title.Color:=clr; //выполняем сортировку по выбранной колонке

DM.IndexQuery.Sort:=DBGrid1.Columns.Items[Column.Index].FieldNa me+' '+s;

end;

procedure TS_Index.BitBtn2Click(Sender: TObject); //добавтьь begin

DM.IndexQuery.Append;

DBEdit2.Visible:=false;

DateTimePicker2.Visible:=true;

end;

procedure TS_Index.DateTimePicker2CloseUp(Sender: TObject); begin

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

end;

procedure TS_Index.Button1Click(Sender: TObject); begin

dm.ADOQuery4.Active:=false;

dm.ADOQuery4.SQL.Clear; dm.ADOQuery4.SQL.Add('SELECT * FROM IndexPens;'); dm.ADOQuery4.Active:=true;

If DM.ADOQuery4.Locate('Index_prichina',DBEdit3.Text,[loCaseInsensiti ve]) then

begin

MessageDlg('Данная индексация проводилась',mtWarning, [mbOk],

0);

DM.IndexQuery.Cancel;

dm.IndexQuery.Delete; end

else DM.IndexQuery.Post;

end;

procedure TS_Index.BitBtn1Click(Sender: TObject); //изменить begin

DM.IndexQuery.Edit;

end;

procedure TS_Index.DateTimePicker1Change(Sender: TObject); begin

DM.IndexQuery.SQL.Clear; DM.IndexQuery.SQL.Add(INDEX_SQL+' WHERE Index_data LIKE

'''+DateToStr(DateTimePicker1.Date)+'%''');

Refresh;

end;

end.

unit VidPensUnit;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DMUnit, Buttons, DB;

type

TS_PensVid = class(TForm) DBGrid1: TDBGrid; Panel1: TPanel;

Label1: TLabel; ComboBox1: TComboBox; Label2: TLabel;

Edit1: TEdit; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn;

GroupBox1: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; procedure Refresh;

procedure FormCreate(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn); procedure Edit1Change(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

35

var

S_PensVid: TS_PensVid;

implementation

uses VidPensEditUnit;

{$R *.dfm}

procedure TS_PensVid.Refresh; begin DM.SummaQuery.Close; DM.SummaQuery.Open;

end;

procedure TS_PensVid.FormCreate(Sender: TObject); var i:integer;

begin dm.ADOConnection1.Connected:=true; dm.SummaQuery.SQL.Clear; dm.VoenQuery.SQL.Clear;

dm.SummaQuery.SQL.Add('SELECT PensVid.Pens_ID, PensVid.Pens_FIO, PensVid.Pens_data, PensVid.Pens_summa, VoenInfo.VInfo_FIO, PensVid.Pens_month '+

'FROM VoenInfo INNER JOIN PensVid ON VoenInfo.VInfo_ID = PensVid.Pens_FIO;');

dm.VoenQuery.SQL.Add('SELECT * FROM VoenInfo;'); dm.SummaQuery.Open;

dm.VoenQuery.Open;

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption); end;

procedure TS_PensVid.DBGrid1TitleClick(Column: TColumn); var

s:string; //направление сортировки i:integer;

clr:TColor;//цвет колонки при сортировки begin

s:='ASC';

clr:=clMoneyGreen;

if RadioButton2.Checked then begin

s:='DESC';

clr:=clSkyBlue;

end;

//возвращаем исходный цвет всех колонок и подсвечиваем колонку

for i:=0 to DBGrid1.Columns.Count- 1 do DBGrid1.Columns.Items[i].Title.Color:=clBtnFace; DBGrid1.Columns.Items[Column.Index].Title.Color:=clr; //выполняем сортировку по выбранной колонке

DM.SummaQuery.Sort:=DBGrid1.Columns.Items[Column.Index].FieldN ame+' '+s;

end;

procedure TS_PensVid.Edit1Change(Sender: TObject); Var S:string;

begin

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0; //сохранение имени поля дбгрид1 в перменную s по имени выбранной записи в комбобокс1 S:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName; DM.SummaQuery.SQL.Clear;

//формирование запроса по полю сохраненному в переменной s DM.SummaQuery.SQL.Add('SELECT PensVid.Pens_ID, PensVid.Pens_FIO, PensVid.Pens_data, PensVid.Pens_summa, VoenInfo.VInfo_FIO '+

'FROM VoenInfo INNER JOIN PensVid ON VoenInfo.VInfo_ID = PensVid.Pens_FIO'+' WHERE '+s+' LIKE '''+Edit1.Text+'%''');

//обновляем

Refresh;

end;

procedure TS_PensVid.BitBtn1Click(Sender: TObject); begin

Edit_VidPens:=TEdit_VidPens.Create(self); OpenForm(false) ; //доб

36

Refresh;

end;

procedure TS_PensVid.BitBtn2Click(Sender: TObject); begin

Edit_VidPens:=TEdit_VidPens.Create(self); OpenForm(true); //изм

Refresh;

end;

procedure TS_PensVid.BitBtn3Click(Sender: TObject); var s:string;

begin dm.ADOQuery1.Active:=False; dm.ADOQuery1.SQL.Clear;

dm.ADOQuery1.SQL.Add('SELECT * FROM PensVid'); dm.ADOQuery1.Active:=true; s:=DM.ZapasQuery.FieldValues['Pens_ID']; dm.ADOQuery1.Close;

dm.ADOQuery1.Open; dm.ADOQuery1.Locate('Pens_ID',s,[loPartialKey]); dm.ADOQuery1.Delete;

refresh;

end;

end.

unit VoenInfoUnit;

interface

uses

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

Dialogs, StdCtrls, Buttons, Grids, DBGrids, DMUnit, ExtCtrls, DB;

type

TS_VoenInfo = class(TForm) DBGrid1: TDBGrid; BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn; GroupBox1: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; Panel1: TPanel; ComboBox1: TComboBox; Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

procedure FormCreate(Sender: TObject); procedure Refresh;

procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn); procedure Edit1Change(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

const VOEN_SQL='SELECT * FROM VoenInfo';

var

S_VoenInfo: TS_VoenInfo;

implementation

uses VoenInfoEditUnit;

{$R *.dfm}

procedure TS_VoenInfo.Refresh; begin

DM.VoenQuery.Close;

DM.VoenQuery.Open;

end;

 

 

 

 

end.

procedure TS_VoenInfo.FormCreate(Sender: TObject);

 

 

var i:integer;

 

unit ZvanieUnit;

begin

 

 

DM.ADOConnection1.Connected:=true;

 

interface

DM.VoenQuery.SQL.Clear;

 

 

DM.VoenQuery.SQL.Add(VOEN_SQL+';');

 

uses

DM.VoenQuery.Open;

 

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

for i:=0 to DBGrid1.Columns.Count-1 do

 

Forms,

ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

Dialogs, DMUnit, MainUnit, Grids, DBGrids;

end;

 

type

 

 

TS_VoenZvanie = class(TForm)

procedure TS_VoenInfo.BitBtn1Click(Sender: TObject);

//добавить

DBGrid1: TDBGrid;

begin

 

procedure FormCreate(Sender: TObject);

Edit_VoenInfo:=TEdit_VoenInfo.Create(self);

 

private

OpenForm(false) ;

 

{ Private declarations }

Refresh;

 

public

 

 

{ Public declarations }

end;

 

end;

 

 

const ZVANIE_SQL='SELECT * FROM VoenZvanie';

procedure TS_VoenInfo.BitBtn2Click(Sender: TObject);

//изменить

var

begin

 

S_VoenZvanie: TS_VoenZvanie;

Edit_VoenInfo:=TEdit_VoenInfo.Create(self);

 

 

OpenForm(true);

 

implementation

Refresh;

 

 

 

 

{$R *.dfm}

end;

 

 

 

 

procedure TS_VoenZvanie.FormCreate(Sender: TObject);

procedure TS_VoenInfo.BitBtn3Click(Sender: TObject);

 

begin

begin

 

DM.ADOConnection1.Connected:=true;

DM.VoenQuery.Delete;

 

DM.ZvanieQuery.SQL.Clear;

Refresh;

 

DM.ZvanieQuery.SQL.Add(ZVANIE_SQL+';');

end;

 

Dm.ZvanieQuery.Open;

 

 

end;

procedure TS_VoenInfo.DBGrid1TitleClick(Column: TColumn);

 

var

 

end.

s:string; //направление сортировки

 

 

i:integer;

 

unit ZapasUnit;

clr:TColor;//цвет колонки при сортировки

 

 

begin

 

interface

s:='ASC';

 

 

clr:=clMoneyGreen;

 

uses

if RadioButton2.Checked then

 

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

begin

 

Forms,

s:='DESC';

 

Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids, DMUnit, DB;

clr:=clSkyBlue;

 

 

end;

 

type

//возвращаем исходный цвет всех колонок и подсвечиваем

TS_Zapas = class(TForm)

колонку

 

DBGrid1: TDBGrid;

for i:=0 to DBGrid1.Columns.Count- 1 do

 

Panel1: TPanel;

DBGrid1.Columns.Items[i].Title.Color:=clBtnFace;

 

BitBtn1: TBitBtn;

DBGrid1.Columns.Items[Column.Index].Title.Color:=clr;

BitBtn2: TBitBtn;

//выполняем сортировку по выбранной колонке

 

BitBtn3: TBitBtn;

 

 

GroupBox1: TGroupBox;

DM.VoenQuery.Sort:=DBGrid1.Columns.Items[Column.Index].FieldNa

RadioButton1: TRadioButton;

me+' '+s;

 

RadioButton2: TRadioButton;

 

 

Label1: TLabel;

end;

 

ComboBox1: TComboBox;

 

 

Label2: TLabel;

procedure TS_VoenInfo.Edit1Change(Sender: TObject);

 

Edit1: TEdit;

Var S:string;

 

procedure Refresh;

begin

 

procedure FormCreate(Sender: TObject);

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0;

procedure DBGrid1TitleClick(Column: TColumn);

//сохранение имени поля дбгрид1 в перменную s по имени

procedure Edit1Change(Sender: TObject);

выбранной записи в комбобокс1

 

procedure BitBtn3Click(Sender: TObject);

S:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName;

procedure BitBtn1Click(Sender: TObject);

DM.VoenQuery.SQL.Clear;

 

procedure BitBtn2Click(Sender: TObject);

//формирование запроса по полю сохраненному в переменной s

private

DM.VoenQuery.SQL.Add(VOEN_SQL+' WHERE '+s+' LIKE

{ Private declarations }

'''+Edit1.Text+'%''');

 

public

//обновляем

 

{ Public declarations }

Refresh;

 

end;

end;

37

var

S_Zapas: TS_Zapas;

implementation uses ZapasEditUnit;

{$R *.dfm}

procedure TS_Zapas.Refresh; begin DM.ZapasQuery.Close; DM.ZapasQuery.Open;

end;

procedure TS_Zapas.FormCreate(Sender: TObject); var i: integer;

begin DM.ADOConnection1.Connected:=true; DM.ZapasQuery.SQL.Clear; DM.VoenQuery.SQL.Clear; DM.IndexQuery.SQL.Clear; dm.ZvanieQuery.SQL.Clear;

DM.ZapasQuery.SQL.Add('SELECT VoenZapas.VZapas_ID, VoenZapas.VZapas_FIO, VoenZapas.VZapas_dtyval, VoenZapas.VZapas_zvanie, VoenZapas.VZapas_srok, VoenZapas.VZapas_zarplata, VoenZapas.VZapas_pensia, VoenZapas.VZapas_denplata, VoenZvanie.VZvanie_name, VoenInfo.VInfo_FIO '+

'FROM VoenInfo INNER JOIN (VoenZvanie INNER JOIN VoenZapas ON VoenZvanie.VZvanie_ID = VoenZapas.VZapas_zvanie) ON VoenInfo.VInfo_ID = VoenZapas.VZapas_FIO;'); DM.VoenQuery.SQL.Add('SELECT * FROM VoenInfo;'); DM.IndexQuery.SQL.Add('SELECT * FROM IndexPens;'); DM.ZvanieQuery.SQL.Add('SELECT * FROM VoenZvanie;'); dm.ZapasQuery.Open;

dm.VoenQuery.Open;

dm.IndexQuery.Open;

dm.ZvanieQuery.Open;

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

end;

procedure TS_Zapas.DBGrid1TitleClick(Column: TColumn); var

s:string; //направление сортировки i:integer;

clr:TColor;//цвет колонки при сортировки begin

s:='ASC';

clr:=clMoneyGreen;

if RadioButton2.Checked then begin

s:='DESC';

clr:=clSkyBlue;

end;

//возвращаем исходный цвет всех колонок и подсвечиваем колонку

for i:=0 to DBGrid1.Columns.Count- 1 do DBGrid1.Columns.Items[i].Title.Color:=clBtnFace; DBGrid1.Columns.Items[Column.Index].Title.Color:=clr; //выполняем сортировку по выбранной колонке

DM.ZapasQuery.Sort:=DBGrid1.Columns.Items[Column.Index].FieldNa me+' '+s;

end;

procedure TS_Zapas.Edit1Change(Sender: TObject); Var S:string;

begin

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0; //сохранение имени поля дбгрид1 в перменную s по имени выбранной записи в комбобокс1 S:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName; DM.ZapasQuery.SQL.Clear;

//формирование запроса по полю сохраненному в переменной s DM.ZapasQuery.SQL.Add('SELECT VoenZapas.VZapas_ID, VoenZapas.VZapas_FIO, VoenZapas.VZapas_dtyval, VoenZapas.VZapas_zvanie, VoenZapas.VZapas_srok,

VoenZapas.VZapas_zarplata, VoenZapas.VZapas_pensia, VoenZapas.VZapas_denplata, VoenZvanie.VZvanie_name, VoenInfo.VInfo_FIO '+

'FROM VoenInfo INNER JOIN (VoenZvanie INNER JOIN VoenZapas ON VoenZvanie.VZvanie_ID = VoenZapas.VZapas_zvanie) ON VoenInfo.VInfo_ID = VoenZapas.VZapas_FIO'+' WHERE '+s+' LIKE

'''+Edit1.Text+'%''');

//обновляем

Refresh;

end;

procedure TS_Zapas.BitBtn3Click(Sender: TObject); //удалить

var s:string; begin

dm.ADOQuery1.Active:=False;

dm.ADOQuery1.SQL.Clear; dm.ADOQuery1.SQL.Add('SELECT * FROM VoenZapas'); dm.ADOQuery1.Active:=true; s:=DM.ZapasQuery.FieldValues['VZapas_ID']; dm.ADOQuery1.Close;

dm.ADOQuery1.Open; dm.ADOQuery1.Locate('VZapas_ID',s,[loPartialKey]); dm.ADOQuery1.Delete;

refresh;

end;

procedure TS_Zapas.BitBtn1Click(Sender: TObject); //добавить begin

EditZapas:=TEditZapas.Create(self); OpenForm(false) ;

Refresh;

end;

procedure TS_Zapas.BitBtn2Click(Sender: TObject);

//изм

begin

 

EditZapas:=TEditZapas.Create(self);

 

OpenForm(true);

 

Refresh;

 

end;

 

end.

 

unit VidPensEditUnit;

 

interface

 

uses

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

Dialogs, DMUnit, StdCtrls, Mask, DBCtrls, Buttons, ComCtrls, DB;

type

TEdit_VidPens = class(TForm) Label1: TLabel;

DBEdit1: TDBEdit; Label2: TLabel;

DateTimePicker1: TDateTimePicker; Label3: TLabel;

DBLookupComboBox1: TDBLookupComboBox; BitBtn1: TBitBtn;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

DBEdit4: TDBEdit; Label4: TLabel; Label5: TLabel; DBEdit5: TDBEdit; month: TDBEdit;

procedure BitBtn1Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject);

procedure DateTimePicker1Change(Sender: TObject);

private

38

{Private declarations } public

{Public declarations } end;

procedure OpenForm(ed:boolean);

var

Edit_VidPens: TEdit_VidPens; isEdit:boolean;

period: string; implementation

{$R *.dfm}

procedure OpenForm(ed:boolean);// процедура "открытие формы" begin

isEdit:=ed;

if ed then // в первом случае begin

Edit_VidPens.Caption:='Изменение'; //присваиваем форме название

"Изменение"

 

DM.SummaQuery.Edit;

//режим изменения записи

DM.SummaQuery.Post;

//подтверждение изменений

end

 

else // во втором случае

 

begin

 

Edit_VidPens.Caption:='Добавление'; //присваиваем форме название "Добавление"

DM.SummaQuery.Append; //режим добавления записи end;

Edit_VidPens.ShowModal; // показать форму end;

procedure TEdit_VidPens.BitBtn1Click(Sender: TObject); var

i:integer;

summa:double; begin

period:=DateToStr(DateTimePicker1.Date); dm.ADOQuery1.Active:=false;//сама пенсия dm.ADOQuery2.Active:=false; //индексы

dm.ADOQuery1.SQL.Clear;

dm.ADOQuery2.SQL.Clear;

dm.ADOQuery1.SQL.Add('SELECT VoenZapas.VZapas_ID, VoenZapas.VZapas_FIO, VoenZapas.VZapas_pensia '+ 'FROM VoenZapas');

DM.ADOQuery1.Active:=true; dm.ADOQuery1.Locate('VZapas_FIO', DBLookupComboBox1.KeyValue, [loCaseInsensitive]); summa:=StrToFloat(DBEdit5.Text);

dm.ADOQuery2.SQL.Add('SELECT IndexPens.Index_ID, IndexPens.Index_data, IndexPens.Index_vel '+

'FROM IndexPens '+

'WHERE IndexPens.Index_data< :period;' ); dm.ADOQuery2.Parameters.ParamByName('period').Value:=period; dm.ADOQuery2.Active:=true;

dm.ADOQuery2.First;

for i:=0 to (dm.ADOQuery2.RecordCount-1) do begin

summa:=(summa/100)*(100+StrToFloat(DBEdit4.Text));

dm.ADOQuery2.Next;

end;

DBEdit3.Text:=FloatToStr(summa);

end;

procedure TEdit_VidPens.BitBtn3Click(Sender: TObject); begin

DM.SummaQuery.Cancel; //Отмена несохраненных изменений

DM.SummaQuery.Edit;

DM.SummaQuery.Post; //подтверждение изменений Edit_VidPens.Close;

end;

procedure TEdit_VidPens.BitBtn2Click(Sender: TObject); begin

if isEdit=false then begin

dm.ADOQuery3.Active:=false;

dm.ADOQuery3.SQL.Clear; dm.ADOQuery3.SQL.Add('SELECT PensVid.Pens_ID,

PensVid.Pens_FIO, PensVid.Pens_month '+ 'FROM PensVid;');

dm.ADOQuery3.Active:=true;

if Dm.ADOQuery3.Locate('Pens_FIO; Pens_month',VarArrayOf([DBLookupComboBox1.KeyValue,month.Tex t]), [loCaseInsensitive]) then

begin

MessageDlg('Данная выплата уже производилась!',mtWarning,[mbOK],0);

DM.SummaQuery.Cancel; Edit_VidPens.Close;

end else

begin

DM.SummaQuery.Post; //подтверждение изменений Edit_VidPens.Close;

end; end

else begin

dm.ADOQuery3.Active:=false;

dm.ADOQuery3.SQL.Clear; dm.ADOQuery3.SQL.Add('SELECT * FROM PensVid WHERE

Pens_month=:PMonth and Pens_ID<>:PID and Pens_FIO=:PFIO'); dm.ADOQuery3.Prepared;

dm.ADOQuery3.Parameters.ParamByName('PMonth').Value:=month.Te xt;

dm.ADOQuery3.Parameters.ParamByName('PID').Value:=DBEdit1.Text

;

dm.ADOQuery3.Parameters.ParamByName('PFIO').Value:=DBLookupC omboBox1.KeyValue;

dm.ADOQuery3.Active:=true;

if Dm.ADOQuery3.RecordCount>0 then begin

MessageDlg('Данная выплата уже вносилась',mtWarning,[mbOK],0);

DM.SummaQuery.Cancel; Edit_VidPens.Close;

end else begin

DM.SummaQuery.Post; //подтверждение изменений Edit_VidPens.Close;

end;

end;

end;

procedure TEdit_VidPens.DateTimePicker1Change(Sender: TObject); begin

DBEdit2.Text:=DateToStr(DateTimePicker1.Date); month.Text:=FormatDateTime('mm', DateTimePicker1.Date); end;

end.

nit VoenInfoEditUnit;

interface

uses

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

39

Dialogs, DMUnit, StdCtrls, ComCtrls, Mask, DBCtrls, Buttons;

type

TEdit_VoenInfo = class(TForm) BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Label1: TLabel; DBEdit1: TDBEdit; Label2: TLabel; DBEdit2: TDBEdit; Label3: TLabel;

DateTimePicker1: TDateTimePicker; DBEdit3: TDBEdit;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel; DBEdit5: TDBEdit; Label7: TLabel; DBEdit6: TDBEdit; Label8: TLabel;

DateTimePicker2: TDateTimePicker; DBEdit7: TDBEdit;

Label9: TLabel; DBEdit8: TDBEdit;

DBComboBox1: TDBComboBox;

procedure DateTimePicker1CloseUp(Sender: TObject); procedure DateTimePicker2CloseUp(Sender: TObject); procedure ComboBox1CloseUp(Sender: TObject); procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

procedure OpenForm(ed:boolean);

var

Edit_VoenInfo: TEdit_VoenInfo; isEdit:boolean;

implementation

{$R *.dfm}

procedure OpenForm(ed:boolean);// процедура "открытие формы" begin

isEdit:=ed;

if ed then // в первом случае begin

Edit_VoenInfo.Caption:='Изменение'; //присваиваем форме название

"Изменение"

 

DM.VoenQuery.Edit;

//режим изменения записи

DM.VoenQuery.Post;

//подтверждение изменений

end

else // во втором случае begin

Edit_VoenInfo.Caption:='Добавление'; //присваиваем форме название "Добавление"

DM.VoenQuery.Append; //режим добавления записи end;

Edit_VoenInfo.ShowModal; // показать форму end;

procedure TEdit_VoenInfo.DateTimePicker1CloseUp(Sender: TObject); begin

DBEdit3.Text:=datetostr(DateTimePicker1.Date);

end;

procedure TEdit_VoenInfo.DateTimePicker2CloseUp(Sender: TObject); begin

DBEdit7.Text:=datetostr(DateTimePicker2.Date);

end;

procedure TEdit_VoenInfo.ComboBox1CloseUp(Sender: TObject); begin

//DBEdit4.Text:=ComboBox1.;

end;

procedure TEdit_VoenInfo.BitBtn1Click(Sender: TObject); //сохранить

var s:string; begin

if isEdit=false then begin

dm.ADOQuery5.Active:=false;

dm.ADOQuery5.SQL.Clear; s:='SELECT * FROM VOENINFO where

VInfo_danpasp='''+DBEdit5.Text+''''; dm.ADOQuery5.SQL.Add(s); dm.ADOQuery5.Active:=true;

if Dm.ADOQuery5.RecordCount>0 then begin

MessageDlg('Данный сотрудник уже внесен в базу!',mtWarning,[mbOK],0);

DM.VoenQuery.Cancel;

Edit_VoenInfo.Close;

 

end

 

else

 

begin

 

DM.VoenQuery.Post;

//подтверждение изменений

Edit_VoenInfo.Close;

 

end;

 

end

 

else

 

begin dm.ADOQuery5.Active:=false; dm.ADOQuery5.SQL.Clear;

dm.ADOQuery5.SQL.Add('SELECT * FROM VOENINFO where VInfo_danpasp='''+DBEdit5.Text+''' and VInfo_ID<>'+DBEdit2.Text); dm.ADOQuery5.Active:=true;

if Dm.ADOQuery5.RecordCount>0 then begin

MessageDlg('Данный сотрудник уже внесен в

базу!',mtWarning,[mbOK],0);

DM.VoenQuery.Cancel;

Edit_VoenInfo.Close;

end

 

else

 

begin

 

DM.VoenQuery.Post;

//подтверждение изменений

Edit_VoenInfo.Close;

 

end;

 

end;

 

end;

 

procedure TEdit_VoenInfo.BitBtn2Click(Sender: TObject);

begin

 

DM.VoenQuery.Cancel;

//Отмена несохраненных изменений

DM.VoenQuery.Edit;

 

DM.VoenQuery.Post;

//подтверждение изменений

Edit_VoenInfo.Close;

 

end;

 

end.

unit ZapasEditUnit; interface

uses

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

Dialogs, DMUnit, StdCtrls, Mask, DBCtrls, Buttons, ComCtrls, DB;

type

TEditZapas = class(TForm) Label1: TLabel;

40

//режим изменения записи //подтверждение изменений

DBEdit1: TDBEdit; Label2: TLabel;

DBLookupComboBox1: TDBLookupComboBox; Label3: TLabel;

DateTimePicker1: TDateTimePicker; Label4: TLabel;

DBEdit2: TDBEdit; Label5: TLabel;

DBLookupComboBox2: TDBLookupComboBox; Label6: TLabel;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

BitBtn1: TBitBtn;

DBEdit5: TDBEdit; Label7: TLabel; Label8: TLabel; DBEdit6: TDBEdit; BitBtn2: TBitBtn; BitBtn3: TBitBtn; Edit1: TEdit;

procedure DateTimePicker1Change(Sender: TObject); procedure BitBtn2Click(Sender: TObject);

procedure DBLookupComboBox1Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject);

procedure FormCreate(Sender: TObject); procedure BitBtn3Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

procedure OpenForm(ed:boolean);

var

EditZapas: TEditZapas; isEdit:boolean;

implementation

{$R *.dfm}

procedure OpenForm(ed:boolean);// процедура "открытие формы" begin

isEdit:=ed;

if ed then // в первом случае begin

EditZapas.Caption:='Изменение'; //присваиваем форме название "Изменение"

DM.ZapasQuery.Edit;

DM.ZapasQuery.Post;

end

else // во втором случае begin

EditZapas.Caption:='Добавление'; //присваиваем форме название "Добавление"

DM.ZapasQuery.Append; //режим добавления записи end;

EditZapas.ShowModal; // показать форму end;

procedure TEditZapas.DateTimePicker1Change(Sender: TObject); begin

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

end;

procedure TEditZapas.BitBtn2Click(Sender: TObject); var s:string;

begin

if isEdit=false then begin

dm.ADOQuery6.Active:=false;

dm.ADOQuery6.SQL.Clear; dm.ADOQuery6.SQL.Add('SELECT VoenZapas.VZapas_ID,

VoenZapas.VZapas_FIO, VoenZapas.VZapas_dtyval, VoenZapas.VZapas_zvanie, VoenZapas.VZapas_srok,

VoenZapas.VZapas_zarplata, VoenZapas.VZapas_pensia, VoenZapas.VZapas_denplata, VoenZvanie.VZvanie_name, VoenInfo.VInfo_FIO '+

'FROM VoenInfo INNER JOIN (VoenZvanie INNER JOIN VoenZapas ON VoenZvanie.VZvanie_ID = VoenZapas.VZapas_zvanie) ON VoenInfo.VInfo_ID = VoenZapas.VZapas_FIO;');

dm.ADOQuery6.Active:=true; if

Dm.ADOQuery6.Locate('VZapas_FIO',DBLookupComboBox1.KeyValu e, [loCaseInsensitive]) then

begin

MessageDlg('Данный сотрудник уже внесен в базу!',mtWarning,[mbOK],0);

DM.ZapasQuery.Cancel;

EditZapas.Close; end

else begin

DM.ZapasQuery.Post; //подтверждение изменений EditZapas.Close;

end; end

else begin

dm.ADOQuery6.Active:=false;

dm.ADOQuery6.SQL.Clear; dm.ADOQuery6.SQL.Add('SELECT * FROM VoenZapas where VZapas_FIO=:VZFIO and VZapas_ID<>:VZID'); dm.ADOQuery6.Prepared;

dm.ADOQuery6.Parameters.ParamByName('VZFIO').Value:=DBLooku pComboBox1.KeyValue;

dm.ADOQuery6.Parameters.ParamByName('VZID').Value:=DBEdit1.Te xt;

dm.ADOQuery6.Active:=true;

if dm.ADOQuery6.RecordCount>0 then begin

MessageDlg('Информация о данном сотруднике внесена',mtWarning,[mbOK],0);

DM.ZapasQuery.Cancel;

EditZapas.Close; end

else begin

DM.ZapasQuery.Post; //подтверждение изменений EditZapas.Close;

end;

end;

end;

procedure TEditZapas.DBLookupComboBox1Click(Sender: TObject); begin

Edit1.Text:=DBLookupComboBox1.KeyValue;

end;

procedure TEditZapas.BitBtn1Click(Sender: TObject); var x:Double;

begin

if DBLookupComboBox2.KeyValue>7 then x:=2 else x:=1; if StrToInt(DBEdit2.Text)=20 then

DBEdit5.Text:=FloatToStr(((75*(StrToInt(DBEdit3.Text)))/100)*x); if StrToInt(DBEdit2.Text)=21 then DBEdit5.Text:=FloatToStr(((80*StrToInt(DBEdit3.Text))/100)*x); if StrToInt(DBEdit2.Text)=22 then DBEdit5.Text:=FloatToStr(((85*StrToInt(DBEdit3.Text))/100)*x); if StrToInt(DBEdit2.Text)=23 then DBEdit5.Text:=FloatToStr(((90*StrToInt(DBEdit3.Text))/100)*x); if StrToInt(DBEdit2.Text)=24 then DBEdit5.Text:=FloatToStr(((95*StrToInt(DBEdit3.Text))/100)*x); if StrToInt(DBEdit2.Text)>24 then DBEdit5.Text:=FloatToStr(StrToInt(DBEdit3.Text)*x);

end;

41

Соседние файлы в папке Курсовые работы