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

Приложение 2

ТЕКСТ ПРОГРАММЫ

unit uAuthorize;

interface

uses

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

Dialogs, StdCtrls, Buttons;

type

TfrAuthorize = class(TForm)

Label1: TLabel;

Label2: TLabel;

ComboBox1: TComboBox;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Edit1: TEdit;

Label3: TLabel;

Edit2: TEdit;

Label4: TLabel;

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frAuthorize: TfrAuthorize;

implementation

uses uMain, DM, ComObj, uRepProf, uRepStP, uRepPost, uRepSiz, uRepSup;

{$R *.dfm}

procedure TfrAuthorize.BitBtn2Click(Sender: TObject);

begin

frAuthorize.Close;

frMain.Close;

end;

procedure TfrAuthorize.BitBtn1Click(Sender: TObject);

var login, pass, bd: String;

begin

login:=ComboBox1.Text;

pass:=Edit1.Text;

bd:=Edit2.Text;

frDM.ADOConnect.ConnectionString:='Provider=OraOLEDB.Oracle.1;Password='+pass+';'+

'Persist Security Info=True;User ID='+login+';'+

'Data Source='+bd+';Extended Properties=""';

try

frDM.ADOConnect.Open;

frDM.ADOTableStP.Active:=true;

frDM.ADOTableProf.Active:=true;

frDM.ADOTableSiz.Active:=true;

frDM.ADOTablePost.Active:=true;

frDM.ADOTableNorm.Active:=true;

frDM.ADOTableEmp.Active:=true;

frDM.ADOTableCity.Active:=true;

frDM.ADOTableSup.Active:=true;

frDM.ADOTableLich.Active:=true;

frDM.ADOTableTabLich.Active:=true;

frDM.ADOTableCrOrd.Active:=true;

frDM.ADOTableTabCr.Active:=true;

frDM.ADOTableCard.Active:=true;

frDM.ADOTableTabCard.Active:=true;

frDM.ADOTableProv.Active:=true;

frDM.ADOTableReq.Active:=true;

frDM.ADOTableTabReq.Active:=true;

frRepProf.QuickRep1.DataSet:=frDM.ADOTableProf;

frRepProf.QRDBText1.DataSet:=frDM.ADOTableProf;

frRepProf.QRDBText1.DataField:='Название';

frRepStP.QuickRep1.DataSet:=frDM.ADOTableStP;

frRepStP.QRDBText1.DataSet:=frDM.ADOTableStP;

frRepStP.QRDBText1.DataField:='id';

frRepStP.QRDBText2.DataSet:=frDM.ADOTableStP;

frRepStP.QRDBText2.DataField:='Название';

frRepStP.QRDBText3.DataSet:=frDM.ADOTableStP;

frRepStP.QRDBText3.DataField:='Сокращение';

frRepPost.QuickRep1.DataSet:=frDM.ADOTablePost;

frRepPost.QRDBText1.DataSet:=frDM.ADOTablePost;

frRepPost.QRDBText1.DataField:='Название';

frRepSiz.QuickRep1.DataSet:=frDM.ADOTableSiz;

frRepSiz.QRDBText1.DataSet:=frDM.ADOTableSiz;

frRepSiz.QRDBText1.DataField:='id';

frRepSiz.QRDBText2.DataSet:=frDM.ADOTableSiz;

frRepSiz.QRDBText2.DataField:='Название';

frRepSup.QuickRep1.DataSet:=frDM.ADOQuerySup;

frRepSup.QRDBText1.DataSet:=frDM.ADOQuerySup;

frRepSup.QRDBText1.DataField:='Название';

frRepSup.QRDBText2.DataSet:=frDM.ADOQuerySup;

frRepSup.QRDBText2.DataField:='Город';

frRepSup.QRDBText3.DataSet:=frDM.ADOQuerySup;

frRepSup.QRDBText3.DataField:='Индекс';

frRepSup.QRDBText4.DataSet:=frDM.ADOQuerySup;

frRepSup.QRDBText4.DataField:='Адрес';

frAuthorize.Close;

except

on EOleException do

Label3.Caption:='Введен неверный логин/пароль';

end;

end;

end.

Рис. П2.1. Текст модуля uAuthorize.pas

unit uMain;

interface

uses

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

Dialogs, ComCtrls, ToolWin, ImgList, XPMan, Menus, DB, ADODB;

type

TfrMain = class(TForm)

ImageList1: TImageList;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

ToolButton4: TToolButton;

XPManifest1: TXPManifest;

MainMenu1: TMainMenu;

Рис. П2.2. Текст модуля uMain.pas

П2.2. Продолжение

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

ToolButton5: TToolButton;

ToolButton6: TToolButton;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

ToolButton7: TToolButton;

ToolButton8: TToolButton;

N17: TMenuItem;

N19: TMenuItem;

N21: TMenuItem;

N18: TMenuItem;

N20: TMenuItem;

N22: TMenuItem;

N23: TMenuItem;

N24: TMenuItem;

procedure CloseAllForms(Sender: TObject);

procedure CreateChildProf(const childName : string);

procedure CreateChildNewProf(const childName : string);

procedure CreateChildStP(const childName : string);

procedure CreateChildNewStP(const childName : string);

procedure CreateChildFindProf(const childName : string);

procedure CreateChildFindStP(const childName : string);

procedure CreateChildSiz(const childName : string);

procedure CreateChildNewSiz(const childName : string);

procedure CreateChildFindSiz(const childName : string);

procedure CreateChildPost(const childName : string);

procedure CreateChildNewPost(const childName : string);

procedure CreateChildNorm(const childName : string);

procedure CreateChildNewNorm(const childName : string);

procedure CreateChildEmp(const childName : string);

procedure CreateChildNewEmp(const childName : string);

procedure CreateChildFindPost(const childName : string);

procedure CreateChildFindEmp(const childName : string);

procedure CreateChildSupplier(const childName : string);

procedure CreateChildCity(const childName : string);

procedure CreateChildNewCity(const childName : string);

procedure CreateChildFindCity(const childName : string);

procedure CreateChildNewSup(const childName : string);

procedure CreateChildFindSup(const childName : string);

procedure CreateChildCrOrd(const childName : string);

procedure CreateChildNewCrOrd(const childName : string);

procedure CreateChildFindCrOrd(const childName : string);

procedure CreateChildCard(const childName : string);

procedure CreateChildFindCard(const childName : string);

procedure CreateChildNewCard(const childName : string);

procedure CreateChildEntry(const childName : string);

procedure CreateChildLichCard(const childName : string);

procedure CreateChildNewLichCard(const childName : string);

procedure CreateChildFindLichCard(const childName : string);

procedure CreateChildParamPrintEmp(const childName : string);

procedure CreateChildNewEntry(const childName : string);

procedure CreateChildRequest(const childName : string);

procedure CreateChildNewReq(const childName : string);

procedure CreateChildFindReq(const childName : string);

procedure N2Click(Sender: TObject);

procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure ToolButton3Click(Sender: TObject);

procedure ToolButton5Click(Sender: TObject);

procedure ToolButton6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N21Click(Sender: TObject);

procedure N19Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure N20Click(Sender: TObject);

procedure N24Click(Sender: TObject);

procedure N22Click(Sender: TObject);

procedure N23Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure ToolButton8Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frMain: TfrMain;

k_cr: integer;

idx_emp, idx_crord, idx_card, idx_lichcard: String;

srt: boolean;

implementation

uses uProf, uNewProf, uStP, DM, uNewStP, uFindProf, uFindStP, uSiz,

uNewSiz, uPost, uNewPost, uNorm, uNewNorm, uEmp, uNewEmp, uFindPost,

uFindSiz, uFindEmp, uSupplier, uCity, uNewCity, uFindCity, uNewSup,

uFindSup, uCrOrd, uNewCrOrd, uFindCrOrd, uCard, uFindCard, uNewCard,

uEntry, uLichCard, uNewLichCard, uFindLichCard, uAuthorize, uRepProf,

uRepStP, uRepPost, uRepSiz, uRepSup, uParamPrintEmp, uRepCrOrd, uRepCard,

uRepLichCard, uNewEntry, uRequest, uNewReq, uFindReq, uRepRequest;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrMain.CloseAllForms(Sender: TObject);

var i: integer;

begin

for i:= 0 to MdiChildCount - 1 do

MDIChildren[i].Close;

end;

procedure TfrMain.CreateChildProf(const childName : string);

var Child: TfrProf;

begin

Child := TfrProf.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildNewProf(const childName : string);

var Child: TfrNewProf;

begin

Child := TfrNewProf.Create(Application);

Child.Caption := childName;

end;

П2.2. Продолжение

procedure TfrMain.CreateChildStP(const childName : string);

var Child: TfrStP;

begin

Child := TfrStP.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildNewStP(const childName : string);

var Child: TfrNewStP;

begin

Child := TfrNewStP.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildFindProf(const childName : string);

var Child: TfrFindProf;

begin

Child := TfrFindProf.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildSiz(const childName : string);

var Child: TfrSiz;

begin

Child := TfrSiz.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildNewSiz(const childName : string);

var Child: TfrNewSiz;

begin

Child := TfrNewSiz.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildFindSiz(const childName : string);

var Child: TfrFindSiz;

begin

Child := TfrFindSiz.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildPost(const childName : string);

var Child: TfrPost;

begin

Child := TfrPost.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildNewPost(const childName : string);

var Child: TfrNewPost;

begin

Child := TfrNewPost.Create(Application);

Child.Caption := childName;

end;

(const childName : string);

var Child: TfrFindPost;

begin

Child := TfrFindPost.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildNorm(const childName : string);

var Child: TfrNorm;

begin

Child := TfrNorm.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildNewNorm(const childName : string);

var Child: TfrNewNorm;

begin

Child := TfrNewNorm.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildEmp(const childName : string);

var Child: TfrEmp;

begin

Child := TfrEmp.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildNewEmp(const childName : string);

var Child: TfrNewEmp;

begin

Child := TfrNewEmp.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildFindEmp(const childName : string);

var Child: TfrFindEmp;

begin

Child := TfrFindEmp.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildSupplier(const childName : string);

var Child: TfrSupplier;

begin

Child := TfrSupplier.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildNewSup(const childName : string);

var Child: TfrNewSup;

begin

Child := TfrNewSup.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildFindSup(const childName : string);

var Child: TfrFindSup;

begin

Child := TfrFindSup.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildCity(const childName : string);

var Child: TfrCity;

begin

Child := TfrCity.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildNewCity(const childName : string);

var Child: TfrNewCity;

begin

Child := TfrNewCity.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildFindCity(const childName : string);

var Child: TfrFindCity;

begin

Child := TfrFindCity.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildCrOrd(const childName : string);

var Child: TfrCrOrd;

begin

Child := TfrCrOrd.Create(Application);

Child.Caption := childName;

end;

П2.2. Продолжение

procedure TfrMain.CreateChildNewCrOrd(const childName : string);

var Child: TfrNewCrOrd;

begin

Child := TfrNewCrOrd.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildFindCrOrd(const childName : string);

var Child: TfrFindCrOrd;

begin

Child := TfrFindCrOrd.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildCard(const childName : string);

var Child: TfrCard;

begin

Child := TfrCard.Create(Application);

Child.Caption := childName;

end;

//найти карточку учета материалов

procedure TfrMain.CreateChildFindCard(const childName : string);

var Child: TfrFindCard;

begin

Child := TfrFindCard.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildNewCard(const childName : string);

var Child: TfrNewCard;

begin

Child := TfrNewCard.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildEntry(const childName : string);

var Child: TfrEntry;

begin

Child := TfrEntry.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildLichCard(const childName : string);

var Child: TfrLichCard;

begin

Child := TfrLichCard.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildNewLichCard(const childName : string);

var Child: TfrNewLichCard;

begin

Child := TfrNewLichCard.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildFindLichCard(const childName : string);

var Child: TfrFindLichCard;

begin

Child := TfrFindLichCard.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildParamPrintEmp(const childName : string);

var Child: TfrParamPrintEmp;

begin

Child := TfrParamPrintEmp.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildNewEntry(const childName : string);

var Child: TfrNewEntry;

begin

Child := TfrNewEntry.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildRequest(const childName : string);

var Child: TfrRequest;

begin

Child := TfrRequest.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildNewReq(const childName : string);

var Child: TfrNewReq;

begin

Child := TfrNewReq.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.CreateChildFindReq(const childName : string);

var Child: TfrFindReq;

begin

Child := TfrFindReq.Create(Application);

Child.Caption := childName;

end;

procedure TfrMain.N2Click(Sender: TObject);

begin

CreateChildProf('Должности');

if frmRefresh(frProf,TfrProf) then frProf.Tag:=1;

frDM.ADOTableProf.IndexFieldNames:='Название';

frDM.ADOTableProf.First;

end;

);

begin

CreateChildStP('Подразделения');

if frmRefresh(frStP,TfrStP) then frStP.Tag:=2;

frDM.ADOTableStP.IndexFieldNames:='id';

frDM.ADOTableStP.First;

end;

procedure TfrMain.N7Click(Sender: TObject);

begin

CreateChildSiz('Спецодежда и СИЗ');

if frmRefresh(frSiz, TfrSiz) then frSiz.Tag:=3;

frDM.ADOTableSiz.IndexFieldNames:='Название';

frDM.ADOTableSiz.First;

end;

procedure TfrMain.N8Click(Sender: TObject);

begin

CreateChildPost('Постановления');

if frmRefresh(frPost, TfrPost) then frPost.Tag:=4;

frDM.ADOTablePost.IndexFieldNames:='Название';

frDM.ADOTablePost.First;

end;

procedure TfrMain.N15Click(Sender: TObject);

begin

CreateChildNorm('Нормативы');

end;

procedure TfrMain.N16Click(Sender: TObject);

begin

CreateChildEmp('Сотрудники');

if frmRefresh(frEmp, TfrEmp) then frEmp.Tag:=6;

end;

procedure TfrMain.N21Click(Sender: TObject);

begin

CreateChildSupplier('Поставщики');

if frmRefresh(frSupplier, TfrSupplier) then frSupplier.Tag:=7;

end;

П2.2. Продолжение

procedure TfrMain.N19Click(Sender: TObject);

begin

CreateChildCity('Города');

if frmRefresh(frCity, TfrCity) then frCity.Tag:=8;

frDM.ADOTableCity.IndexFieldNames:='Название';

frDM.ADOTableCity.First;

end;

procedure TfrMain.N17Click(Sender: TObject);

begin

CreateChildCrOrd('Приходные ордера');

end;

procedure TfrMain.N20Click(Sender: TObject);

begin

CreateChildCard('Карточки учета материалов');

if frmRefresh(frCard, TfrCard) then frCard.Tag:=12;

end;

procedure TfrMain.N22Click(Sender: TObject);

begin

CreateChildEntry('Журнал проводок');

if frmRefresh(frEntry, TfrEntry) then frEntry.Tag:=13;

end;

procedure TfrMain.N23Click(Sender: TObject);

begin

CreateChildLichCard('Журнал личных карточек');

if frmRefresh(frLichCard, TfrLichCard) then frLichCard.Tag:=14;

end;

procedure TfrMain.N24Click(Sender: TObject);

begin

CreateChildRequest('Журнал заявок');

if frmRefresh(frRequest, TfrRequest) then frRequest.Tag:=16;

frDM.ADOTableReq.Sort:='Дата DESC';

frDM.ADOTableReq.First;

end;

procedure TfrMain.ToolButton1Click(Sender: TObject);

var n: integer;

begin

n:=ActiveMDIChild.Tag;

case n of

1: begin

CreateChildNewProf('Новая запись');

if frmRefresh(frNewProf,TfrNewProf) then

begin

frNewProf.Tag:=101;

frNewProf.DBEditEh1.SetFocus;

end;

frDM.ADOTableProf.Append;

end;

2: begin

CreateChildNewStP('Новая запись');

if frmRefresh(frNewStP,TfrNewStP) then

begin

frNewStP.Tag:=201;

frNewStP.DBEdit2.SetFocus;

end;

frDM.ADOTableStP.Append;

end;

3: begin

CreateChildNewSiz('Новая запись');

if frmRefresh(frNewSiz,TfrNewSiz) then

begin

frNewSiz.Tag:=301;

frNewSiz.DBEdit3.SetFocus;

end;

frDM.ADOTableSiz.Append;

end;

4: begin

CreateChildNewPost('Новая запись');

if frmRefresh(frNewPost,TfrNewPost) then

begin

frNewPost.Tag:=401;

frNewPost.DBEditEh1.SetFocus;

end;

frDM.ADOTablePost.Append;

end;

5: begin

CreateChildNewNorm('Новая запись');

if frmRefresh(frNewNorm,TfrNewNorm) then

begin

frNewNorm.Tag:=501;

frNewNorm.Edit1.SetFocus;

frNewNorm.Edit1.Text:=frNorm.Edit1.Text;

if frDM.ADOQueryNormProf['Название']<>Null then

frNewNorm.Edit2.Text:=frDM.ADOQueryNormProf['Название'];

end;

frDM.ADOTableNorm.Append;

end;

6: begin

CreateChildNewEmp('Новая запись');

if frmRefresh(frNewEmp,TfrNewEmp) then

begin

frNewEmp.Tag:=601;

frNewEmp.Edit1.SetFocus;

end;

frDM.ADOTableEmp.Append;

end;

7: begin

CreateChildNewSup('Новая запись');

if frmRefresh(frNewSup,TfrNewSup) then

begin

frNewSup.Tag:=701;

frNewSup.Edit1.SetFocus;

end;

frDM.ADOTableSup.Append;

end;

8: begin

CreateChildNewCity('Новая запись');

if frmRefresh(frNewCity,TfrNewCity) then

begin

frNewCity.Tag:=801;

frNewCity.DBEditEh1.SetFocus;

end;

frDM.ADOTableCity.Append;

end;

9: begin

CreateChildNewCrOrd('Новый приходный ордер');

if frmRefresh(frNewCrOrd,TfrNewCrOrd) then

begin

frNewCrOrd.Tag:=901;

frNewCrOrd.Edit1.SetFocus;

end;

frDM.ADOTableCrOrd.Append;

frDM.ADOQueryCheck.Active:=false;

frDM.ADOQueryCheck.SQL.Text:='select seq_crord.nextval from dual';

frDM.ADOQueryCheck.Active:=true;

k_cr:=frDM.ADOQueryCheck.FieldValues['nextval']+1;

end;

12,130,146,167: begin

CreateChildNewCard('Новая карточка учета материалов');

if frmRefresh(frNewCard,TfrNewCard) then

begin

frNewCard.Tag:=122;

frNewCard.Edit1.SetFocus;

end;

frDM.ADOTableCard.Append;

end;

13: begin

CreateChildNewEntry('Новая проводка');

if frmRefresh(frNewEntry, TfrNewEntry) then

begin

frNewEntry.Tag:=131;

frNewEntry.DBDateTimeEditEh1.SetFocus;

end;

frDM.ADOTableProv.Append;

П2.2. Продолжение

end;

14: begin

CreateChildNewLichCard('Новая личная карточка');

if frmRefresh(frNewLichCard, TfrNewLichCard) then

begin

frNewLichCard.Tag:=141;

frNewLichCard.Edit1.SetFocus;

end;

frDM.ADOTableLich.Append;

end;

16: begin

CreateChildNewReq('Новая запись');

if frmRefresh(frNewReq,TfrNewReq) then

begin

frNewReq.Tag:=161;

frNewReq.DBDateTimeEditEh1.Text:=DateToStr(Date);

frNewReq.DBDateTimeEditEh1.SetFocus;

end;

frDM.ADOTableReq.Append;

end;

end;

end;

procedure TfrMain.ToolButton2Click(Sender: TObject);

var n: integer;

stpID, profID: integer;

sizID: String;

begin

n:=ActiveMDIChild.Tag;

case n of

1: begin

CreateChildNewProf('Редактировать запись');

if frmRefresh(frNewProf,TfrNewProf) then

begin

frNewProf.Tag:=102;

frNewProf.DBEditEh1.SetFocus;

end;

end;

2: begin

CreateChildNewStP('Редактировать запись');

if frmRefresh(frNewStP,TfrNewStP) then

begin

frNewStP.Tag:=202;

frNewStP.DBEdit2.SetFocus;

end;

end;

3: begin

CreateChildNewSiz('Редактировать запись');

if frmRefresh(frNewSiz,TfrNewSiz) then

begin

frNewSiz.Tag:=302;

frNewSiz.DBEdit3.SetFocus;

end;

end;

4: begin

CreateChildNewPost('Редактировать запись');

if frmRefresh(frNewPost,TfrNewPost) then

begin

frNewPost.Tag:=402;

frNewPost.DBEditEh1.SetFocus;

end;

end;

5: begin

CreateChildNewNorm('Редактировать запись');

if frmRefresh(frNewNorm,TfrNewNorm) then

begin

frNewNorm.Tag:=502;

frNewNorm.Edit1.SetFocus;

frNewNorm.Edit1.Text:=frNorm.Edit1.Text;

if frDM.ADOQueryNormProf['Название']<>Null then

frNewNorm.Edit2.Text:=frDM.ADOQueryNormProf['Название'];

if frDM.ADOQueryNormSiz['p4']<>Null then

frNewNorm.Edit3.Text:=frDM.ADOQueryNormSiz['p4'];

if frDM.ADOQueryNormSiz['p5']<>Null then

frNewNorm.ComboBox1.Text:=frDM.ADOQueryNormSiz['p5'];

if frDM.ADOQueryNormSiz['p6']<>Null then

frNewNorm.Edit4.Text:=IntToStr(frDM.ADOQueryNormSiz['p6']);

if frDM.ADOQueryNormSiz['p7']<>Null then

frNewNorm.ComboBox2.Text:=frDM.ADOQueryNormSiz['p7'];

if frDM.ADOQueryNormSiz['p8']<>Null then

frNewNorm.SpinEdit1.Text:=IntToStr(frDM.ADOQueryNormSiz['p8']);

if frDM.ADOQueryNormSiz['p9']='true' then

frNewNorm.CheckBox1.Checked:=true;

if frDM.ADOQueryNormSiz['Название']<>Null then

frNewNorm.Edit5.Text:=frDM.ADOQueryNormSiz['Название'];

if frDM.ADOQueryNormSiz['p11']<>Null then

frNewNorm.Edit6.Text:=frDM.ADOQueryNormSiz['p11'];

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Подразделения where Сокращение='+#39+frNewNorm.Edit1.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

stpID:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Должности where Название='+#39+frNewNorm.Edit2.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

profID:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Спецодежда where Название='+#39+frNewNorm.Edit3.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

sizID:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Нормативы where Подразделение='+IntToStr(stpID)+' and Должность='+IntToStr(profID)+' and Спецодежда='+#39+sizID+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

frDM.ADOTableNorm.Locate('id',FieldValues['id'],[]);

frDM.ADOTableNorm.Edit;

end;

end;

end;

6: begin

CreateChildNewEmp('Редактировать запись');

if frmRefresh(frNewEmp,TfrNewEmp) then

begin

frNewEmp.Tag:=602;

frNewEmp.Edit1.SetFocus;

if frDM.ADOQueryEmp['id']<>Null then

frNewEmp.Edit1.Text:=frDM.ADOQueryEmp['id'];

if frDM.ADOQueryEmp['Фамилия']<>Null then

frNewEmp.Edit2.Text:=frDM.ADOQueryEmp['Фамилия'];

if frDM.ADOQueryEmp['Имя']<>Null then

frNewEmp.Edit3.Text:=frDM.ADOQueryEmp['Имя'];

if frDM.ADOQueryEmp['Отчество']<>Null then

frNewEmp.Edit4.Text:=frDM.ADOQueryEmp['Отчество'];

if frDM.ADOQueryEmp['Пол']<>Null then

frNewEmp.ComboBox1.Text:=frDM.ADOQueryEmp['Пол'];

if frDM.ADOQueryEmp['Дата_рожд']<>Null then

П2.2. Продолжение

frNewEmp.DBDateTimeEditEh1.Text:=frDM.ADOQueryEmp['Дата_рожд'];

if frDM.ADOQueryEmp['Сокращение']<>Null then

frNewEmp.Edit5.Text:=frDM.ADOQueryEmp['Сокращение'];

if frDM.ADOQueryEmp['Название']<>Null then

frNewEmp.Edit6.Text:=frDM.ADOQueryEmp['Название'];

if frDM.ADOQueryEmp['Раб_тел']<>Null then

frNewEmp.Edit7.Text:=frDM.ADOQueryEmp['Раб_тел'];

frDM.ADOTableEmp.Locate('id',frDM.ADOQueryEmp['id'],[]);

frDM.ADOTableEmp.Edit;

end;

end;

7: begin

CreateChildNewSup('Редактировать запись');

if frmRefresh(frNewSup,TfrNewSup) then

begin

frNewSup.Tag:=702;

frNewSup.Edit1.SetFocus;

if frDM.ADOQuerySup['Название']<>Null then

frNewSup.Edit1.Text:=frDM.ADOQuerySup['Название'];

if frDM.ADOQuerySup['Город']<>Null then

frNewSup.Edit2.Text:=frDM.ADOQuerySup['Город'];

if frDM.ADOQuerySup['Индекс']<>Null then

frNewSup.Edit3.Text:=frDM.ADOQuerySup['Индекс'];

if frDM.ADOQuerySup['Адрес']<>Null then

frNewSup.Edit4.Text:=frDM.ADOQuerySup['Адрес'];

frDM.ADOTableSup.Locate('Название',frDM.ADOQuerySup['Название'],[]);

frDM.ADOTableSup.Edit;

end;

end;

8: begin

CreateChildNewCity('Редактировать запись');

if frmRefresh(frNewCity,TfrNewCity) then

begin

frNewCity.Tag:=802;

frNewCity.DBEditEh1.SetFocus;

end;

end;

12,130,146,167: begin

CreateChildNewCard('Редактировать запись');

if frmRefresh(frNewCard,TfrNewCard) then

begin

frNewCard.Tag:=125;

frNewCard.Edit1.SetFocus;

frDM.ADOTableCard.Active:=false;

frDM.ADOTableCard.Active:=true;

frDM.ADOTableCard.Locate('id',frDM.ADOQueryCard['id'],[]);

if frDM.ADOQueryCard['СИЗ']<>Null then

frNewCard.Edit1.Text:=frDM.ADOQueryCard['СИЗ'];

if frDM.ADOQueryCard['Номер']<>Null then

frNewCard.Edit2.Text:=frDM.ADOQueryCard['Номер'];

if frDM.ADOQueryCard['Размер']<>Null then

frNewCard.Edit3.Text:=frDM.ADOQueryCard['Размер'];

if frDM.ADOQueryCard['Запас']<>Null then

frNewCard.Edit4.Text:=frDM.ADOQueryCard['Запас'];

if frDM.ADOTableCard['Ед_изм']<>Null then

frNewCard.ComboBox1.Text:=frDM.ADOTableCard['Ед_изм'];

frDM.ADOTableCard.Edit;

end;

end;

13: begin

CreateChildNewEntry('Редактировать проводку');

if frmRefresh(frNewEntry, TfrNewEntry) then

begin

frNewEntry.Tag:=132;

frNewEntry.DBDateTimeEditEh1.SetFocus;

frDM.ADOTableProv.Active:=false;

frDM.ADOTableProv.Active:=true;

frDM.ADOTableProv.Locate('id',frDM.ADOQueryProv['id'],[]);

if frDM.ADOQueryProv['Дата']<>Null then

frNewEntry.DBDateTimeEditEh1.Text:=frDM.ADOQueryProv['Дата'];

if frDM.ADOQueryProv['Номер_док']<>Null then

frNewEntry.Edit1.Text:=frDM.ADOQueryProv['Номер_док'];

if frDM.ADOQueryProv['Номер']<>Null then

frNewEntry.Edit2.Text:=frDM.ADOQueryProv['Номер'];

if frDM.ADOQueryProv['Название']<>Null then

frNewEntry.Edit3.Text:=frDM.ADOQueryProv['Название'];

if frDM.ADOQueryProv['Номер_по_карт']<>Null then

frNewEntry.Edit4.Text:=frDM.ADOQueryProv['Номер_по_карт'];

if frDM.ADOQueryProv['Ед_изм']<>Null then

frNewEntry.Edit5.Text:=frDM.ADOQueryProv['Ед_изм'];

if frDM.ADOQueryProv['Дебет']<>Null then

frNewEntry.Edit6.Text:=copy(frDM.ADOQueryProv['Дебет'],2,length(frDM.ADOQueryProv['Дебет'])-2);

if frDM.ADOQueryProv['Кредит']<>Null then

frNewEntry.Edit8.Text:=copy(frDM.ADOQueryProv['Кредит'],2,length(frDM.ADOQueryProv['Кредит'])-2);

if frDM.ADOQueryProv['Количество']<>Null then

frNewEntry.SpinEdit3.Text:=frDM.ADOQueryProv['Количество'];

if frDM.ADOQueryProv['Цена']<>Null then

frNewEntry.currEdit1.Text:=FloatToStrf(frDM.ADOQueryProv['Цена'],fffixed,12,2);

if frDM.ADOQueryProv['Стоимость']<>Null then

frNewEntry.currEdit2.Text:=FloatToStrf(frDM.ADOQueryProv['Стоимость'],fffixed,12,2);

if frDM.ADOQueryProv['Операция']='Пост'

then frNewEntry.RadioGroup1.ItemIndex:=0

else if frDM.ADOQueryProv['Операция']='Выдача'

then frNewEntry.RadioGroup1.ItemIndex:=1

else if frDM.ADOQueryProv['Операция']='Списание'

then frNewEntry.RadioGroup1.ItemIndex:=2;

frDM.ADOTableProv.Edit;

end;

end;

14: begin

CreateChildNewLichCard('Редактировать личную карточку');

if frmRefresh(frNewLichCard, TfrNewLichCard) then

begin

frNewLichCard.Tag:=142;

frNewLichCard.Edit1.SetFocus;

frDM.ADOTableLich.Active:=false;

frDM.ADOTableLich.Active:=true;

frDM.ADOTableLich.Locate('Сотрудник',frDM.ADOQueryLich['Таб_ном'],[]);

if frDM.ADOQueryLich['Таб_ном']<>Null then

frNewLichCard.Edit1.Text:=frDM.ADOQueryLich['Таб_ном'];

if frDM.ADOQueryLich['Фамилия']<>Null then

frNewLichCard.Edit2.Text:=frDM.ADOQueryLich['Фамилия'];

if frDM.ADOQueryLich['Имя']<>Null then

frNewLichCard.Edit3.Text:=frDM.ADOQueryLich['Имя'];

if frDM.ADOQueryLich['Отчество']<>Null then

frNewLichCard.Edit4.Text:=frDM.ADOQueryLich['Отчество'];

if frDM.ADOQueryLich['Пол']<>Null then

frNewLichCard.Edit5.Text:=frDM.ADOQueryLich['Пол'];

if frDM.ADOQueryLich['Рост']<>Null then

frNewLichCard.Edit6.Text:=frDM.ADOQueryLich['Рост'];

if frDM.ADOQueryLich['Р_одежда']<>Null then

frNewLichCard.Edit7.Text:=frDM.ADOQueryLich['Р_одежда'];

if frDM.ADOQueryLich['Р_обувь']<>Null then

frNewLichCard.Edit8.Text:=frDM.ADOQueryLich['Р_обувь'];

if frDM.ADOQueryLich['Р_голова']<>Null then

frNewLichCard.Edit9.Text:=frDM.ADOQueryLich['Р_голова'];

if frDM.ADOQueryLich['Подразделение']<>Null then

frNewLichCard.Edit10.Text:=frDM.ADOQueryLich['Подразделение'];

if frDM.ADOQueryLich['Должность']<>Null then

frNewLichCard.Edit11.Text:=frDM.ADOQueryLich['Должность'];

if frDM.ADOQueryLich['Дата_пост']<>Null then

frNewLichCard.DBDateTimeEditEh1.Text:=frDM.ADOQueryLich['Дата_пост'];

if frDM.ADOQueryLich['Дата_изм']<>Null then

frNewLichCard.DBDateTimeEditEh2.Text:=frDM.ADOQueryLich['Да

та_изм'];

frDM.ADOTableLich.Edit;

end;

end;

П2.2. Продолжение

16: begin

CreateChildNewReq('Редактировать запись');

if frmRefresh(frNewReq,TfrNewReq) then

begin

frNewReq.Tag:=162;

frNewReq.DBDateTimeEditEh1.SetFocus;

end;

end;

end;

end;

procedure TfrMain.ToolButton3Click(Sender: TObject);

var n,btn: integer;

stpID, profID: integer;

sizID, s, s1, s2: String;

begin

btn:=0;

n:=ActiveMDIChild.Tag;

case n of

1: begin

s:=frDM.ADOTableProf['id'];

frDM.ADOQueryCheck.Active:=false;

frDM.ADOQueryCheck.SQL.Text:='select Нормативы.Должность '+

'from Нормативы '+

'where Нормативы.Должность='+s+

' union '+

'select Сотрудники.Должность '+

'from Сотрудники '+

'where Сотрудники.Должность='+s;

frDM.ADOQueryCheck.Active:=true;

if (frDM.ADOQueryCheck.RecordCount<>0)

then MessageDlg(' Запись не может быть удалена:'+#13+'она используется в других справочниках.',mtWarning,[mbOk],0)

else

btn:=MessageDlg('Вы действительно хотите удалить данную запись?',mtConfirmation,[mbOk,mbNo],0);

if btn=mrOk then

begin

frDM.ADOTableProf.Delete;

frDM.ADOTableProf.Active:=false;

frDM.ADOTableProf.Active:=true;

end;

end;

2: begin

s:=frDM.ADOTableStP['id'];

frDM.ADOQueryCheck.Active:=false;

frDM.ADOQueryCheck.SQL.Text:='select Нормативы.Подразделение '+

'from Нормативы '+

'where Нормативы.Подразделение='+s+

' union '+

'select Сотрудники.Подразделение '+

'from Сотрудники '+

'where Сотрудники.Подразделение='+s;

frDM.ADOQueryCheck.Active:=true;

if (frDM.ADOQueryCheck.RecordCount<>0)

then MessageDlg(' Запись не может быть удалена:'+#13+'она используется в других справочниках.',mtWarning,[mbOk],0)

else

btn:=MessageDlg('Вы действительно хотите удалить данную запись?',mtConfirmation,[mbOk,mbNo],0);

if btn=mrOk then

begin

frDM.ADOTableStP.Delete;

frDM.ADOTableStP.Active:=false;

frDM.ADOTableStP.Active:=true;

end;

end;

3: begin

s:=frDM.ADOTableSiz['id'];

frDM.ADOQueryCheck.Active:=false;

frDM.ADOQueryCheck.SQL.Text:='select Нормативы.Спецодежда '+

'from Нормативы '+

'where Нормативы.Спецодежда='+#39+s+#39+

' union '+

'select Нормативы.Замена '+

'from Нормативы '+

'where Нормативы.Замена='+#39+s+#39+

' union '+

'select Проводки.СИЗ '+

'from Проводки '+

'where Проводки.СИЗ='+#39+s+#39+

' union '+

'select Склад_Учет.СИЗ '+

'from Склад_Учет '+

'where Склад_Учет.СИЗ='+#39+s+#39+

' union '+

'select ТЧ_Приход.СИЗ '+

'from ТЧ_Приход '+

'where ТЧ_Приход.СИЗ='+#39+s+#39;

Продолжение рис. П3.2

frDM.ADOQueryCheck.Active:=true;

if (frDM.ADOQueryCheck.RecordCount<>0)

then MessageDlg(' Запись не может быть удалена:'+#13+'она используется в других справочниках и документах.',mtWarning,[mbOk],0)

else

btn:=MessageDlg('Вы действительно хотите удалить данную запись?',mtConfirmation,[mbOk,mbNo],0);

if btn=mrOk then

begin

frDM.ADOTableSiz.Delete;

frDM.ADOTableSiz.Active:=false;

frDM.ADOTableSiz.Active:=true;

end;

end;

4: begin

s:=frDM.ADOTablePost['id'];

frDM.ADOQueryCheck.Active:=false;

frDM.ADOQueryCheck.SQL.Text:='select distinct Нормативы.Постановление '+

'from Нормативы '+

'where Нормативы.Постановление='+s;

frDM.ADOQueryCheck.Active:=true;

if (frDM.ADOQueryCheck.RecordCount<>0)

then MessageDlg(' Запись не может быть удалена:'+#13+'она используется в других

справочниках.',mtWarning,[mbOk],0)

else

btn:=MessageDlg('Вы действительно хотите удалить данную запись?',mtConfirmation,[mbOk,mbNo],0);

if btn=mrOk then

begin

frDM.ADOTablePost.Delete;

frDM.ADOTablePost.Active:=false;

frDM.ADOTablePost.Active:=true;

end;

end;

5: begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Подразделения where Сокращение='+#39+frNorm.Edit1.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

stpID:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Должности where Название='+#39+frDM.ADOQueryNormProf['Название']+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

П2.2. Продолжение

profID:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Спецодежда where Название='+#39+frDM.ADOQueryNormSiz['p4']+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

sizID:=FieldValues['id'];

end;

btn:=MessageDlg('Вы действительно хотите удалить данную запись?',mtConfirmation,[mbOk,mbNo],0);

if btn=mrOk then

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Нормативы where Подразделение='+IntToStr(stpID)+' and Должность='+IntToStr(profID)+' and Спецодежда='+#39+sizID+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

frDM.ADOTableNorm.Locate('id',FieldValues['id'],[]);

frDM.ADOTableNorm.Delete;

end;

if frDM.ADOTableStP['Сокращение'] <> Null then

if frmRefresh(frNorm,TfrNorm) then

begin

frNorm.Edit1.Text:=frDM.ADOTableStP['Сокращение'];

s2:=frNorm.Edit1.Text;

end;

frDM.ADOQueryNormProf.Active:=false;

frDM.ADOQueryNormProf.SQL.Text:='select distinct Должности.Название'+

' from Должности, Нормативы, Подразделения'+

' where Нормативы.Должность=Должности.id and'+

' Нормативы.Подразделение=Подразделения.id and'+

' Подразделения.Сокращение='+#39+s2+#39+

' order by Должности.Название';

frDM.ADOQueryNormProf.Active:=true;

if frDM.ADOQueryNormProf.FieldValues['Название']<>Null then

s1:=frDM.ADOQueryNormProf.FieldValues['Название'];

frDM.ADOQueryNormSiz.Active:=false;

frDM.ADOQueryNormSiz.SQL.Text:='select V_norm.p2, V_norm.p3, V_norm.p4, '+

'V_norm.p5, V_norm.p6, V_norm.p7, V_norm.p8, V_norm.p9, '+

'Спецодежда.Название, V_norm.p11 '+

'from V_norm '+

'left join Спецодежда on Спецодежда.id=V_norm.p10 '+

'where V_norm.p2='+#39+s2+#39+

' and V_norm.p3='+#39+s1+#39+

' order by V_norm.p4';

frDM.ADOQueryNormSiz.Active:=true;

end;

end;

6: begin

s:=frDM.ADOQueryEmp['id'];

frDM.ADOQueryCheck.Active:=false;

frDM.ADOQueryCheck.SQL.Text:='select Выдача.Сотрудник '+

'from Выдача '+

'where Выдача.Сотрудник='+s;

frDM.ADOQueryCheck.Active:=true;

if (frDM.ADOQueryCheck.RecordCount<>0)

then MessageDlg(' Запись не может быть удалена:'+#13+'она используется в других документах.',mtWarning,[mbOk],0)

else

btn:=MessageDlg('Вы действительно хотите удалить данную запись?',mtConfirmation,[mbOk,mbNo],0);

if btn=mrOk then

begin

frDM.ADOTableEmp.Locate('id',frDM.ADOQueryEmp['id'],[]);

frDM.ADOTableEmp.Delete;

frDM.ADOQueryEmp.Active:=false;

frDM.ADOQueryEmp.SQL.Text:='select Сотрудники.id, Сотрудники.Фамилия, Сотрудники.Имя, '+

'Сотрудники.Отчество, Сотрудники.Пол, Сотрудники.Дата_рожд, '+

'Подразделения.Сокращение, Должности.Название, Сотрудники.Раб_тел '+

'from Сотрудники '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Сотрудники.id';

frDM.ADOQueryEmp.Active:=true;

idx_emp:='id';

end;

end;

7: begin

s:=frDM.ADOQuerySup['id'];

frDM.ADOQueryCheck.Active:=false;

frDM.ADOQueryCheck.SQL.Text:='select Приход.Поставщик '+

'from Приход '+

'where Приход.Поставщик='+s;

frDM.ADOQueryCheck.Active:=true;

if (frDM.ADOQueryCheck.RecordCount<>0)

then MessageDlg(' Запись не может быть удалена:'+#13+'она используется в других документах.',mtWarning,[mbOk],0)

else

btn:=MessageDlg('Вы действительно хотите удалить данную запись?',mtConfirmation,[mbOk,mbNo],0);

if btn=mrOk then

begin

frDM.ADOTableSup.Locate('Название',frDM.ADOQuerySup['Название'],[loCaseInsensitive,loPartialKey]);

frDM.ADOTableSup.Delete;

frDM.ADOQuerySup.Active:=false;

frDM.ADOQuerySup.SQL.Text:='select Поставщики.id, Поставщики.Название, Города.Название as Город, '+

'Поставщики.Индекс, Поставщики.Адрес '+

'from Поставщики '+

'left join Города on Города.id=Поставщики.Город '+

'order by Поставщики.Название';

frDM.ADOQuerySup.Active:=true;

end;

end;

8: begin

s:=frDM.ADOTableCity['id'];

frDM.ADOQueryCheck.Active:=false;

frDM.ADOQueryCheck.SQL.Text:='select Поставщики.Город '+

'from Поставщики '+

'where Поставщики.Город='+s;

frDM.ADOQueryCheck.Active:=true;

if (frDM.ADOQueryCheck.RecordCount<>0)

then MessageDlg(' Запись не может быть удалена:'+#13+'она используется в других справочниках.',mtWarning,[mbOk],0)

else

btn:=MessageDlg('Вы действительно хотите удалить данную запись?',mtConfirmation,[mbOk,mbNo],0);

if btn=mrOk then

begin

frDM.ADOTableCity.Delete;

frDM.ADOTableCity.Active:=false;

frDM.ADOTableCity.Active:=true;

end;

end;

9: begin

btn:=MessageDlg('Вы действительно хотите удалить данную

П2.2. Продолжение

запись?',mtConfirmation,[mbOk,mbNo],0);

if btn=mrOk then

begin

s:=IntToStr(frDM.ADOQueryCrOrd['id']);

frDM.ADOTableCrOrd.Locate('id',frDM.ADOQueryCrOrd['id'],[]);

frDM.ADOTableCrOrd.Delete;

frDM.ADOTableCrOrd.Active:=false;

frDM.ADOTableCrOrd.Active:=true;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('delete from ТЧ_Приход where Документ='+s);

frDM.ADOQueryCheck.ExecSQL;

frDM.ADOQueryCrOrd.Active:=false;

frDM.ADOQueryCrOrd.SQL.Text:='select Приход.id, Приход.Номер, Приход.Дата, '+

'Поставщики.Название as Поставщик '+

'from Приход '+

'left join Поставщики on Поставщики.id=Приход.Поставщик '+

'order by Приход.Номер';

frDM.ADOQueryCrOrd.Active:=true;

idx_crord:='Номер';

end;

end;

12,130,146,167: begin

btn:=MessageDlg('Вы действительно хотите удалить данную запись?',mtConfirmation,[mbOk,mbNo],0);

if btn=mrOk then

begin

s:=IntToStr(frDM.ADOQueryCard['id']);

frDM.ADOTableCard.Locate('id',frDM.ADOQueryCard['id'],[]);

frDM.ADOTableCard.Delete;

frDM.ADOTableCard.Active:=false;

frDM.ADOTableCard.Active:=true;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('delete from ТЧ_Склад_Учет where Документ='+s);

frDM.ADOQueryCheck.ExecSQL;

frDM.ADOQueryCard.Active:=false;

frDM.ADOQueryCard.SQL.Text:='select Склад_Учет.id, Склад_Учет.СИЗ as Номер, '+

'Спецодежда.Название as СИЗ, Склад_Учет.Размер, Склад_Учет.Запас, '+

'Склад_Учет.Цена, Склад_Учет.Остаток, Склад_Учет.Ед_изм '+

'from Склад_Учет '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'order by Склад_Учет.id';

frDM.ADOQueryCard.Active:=true;

idx_card:='id';

end;

end;

13: begin

btn:=MessageDlg('Вы действительно хотите удалить данную запись?',mtConfirmation,[mbOk,mbNo],0);

if btn=mrOk then

begin

s:=IntToStr(frDM.ADOQueryProv['id']);

frDM.ADOTableProv.Locate('id',frDM.ADOQueryProv['id'],[]);

frDM.ADOTableProv.Delete;

frDM.ADOTableProv.Active:=false;

frDM.ADOTableProv.Active:=true;

case frEntry.RadioGroup1.ItemIndex of

1: s:='Пост';

2: s:='Выдача';

3: s:='Списание';

end;

frDM.ADOQueryProv.Active:=false;

if frEntry.RadioGroup1.ItemIndex=0 then

frDM.ADOQueryProv.SQL.Text:='select Проводки.id, Проводки.Номер_док, '+

'Проводки.Дата, Проводки.Операция, Проводки.Дебет, '+

'Проводки.Кредит, Спецодежда.Название, Проводки.СИЗ as Номер, '+

'Проводки.Номер_по_карт, Проводки.Ед_изм, '+

'Проводки.Количество, Проводки.Цена, Проводки.Стоимость '+

' from Проводки '+

'left join Спецодежда on Спецодежда.id=Проводки.СИЗ '+

'order by Проводки.Дата, Спецодежда.Название, Проводки.id'

else

frDM.ADOQueryProv.SQL.Text:='select Проводки.id, Проводки.Номер_док, '+

'Проводки.Дата, Проводки.Операция, Проводки.Дебет, '+

'Проводки.Кредит, Спецодежда.Название, Проводки.СИЗ as Номер, '+

'Проводки.Номер_по_карт, Проводки.Ед_изм, '+

'Проводки.Количество, Проводки.Цена, Проводки.Стоимость '+

' from Проводки '+

'left join Спецодежда on Спецодежда.id=Проводки.СИЗ '+

'where Проводки.Операция='+#39+s+#39+

' order by Проводки.Дата, Спецодежда.Название, Проводки.id';

frDM.ADOQueryProv.Active:=true;

end;

end;

14: begin

btn:=MessageDlg('Вы действительно хотите удалить данную запись?',mtConfirmation,[mbOk,mbNo],0);

if btn=mrOk then

begin

s:=IntToStr(frDM.ADOQueryLich['id']);

frDM.ADOTableLich.Locate('id',frDM.ADOQueryLich['id'],[]);

frDM.ADOTableLich.Delete;

frDM.ADOTableLich.Active:=false;

frDM.ADOTableLich.Active:=true;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('delete from ТЧ_Выдача where Документ='+s);

frDM.ADOQueryCheck.ExecSQL;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('delete from Проводки where Карточка='+s);

frDM.ADOQueryCheck.ExecSQL;

frDM.ADOQueryLich.Active:=false;

frDM.ADOQueryLich.SQL.Text:='select Выдача.id, Выдача.Сотрудник as Таб_ном, Сотрудники.Фамилия, '+

'Сотрудники.Имя, Сотрудники.Отчество, '+

'Сотрудники.Пол, Подразделения.Сокращение as Подразделение, '+

'Должности.Название as Должность, Выдача.Дата_пост, '+

'Выдача.Дата_изм, Выдача.Р_одежда, Выдача.Р_обувь, '+

'Выдача.Р_голова, Выдача.Рост, Выдача.Дата '+

'from Выдача '+

'left join Сотрудники on Сотрудники.id=Выдача.Сотрудник '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество';

frDM.ADOQueryLich.Active:=true;

end;

end;

16: begin

s:=frDM.ADOTableReq['id'];

btn:=MessageDlg('Вы действительно хотите удалить данную запись?',mtConfirmation,[mbOk,mbNo],0);

if btn=mrOk then

begin

П2.2. Продолжение

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('delete from ТЧ_Заявка where Документ='+s);

frDM.ADOQueryCheck.ExecSQL;

frDM.ADOTableReq.Delete;

frDM.ADOTableReq.Active:=false;

frDM.ADOTableReq.Active:=true;

frDM.ADOTableReq.Sort:='Дата DESC';

frDM.ADOTableReq.First;

end;

end;

end;

end;

procedure TfrMain.ToolButton5Click(Sender: TObject);

var n: integer;

begin

n:=ActiveMDIChild.Tag;

case n of

1,152,505,605: begin

CreateChildFindProf('Поиск должности');

if frmRefresh(frFindProf,TfrFindProf) then

begin

frFindProf.Tag:=103;

frFindProf.Edit1.SetFocus;

end;

end;

2,151,504,604: begin

CreateChildFindStP('Поиск подразделения');

if frmRefresh(frFindStP,TfrFindStP) then

begin

frFindStP.Tag:=203;

frFindStP.Edit1.SetFocus;

end;

end;

3,124,506,507: begin

CreateChildFindSiz('Поиск СИЗ');

if frmRefresh(frFindSiz,TfrFindSiz) then

begin

frFindSiz.Tag:=303;

frFindSiz.Edit1.SetFocus;

end;

end;

4,508: begin

CreateChildFindPost('Поиск постановления');

if frmRefresh(frFindPost,TfrFindPost) then

begin

frFindPost.Tag:=403;

frFindPost.Edit1.SetFocus;

end;

end;

6,143: begin

CreateChildFindEmp('Поиск сотрудника');

if frmRefresh(frFindEmp,TfrFindEmp) then

begin

frFindEmp.Tag:=603;

frFindEmp.Edit1.SetFocus;

end;

end;

7,904: begin

CreateChildFindSup('Поиск поставщика');

if frmRefresh(frFindSup,TfrFindSup) then

begin

frFindSup.Tag:=703;

frFindSup.Edit1.SetFocus;

end;

end;

8,704: begin

CreateChildFindCity('Поиск города');

if frmRefresh(frFindCity,TfrFindCity) then

begin

frFindCity.Tag:=803;

frFindCity.Edit1.SetFocus;

end;

end;

9: begin

CreateChildFindCrOrd('Поиск приходного ордера');

if frmRefresh(frFindCrOrd,TfrFindCrOrd) then

begin

frFindCrOrd.Tag:=903;

frFindCrOrd.Edit1.SetFocus;

end;

end;

12,130,146,167: begin

CreateChildFindCard('Поиск карточки учета');

if frmRefresh(frFindCard,TfrFindCard) then

begin

frFindCard.Tag:=123;

frFindCard.Edit1.SetFocus;

end;

end;

14: begin

CreateChildFindLichCard('Поиск личной карточки');

if frmRefresh(frFindLichCard,TfrFindLichCard) then

begin

frFindLichCard.Tag:=148;

frFindLichCard.Edit1.SetFocus;

end;

end;

16: begin

CreateChildFindReq('Поиск заявки');

if frmRefresh(frFindReq,TfrFindReq) then

begin

frFindReq.Tag:=168;

frFindReq.DBDateTimeEditEh1.SetFocus;

end;

end;

end;

end;

procedure TfrMain.ToolButton6Click(Sender: TObject);

var n: integer;

begin

n:=ActiveMDIChild.Tag;

case n of

1,152,505,605: begin

frDM.ADOTableProf.IndexFieldNames:='Название';

frDM.ADOTableProf.First;

end;

2,151,504,604: begin

frDM.ADOTableStP.IndexFieldNames:=uStP.pole;

frDM.ADOTableStP.First;

end;

3,124,506,507: begin

frDM.ADOTableSiz.IndexFieldNames:='Название';

frDM.ADOTableSiz.First;

end;

4,508: begin

frDM.ADOTablePost.IndexFieldNames:='Название';

frDM.ADOTablePost.First;

end;

6,143: begin

if uEmp.pole='id'

then begin

frDM.ADOQueryEmp.Active:=false;

frDM.ADOQueryEmp.SQL.Text:='select Сотрудники.id, Сотрудники.Фамилия, Сотрудники.Имя, '+

'Сотрудники.Отчество, Сотрудники.Пол, Сотрудники.Дата_рожд, '+

'Подразделения.Сокращение, Должности.Название, Сотрудники.Раб_тел '+

'from Сотрудники '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Сотрудники.id';

frDM.ADOQueryEmp.Active:=true;

idx_emp:='id';

end;

if uEmp.pole='Фамилия'

then begin

П2.2. Продолжение

frDM.ADOQueryEmp.Active:=false;

frDM.ADOQueryEmp.SQL.Text:='select Сотрудники.id, Сотрудники.Фамилия, Сотрудники.Имя, '+

'Сотрудники.Отчество, Сотрудники.Пол, Сотрудники.Дата_рожд, '+

'Подразделения.Сокращение, Должности.Название, Сотрудники.Раб_тел '+

'from Сотрудники '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Сотрудники.Фамилия';

frDM.ADOQueryEmp.Active:=true;

idx_emp:='Фамилия';

end;

if uEmp.pole='Дата_рожд'

then begin

frDM.ADOQueryEmp.Active:=false;

frDM.ADOQueryEmp.SQL.Text:='select Сотрудники.id, Сотрудники.Фамилия, Сотрудники.Имя, '+

'Сотрудники.Отчество, Сотрудники.Пол, Сотрудники.Дата_рожд, '+

'Подразделения.Сокращение, Должности.Название, Сотрудники.Раб_тел '+

'from Сотрудники '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Сотрудники.Дата_рожд';

frDM.ADOQueryEmp.Active:=true;

idx_emp:='Дата_рожд';

end;

if uEmp.pole='Сокращение'

then begin

frDM.ADOQueryEmp.Active:=false;

frDM.ADOQueryEmp.SQL.Text:='select Сотрудники.id, Сотрудники.Фамилия, Сотрудники.Имя, '+

'Сотрудники.Отчество, Сотрудники.Пол, Сотрудники.Дата_рожд, '+

'Подразделения.Сокращение, Должности.Название, Сотрудники.Раб_тел '+

'from Сотрудники '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Подразделения.Сокращение';

frDM.ADOQueryEmp.Active:=true;

idx_emp:='Сокращение';

end;

if uEmp.pole='Название'

then begin

frDM.ADOQueryEmp.Active:=false;

frDM.ADOQueryEmp.SQL.Text:='select Сотрудники.id, Сотрудники.Фамилия, Сотрудники.Имя, '+

'Сотрудники.Отчество, Сотрудники.Пол, Сотрудники.Дата_рожд, '+

'Подразделения.Сокращение, Должности.Название, Сотрудники.Раб_тел '+

'from Сотрудники '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Должности.Название';

frDM.ADOQueryEmp.Active:=true;

idx_emp:='Название';

end;

frDM.ADOQueryEmp.First;

end;

9: begin

if uCrOrd.pole='Номер'

then begin

frDM.ADOQueryCrOrd.Active:=false;

frDM.ADOQueryCrOrd.SQL.Text:='select Приход.id, Приход.Номер, Приход.Дата, '+

'Поставщики.Название as Поставщик '+

'from Приход '+

'left join Поставщики on Поставщики.id=Приход.Поставщик '+

'order by Приход.Номер';

frDM.ADOQueryCrOrd.Active:=true;

idx_crord:='Номер';

end;

if uCrOrd.pole='Дата'

then begin

frDM.ADOQueryCrOrd.Active:=false;

frDM.ADOQueryCrOrd.SQL.Text:='select Приход.id, Приход.Номер, Приход.Дата, '+

'Поставщики.Название as Поставщик '+

'from Приход '+

'left join Поставщики on Поставщики.id=Приход.Поставщик '+

'order by Приход.Дата';

frDM.ADOQueryCrOrd.Active:=true;

idx_crord:='Дата';

end;

if uCrOrd.pole='Поставщик'

then begin

frDM.ADOQueryCrOrd.Active:=false;

frDM.ADOQueryCrOrd.SQL.Text:='select Приход.id, Приход.Номер, Приход.Дата, '+

'Поставщики.Название as Поставщик '+

'from Приход '+

'left join Поставщики on Поставщики.id=Приход.Поставщик '+

'order by Поставщики.Название';

frDM.ADOQueryCrOrd.Active:=true;

idx_crord:='Поставщик';

end;

frDM.ADOQueryCrOrd.First;

end;

12,130,146,167: begin

if uCard.pole='id'

then begin

frDM.ADOQueryCard.Active:=false;

frDM.ADOQueryCard.SQL.Text:='select Склад_Учет.id, Склад_Учет.СИЗ as Номер, '+

'Спецодежда.Название as СИЗ, Склад_Учет.Размер, Склад_Учет.Запас, '+

'Склад_Учет.Цена, Склад_Учет.Остаток, Склад_Учет.Ед_изм '+

'from Склад_Учет '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'order by Склад_Учет.id';

frDM.ADOQueryCard.Active:=true;

idx_card:='id';

end;

if uCard.pole='Номер'

then begin

frDM.ADOQueryCard.Active:=false;

frDM.ADOQueryCard.SQL.Text:='select Склад_Учет.id, Склад_Учет.СИЗ as Номер, '+

'Спецодежда.Название as СИЗ, Склад_Учет.Размер, Склад_Учет.Запас, '+

'Склад_Учет.Цена, Склад_Учет.Остаток, Склад_Учет.Ед_изм '+

'from Склад_Учет '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'order by Склад_Учет.СИЗ, Склад_Учет.Размер';

frDM.ADOQueryCard.Active:=true;

idx_card:='Номер';

end;

if uCard.pole='СИЗ'

then begin

frDM.ADOQueryCard.Active:=false;

frDM.ADOQueryCard.SQL.Text:='select Склад_Учет.id,

П2.2. Продолжение

Склад_Учет.СИЗ as Номер, '+

'Спецодежда.Название as СИЗ, Склад_Учет.Размер, Склад_Учет.Запас, '+

'Склад_Учет.Цена, Склад_Учет.Остаток, Склад_Учет.Ед_изм '+

'from Склад_Учет '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'order by Спецодежда.Название, Склад_Учет.Размер';

frDM.ADOQueryCard.Active:=true;

idx_card:='СИЗ';

end;

if uCard.pole='Размер'

then begin

frDM.ADOQueryCard.Active:=false;

frDM.ADOQueryCard.SQL.Text:='select Склад_Учет.id, Склад_Учет.СИЗ as Номер, '+

'Спецодежда.Название as СИЗ, Склад_Учет.Размер, Склад_Учет.Запас, '+

'Склад_Учет.Цена, Склад_Учет.Остаток, Склад_Учет.Ед_изм '+

'from Склад_Учет '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'order by Склад_Учет.Размер, Спецодежда.Название';

frDM.ADOQueryCard.Active:=true;

idx_card:='Размер';

end;

if uCard.pole='Запас'

then begin

frDM.ADOQueryCard.Active:=false;

frDM.ADOQueryCard.SQL.Text:='select Склад_Учет.id, Склад_Учет.СИЗ as Номер, '+

'Спецодежда.Название as СИЗ, Склад_Учет.Размер, Склад_Учет.Запас, '+

'Склад_Учет.Цена, Склад_Учет.Остаток, Склад_Учет.Ед_изм '+

'from Склад_Учет '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'order by Склад_Учет.Запас, Спецодежда.Название, Склад_Учет.Размер';

frDM.ADOQueryCard.Active:=true;

idx_card:='Запас';

end;

if uCard.pole='Остаток'

then begin

frDM.ADOQueryCard.Active:=false;

frDM.ADOQueryCard.SQL.Text:='select Склад_Учет.id, Склад_Учет.СИЗ as Номер, '+

'Спецодежда.Название as СИЗ, Склад_Учет.Размер, Склад_Учет.Запас, '+

'Склад_Учет.Цена, Склад_Учет.Остаток, Склад_Учет.Ед_изм '+

'from Склад_Учет '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'order by Склад_Учет.Остаток, Спецодежда.Название, Склад_Учет.Размер';

frDM.ADOQueryCard.Active:=true;

idx_card:='Остаток';

end;

end;

14: begin

if uLichCard.pole='id'

then begin

frDM.ADOQueryLich.Active:=false;

frDM.ADOQueryLich.SQL.Text:='select Выдача.id, Выдача.Сотрудник as Таб_ном, Сотрудники.Фамилия, '+

'Сотрудники.Имя, Сотрудники.Отчество, '+

'Сотрудники.Пол, Подразделения.Сокращение as Подразделение, '+

'Должности.Название as Должность, Выдача.Дата_пост, '+

'Выдача.Дата_изм, Выдача.Р_одежда, Выдача.Р_обувь, '+

'Выдача.Р_голова, Выдача.Рост, Выдача.Дата '+

'from Выдача '+

'left join Сотрудники on Сотрудники.id=Выдача.Сотрудник '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Выдача.id, Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество';

frDM.ADOQueryLich.Active:=true;

idx_lichcard:='id';

end;

if uLichCard.pole='Дата'

then begin

frDM.ADOQueryLich.Active:=false;

frDM.ADOQueryLich.SQL.Text:='select Выдача.id, Выдача.Сотрудник as Таб_ном, Сотрудники.Фамилия, '+

'Сотрудники.Имя, Сотрудники.Отчество, '+

'Сотрудники.Пол, Подразделения.Сокращение as Подразделение, '+

'Должности.Название as Должность, Выдача.Дата_пост, '+

'Выдача.Дата_изм, Выдача.Р_одежда, Выдача.Р_обувь, '+

'Выдача.Р_голова, Выдача.Рост, Выдача.Дата '+

'from Выдача '+

'left join Сотрудники on Сотрудники.id=Выдача.Сотрудник '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Выдача.Дата, Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество';

frDM.ADOQueryLich.Active:=true;

idx_lichcard:='Дата';

end;

if uLichCard.pole='Таб_ном'

then begin

frDM.ADOQueryLich.Active:=false;

frDM.ADOQueryLich.SQL.Text:='select Выдача.id, Выдача.Сотрудник as Таб_ном, Сотрудники.Фамилия, '+

'Сотрудники.Имя, Сотрудники.Отчество, '+

'Сотрудники.Пол, Подразделения.Сокращение as Подразделение, '+

'Должности.Название as Должность, Выдача.Дата_пост, '+

'Выдача.Дата_изм, Выдача.Р_одежда, Выдача.Р_обувь, '+

'Выдача.Р_голова, Выдача.Рост, Выдача.Дата '+

'from Выдача '+

'left join Сотрудники on Сотрудники.id=Выдача.Сотрудник '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Выдача.Сотрудник';

frDM.ADOQueryLich.Active:=true;

idx_lichcard:='Таб_ном';

end;

if uLichCard.pole='Фамилия'

then begin

frDM.ADOQueryLich.Active:=false;

frDM.ADOQueryLich.SQL.Text:='select Выдача.id, Выдача.Сотрудник as Таб_ном, Сотрудники.Фамилия, '+

'Сотрудники.Имя, Сотрудники.Отчество, '+

'Сотрудники.Пол, Подразделения.Сокращение

as Подразделение, '+

'Должности.Название as Должность,

П2.2. Продолжение

Выдача.Дата_пост, '+

'Выдача.Дата_изм, Выдача.Р_одежда, Выдача.Р_обувь, '+

'Выдача.Р_голова, Выдача.Рост, Выдача.Дата '+

'from Выдача '+

'left join Сотрудники on Сотрудники.id=Выдача.Сотрудник '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество';

frDM.ADOQueryLich.Active:=true;

idx_lichcard:='Фамилия';

end;

if uLichCard.pole='Имя'

then begin

frDM.ADOQueryLich.Active:=false;

frDM.ADOQueryLich.SQL.Text:='select Выдача.id, Выдача.Сотрудник as Таб_ном, Сотрудники.Фамилия, '+

'Сотрудники.Имя, Сотрудники.Отчество, '+

'Сотрудники.Пол, Подразделения.Сокращение as Подразделение, '+

'Должности.Название as Должность, Выдача.Дата_пост, '+

'Выдача.Дата_изм, Выдача.Р_одежда, Выдача.Р_обувь, '+

'Выдача.Р_голова, Выдача.Рост, Выдача.Дата '+

'from Выдача '+

'left join Сотрудники on Сотрудники.id=Выдача.Сотрудник '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Сотрудники.Имя, Сотрудники.Фамилия, Сотрудники.Отчество';

frDM.ADOQueryLich.Active:=true;

idx_lichcard:='Имя';

end;

if uLichCard.pole='Отчество'

then begin

frDM.ADOQueryLich.Active:=false;

frDM.ADOQueryLich.SQL.Text:='select Выдача.id, Выдача.Сотрудник as Таб_ном, Сотрудники.Фамилия, '+

'Сотрудники.Имя, Сотрудники.Отчество, '+

'Сотрудники.Пол, Подразделения.Сокращение as Подразделение, '+

'Должности.Название as Должность, Выдача.Дата_пост, '+

'Выдача.Дата_изм, Выдача.Р_одежда, Выдача.Р_обувь, '+

'Выдача.Р_голова, Выдача.Рост, Выдача.Дата '+

'from Выдача '+

'left join Сотрудники on Сотрудники.id=Выдача.Сотрудник '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Сотрудники.Отчество, Сотрудники.Фамилия, Сотрудники.Имя';

frDM.ADOQueryLich.Active:=true;

idx_lichcard:='Отчество';

end;

end;

16: begin

frDM.ADOTableReq.IndexFieldNames:='Дата';

frDM.ADOTableProf.First;

srt:=true;

end;

end;

end;

//печать отчетов

procedure TfrMain.ToolButton8Click(Sender: TObject);

var n: integer;

s,s1,s2: String;

begin

n:=ActiveMDIChild.Tag;

case n of

1: frRepProf.QuickRep1.PreviewModal;

2: frRepStP.QuickRep1.PreviewModal;

3: frRepSiz.QuickRep1.PreviewModal;

4: frRepPost.QuickRep1.PreviewModal;

6: CreateChildParamPrintEmp('Параметры печати');

7: frRepSup.QuickRep1.PreviewModal;

9,902: begin

if frDM.ADOQueryCrOrd['id']<>Null

then s:=frDM.ADOQueryCrOrd['id'];

frDM.ADOQueryPrint.Active:=false;

frDM.ADOQueryPrint.SQL.Text:='select Приход.id, Приход.Номер, Приход.Дата, '+

'Поставщики.Название as Поставщик, '+

'Приход.Кор_счет, Приход.Сопр_док, Приход.Плат_док '+

'from Приход '+

'left join Поставщики on Поставщики.id=Приход.Поставщик '+

'where Приход.id='+s;

frDM.ADOQueryPrint.Active:=true;

frRepCrOrd.QuickRep1.DataSet:=frDM.ADOQueryPrint;

frRepCrOrd.QRDBText1.DataSet:=frDM.ADOQueryPrint;

frRepCrOrd.QRDBText1.DataField:='Дата';

frRepCrOrd.QRDBText2.DataSet:=frDM.ADOQueryPrint;

frRepCrOrd.QRDBText2.DataField:='Поставщик';

frRepCrOrd.QRDBText3.DataSet:=frDM.ADOQueryPrint;

frRepCrOrd.QRDBText3.DataField:='Кор_счет';

frRepCrOrd.QRDBText4.DataSet:=frDM.ADOQueryPrint;

frRepCrOrd.QRDBText4.DataField:='Сопр_док';

frRepCrOrd.QRDBText5.DataSet:=frDM.ADOQueryPrint;

frRepCrOrd.QRDBText5.DataField:='Плат_док';

frRepCrOrd.QRDBText6.DataSet:=frDM.ADOQueryPrint;

frRepCrOrd.QRDBText6.DataField:='Номер';

frDM.ADOQueryPrintTab.Active:=false;

frDM.ADOQueryPrintTab.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+s+

' order by V_crord.СИЗ, V_crord.Размер';

frDM.ADOQueryPrintTab.Active:=true;

frRepCrOrd.QRSubDetail1.DataSet:=frDM.ADOQueryPrintTab;

frRepCrOrd.QRDBText7.DataSet:=frDM.ADOQueryPrintTab;

frRepCrOrd.QRDBText7.DataField:='СИЗ';

frRepCrOrd.QRDBText8.DataSet:=frDM.ADOQueryPrintTab;

frRepCrOrd.QRDBText8.DataField:='Номер';

frRepCrOrd.QRDBText9.DataSet:=frDM.ADOQueryPrintTab;

frRepCrOrd.QRDBText9.DataField:='Размер';

frRepCrOrd.QRDBText10.DataSet:=frDM.ADOQueryPrintTab;

frRepCrOrd.QRDBText10.DataField:='Ед_изм';

frRepCrOrd.QRDBText11.DataSet:=frDM.ADOQueryPrintTab;

frRepCrOrd.QRDBText11.DataField:='Кол_док';

frRepCrOrd.QRDBText12.DataSet:=frDM.ADOQueryPrintTab;

frRepCrOrd.QRDBText12.DataField:='Кол_прин';

frRepCrOrd.QRDBText13.DataSet:=frDM.ADOQueryPrintTab;

frRepCrOrd.QRDBText13.DataField:='Цена';

frRepCrOrd.QRDBText14.DataSet:=frDM.ADOQueryPrintTab;

frRepCrOrd.QRDBText14.DataField:='Без_НДС';

frRepCrOrd.QRDBText15.DataSet:=frDM.ADOQueryPrintTab;

frRepCrOrd.QRDBText15.DataField:='НДС';

frRepCrOrd.QRDBText16.DataSet:=frDM.ADOQueryPrintTab;

frRepCrOrd.QRDBText16.DataField:='С_НДС';

frRepCrOrd.QRDBText17.DataSet:=frDM.ADOQueryPrintTab;

frRepCrOrd.QRDBText17.DataField:='Номер_по_карт';

frRepCrOrd.QuickRep1.PreviewModal;

end;

12, 121: begin

if frDM.ADOQueryCard['id']<>Null

then s:=frDM.ADOQueryCard['id'];

frDM.ADOQueryPrint.Active:=false;

П2.2. Продолжение

frDM.ADOQueryPrint.SQL.Text:='select Склад_Учет.id, Склад_Учет.СИЗ as Номер, '+

'Спецодежда.Название as СИЗ, Склад_Учет.Размер, Склад_Учет.Запас, '+

'Склад_Учет.Цена, Склад_Учет.Остаток, Склад_Учет.Ед_изм '+

'from Склад_Учет '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where Склад_Учет.id='+s;

frDM.ADOQueryPrint.Active:=true;

frRepCard.QuickRep1.DataSet:=frDM.ADOQueryPrint;

frRepCard.QRDBText1.DataSet:=frDM.ADOQueryPrint;

frRepCard.QRDBText1.DataField:='id';

frRepCard.QRDBText2.DataSet:=frDM.ADOQueryPrint;

frRepCard.QRDBText2.DataField:='Размер';

frRepCard.QRDBText3.DataSet:=frDM.ADOQueryPrint;

frRepCard.QRDBText3.DataField:='Номер';

frRepCard.QRDBText4.DataSet:=frDM.ADOQueryPrint;

frRepCard.QRDBText4.DataField:='Ед_изм';

frRepCard.QRDBText5.DataSet:=frDM.ADOQueryPrint;

frRepCard.QRDBText5.DataField:='Цена';

frRepCard.QRDBText6.DataSet:=frDM.ADOQueryPrint;

frRepCard.QRDBText6.DataField:='Запас';

frRepCard.QRDBText7.DataSet:=frDM.ADOQueryPrint;

frRepCard.QRDBText7.DataField:='СИЗ';

frDM.ADOQueryPrintTab.Active:=false;

frDM.ADOQueryPrintTab.SQL.Text:='select * from ТЧ_Склад_Учет '+

'where ТЧ_Склад_Учет.Документ='+s+

' order by ТЧ_Склад_Учет.Дата';

frDM.ADOQueryPrintTab.Active:=true;

frRepCard.QRSubDetail1.DataSet:=frDM.ADOQueryPrintTab;

frRepCard.QRDBText8.DataSet:=frDM.ADOQueryPrintTab;

frRepCard.QRDBText8.DataField:='Дата';

frRepCard.QRDBText9.DataSet:=frDM.ADOQueryPrintTab;

frRepCard.QRDBText9.DataField:='Номер_док';

frRepCard.QRDBText10.DataSet:=frDM.ADOQueryPrintTab;

frRepCard.QRDBText10.DataField:='Организация';

frRepCard.QRDBText11.DataSet:=frDM.ADOQueryPrintTab;

frRepCard.QRDBText11.DataField:='Приход';

frRepCard.QRDBText12.DataSet:=frDM.ADOQueryPrintTab;

frRepCard.QRDBText12.DataField:='Расход';

frRepCard.QRDBText13.DataSet:=frDM.ADOQueryPrintTab;

frRepCard.QRDBText13.DataField:='Остаток';

frRepCard.QuickRep1.PreviewModal;

end;

14,144: begin

if frDM.ADOQueryLich['id']<>Null

then s:=frDM.ADOQueryLich['id'];

frDM.ADOQueryPrint.Active:=false;

frDM.ADOQueryPrint.SQL.Text:='select Выдача.id, Выдача.Сотрудник as Таб_ном, Сотрудники.Фамилия, '+

'Сотрудники.Имя, Сотрудники.Отчество, '+

'Сотрудники.Пол, Подразделения.Сокращение as Подразделение, '+

'Должности.Название as Должность, Выдача.Дата_пост, '+

'Выдача.Дата_изм, Выдача.Р_одежда, Выдача.Р_обувь, '+

'Выдача.Р_голова, Выдача.Рост, Выдача.Дата '+

'from Выдача '+

'left join Сотрудники on Сотрудники.id=Выдача.Сотрудник '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'where Выдача.id='+s;

frDM.ADOQueryPrint.Active:=true;

frRepLichCard.QuickRep1.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText1.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText1.DataField:='id';

frRepLichCard.QRDBText2.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText2.DataField:='Фамилия';

frRepLichCard.QRDBText3.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText3.DataField:='Имя';

frRepLichCard.QRDBText4.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText4.DataField:='Отчество';

frRepLichCard.QRDBText5.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText5.DataField:='Таб_ном';

frRepLichCard.QRDBText6.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText6.DataField:='Подразделение';

s1:=frDM.ADOQueryPrint['Подразделение'];

frRepLichCard.QRDBText7.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText7.DataField:='Должность';

s2:=frDM.ADOQueryPrint['Должность'];

frRepLichCard.QRDBText8.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText8.DataField:='Дата_пост';

frRepLichCard.QRDBText9.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText9.DataField:='Дата_изм';

frRepLichCard.QRDBText10.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText10.DataField:='Пол';

frRepLichCard.QRDBText11.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText11.DataField:='Рост';

frRepLichCard.QRDBText12.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText12.DataField:='Р_одежда';

frRepLichCard.QRDBText13.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText13.DataField:='Р_обувь';

frRepLichCard.QRDBText14.DataSet:=frDM.ADOQueryPrint;

frRepLichCard.QRDBText14.DataField:='Р_голова';

frDM.ADOQueryNormSiz.Active:=false;

frDM.ADOQueryNormSiz.SQL.Text:='select V_norm.p2, V_norm.p3, V_norm.p4, '+

'V_norm.p5, V_norm.p6, V_norm.p7, V_norm.p8, V_norm.p9, '+

'Спецодежда.Название, V_norm.p11 '+

'from V_norm '+

'left join Спецодежда on Спецодежда.id=V_norm.p10 '+

'where V_norm.p2='+#39+s1+#39+

' and V_norm.p3='+#39+s2+#39+

' order by p4';

frDM.ADOQueryNormSiz.Active:=true;

frRepLichCard.QRSubDetail1.DataSet:=frDM.ADOQueryNormSiz;

frRepLichCard.QRDBText15.DataSet:=frDM.ADOQueryNormSiz;

frRepLichCard.QRDBText15.DataField:='p4';

frRepLichCard.QRDBText16.DataSet:=frDM.ADOQueryNormSiz;

frRepLichCard.QRDBText16.DataField:='p7';

frRepLichCard.QRDBText17.DataSet:=frDM.ADOQueryNormSiz;

frRepLichCard.QRDBText17.DataField:='p8';

frRepLichCard.QRDBText18.DataSet:=frDM.ADOQueryNormSiz;

frRepLichCard.QRDBText18.DataField:='p6';

frDM.ADOQueryPrintTab.Active:=false;

frDM.ADOQueryPrintTab.SQL.Text:='select ТЧ_Выдача.id, ТЧ_Выдача.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, ТЧ_Выдача.Дата_выд, '+

'ТЧ_Выдача.Кол_выд, ТЧ_Выдача.Годность_выд, '+

'ТЧ_Выдача.Стоимость, ТЧ_Выдача.Дата_воз, '+

'ТЧ_Выдача.Кол_воз, ТЧ_Выдача.Годность_воз, '+

'ТЧ_Выдача.Документ '+

'from ТЧ_Выдача '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Выдача.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Выдача.Документ='+s+

' order by ТЧ_Выдача.id desc';

frDM.ADOQueryPrintTab.Active:=true;

frRepLichCard.QRSubDetail2.DataSet:=frDM.ADOQueryPrintTab;

frRepLichCard.QRDBText19.DataSet:=frDM.ADOQueryPrintTab;

frRepLichCard.QRDBText19.DataField:='СИЗ';

frRepLichCard.QRDBText20.DataSet:=frDM.ADOQueryPrintTab;

frRepLichCard.QRDBText20.DataField:='Номер';

frRepLichCard.QRDBText21.DataSet:=frDM.ADOQueryPrintTab;

frRepLichCard.QRDBText21.DataField:='Дата_выд';

П2.2. Продолжение

frRepLichCard.QRDBText22.DataSet:=frDM.ADOQueryPrintTab;

frRepLichCard.QRDBText22.DataField:='Кол_выд';

frRepLichCard.QRDBText23.DataSet:=frDM.ADOQueryPrintTab;

frRepLichCard.QRDBText23.DataField:='Годность_выд';

frRepLichCard.QRDBText24.DataSet:=frDM.ADOQueryPrintTab;

frRepLichCard.QRDBText24.DataField:='Стоимость';

frRepLichCard.QRDBText25.DataSet:=frDM.ADOQueryPrintTab;

frRepLichCard.QRDBText25.DataField:='Дата_воз';

frRepLichCard.QRDBText26.DataSet:=frDM.ADOQueryPrintTab;

frRepLichCard.QRDBText26.DataField:='Кол_воз';

frRepLichCard.QRDBText27.DataSet:=frDM.ADOQueryPrintTab;

frRepLichCard.QRDBText27.DataField:='Годность_воз';

frRepLichCard.QuickRep1.PreviewModal;

end;

16, 163: begin

if frDM.ADOTableReq['id']<>Null

then s:=frDM.ADOTableReq['id'];

frDM.ADOQueryPrint.Active:=false;

frDM.ADOQueryPrint.SQL.Text:='select Заявка.id, Заявка.Дата '+

'from Заявка '+

'where Заявка.id='+s;

frDM.ADOQueryPrint.Active:=true;

frRepRequest.QuickRep1.DataSet:=frDM.ADOQueryPrint;

frRepRequest.QRDBText1.DataSet:=frDM.ADOQueryPrint;

frRepRequest.QRDBText1.DataField:='Дата';

frDM.ADOQueryPrintTab.Active:=false;

frDM.ADOQueryPrintTab.SQL.Text:='select ТЧ_Заявка.id, ТЧ_Заявка.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, '+

'Склад_Учет.Размер, '+

'Склад_Учет.Ед_изм, '+

'ТЧ_Заявка.Количество, '+

'ТЧ_Заявка.Документ '+

'from ТЧ_Заявка '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Заявка.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Заявка.Документ='+s+

' order by Спецодежда.Название, Склад_Учет.Размер';

frDM.ADOQueryPrintTab.Active:=true;

frRepRequest.QRSubDetail1.DataSet:=frDM.ADOQueryPrintTab;

frRepRequest.QRDBText2.DataSet:=frDM.ADOQueryPrintTab;

frRepRequest.QRDBText2.DataField:='СИЗ';

frRepRequest.QRDBText3.DataSet:=frDM.ADOQueryPrintTab;

frRepRequest.QRDBText3.DataField:='Номер';

frRepRequest.QRDBText4.DataSet:=frDM.ADOQueryPrintTab;

frRepRequest.QRDBText4.DataField:='Номер_по_карт';

frRepRequest.QRDBText5.DataSet:=frDM.ADOQueryPrintTab;

frRepRequest.QRDBText5.DataField:='Размер';

frRepRequest.QRDBText6.DataSet:=frDM.ADOQueryPrintTab;

frRepRequest.QRDBText6.DataField:='Ед_изм';

frRepRequest.QRDBText7.DataSet:=frDM.ADOQueryPrintTab;

frRepRequest.QRDBText7.DataField:='Количество';

frRepRequest.QuickRep1.PreviewModal;

end;

end;

end;

procedure TfrMain.N13Click(Sender: TObject);

begin

CloseAllForms(Sender);

end;

procedure TfrMain.N9Click(Sender: TObject);

begin

Tile;

end;

procedure TfrMain.N10Click(Sender: TObject);

begin

Cascade;

end;

procedure TfrMain.N11Click(Sender: TObject);

begin

Previous;

end;

procedure TfrMain.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

end;

procedure TfrMain.FormShow(Sender: TObject);

begin

frAuthorize.ShowModal;

end;

end.

unit uEmp;

interface

uses

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

Dialogs, Grids, DBGridEh, PrnDbgeh;

type

TfrEmp = class(TForm)

DBGridEh1: TDBGridEh;

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

procedure FormCreate(Sender: TObject);

procedure CreateChildNewEmp(const childName : string);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure DBGridEh1DblClick(Sender: TObject);

procedure DBGridEh1CellClick(Column: TColumnEh);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frEmp: TfrEmp;

pole: String;

implementation

uses DM, uNewEmp, uMain, uNewLichCard;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

Рис. П2.3.Текст модуля uEmp.pas

П2.3. Продолжение

procedure TfrEmp.CreateChildNewEmp(const childName : string);

var Child: TfrNewEmp;

begin

Child := TfrNewEmp.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=false;

frMain.N16.Enabled:=true;

Action:=caFree;

end;

procedure TfrEmp.FormCreate(Sender: TObject);

begin

frDM.ADOQueryEmp.Active:=false;

frDM.ADOQueryEmp.SQL.Text:='select Сотрудники.id, Сотрудники.Фамилия, Сотрудники.Имя, '+

'Сотрудники.Отчество, Сотрудники.Пол, Сотрудники.Дата_рожд, '+

'Подразделения.Сокращение, Должности.Название, Сотрудники.Раб_тел '+

'from Сотрудники '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Сотрудники.id';

frDM.ADOQueryEmp.Active:=true;

uMain.idx_emp:='id';

end;

procedure TfrEmp.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrEmp.DBGridEh1DblClick(Sender: TObject);

var stpID, profID: integer;

begin

case frEmp.Tag of

6: begin

CreateChildNewEmp('Редактировать запись');

if frmRefresh(frNewEmp,TfrNewEmp) then

begin

frNewEmp.Tag:=602;

frNewEmp.Edit1.SetFocus;

if frDM.ADOQueryEmp['id']<>Null then

frNewEmp.Edit1.Text:=frDM.ADOQueryEmp['id'];

if frDM.ADOQueryEmp['Фамилия']<>Null then

frNewEmp.Edit2.Text:=frDM.ADOQueryEmp['Фамилия'];

if frDM.ADOQueryEmp['Имя']<>Null then

frNewEmp.Edit3.Text:=frDM.ADOQueryEmp['Имя'];

if frDM.ADOQueryEmp['Отчество']<>Null then

frNewEmp.Edit4.Text:=frDM.ADOQueryEmp['Отчество'];

if frDM.ADOQueryEmp['Пол']<>Null then

frNewEmp.ComboBox1.Text:=frDM.ADOQueryEmp['Пол'];

if frDM.ADOQueryEmp['Дата_рожд']<>Null then

frNewEmp.DBDateTimeEditEh1.Text:=

frDM.ADOQueryEmp['Дата_рожд'];

if frDM.ADOQueryEmp['Сокращение']<>Null then

frNewEmp.Edit5.Text:=frDM.ADOQueryEmp['Сокращение'];

if frDM.ADOQueryEmp['Название']<>Null then

frNewEmp.Edit6.Text:=frDM.ADOQueryEmp['Название'];

if frDM.ADOQueryEmp['Раб_тел']<>Null then

frNewEmp.Edit7.Text:=frDM.ADOQueryEmp['Раб_тел'];

frDM.ADOTableEmp.Locate('id',frDM.ADOQueryEmp['id'],[]);

frDM.ADOTableEmp.Edit;

end;

end;

143: begin

if frmRefresh(frNewLichCard, TfrNewLichCard)

then begin

frNewLichCard.Edit1.Text:=IntToStr(frDM.ADOQueryEmp['id']);

frNewLichCard.Edit2.Text:=frDM.ADOQueryEmp['Фамилия'];

frNewLichCard.Edit3.Text:=frDM.ADOQueryEmp['Имя'];

frNewLichCard.Edit4.Text:=frDM.ADOQueryEmp['Отчество'];

frNewLichCard.Edit5.Text:=frDM.ADOQueryEmp['Пол'];

frNewLichCard.Edit10.Text:=frDM.ADOQueryEmp['Название'];

frNewLichCard.Edit11.Text:=frDM.ADOQueryEmp['Сокращение'];

end;

Close;

end;

end;

end;

procedure TfrEmp.DBGridEh1CellClick(Column: TColumnEh);

begin

pole:=DBGridEh1.SelectedField.FieldName;

end;

procedure TfrEmp.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=true;

frMain.ToolButton8.Enabled:=true;

frMain.N16.Enabled:=false;

end;

end.

unit uSiz;

interface

uses

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

Dialogs, Grids, DBGrids, DBGridEh;

type

TfrSiz = class(TForm)

DBGridEh1: TDBGridEh;

procedure CreateChildNewSiz(const childName : string);

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

procedure DBGridEh1DblClick(Sender: TObject);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure FormActivate(Sender: TObject);

private

Рис. П2.4. Текст модуля uSiz.pas

П2.4. Продолжение

{ Private declarations }

public

{ Public declarations }

end;

var

frSiz: TfrSiz;

implementation

uses DM, uNewSiz, uNewNorm, uMain, uNewTabCr, uNewCard;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrSiz.CreateChildNewSiz(const childName : string);

var Child: TfrNewSiz;

begin

Child := TfrNewSiz.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=false;

frMain.N7.Enabled:=true;

Action:=caFree;

end;

procedure TfrSiz.DBGridEh1DblClick(Sender: TObject);

begin

case frSiz.Tag of

3: begin

CreateChildNewSiz('Редактировать запись');

if frmRefresh(frNewSiz,TfrNewSiz) then

begin

frNewSiz.Tag:=302;

frNewSiz.DBEdit3.SetFocus;

end;

end;

124: begin

if frmRefresh(frNewCard, TfrNewCard)

then begin

frNewCard.Edit1.Text:=frDM.ADOTableSiz['Название'];

frNewCard.Edit2.Text:=frDM.ADOTableSiz['id'];

end;

Close;

end;

506: begin

if frmRefresh(frNewNorm, TfrNewNorm)

then frNewNorm.Edit3.Text:=frDM.ADOTableSiz['Название'];

Close;

end;

507: begin

if frmRefresh(frNewNorm, TfrNewNorm)

then frNewNorm.Edit5.Text:=frDM.ADOTableSiz['Название'];

Close;

end;

end;

end;

procedure TfrSiz.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrSiz.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=true;

frMain.ToolButton8.Enabled:=true;

frMain.N7.Enabled:=false;

end;

end.

unit uStP;

interface

uses

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

Dialogs, Grids, DBGrids, DBGridEh;

type

TfrStP = class(TForm)

DBGridEh1: TDBGridEh;

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

procedure CreateChildNewStP(const childName : string);

procedure DBGridEh1DblClick(Sender: TObject);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure DBGridEh1CellClick(Column: TColumnEh);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frStP: TfrStP;

pole: String;

implementation

uses DM, uNewStP, uNorm, uNewNorm, uNewEmp, uMain, uParamPrintEmp;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

Рис. П2.5. Текст модуля uStP.pas

П2.5. Продолжение

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrStP.CreateChildNewStP(const childName : string);

var Child: TfrNewStP;

begin

Child := TfrNewStP.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=false;

frMain.N3.Enabled:=true;

Action:=caFree;

end;

procedure TfrStP.DBGridEh1DblClick(Sender: TObject);

var s1,s2: String;

begin

case frStP.Tag of

2: begin

CreateChildNewStP('Редактировать запись');

if frmRefresh(frNewStP,TfrNewStP) then

begin

frNewStP.Tag:=202;

frNewStP.DBEdit2.SetFocus;

end;

end;

151: begin //выбор подразделения для отчета о сотрудниках

if frDM.ADOTableStP['Сокращение'] <> Null then

s1:=frDM.ADOTableStP['Сокращение'];

if frmRefresh(frParamPrintEmp, TfrParamPrintEmp) then

frParamPrintEmp.Edit1.Text:=s1;

Close;

end;

503: begin //справочник нормативов

if frDM.ADOTableStP['Сокращение'] <> Null then

s1:=frDM.ADOTableStP['Сокращение'];

if frmRefresh(frNorm,TfrNorm) then frNorm.Edit1.Text:=s1;

frDM.ADOQueryNormProf.Active:=false;

frDM.ADOQueryNormProf.SQL.Text:='select distinct Должности.Название'+

' from Должности, Нормативы, Подразделения'+

' where Нормативы.Должность=Должности.id and'+

' Нормативы.Подразделение=Подразделения.id and'+

' Подразделения.Сокращение='+#39+s1+#39;

frDM.ADOQueryNormProf.Active:=true;

if frDM.ADOQueryNormProf.FieldValues['Название']<>Null then

s2:=frDM.ADOQueryNormProf.FieldValues['Название'];

frDM.ADOQueryNormSiz.Active:=false;

frDM.ADOQueryNormSiz.SQL.Text:='select V_norm.p2, V_norm.p3, V_norm.p4, '+

'V_norm.p5, V_norm.p6, V_norm.p7, V_norm.p8, V_norm.p9, '+

'Спецодежда.Название, V_norm.p11 '+

'from V_norm '+

'left join Спецодежда on Спецодежда.id=V_norm.p10 '+

'where V_norm.p2='+#39+s1+#39+

' and V_norm.p3='+#39+s2+#39;

frDM.ADOQueryNormSiz.Active:=true;

Close;

end;

504: begin

if frDM.ADOTableStP['Сокращение'] <> Null then

s1:=frDM.ADOTableStP['Сокращение'];

if frmRefresh(frNewNorm, TfrNewNorm) then frNewNorm.Edit1.Text:=s1;

Close;

end;

604: begin

if frDM.ADOTableStP['Сокращение'] <> Null then

s1:=frDM.ADOTableStP['Сокращение'];

if frmRefresh(frNewEmp, TfrNewEmp) then frNewEmp.Edit5.Text:=s1;

Close;

end;

end;

end;

procedure TfrStP.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

//var s: String;

begin

{if Column.Index = 6 then begin

if frDM.ADOTableStP['Фамилия'] <> Null then

s:= frDM.ADOTableStP['Фамилия'] + ' ';

if frDM.ADOTableStP['Имя'] <> Null then

s:= s + Copy(frDM.ADOTableStP['Имя'], 1, 1) + '.';

if frDM.ADOTableStP['Отчество'] <> Null then

s:= s + Copy(frDM.ADOTableStP['Отчество'], 1, 1)+ '.';

DBGridEh1.Canvas.TextOut(Rect.Left, Rect.Top, s);

end;}

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrStP.DBGridEh1CellClick(Column: TColumnEh);

begin

pole:=DBGridEh1.SelectedField.FieldName;

end;

procedure TfrStP.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=true;

frMain.ToolButton8.Enabled:=true;

frMain.N3.Enabled:=false;

end;

end.

unit uProf;

interface

uses

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

Dialogs, Grids, DBGrids, DB, ADODB, DBGridEh;

type

TfrProf = class(TForm)

DBGridEh1: TDBGridEh;

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

procedure CreateChildNewProf(const childName : string);

procedure DBGridEh1DblClick(Sender: TObject);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frProf: TfrProf;

implementation

uses uNewProf, DM, uNewNorm, uStP, uNewEmp, uMain, uParamPrintEmp;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrProf.CreateChildNewProf(const childName : string);

var Child: TfrNewProf;

begin

Child := TfrNewProf.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=false;

frMain.N2.Enabled:=true;

Action:=caFree;

end;

procedure TfrProf.DBGridEh1DblClick(Sender: TObject);

begin

case frProf.Tag of

1: begin

CreateChildNewProf('Редактировать запись');

if frmRefresh(frNewProf,TfrNewProf) then

begin

frNewProf.Tag:=102;

frNewProf.DBEditEh1.SetFocus;

end;

end;

152: begin

if frmRefresh(frParamPrintEmp, TfrParamPrintEmp)

then frParamPrintEmp.Edit2.Text:=

frDM.ADOTableProf['Название'];

Close;

end;

505: begin

if frmRefresh(frNewNorm, TfrNewNorm)

then frNewNorm.Edit2.Text:=

frDM.ADOTableProf['Название'];

Close;

end;

605: begin

if frmRefresh(frNewEmp, TfrNewEmp)

then frNewEmp.Edit6.Text:=

frDM.ADOTableProf['Название'];

Close;

end;

end;

end;

procedure TfrProf.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).

Top)

and

(not (gdFocused in State) or not DBGridEh1.Focused)

then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrProf.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=true;

frMain.N2.Enabled:=false;

end;

end.

Рис. П2.6. Текст модуля uProf.pas

unit uPost;

interface

uses

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

Dialogs, Grids, DBGrids, DBGridEh;

type

TfrPost = class(TForm)

DBGridEh1: TDBGridEh;

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

procedure CreateChildNewPost(const childName : string);

procedure DBGridEh1DblClick(Sender: TObject);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frPost: TfrPost;

implementation

uses DM, uNewPost, uSiz, uNewNorm, uMain;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

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

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=false;

frMain.N8.Enabled:=true;

Action:=caFree;

end;

procedure TfrPost.CreateChildNewPost(const childName : string);

var Child: TfrNewPost;

begin

Child := TfrNewPost.Create(Application);

Child.Caption := childName;

end;

procedure TfrPost.DBGridEh1DblClick(Sender: TObject);

begin

case frPost.Tag of

4: begin

CreateChildNewPost('Редактировать запись');

if frmRefresh(frNewPost,TfrNewPost) then

begin

frNewPost.Tag:=402;

frNewPost.DBEditEh1.SetFocus;

end;

end;

508: begin

if frmRefresh(frNewNorm, TfrNewNorm)

then frNewNorm.Edit6.Text:=frDM.ADOTablePost['Название'];

Close;

end;

end;

end;

procedure TfrPost.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrPost.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=true;

frMain.N8.Enabled:=false;

end;

end.

Рис. П2.7. Текст модуля uPost.pas

unit uSupplier;

interface

uses

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

Dialogs, Grids, DBGridEh;

type

TfrSupplier = class(TForm)

DBGridEh1: TDBGridEh;

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

procedure FormActivate(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure CreateChildNewSup(const childName : string);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure DBGridEh1DblClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Рис. П2.8. Текст модуля uSupplier.pas

П2.8. Продолжение

var

frSupplier: TfrSupplier;

implementation

uses DM, uMain, uNewSup, uNewCrOrd;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrSupplier.CreateChildNewSup(const childName : string);

var Child: TfrNewSup;

begin

Child := TfrNewSup.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=false;

frMain.N21.Enabled:=true;

Action:=caFree;

end;

procedure TfrSupplier.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=true;

frMain.N21.Enabled:=false;

end;

procedure TfrSupplier.FormCreate(Sender: TObject);

begin

frDM.ADOQuerySup.Active:=false;

frDM.ADOQuerySup.SQL.Text:='select Поставщики.id, Поставщики.Название, Города.Название as Город, '+

'Поставщики.Индекс, Поставщики.Адрес '+

'from Поставщики '+

'left join Города on Города.id=Поставщики.Город '+

'order by Поставщики.Название';

frDM.ADOQuerySup.Active:=true;

end;

procedure TfrSupplier.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrSupplier.DBGridEh1DblClick(Sender: TObject);

var s: String;

begin

case frSupplier.Tag of

7: begin

CreateChildNewSup('Редактировать запись');

if frmRefresh(frNewSup,TfrNewSup) then

begin

frNewSup.Tag:=702;

frNewSup.Edit1.SetFocus;

if frDM.ADOQuerySup['Название']<>Null then

frNewSup.Edit1.Text:=frDM.ADOQuerySup['Название'];

if frDM.ADOQuerySup['Город']<>Null then

frNewSup.Edit2.Text:=frDM.ADOQuerySup['Город'];

if frDM.ADOQuerySup['Индекс']<>Null then

frNewSup.Edit3.Text:=frDM.ADOQuerySup['Индекс'];

if frDM.ADOQuerySup['Адрес']<>Null then

frNewSup.Edit4.Text:=frDM.ADOQuerySup['Адрес'];

frDM.ADOTableSup.Locate('Название',frDM.ADOQuerySup['Название'],[]);

frDM.ADOTableSup.Edit;

end;

end;

904: begin

if frDM.ADOQuerySup['Название'] <> Null then

s:=frDM.ADOQuerySup['Название'];

if frmRefresh(frNewCrOrd, TfrNewCrOrd) then frNewCrOrd.Edit2.Text:=s;

Close;

end;

end;

end;

end.

unit uCity;

interface

uses

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

Dialogs, Grids, DBGridEh;

type

TfrCity = class(TForm)

DBGridEh1: TDBGridEh;

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

procedure CreateChildNewCity(const childName : string);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure FormActivate(Sender: TObject);

procedure DBGridEh1DblClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frCity: TfrCity;

Рис. П2.9. Текст модуля uCity.pas

П2.9. Продолжение

implementation

uses DM, uMain, uNewCity, uNewSup;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrCity.CreateChildNewCity(const childName : string);

var Child: TfrNewCity;

begin

Child := TfrNewCity.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=false;

frMain.N19.Enabled:=true;

Action:=caFree;

end;

procedure TfrCity.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrCity.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=true;

frMain.N19.Enabled:=false;

end;

procedure TfrCity.DBGridEh1DblClick(Sender: TObject);

begin

case frCity.Tag of

8: begin

CreateChildNewCity('Редактировать запись');

if frmRefresh(frNewCity,TfrNewCity) then

begin

frNewCity.Tag:=802;

frNewCity.DBEditEh1.SetFocus;

end;

end;

704: begin

if frmRefresh(frNewSup, TfrNewSup)

then frNewSup.Edit2.Text:=frDM.ADOTableCity['Название'];

Close;

end;

end;

end;

end.

unit uNorm;

interface

uses

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

Dialogs, Grids, DBGrids, DBCtrls, StdCtrls, Buttons, ExtCtrls, DBGridEh;

type

TfrNorm = class(TForm)

Edit1: TEdit;

BitBtn1: TBitBtn;

Panel1: TPanel;

Label1: TLabel;

DBGridEh1: TDBGridEh;

DBGridEh2: TDBGridEh;

procedure CreateChildStP(const childName : string);

procedure CreateChildNewNorm(const childName : string);

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

procedure FormCreate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure DBGridEh2CellClick(Column: TColumnEh);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure DBGridEh2DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure DBGridEh1DblClick(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNorm: TfrNorm;

implementation

uses DM, uStP, uNewStP, uNewNorm, uMain;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

Рис. П2.10. Текст модуля uNorm.pas

П2.10. Продолжение

procedure TfrNorm.CreateChildStP(const childName : string);

var Child: TfrStP;

begin

Child := TfrStP.Create(Application);

Child.Caption := childName;

end;

procedure TfrNorm.CreateChildNewNorm(const childName : string);

var Child: TfrNewNorm;

begin

Child := TfrNewNorm.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=false;

frMain.N15.Enabled:=true;

Action:=caFree;

end;

procedure TfrNorm.FormCreate(Sender: TObject);

var s:String;//для фильтра должностей

begin

if frDM.ADOTableStP['Сокращение'] <> Null then

Edit1.Text:=frDM.ADOTableStP['Сокращение'];

frDM.ADOQueryNormProf.Active:=false;

frDM.ADOQueryNormProf.SQL.Text:='select distinct Должности.Название'+

' from Должности, Нормативы, Подразделения'+

' where Нормативы.Должность=Должности.id and'+

' Нормативы.Подразделение=Подразделения.id and'+

' Подразделения.Сокращение='+#39+Edit1.Text+#39+

' order by Должности.Название';

frDM.ADOQueryNormProf.Active:=true;

if frDM.ADOQueryNormProf.FieldValues['Название']<>Null then

s:=frDM.ADOQueryNormProf.FieldValues['Название'];

frDM.ADOQueryNormSiz.Active:=false;

frDM.ADOQueryNormSiz.SQL.Text:='select V_norm.p2, V_norm.p3, V_norm.p4, '+

'V_norm.p5, V_norm.p6, V_norm.p7, V_norm.p8, V_norm.p9, '+

'Спецодежда.Название, V_norm.p11 '+

'from V_norm '+

'left join Спецодежда on Спецодежда.id=V_norm.p10 '+

'where V_norm.p2='+#39+Edit1.Text+#39+

' and V_norm.p3='+#39+s+#39+

' order by p4';

frDM.ADOQueryNormSiz.Active:=true;

end;

procedure TfrNorm.BitBtn1Click(Sender: TObject);

begin

CreateChildStP('Выбор подразделения');

if frmRefresh(frStP,TfrStP) then frStP.Tag:=503;

end;

procedure TfrNorm.DBGridEh2CellClick(Column: TColumnEh);

var s:String;//для фильтра должностей

begin

if frDM.ADOQueryNormProf.FieldValues['Название']<>Null then

s:=frDM.ADOQueryNormProf.FieldValues['Название'];

frDM.ADOQueryNormSiz.Active:=false;

frDM.ADOQueryNormSiz.SQL.Text:='select V_norm.p2, V_norm.p3, V_norm.p4, '+

'V_norm.p5, V_norm.p6, V_norm.p7, V_norm.p8, V_norm.p9, '+

'Спецодежда.Название, V_norm.p11 '+

'from V_norm '+

'left join Спецодежда on Спецодежда.id=V_norm.p10 '+

'where V_norm.p2='+#39+Edit1.Text+#39+

' and V_norm.p3='+#39+s+#39;

frDM.ADOQueryNormSiz.Active:=true;

end;

procedure TfrNorm.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrNorm.DBGridEh2DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh2.CellRect(DBGridEh2.Col,DBGridEh2.Row).Top) and

(not (gdFocused in State) or not DBGridEh2.Focused) then

DBGridEh2.Canvas.Brush.Color:=clBtnFace;

DBGridEh2.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrNorm.DBGridEh1DblClick(Sender: TObject);

var stpID, profID: integer;

sizID: String;

begin

CreateChildNewNorm('Редактировать запись');

if frmRefresh(frNewNorm,TfrNewNorm) then

begin

frNewNorm.Tag:=502;

frNewNorm.Edit1.SetFocus;

frNewNorm.Edit1.Text:=Edit1.Text;

if frDM.ADOQueryNormProf['Название']<>Null then

frNewNorm.Edit2.Text:=frDM.ADOQueryNormProf['Название'];

if frDM.ADOQueryNormSiz['p4']<>Null then

frNewNorm.Edit3.Text:=frDM.ADOQueryNormSiz['p4'];

if frDM.ADOQueryNormSiz['p5']<>Null then

frNewNorm.ComboBox1.Text:=frDM.ADOQueryNormSiz['p5'];

if frDM.ADOQueryNormSiz['p6']<>Null then

frNewNorm.Edit4.Text:=IntToStr(frDM.ADOQueryNormSiz['p6']);

if frDM.ADOQueryNormSiz['p7']<>Null then

frNewNorm.ComboBox2.Text:=frDM.ADOQueryNormSiz['p7'];

if frDM.ADOQueryNormSiz['p8']<>Null then

frNewNorm.SpinEdit1.Text:=IntToStr(frDM.ADOQueryNormSiz['p8']);

if frDM.ADOQueryNormSiz['p9']='true' then

frNewNorm.CheckBox1.Checked:=true;

if frDM.ADOQueryNormSiz['Название']<>Null then

frNewNorm.Edit5.Text:=frDM.ADOQueryNormSiz['Название'];

if frDM.ADOQueryNormSiz['p11']<>Null then

frNewNorm.Edit6.Text:=frDM.ADOQueryNormSiz['p11'];

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Подразделения where Сокращение='+#39+frNewNorm.Edit1.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

stpID:=FieldValues['id'];

П2.10. Продолжение

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Должности where Название='+#39+frNewNorm.Edit2.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

profID:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Спецодежда where Название='+#39+frNewNorm.Edit3.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

sizID:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Нормативы where Подразделение='+IntToStr(stpID)+' and Должность='+IntToStr(profID)+' and Спецодежда='+#39+sizID+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

frDM.ADOTableNorm.Locate('id',FieldValues['id'],[]);

frDM.ADOTableNorm.Edit;

end;

end;

end;

procedure TfrNorm.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=true;

frMain.N15.Enabled:=false;

end;

end.

unit uCrOrd;

interface

uses

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

Dialogs, Grids, DBGridEh;

type

TfrCrOrd = class(TForm)

DBGridEh1: TDBGridEh;

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

procedure FormActivate(Sender: TObject);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure FormCreate(Sender: TObject);

procedure DBGridEh1DblClick(Sender: TObject);

procedure CreateChildNewCrOrd(const childName : string);

procedure DBGridEh1CellClick(Column: TColumnEh);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frCrOrd: TfrCrOrd;

pole: String;

implementation

uses uMain, DM, uNewCrOrd;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrCrOrd.CreateChildNewCrOrd(const childName : string);

var Child: TfrNewCrOrd;

begin

Child := TfrNewCrOrd.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=false;

frMain.N17.Enabled:=true;

Action:=caFree;

end;

procedure TfrCrOrd.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=true;

frMain.ToolButton8.Enabled:=true;

frMain.N17.Enabled:=false;

end;

procedure TfrCrOrd.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

Рис. П2.11. Текст модуля uCrOrd.pas

П2.11. Продолжение

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrCrOrd.FormCreate(Sender: TObject);

begin

frDM.ADOQueryCrOrd.Active:=false;

frDM.ADOQueryCrOrd.SQL.Text:='select Приход.id, Приход.Номер, Приход.Дата, '+

'Поставщики.Название as Поставщик '+

'from Приход '+

'left join Поставщики on Поставщики.id=Приход.Поставщик '+

'order by Приход.Номер';

frDM.ADOQueryCrOrd.Active:=true;

uMain.idx_crord:='Номер';

end;

procedure TfrCrOrd.DBGridEh1DblClick(Sender: TObject);

var s: String;

begin

CreateChildNewCrOrd('Приходный ордер');

if frmRefresh(frNewCrOrd,TfrNewCrOrd) then

begin

frNewCrOrd.Tag:=902;

frNewCrOrd.Edit1.ReadOnly:=true;

frNewCrOrd.Edit2.ReadOnly:=true;

frNewCrOrd.Edit3.ReadOnly:=true;

frNewCrOrd.Edit4.ReadOnly:=true;

frNewCrOrd.Edit5.ReadOnly:=true;

frNewCrOrd.DBDateTimeEditEh1.Enabled:=false;

frNewCrOrd.BitBtn1.Enabled:=false;

frNewCrOrd.ToolButton1.Enabled:=false;

frNewCrOrd.ToolButton2.Enabled:=false;

frNewCrOrd.ToolButton3.Enabled:=false;

frNewCrOrd.ToolButton5.Enabled:=true;

frNewCrOrd.BitBtn2.Visible:=false;

frNewCrOrd.BitBtn3.Caption:='Закрыть';

frDM.ADOTableCrOrd.Active:=false;

frDM.ADOTableCrOrd.Active:=true;

frDM.ADOTableCrOrd.Locate('Номер',frDM.ADOQueryCrOrd['Номер'],[]);

if frDM.ADOTableCrOrd['id']<>Null then

s:=IntToStr(frDM.ADOTableCrOrd['id']);

if frDM.ADOTableCrOrd['Номер']<>Null then

frNewCrOrd.Edit1.Text:=frDM.ADOTableCrOrd['Номер'];

if frDM.ADOTableCrOrd['Дата']<>Null then

frNewCrOrd.DBDateTimeEditEh1.Text:=frDM.ADOTableCrOrd['Дата'];

if frDM.ADOQueryCrOrd['Поставщик']<>Null then

frNewCrOrd.Edit2.Text:=frDM.ADOQueryCrOrd['Поставщик'];

if frDM.ADOTableCrOrd['Кор_счет']<>Null then

frNewCrOrd.Edit3.Text:=frDM.ADOTableCrOrd['Кор_счет'];

if frDM.ADOTableCrOrd['Сопр_док']<>Null then

frNewCrOrd.Edit4.Text:=frDM.ADOTableCrOrd['Сопр_док'];

if frDM.ADOTableCrOrd['Плат_док']<>Null then

frNewCrOrd.Edit5.Text:=frDM.ADOTableCrOrd['Плат_док'];

frDM.ADOQueryTabCr.Active:=false;

frDM.ADOQueryTabCr.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+s+

' order by V_crord.СИЗ';

frDM.ADOQueryTabCr.Active:=true;

end;

end;

procedure TfrCrOrd.DBGridEh1CellClick(Column: TColumnEh);

begin

pole:=DBGridEh1.SelectedField.FieldName;

end;

end.

unit uCard;

interface

uses

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

Dialogs, Grids, DBGridEh;

type

TfrCard = class(TForm)

DBGridEh1: TDBGridEh;

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

procedure FormActivate(Sender: TObject);

procedure CreateChildOpenCard(const childName : string);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure DBGridEh1CellClick(Column: TColumnEh);

procedure FormCreate(Sender: TObject);

procedure DBGridEh1DblClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frCard: TfrCard;

pole, nom: String;

stpID, profID, siz, zam: integer;

implementation

uses DM, uMain, uOpenCard, uNewCrOrd, uNewTabCr, uNewTabLich,

uOpenLichCard, uNewEntry, uNewTabReq;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrCard.CreateChildOpenCard(const childName : string);

var Child: TfrOpenCard;

begin

Child := TfrOpenCard.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

Рис. П2.12. Текст модуля uCard.pas

П2.12. Продолжение

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=false;

frMain.N20.Enabled:=true;

Action:=caFree;

end;

procedure TfrCard.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=true;

frMain.ToolButton8.Enabled:=true;

frMain.N20.Enabled:=false;

end;

procedure TfrCard.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

var s: String;

ost: integer;

begin

with DBGridEh1.Canvas do begin

if (frDM.ADOQueryCard['Запас']>frDM.ADOQueryCard['Остаток']) and

not (gdSelected in State) then begin

Font.Color:= clRed;

FillRect(Rect);

end;

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

end;

procedure TfrCard.DBGridEh1CellClick(Column: TColumnEh);

begin

pole:=DBGridEh1.SelectedField.FieldName;

end;

procedure TfrCard.FormCreate(Sender: TObject);

begin

frDM.ADOQueryCard.Active:=false;

frDM.ADOQueryCard.SQL.Text:='select Склад_Учет.id, Склад_Учет.СИЗ as Номер, '+

'Спецодежда.Название as СИЗ, Склад_Учет.Размер, Склад_Учет.Запас, '+

'Склад_Учет.Цена, Склад_Учет.Остаток, Склад_Учет.Ед_изм '+

'from Склад_Учет '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'order by Склад_Учет.id';

frDM.ADOQueryCard.Active:=true;

uMain.idx_card:='id';

end;

procedure TfrCard.DBGridEh1DblClick(Sender: TObject);

var s: String;

begin

case frCard.Tag of

12: begin

CreateChildOpenCard('Карточка учета материалов');

if frmRefresh(frOpenCard,TfrOpenCard) then

begin

frDM.ADOTableCard.Active:=false;

frDM.ADOTableCard.Active:=true;

frDM.ADOTableCard.Locate('id',frDM.ADOQueryCard['id'],[]);

if frDM.ADOTableCard['id']<>Null then

frOpenCard.Edit1.Text:=frDM.ADOTableCard['id'];

s:=IntToStr(frDM.ADOTableCard['id']);

if frDM.ADOQueryCard['СИЗ']<>Null then

frOpenCard.Edit2.Text:=frDM.ADOQueryCard['СИЗ'];

if frDM.ADOTableCard['СИЗ']<>Null then

frOpenCard.Edit3.Text:=frDM.ADOTableCard['СИЗ'];

if frDM.ADOTableCard['Ед_изм']<>Null then

frOpenCard.Edit5.Text:=frDM.ADOTableCard['Ед_изм'];

if frDM.ADOTableCard['Размер']<>Null then

frOpenCard.Edit4.Text:=frDM.ADOTableCard['Размер'];

if frDM.ADOTableCard['Запас']<>Null then

frOpenCard.Edit6.Text:=frDM.ADOTableCard['Запас'];

frDM.ADOQueryTabCard.Active:=false;

frDM.ADOQueryTabCard.SQL.Text:='select * from ТЧ_Склад_Учет '+

'where ТЧ_Склад_Учет.Документ='+s+

' order by ТЧ_Склад_Учет.Дата';

frDM.ADOQueryTabCard.Active:=true;

end;

end;

130: begin

if frmRefresh(frNewTabCr, TfrNewTabCr)

then begin

frNewTabCr.Edit8.Text:=IntToStr(frDM.ADOQueryCard['id']);

frNewTabCr.Edit1.Text:=frDM.ADOQueryCard['СИЗ'];

frNewTabCr.Edit2.Text:=frDM.ADOQueryCard['Номер'];

frNewTabCr.Edit3.Text:=frDM.ADOQueryCard['Размер'];

end;

Close;

end;

134: begin

if frmRefresh(frNewEntry, TfrNewEntry)

then begin

frNewEntry.Edit4.Text:=IntToStr(frDM.ADOQueryCard['id']);

frNewEntry.Edit3.Text:=frDM.ADOQueryCard['СИЗ'];

frNewEntry.Edit2.Text:=frDM.ADOQueryCard['Номер'];

frNewEntry.Edit5.Text:=frDM.ADOQueryCard['Ед_изм'];

end;

Close;

end;

146: begin

nom:=frDM.ADOQueryCard['Номер'];

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Подразделения where Сокращение='+#39+frOpenLichCard.Edit10.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

stpID:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Должности where Название='+#39+frOpenLichCard.Edit11.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

profID:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select Спецодежда from Нормативы where Подразделение='+IntToStr(stpID)+' and Должность='+IntToStr(profID)+' and Спецодежда='+#39+nom+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

if FieldValues['Спецодежда']=Null then siz:=0

else siz:=1;

end;

frDM.ADOQueryCheck.SQL.Clear;

П2.12. Продолжение

frDM.ADOQueryCheck.SQL.Add('select Замена from Нормативы where Подразделение='+IntToStr(stpID)+' and Должность='+IntToStr(profID)+' and Замена='+#39+nom+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

if FieldValues['Замена']=Null then zam:=0

else zam:=1;

end;

if frmRefresh(frNewTabLich, TfrNewTabLich)

then

if frDM.ADOQueryCard['Остаток']=0 then

MessageDlg('Запрашиваемого СИЗ нет на складе',mtInformation,[mbOk],0)

else

if (siz=1)or(zam=1) then

begin

frNewTabLich.Edit1.Text:=frDM.ADOQueryCard['СИЗ'];

frNewTabLich.Edit2.Text:=frDM.ADOQueryCard['Номер'];

frNewTabLich.currEdit1.Text:=FloatToStrf(frDM.ADOQueryCard['Цена'],fffixed,12,2);

frNewTabLich.currEdit2.Text:=FloatToStrf(frDM.ADOQueryCard['Цена'],fffixed,12,2);

frNewTabLich.Edit4.Text:=IntToStr(frDM.ADOQueryCard['id']);

frNewTabLich.Edit5.Text:=frDM.ADOQueryCard['Ед_изм'];

Close;

end

else

if MessageDlg('Данное СИЗ не положено по нормативам. Продолжить?',mtWarning,[mbYes,mbNo],0)=mrYes then

begin

frNewTabLich.Edit1.Text:=frDM.ADOQueryCard['СИЗ'];

frNewTabLich.Edit2.Text:=frDM.ADOQueryCard['Номер'];

frNewTabLich.currEdit1.Text:=FloatToStrf(frDM.ADOQueryCard['Цена'],fffixed,12,2);

frNewTabLich.currEdit2.Text:=FloatToStrf(frDM.ADOQueryCard['Цена'],fffixed,12,2);

frNewTabLich.Edit4.Text:=IntToStr(frDM.ADOQueryCard['id']);

frNewTabLich.Edit5.Text:=frDM.ADOQueryCard['Ед_изм'];

Close;

end;

end;

167: begin

if frmRefresh(frNewTabReq, TfrNewTabReq)

then begin

frNewTabReq.Edit3.Text:=IntToStr(frDM.ADOQueryCard['id']);

frNewTabReq.Edit2.Text:=frDM.ADOQueryCard['СИЗ'];

frNewTabReq.Edit1.Text:=frDM.ADOQueryCard['Номер'];

frNewTabReq.Edit5.Text:=frDM.ADOQueryCard['Ед_изм'];

frNewTabReq.Edit4.Text:=frDM.ADOQueryCard['Размер'];

end;

Close;

end;

end;

end;

end.

unit uLichCard;

interface

uses

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

Dialogs, Grids, DBGridEh;

type

TfrLichCard = class(TForm)

DBGridEh1: TDBGridEh;

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

procedure FormActivate(Sender: TObject);

procedure CreateChildOpenLichCard(const childName : string);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure FormCreate(Sender: TObject);

procedure DBGridEh1DblClick(Sender: TObject);

procedure DBGridEh1CellClick(Column: TColumnEh);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frLichCard: TfrLichCard;

pole: String;

implementation

uses DM, uMain, uNewLichCard, uOpenLichCard;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrLichCard.CreateChildOpenLichCard(const childName : string);

var Child: TfrOpenLichCard;

begin

Child := TfrOpenLichCard.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=false;

frMain.N23.Enabled:=true;

Action:=caFree;

end;

procedure TfrLichCard.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=true;

frMain.ToolButton8.Enabled:=true;

frMain.N23.Enabled:=false;

end;

Рис. П2.13. Текст модуля uLichCard.pas

П2.13. Продолжение

procedure TfrLichCard.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrLichCard.FormCreate(Sender: TObject);

begin

frDM.ADOQueryLich.Active:=false;

frDM.ADOQueryLich.SQL.Text:='select Выдача.id, Выдача.Сотрудник as Таб_ном, Сотрудники.Фамилия, '+

'Сотрудники.Имя, Сотрудники.Отчество, '+

'Сотрудники.Пол, Подразделения.Сокращение as Подразделение, '+

'Должности.Название as Должность, Выдача.Дата_пост, '+

'Выдача.Дата_изм, Выдача.Р_одежда, Выдача.Р_обувь, '+

'Выдача.Р_голова, Выдача.Рост, Выдача.Дата '+

'from Выдача '+

'left join Сотрудники on Сотрудники.id=Выдача.Сотрудник '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество';

frDM.ADOQueryLich.Active:=true;

uMain.idx_lichcard:='Фамилия';

end;

procedure TfrLichCard.DBGridEh1DblClick(Sender: TObject);

var s: String;

begin

CreateChildOpenLichCard('Личная карточка выдачи СИЗ');

if frmRefresh(frOpenLichCard, TfrOpenLichCard) then

begin

frOpenLichCard.Tag:=144;

frDM.ADOTableLich.Active:=false;

frDM.ADOTableLich.Active:=true;

frDM.ADOTableLich.Locate('id',frDM.ADOQueryLich['id'],[]);

if frDM.ADOTableLich['id']<>Null then

s:=IntToStr(frDM.ADOTableLich['id']);

if frDM.ADOQueryLich['id']<>Null then

frOpenLichCard.Edit12.Text:=frDM.ADOQueryLich['id'];

if frDM.ADOQueryLich['Дата']<>Null then

frOpenLichCard.Edit13.Text:=frDM.ADOQueryLich['Дата'];

if frDM.ADOQueryLich['Таб_ном']<>Null then

frOpenLichCard.Edit1.Text:=frDM.ADOQueryLich['Таб_ном'];

if frDM.ADOQueryLich['Фамилия']<>Null then

frOpenLichCard.Edit2.Text:=frDM.ADOQueryLich['Фамилия'];

if frDM.ADOQueryLich['Имя']<>Null then

frOpenLichCard.Edit3.Text:=frDM.ADOQueryLich['Имя'];

if frDM.ADOQueryLich['Отчество']<>Null then

frOpenLichCard.Edit4.Text:=frDM.ADOQueryLich['Отчество'];

if frDM.ADOQueryLich['Пол']<>Null then

frOpenLichCard.Edit5.Text:=frDM.ADOQueryLich['Пол'];

if frDM.ADOQueryLich['Рост']<>Null then

frOpenLichCard.Edit6.Text:=frDM.ADOQueryLich['Рост'];

if frDM.ADOQueryLich['Р_одежда']<>Null then

frOpenLichCard.Edit7.Text:=frDM.ADOQueryLich['Р_одежда'];

if frDM.ADOQueryLich['Р_обувь']<>Null then

frOpenLichCard.Edit8.Text:=frDM.ADOQueryLich['Р_обувь'];

if frDM.ADOQueryLich['Р_голова']<>Null then

frOpenLichCard.Edit9.Text:=frDM.ADOQueryLich['Р_голова'];

if frDM.ADOQueryLich['Подразделение']<>Null then

frOpenLichCard.Edit10.Text:=frDM.ADOQueryLich['Подразделение'];

if frDM.ADOQueryLich['Должность']<>Null then

frOpenLichCard.Edit11.Text:=frDM.ADOQueryLich['Должность'];

if frDM.ADOQueryLich['Дата_пост']<>Null then

frOpenLichCard.DBDateTimeEditEh1.Text:=frDM.ADOQueryLich['Дата_пост'];

if frDM.ADOQueryLich['Дата_изм']<>Null then

frOpenLichCard.DBDateTimeEditEh2.Text:=frDM.ADOQueryLich['Дата_изм'];

frDM.ADOQueryTabLich.Active:=false;

frDM.ADOQueryTabLich.SQL.Text:='select ТЧ_Выдача.id, ТЧ_Выдача.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, ТЧ_Выдача.Дата_выд, '+

'ТЧ_Выдача.Кол_выд, ТЧ_Выдача.Годность_выд, '+

'ТЧ_Выдача.Стоимость, ТЧ_Выдача.Дата_воз, '+

'ТЧ_Выдача.Кол_воз, ТЧ_Выдача.Годность_воз, '+

'ТЧ_Выдача.Документ '+

'from ТЧ_Выдача '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Выдача.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Выдача.Документ='+s+

' order by ТЧ_Выдача.id desc';

frDM.ADOQueryTabLich.Active:=true;

end;

end;

procedure TfrLichCard.DBGridEh1CellClick(Column: TColumnEh);

begin

pole:=DBGridEh1.SelectedField.FieldName;

end;

end.

unit uEntry;

interface

uses

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

Dialogs, Grids, DBGridEh, StdCtrls, ExtCtrls;

type

TfrEntry = class(TForm)

DBGridEh1: TDBGridEh;

Panel1: TPanel;

RadioGroup1: TRadioGroup;

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

procedure FormActivate(Sender: TObject);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure FormCreate(Sender: TObject);

procedure RadioGroup1Click(Sender: TObject);

procedure CreateChildNewEntry(const childName : string);

procedure DBGridEh1DblClick(Sender: TObject);

Рис. П2.14. Текст модуля uEntry

П2.14. Продолжение

private

{ Private declarations }

public

{ Public declarations }

end;

var

frEntry: TfrEntry;

implementation

uses uMain, DM, uNewEntry;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrEntry.CreateChildNewEntry(const childName : string);

var Child: TfrNewEntry;

begin

Child := TfrNewEntry.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=false;

frMain.N22.Enabled:=true;

Action:=caFree;

end;

procedure TfrEntry.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=true;

frMain.ToolButton8.Enabled:=true;

frMain.N22.Enabled:=false;

end;

procedure TfrEntry.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrEntry.FormCreate(Sender: TObject);

begin

frDM.ADOQueryProv.Active:=false;

frDM.ADOQueryProv.SQL.Text:='select Проводки.id, Проводки.Номер_док, '+

'Проводки.Дата, Проводки.Операция, Проводки.Дебет, '+

'Проводки.Кредит, Спецодежда.Название, Проводки.СИЗ as Номер, '+

'Проводки.Номер_по_карт, Проводки.Ед_изм, '+

'Проводки.Количество, Проводки.Цена, Проводки.Стоимость '+

' from Проводки '+

'left join Спецодежда on Спецодежда.id=Проводки.СИЗ '+

'order by Проводки.Дата, Спецодежда.Название, Проводки.id';

frDM.ADOQueryProv.Active:=true;

end;

procedure TfrEntry.RadioGroup1Click(Sender: TObject);

begin

case RadioGroup1.ItemIndex of

0: begin

frDM.ADOQueryProv.Active:=false;

frDM.ADOQueryProv.SQL.Text:='select Проводки.id, Проводки.Номер_док, '+

'Проводки.Дата, Проводки.Операция, Проводки.Дебет, '+

'Проводки.Кредит, Спецодежда.Название, Проводки.СИЗ as Номер, '+

'Проводки.Номер_по_карт, Проводки.Ед_изм, '+

'Проводки.Количество, Проводки.Цена, Проводки.Стоимость '+

' from Проводки '+

'left join Спецодежда on Спецодежда.id=Проводки.СИЗ '+

'order by Проводки.Дата, Спецодежда.Название, Проводки.id';

frDM.ADOQueryProv.Active:=true;

end;

1: begin

frDM.ADOQueryProv.Active:=false;

frDM.ADOQueryProv.SQL.Text:='select Проводки.id, Проводки.Номер_док, '+

'Проводки.Дата, Проводки.Операция, Проводки.Дебет, '+

'Проводки.Кредит, Спецодежда.Название, Проводки.СИЗ as Номер, '+

'Проводки.Номер_по_карт, Проводки.Ед_изм, '+

'Проводки.Количество, Проводки.Цена, Проводки.Стоимость '+

' from Проводки '+

'left join Спецодежда on Спецодежда.id=Проводки.СИЗ '+

'where Проводки.Операция='+#39+'Пост'+#39+

' order by Проводки.Дата, Спецодежда.Название, Проводки.id';

frDM.ADOQueryProv.Active:=true;

end;

2: begin

frDM.ADOQueryProv.Active:=false;

frDM.ADOQueryProv.SQL.Text:='select Проводки.id, Проводки.Номер_док, '+

'Проводки.Дата, Проводки.Операция, Проводки.Дебет, '+

'Проводки.Кредит, Спецодежда.Название, Проводки.СИЗ as Номер, '+

'Проводки.Номер_по_карт, Проводки.Ед_изм, '+

'Проводки.Количество, Проводки.Цена, Проводки.Стоимость '+

' from Проводки '+

'left join Спецодежда on Спецодежда.id=Проводки.СИЗ '+

'where Проводки.Операция='+#39+'Выдача'+#39+

' order by Проводки.Дата, Спецодежда.Название, Проводки.id';

frDM.ADOQueryProv.Active:=true;

end;

3: begin

frDM.ADOQueryProv.Active:=false;

П2.14. Продолжение

frDM.ADOQueryProv.SQL.Text:='select Проводки.id, Проводки.Номер_док, '+

'Проводки.Дата, Проводки.Операция, Проводки.Дебет, '+

'Проводки.Кредит, Спецодежда.Название, Проводки.СИЗ as Номер, '+

'Проводки.Номер_по_карт, Проводки.Ед_изм, '+

'Проводки.Количество, Проводки.Цена, Проводки.Стоимость '+

' from Проводки '+

'left join Спецодежда on Спецодежда.id=Проводки.СИЗ '+

'where Проводки.Операция='+#39+'Списание'+#39+

' order by Проводки.Дата, Спецодежда.Название, Проводки.id';

frDM.ADOQueryProv.Active:=true;

end;

end;

end;

procedure TfrEntry.DBGridEh1DblClick(Sender: TObject);

begin

CreateChildNewEntry('Редактировать проводку');

if frmRefresh(frNewEntry, TfrNewEntry) then

begin

frNewEntry.Tag:=132;

frNewEntry.DBDateTimeEditEh1.SetFocus;

frNewEntry.BitBtn3.Caption:='Записать';

frDM.ADOTableProv.Active:=false;

frDM.ADOTableProv.Active:=true;

frDM.ADOTableProv.Locate('id',frDM.ADOQueryProv['id'],[]);

if frDM.ADOQueryProv['Дата']<>Null then

frNewEntry.DBDateTimeEditEh1.Text:=frDM.ADOQueryProv['Дата'];

if frDM.ADOQueryProv['Номер_док']<>Null then

frNewEntry.Edit1.Text:=frDM.ADOQueryProv['Номер_док'];

if frDM.ADOQueryProv['Номер']<>Null then

frNewEntry.Edit2.Text:=frDM.ADOQueryProv['Номер'];

if frDM.ADOQueryProv['Название']<>Null then

frNewEntry.Edit3.Text:=frDM.ADOQueryProv['Название'];

if frDM.ADOQueryProv['Номер_по_карт']<>Null then

frNewEntry.Edit4.Text:=frDM.ADOQueryProv['Номер_по_карт'];

if frDM.ADOQueryProv['Ед_изм']<>Null then

frNewEntry.Edit5.Text:=frDM.ADOQueryProv['Ед_изм'];

if frDM.ADOQueryProv['Дебет']<>Null then

frNewEntry.Edit6.Text:=copy(frDM.ADOQueryProv['Дебет'],2,length(frDM.ADOQueryProv['Дебет'])-2);

if frDM.ADOQueryProv['Кредит']<>Null then

frNewEntry.Edit8.Text:=copy(frDM.ADOQueryProv['Кредит'],2,length(frDM.ADOQueryProv['Кредит'])-2);

if frDM.ADOQueryProv['Количество']<>Null then

frNewEntry.SpinEdit3.Text:=frDM.ADOQueryProv['Количество'];

if frDM.ADOQueryProv['Цена']<>Null then

frNewEntry.currEdit1.Text:=FloatToStrf(frDM.ADOQueryProv['Цена'],fffixed,12,2);

if frDM.ADOQueryProv['Стоимость']<>Null then

frNewEntry.currEdit2.Text:=FloatToStrf(frDM.ADOQueryProv['Стоимость'],fffixed,12,2);

if frDM.ADOQueryProv['Операция']='Пост'

then frNewEntry.RadioGroup1.ItemIndex:=0

else if frDM.ADOQueryProv['Операция']='Выдача'

then frNewEntry.RadioGroup1.ItemIndex:=1

else if frDM.ADOQueryProv['Операция']='Списание'

then frNewEntry.RadioGroup1.ItemIndex:=2;

frDM.ADOTableProv.Edit;

end;

end;

end.

unit uRequest;

interface

uses

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

Dialogs, Grids, DBGridEh;

type

TfrRequest = class(TForm)

DBGridEh1: TDBGridEh;

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

procedure FormActivate(Sender: TObject);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure CreateChildNewReq(const childName : string);

procedure DBGridEh1DblClick(Sender: TObject);

procedure CreateChildTabReq(const childName : string);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frRequest: TfrRequest;

implementation

uses DM, uMain, uNewReq, uTabReq;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrRequest.CreateChildNewReq(const childName : string);

var Child: TfrNewReq;

begin

Child := TfrNewReq.Create(Application);

Child.Caption := childName;

end;

procedure TfrRequest.CreateChildTabReq(const childName : string);

var Child: TfrTabReq;

begin

Child := TfrTabReq.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

Рис. П2. 15. Текст модуля uRequest.pas

П2.15. Продолжение

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=false;

frMain.N24.Enabled:=true;

Action:=caFree;

end;

procedure TfrRequest.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=true;

frMain.ToolButton8.Enabled:=true;

frMain.N24.Enabled:=false;

end;

procedure TfrRequest.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrRequest.DBGridEh1DblClick(Sender: TObject);

var s: String;

begin

CreateChildTabReq('Заявка на получение СИЗ');

if frmRefresh(frTabReq, TfrTabReq) then

begin

frTabReq.Tag:=163;

frDM.ADOTableTabReq.Active:=false;

frDM.ADOTableTabReq.Active:=true;

if frDM.ADOTableReq['id']<>Null then

s:=IntToStr(frDM.ADOTableReq['id']);

if frDM.ADOTableReq['Дата']<>Null then

frTabReq.DBDateTimeEditEh1.Text:=frDM.ADOTableReq['Дата'];

if frDM.ADOTableReq['Принята']='false' then

frTabReq.BitBtn2.Visible:=true

else frTabReq.BitBtn2.Visible:=false;

frDM.ADOQueryTabReq.Active:=false;

frDM.ADOQueryTabReq.SQL.Text:='select ТЧ_Заявка.id, ТЧ_Заявка.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, '+

'Склад_Учет.Размер, '+

'Склад_Учет.Ед_изм, '+

'ТЧ_Заявка.Количество, '+

'ТЧ_Заявка.Документ '+

'from ТЧ_Заявка '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Заявка.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Заявка.Документ='+s+

' order by Спецодежда.Название, Склад_Учет.Размер';

frDM.ADOQueryTabReq.Active:=true;

end;

end;

end.

unit uOpenCard;

interface

uses

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

Dialogs, ImgList, Grids, DBGridEh, ComCtrls, ToolWin, ExtCtrls, StdCtrls;

type

TfrOpenCard = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

Edit3: TEdit;

Label4: TLabel;

Edit4: TEdit;

Label5: TLabel;

Edit5: TEdit;

Label6: TLabel;

Edit6: TEdit;

Panel1: TPanel;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

DBGridEh1: TDBGridEh;

ImageList1: TImageList;

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

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frOpenCard: TfrOpenCard;

implementation

uses DM;

{$R *.dfm}

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

begin

Action:=caFree;

end;

procedure TfrOpenCard.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

end.

Рис. П2.16. Текст модуля uOpenCard.pas

unit uOpenLichCard;

interface

uses

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

Dialogs, Grids, DBGridEh, StdCtrls, Buttons, ComCtrls, ToolWin, ExtCtrls, DB, ADODB,

Mask, DBCtrlsEh, ImgList;

type

TfrOpenLichCard = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Bevel1: TBevel;

Bevel2: TBevel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Edit10: TEdit;

Edit11: TEdit;

Panel1: TPanel;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton4: TToolButton;

ToolButton5: TToolButton;

Panel2: TPanel;

BitBtn1: TBitBtn;

DBGridEh1: TDBGridEh;

Label18: TLabel;

Label19: TLabel;

Edit12: TEdit;

Edit13: TEdit;

Bevel3: TBevel;

BitBtn2: TBitBtn;

DBDateTimeEditEh1: TDBDateTimeEditEh;

DBDateTimeEditEh2: TDBDateTimeEditEh;

ImageList1: TImageList;

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

procedure CreateChildNorm(const childName : string);

procedure CreateChildNewTabLich(const childName : string);

procedure FormActivate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure ToolButton2Click(Sender: TObject);

procedure DBGridEh1DblClick(Sender: TObject);

procedure ToolButton5Click(Sender: TObject);

procedure DBGridEh1CellClick(Column: TColumnEh);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frOpenLichCard: TfrOpenLichCard;

k_lich: integer;

pole: String;

implementation

uses uMain, uNorm, DM, uNewTabLich;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrOpenLichCard.CreateChildNorm(const childName : string);

var Child: TfrNorm;

begin

Child := TfrNorm.Create(Application);

Child.Caption := childName;

end;

procedure TfrOpenLichCard.CreateChildNewTabLich(const childName : string);

var Child: TfrNewTabLich;

begin

Child := TfrNewTabLich.Create(Application);

Child.Caption := childName;

end;

procedure TfrOpenLichCard.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=true;

frMain.ToolButton8.Enabled:=true;

Action:=caFree;

end;

procedure TfrOpenLichCard.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=true;

end;

procedure TfrOpenLichCard.BitBtn1Click(Sender: TObject);

begin

Close;

end;

procedure TfrOpenLichCard.BitBtn2Click(Sender: TObject);

begin

CreateChildNorm('Норма выдачи СИЗ');

if frmRefresh(frNorm,TfrNorm) then

begin

frNorm.Edit1.Text:=Edit10.Text;

frDM.ADOQueryNormProf.Active:=false;

frDM.ADOQueryNormProf.SQL.Text:='select distinct Должности.Название'+

' from Должности, Нормативы, Подразделения'+

Рис. П2.17. Текст модуля uOpenLichCard.pas

П2.17. Продолжение

' where Нормативы.Должность=Должности.id and'+

' Нормативы.Подразделение=Подразделения.id and'+

' Подразделения.Сокращение='+#39+Edit10.Text+#39+

' order by Должности.Название';

frDM.ADOQueryNormProf.Active:=true;

frDM.ADOQueryNormProf.Locate('Название',Edit11.Text,[loCaseInsensitive,loPartialKey]);

frDM.ADOQueryNormSiz.Active:=false;

frDM.ADOQueryNormSiz.SQL.Text:='select V_norm.p2, V_norm.p3, V_norm.p4, '+

'V_norm.p5, V_norm.p6, V_norm.p7, V_norm.p8, V_norm.p9, '+

'Спецодежда.Название, V_norm.p11 '+

'from V_norm '+

'left join Спецодежда on Спецодежда.id=V_norm.p10 '+

'where V_norm.p2='+#39+Edit10.Text+#39+

' and V_norm.p3='+#39+Edit11.Text+#39+

' order by p4';

frDM.ADOQueryNormSiz.Active:=true;

end;

end;

procedure TfrOpenLichCard.ToolButton1Click(Sender: TObject);

begin

CreateChildNewTabLich('Добавить СИЗ');

if frmRefresh(frNewTabLich,TfrNewTabLich) then

begin

frNewTabLich.Tag:=145;

frNewTabLich.Edit1.SetFocus;

frNewTabLich.BitBtn2.Caption:='Добавить';

end;

frDM.ADOTableTabLich.Append;

frDM.ADOQueryCheck.Active:=false;

frDM.ADOQueryCheck.SQL.Text:='select seq_tablich.nextval from dual';

frDM.ADOQueryCheck.Active:=true;

k_lich:=frDM.ADOQueryCheck.FieldValues['nextval']+1;

end;

procedure TfrOpenLichCard.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrOpenLichCard.ToolButton2Click(Sender: TObject);

begin

CreateChildNewTabLich('Редактировать запись');

if frmRefresh(frNewTabLich,TfrNewTabLich) then

begin

frNewTabLich.Tag:=147;

frNewTabLich.Edit1.SetFocus;

frNewTabLich.BitBtn2.Caption:='Записать';

frDM.ADOTableTabLich.Active:=false;

frDM.ADOTableTabLich.Active:=true;

k_lich:=frDM.ADOQueryTabLich['id'];

frDM.ADOTableTabLich.Locate('id',frDM.ADOQueryTabLich['id'],[]);

frDM.ADOTableTabCard.Locate('Карточка',frDM.ADOQueryTabLich['id'],[]);

frDM.ADOTableProv.Locate('Карточка',frDM.ADOQueryTabLich['id'],[]);

if frDM.ADOQueryTabLich['Номер_по_карт']<>Null then

frNewTabLich.Edit4.Text:=frDM.ADOQueryTabLich['Номер_по_карт'];

if frDM.ADOQueryTabLich['СИЗ']<>Null then

frNewTabLich.Edit1.Text:=frDM.ADOQueryTabLich['СИЗ'];

if frDM.ADOQueryTabLich['Номер']<>Null then

frNewTabLich.Edit2.Text:=frDM.ADOQueryTabLich['Номер'];

if frDM.ADOQueryTabLich['Дата_выд']<>Null then

frNewTabLich.DBDateTimeEditEh1.Text:=frDM.ADOQueryTabLich['Дата_выд'];

if frDM.ADOQueryTabLich['Годность_выд']<>Null then

frNewTabLich.Edit3.Text:=frDM.ADOQueryTabLich['Годность_выд'];

if frDM.ADOQueryTabLich['Кол_выд']<>Null then

frNewTabLich.SpinEdit1.Text:=frDM.ADOQueryTabLich['Кол_выд'];

if frDM.ADOQueryTabLich['Стоимость']<>Null then

frNewTabLich.currEdit1.Text:=FloatToStrf(frDM.ADOQueryTabLich['Стоимость'],fffixed,12,2);

if frDM.ADOQueryTabLich['Дата_воз']<>Null then

frNewTabLich.DBDateTimeEditEh2.Text:=frDM.ADOQueryTabLich['Дата_воз'];

if frDM.ADOQueryTabLich['Годность_воз']<>Null then

frNewTabLich.Edit6.Text:=frDM.ADOQueryTabLich['Годность_воз'];

if frDM.ADOQueryTabLich['Кол_воз']<>Null then

frNewTabLich.SpinEdit2.Text:=frDM.ADOQueryTabLich['Кол_воз'];

frDM.ADOQueryCheck.Active:=false;

frDM.ADOQueryCheck.SQL.Text:='select Ед_изм, Цена from Склад_Учет where id='+frNewTabLich.Edit4.Text;

frDM.ADOQueryCheck.Active:=true;

if frDM.ADOQueryCheck['Ед_изм']<>Null then

frNewTabLich.Edit5.Text:=frDM.ADOQueryCheck['Ед_изм'];

if frDM.ADOQueryCheck['Цена']<>Null then

frNewTabLich.currEdit2.Text:=FloatToStrf(frDM.ADOQueryCheck['Цена'],fffixed,12,2);

end;

frDM.ADOTableTabLich.Edit;

frDM.ADOTableTabCard.Edit;

frDM.ADOTableProv.Edit;

end;

procedure TfrOpenLichCard.DBGridEh1DblClick(Sender: TObject);

begin

CreateChildNewTabLich('Редактировать запись');

if frmRefresh(frNewTabLich,TfrNewTabLich) then

begin

frNewTabLich.Tag:=147;

frNewTabLich.Edit1.SetFocus;

frNewTabLich.BitBtn2.Caption:='Записать';

frDM.ADOTableTabLich.Active:=false;

frDM.ADOTableTabLich.Active:=true;

k_lich:=frDM.ADOQueryTabLich['id'];

frDM.ADOTableTabLich.Locate('id',frDM.ADOQueryTabLich['id'],[]);

frDM.ADOTableTabCard.Locate('Карточка',frDM.ADOQueryTabLich['id'],[]);

frDM.ADOTableProv.Locate('Карточка',frDM.ADOQueryTabLich['id'],[]);

if frDM.ADOQueryTabLich['Номер_по_карт']<>Null then

frNewTabLich.Edit4.Text:=frDM.ADOQueryTabLich['Номер_по_карт'];

if frDM.ADOQueryTabLich['СИЗ']<>Null then

frNewTabLich.Edit1.Text:=frDM.ADOQueryTabLich['СИЗ'];

if frDM.ADOQueryTabLich['Номер']<>Null then

frNewTabLich.Edit2.Text:=frDM.ADOQueryTabLich['Номер'];

if frDM.ADOQueryTabLich['Дата_выд']<>Null then

frNewTabLich.DBDateTimeEditEh1.Text:=frDM.ADOQueryTabLich['Дата_выд'];

if frDM.ADOQueryTabLich['Годность_выд']<>Null then

frNewTabLich.Edit3.Text:=frDM.ADOQueryTabLich['Годность_выд'];

if frDM.ADOQueryTabLich['Кол_выд']<>Null then

П2.17. Продолжение

frNewTabLich.SpinEdit1.Text:=frDM.ADOQueryTabLich['Кол_выд'];

if frDM.ADOQueryTabLich['Стоимость']<>Null then

TabLich.currEdit1.Text:=FloatToStrf(frDM.ADOQueryTabLich['Стоимость'],fffixed,12,2);

if frDM.ADOQueryTabLich['Дата_воз']<>Null then

wTabLich.DBDateTimeEditEh2.Text:=frDM.ADOQueryTabLich['Дата_воз'];

if frDM.ADOQueryTabLich['Годность_воз']<>Null then

frNewTabLich.Edit6.Text:=frDM.ADOQueryTabLich['Годность_воз'];

if frDM.ADOQueryTabLich['Кол_воз']<>Null then

frNewTabLich.SpinEdit2.Text:=frDM.ADOQueryTabLich['Кол_воз'];

frDM.ADOQueryCheck.Active:=false;

frDM.ADOQueryCheck.SQL.Text:='select Ед_изм, Цена from Склад_Учет where id='+frNewTabLich.Edit4.Text;

frDM.ADOQueryCheck.Active:=true;

if frDM.ADOQueryCheck['Ед_изм']<>Null then

frNewTabLich.Edit5.Text:=frDM.ADOQueryCheck['Ед_изм'];

if frDM.ADOQueryCheck['Цена']<>Null then

frNewTabLich.currEdit2.Text:=FloatToStrf(frDM.ADOQueryCheck['Цена'],fffixed,12,2);

end;

frDM.ADOTableTabLich.Edit;

frDM.ADOTableTabCard.Edit;

frDM.ADOTableProv.Edit;

end;

procedure TfrOpenLichCard.ToolButton5Click(Sender: TObject);

var s: String;

begin

if frDM.ADOTableLich['id']<>Null then

s:=IntToStr(frDM.ADOTableLich['id']);

if pole='СИЗ' then

begin

frDM.ADOQueryTabLich.Active:=false;

frDM.ADOQueryTabLich.SQL.Text:='select ТЧ_Выдача.id, ТЧ_Выдача.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, ТЧ_Выдача.Дата_выд, '+

'ТЧ_Выдача.Кол_выд, ТЧ_Выдача.Годность_выд, '+

'ТЧ_Выдача.Стоимость, ТЧ_Выдача.Дата_воз, '+

'ТЧ_Выдача.Кол_воз, ТЧ_Выдача.Годность_воз, '+

'ТЧ_Выдача.Документ '+

'from ТЧ_Выдача '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Выдача.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Выдача.Документ='+s+

' order by Спецодежда.Название';

frDM.ADOQueryTabLich.Active:=true;

end;

if pole='Номер' then

begin

frDM.ADOQueryTabLich.Active:=false;

frDM.ADOQueryTabLich.SQL.Text:='select ТЧ_Выдача.id, ТЧ_Выдача.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, ТЧ_Выдача.Дата_выд, '+

'ТЧ_Выдача.Кол_выд, ТЧ_Выдача.Годность_выд, '+

'ТЧ_Выдача.Стоимость, ТЧ_Выдача.Дата_воз, '+

'ТЧ_Выдача.Кол_воз, ТЧ_Выдача.Годность_воз, '+

'ТЧ_Выдача.Документ '+

'from ТЧ_Выдача '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Выдача.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Выдача.Документ='+s+

' order by Спецодежда.id';

frDM.ADOQueryTabLich.Active:=true;

end;

if pole='Дата_выд' then

begin

frDM.ADOQueryTabLich.Active:=false;

frDM.ADOQueryTabLich.SQL.Text:='select ТЧ_Выдача.id, ТЧ_Выдача.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, ТЧ_Выдача.Дата_выд, '+

'ТЧ_Выдача.Кол_выд, ТЧ_Выдача.Годность_выд, '+

'ТЧ_Выдача.Стоимость, ТЧ_Выдача.Дата_воз, '+

'ТЧ_Выдача.Кол_воз, ТЧ_Выдача.Годность_воз, '+

'ТЧ_Выдача.Документ '+

'from ТЧ_Выдача '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Выдача.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Выдача.Документ='+s+

' order by ТЧ_Выдача.Дата_выд desc';

frDM.ADOQueryTabLich.Active:=true;

end;

if pole='Кол_выд' then

begin

frDM.ADOQueryTabLich.Active:=false;

frDM.ADOQueryTabLich.SQL.Text:='select ТЧ_Выдача.id, ТЧ_Выдача.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, ТЧ_Выдача.Дата_выд, '+

'ТЧ_Выдача.Кол_выд, ТЧ_Выдача.Годность_выд, '+

'ТЧ_Выдача.Стоимость, ТЧ_Выдача.Дата_воз, '+

'ТЧ_Выдача.Кол_воз, ТЧ_Выдача.Годность_воз, '+

'ТЧ_Выдача.Документ '+

'from ТЧ_Выдача '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Выдача.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Выдача.Документ='+s+

' order by ТЧ_Выдача.Кол_выд';

frDM.ADOQueryTabLich.Active:=true;

end;

if pole='Годность_выд' then

begin

frDM.ADOQueryTabLich.Active:=false;

frDM.ADOQueryTabLich.SQL.Text:='select ТЧ_Выдача.id, ТЧ_Выдача.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, ТЧ_Выдача.Дата_выд, '+

'ТЧ_Выдача.Кол_выд, ТЧ_Выдача.Годность_выд, '+

'ТЧ_Выдача.Стоимость, ТЧ_Выдача.Дата_воз, '+

'ТЧ_Выдача.Кол_воз, ТЧ_Выдача.Годность_воз, '+

'ТЧ_Выдача.Документ '+

'from ТЧ_Выдача '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Выдача.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Выдача.Документ='+s+

' order by ТЧ_Выдача.Годность_выд';

П2.17. Продолжение

frDM.ADOQueryTabLich.Active:=true;

end;

if pole='Стоимость' then

begin

frDM.ADOQueryTabLich.Active:=false;

frDM.ADOQueryTabLich.SQL.Text:='select ТЧ_Выдача.id, ТЧ_Выдача.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, ТЧ_Выдача.Дата_выд, '+

'ТЧ_Выдача.Кол_выд, ТЧ_Выдача.Годность_выд, '+

'ТЧ_Выдача.Стоимость, ТЧ_Выдача.Дата_воз, '+

'ТЧ_Выдача.Кол_воз, ТЧ_Выдача.Годность_воз, '+

'ТЧ_Выдача.Документ '+

'from ТЧ_Выдача '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Выдача.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Выдача.Документ='+s+

' order by ТЧ_Выдача.Стоимость';

frDM.ADOQueryTabLich.Active:=true;

end;

if pole='Дата_воз' then

begin

frDM.ADOQueryTabLich.Active:=false;

frDM.ADOQueryTabLich.SQL.Text:='select ТЧ_Выдача.id, ТЧ_Выдача.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, ТЧ_Выдача.Дата_выд, '+

'ТЧ_Выдача.Кол_выд, ТЧ_Выдача.Годность_выд, '+

'ТЧ_Выдача.Стоимость, ТЧ_Выдача.Дата_воз, '+

'ТЧ_Выдача.Кол_воз, ТЧ_Выдача.Годность_воз, '+

'ТЧ_Выдача.Документ '+

'from ТЧ_Выдача '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Выдача.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Выдача.Документ='+s+

' order by ТЧ_Выдача.Дата_воз desc';

frDM.ADOQueryTabLich.Active:=true;

end;

if pole='Кол_воз' then

begin

frDM.ADOQueryTabLich.Active:=false;

frDM.ADOQueryTabLich.SQL.Text:='select ТЧ_Выдача.id, ТЧ_Выдача.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, ТЧ_Выдача.Дата_выд, '+

'ТЧ_Выдача.Кол_выд, ТЧ_Выдача.Годность_выд, '+

'ТЧ_Выдача.Стоимость, ТЧ_Выдача.Дата_воз, '+

'ТЧ_Выдача.Кол_воз, ТЧ_Выдача.Годность_воз, '+

'ТЧ_Выдача.Документ '+

'from ТЧ_Выдача '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Выдача.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Выдача.Документ='+s+

' order by ТЧ_Выдача.Кол_воз';

frDM.ADOQueryTabLich.Active:=true;

end;

if pole='Годность_воз' then

begin

frDM.ADOQueryTabLich.Active:=false;

frDM.ADOQueryTabLich.SQL.Text:='select ТЧ_Выдача.id, ТЧ_Выдача.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, ТЧ_Выдача.Дата_выд, '+

'ТЧ_Выдача.Кол_выд, ТЧ_Выдача.Годность_выд, '+

'ТЧ_Выдача.Стоимость, ТЧ_Выдача.Дата_воз, '+

'ТЧ_Выдача.Кол_воз, ТЧ_Выдача.Годность_воз, '+

'ТЧ_Выдача.Документ '+

'from ТЧ_Выдача '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Выдача.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Выдача.Документ='+s+

' order by ТЧ_Выдача.Годность_воз';

frDM.ADOQueryTabLich.Active:=true;

end;

end;

procedure TfrOpenLichCard.DBGridEh1CellClick(Column: TColumnEh);

begin

pole:=DBGridEh1.SelectedField.FieldName;

end;

end.

unit uTabReq;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGridEh, ExtCtrls, StdCtrls, Mask, DBCtrlsEh, Buttons,

ToolWin, ComCtrls, ImgList;

type

TfrTabReq = class(TForm)

Label1: TLabel;

DBDateTimeEditEh1: TDBDateTimeEditEh;

Panel1: TPanel;

DBGridEh1: TDBGridEh;

ToolBar1: TToolBar;

BitBtn1: TBitBtn;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

ImageList1: TImageList;

BitBtn2: TBitBtn;

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

procedure FormActivate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

Рис. П2.18. Текст модуля uTabReq.pas

П2.18. Продолжение

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure CreateChildNewTabReq(const childName : string);

procedure ToolButton1Click(Sender: TObject);

procedure ToolButton2Click(Sender: TObject);

procedure DBGridEh1DblClick(Sender: TObject);

procedure ToolButton3Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frTabReq: TfrTabReq;

implementation

uses DM, uMain, uNewTabReq;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrTabReq.CreateChildNewTabReq(const childName : string);

var Child: TfrNewTabReq;

begin

Child := TfrNewTabReq.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=true;

frMain.ToolButton8.Enabled:=true;

Action:=caFree;

end;

procedure TfrTabReq.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=true;

end;

procedure TfrTabReq.BitBtn1Click(Sender: TObject);

begin

Close;

end;

procedure TfrTabReq.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrTabReq.ToolButton1Click(Sender: TObject);

begin

CreateChildNewTabReq('Добавить СИЗ');

if frmRefresh(frNewTabReq,TfrNewTabReq) then

begin

frNewTabReq.Tag:=164;

frNewTabReq.Edit1.SetFocus;

end;

frDM.ADOTableTabReq.Append;

end;

procedure TfrTabReq.ToolButton2Click(Sender: TObject);

begin

CreateChildNewTabReq('Редактировать запись');

if frmRefresh(frNewTabReq,TfrNewTabReq) then

begin

frNewTabReq.Tag:=165;

frNewTabReq.Edit1.SetFocus;

frDM.ADOTableTabReq.Active:=false;

frDM.ADOTableTabReq.Active:=true;

frDM.ADOTableTabReq.Locate('id',frDM.ADOQueryTabReq['id'],[]);

if frDM.ADOQueryTabReq['Номер_по_карт']<>Null then

frNewTabReq.Edit3.Text:=frDM.ADOQueryTabReq['Номер_по_карт'];

if frDM.ADOQueryTabReq['СИЗ']<>Null then

frNewTabReq.Edit2.Text:=frDM.ADOQueryTabReq['СИЗ'];

if frDM.ADOQueryTabReq['Номер']<>Null then

frNewTabReq.Edit1.Text:=frDM.ADOQueryTabReq['Номер'];

if frDM.ADOQueryTabReq['Ед_изм']<>Null then

frNewTabReq.Edit5.Text:=frDM.ADOQueryTabReq['Ед_изм'];

if frDM.ADOQueryTabReq['Размер']<>Null then

frNewTabReq.Edit4.Text:=frDM.ADOQueryTabReq['Размер'];

if frDM.ADOQueryTabReq['Количество']<>Null then

frNewTabReq.Edit6.Text:=frDM.ADOQueryTabReq['Количество'];

end;

frDM.ADOTableTabReq.Edit;

end;

procedure TfrTabReq.DBGridEh1DblClick(Sender: TObject);

begin

CreateChildNewTabReq('Редактировать запись');

if frmRefresh(frNewTabReq,TfrNewTabReq) then

begin

frNewTabReq.Tag:=165;

frNewTabReq.Edit1.SetFocus;

frDM.ADOTableTabReq.Active:=false;

frDM.ADOTableTabReq.Active:=true;

frDM.ADOTableTabReq.Locate('id',frDM.ADOQueryTabReq['id'],[]);

if frDM.ADOQueryTabReq['Номер_по_карт']<>Null then

frNewTabReq.Edit3.Text:=frDM.ADOQueryTabReq['Номер_по_карт'];

if frDM.ADOQueryTabReq['СИЗ']<>Null then

frNewTabReq.Edit2.Text:=frDM.ADOQueryTabReq['СИЗ'];

if frDM.ADOQueryTabReq['Номер']<>Null then

frNewTabReq.Edit1.Text:=frDM.ADOQueryTabReq['Номер'];

if frDM.ADOQueryTabReq['Ед_изм']<>Null then

frNewTabReq.Edit5.Text:=frDM.ADOQueryTabReq['Ед_изм'];

if frDM.ADOQueryTabReq['Размер']<>Null then

frNewTabReq.Edit4.Text:=frDM.ADOQueryTabReq['Размер'];

if frDM.ADOQueryTabReq['Количество']<>Null then

frNewTabReq.Edit6.Text:=frDM.ADOQueryTabReq['Количество'];

end;

frDM.ADOTableTabReq.Edit;

end;

П2.18. Продолжение

procedure TfrTabReq.ToolButton3Click(Sender: TObject);

var btn: integer;

s: String;

begin

btn:=MessageDlg('Вы действительно хотите удалить данную запись?',mtConfirmation,[mbOk,mbNo],0);

if btn=mrOk then

begin

s:=frDM.ADOTableReq['id'];

frDM.ADOTableTabReq.Locate('id',frDM.ADOQueryTabReq['id'],[]);

frDM.ADOTableTabReq.Delete;

frDM.ADOQueryTabReq.Active:=false;

frDM.ADOQueryTabReq.SQL.Text:='select ТЧ_Заявка.id, ТЧ_Заявка.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, '+

'Склад_Учет.Размер, '+

'Склад_Учет.Ед_изм, '+

'ТЧ_Заявка.Количество, '+

'ТЧ_Заявка.Документ '+

'from ТЧ_Заявка '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Заявка.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Заявка.Документ='+s+

' order by Спецодежда.Название, Склад_Учет.Размер';

frDM.ADOQueryTabReq.Active:=true;

end;

end;

procedure TfrTabReq.BitBtn2Click(Sender: TObject);

begin

frDM.ADOTableReq.Edit;

frDM.ADOTableReq['Принята']:='true';

if frDM.ADOTableReq.Modified then

frDM.ADOTableReq.Post;

Close;

end;

end.

unit uNewEmp;

interface

uses

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

Dialogs, StdCtrls, DBCtrlsEh, Mask, ExtCtrls, Buttons, ComCtrls;

type

TfrNewEmp = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Edit3: TEdit;

Label2: TLabel;

Edit4: TEdit;

Label3: TLabel;

Label4: TLabel;

ComboBox1: TComboBox;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Edit5: TEdit;

Label8: TLabel;

Edit6: TEdit;

Label9: TLabel;

Edit7: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Bevel1: TBevel;

DBDateTimeEditEh1: TDBDateTimeEditEh;

Panel1: TPanel;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

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

procedure CreateChildStP(const childName : string);

procedure CreateChildProf(const childName : string);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewEmp: TfrNewEmp;

implementation

uses DM, uEmp, uStP, uProf, uMain;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrNewEmp.CreateChildStP(const childName : string);

var Child: TfrStP;

begin

Child := TfrStP.Create(Application);

Child.Caption := childName;

end;

procedure TfrNewEmp.CreateChildProf(const childName : string);

var Child: TfrProf;

begin

Child := TfrProf.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frDM.ADOTableEmp.Active:=false;

frDM.ADOTableEmp.Active:=true;

Action:=caFree;

end;

procedure TfrNewEmp.BitBtn1Click(Sender: TObject);

begin

Рис. П2.19. Текст модуля uNewEmp.pas

П2.19. Продолжение

CreateChildStP('Выбор подразделения');

if frmRefresh(frStP,TfrStP) then frStP.Tag:=604;

end;

procedure TfrNewEmp.BitBtn2Click(Sender: TObject);

begin

CreateChildProf('Выбор должности');

if frmRefresh(frProf, TfrProf) then frProf.Tag:=605;

end;

procedure TfrNewEmp.BitBtn3Click(Sender: TObject);

var have: boolean;

stpID, profID: integer;

begin

if (Edit1.Text='')or

(Edit2.Text='')or

(Edit3.Text='')or

(ComboBox1.Text='')or

(DBDateTimeEditEh1.Text=' . . ')or

(Edit5.Text='')or

(Edit6.Text='')or

(Edit7.Text='')

then MessageDlg('Для продолжения операции заполните все поля',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Сотрудники');

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

have:=false;

while not EOF do

begin

if FieldValues['id']=Edit1.Text

then have:=true;

next;

end;

end;

if (have) and (frNewEmp.Tag=601) then MessageDlg('Данная запись уже существует',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Подразделения where Сокращение='+#39+Edit5.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

if FieldValues['id']<>Null then

frDM.ADOTableEmp['Подразделение']:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Должности where Название='+#39+Edit6.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

if FieldValues['id']<>Null then

frDM.ADOTableEmp['Должность']:=FieldValues['id'];

end;

frDM.ADOTableEmp['id']:=Edit1.Text;

frDM.ADOTableEmp['Фамилия']:=Edit2.Text;

frDM.ADOTableEmp['Имя']:=Edit3.Text;

frDM.ADOTableEmp['Отчество']:=Edit4.Text;

frDM.ADOTableEmp['Пол']:=ComboBox1.Text;

frDM.ADOTableEmp['Дата_рожд']:=DBDateTimeEditEh1.Text;

frDM.ADOTableEmp['Раб_тел']:=StrToInt(Edit7.Text);

if frDM.ADOTableEmp.Modified then

frDM.ADOTableEmp.Post;

frDM.ADOTableEmp.Active:=false;

frDM.ADOTableEmp.Active:=true;

frDM.ADOQueryEmp.Active:=false;

frDM.ADOQueryEmp.SQL.Text:='select Сотрудники.id, Сотрудники.Фамилия, Сотрудники.Имя, '+

'Сотрудники.Отчество, Сотрудники.Пол, Сотрудники.Дата_рожд, '+

'Подразделения.Сокращение, Должности.Название, Сотрудники.Раб_тел '+

'from Сотрудники '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Сотрудники.id';

frDM.ADOQueryEmp.Active:=true;

uMain.idx_emp:='id';

Close;

end;

end;

end;

procedure TfrNewEmp.BitBtn4Click(Sender: TObject);

begin

Close;

end;

procedure TfrNewEmp.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

end;

end.

unit uNewSiz;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls, Buttons, ExtCtrls, DBCtrlsEh;

type

TfrNewSiz = class(TForm)

Label1: TLabel;

Label4: TLabel;

DBEdit3: TDBEdit;

DBEditEh1: TDBEditEh;

Panel1: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

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

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

Рис. П2.20. Текст модуля uNewSiz.pas

П2.20. Продолжение

end;

var

frNewSiz: TfrNewSiz;

implementation

uses DM, uSiz, uMain;

{$R *.dfm}

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

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frDM.ADOTableSiz.Active:=false;

frDM.ADOTableSiz.Active:=true;

Action:=caFree;

end;

procedure TfrNewSiz.BitBtn2Click(Sender: TObject);

begin

frDM.ADOTableSiz.Active:=false;

frDM.ADOTableSiz.Active:=true;

Close;

end;

procedure TfrNewSiz.BitBtn1Click(Sender: TObject);

var have: boolean;

begin

if (DBEdit3.Text=' - - ')or

(DBEditEh1.Text='')

then MessageDlg('Для продолжения операции заполните все поля',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id, Название from Спецодежда');

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

have:=false;

while not EOF do

begin

if (FieldValues['id']=DBEdit3.Text)or

(FieldValues['Название']=DBEditEh1.Text)

then have:=true;

next;

end;

end;

if (have) and (frNewSiz.Tag=301) then begin

MessageDlg('Данная запись уже существует',mtWarning,[mbOk],0);

DBEdit3.SetFocus;

end

else

begin

if frDM.ADOTableSiz.Modified then

frDM.ADOTableSiz.Post;

frDM.ADOTableSiz.Active:=false;

frDM.ADOTableSiz.Active:=true;

Close;

end;

end;

end;

procedure TfrNewSiz.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

end;

end.

unit uNewStP;

interface

uses

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

Dialogs, StdCtrls, Buttons, Mask, DBCtrls, DBCtrlsEh, ExtCtrls;

type

TfrNewStP = class(TForm)

Label1: TLabel;

Label2: TLabel;

DBEdit2: TDBEdit;

Label6: TLabel;

Panel1: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DBEditEh1: TDBEditEh;

DBEditEh2: TDBEditEh;

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

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewStP: TfrNewStP;

implementation

uses DM, uStP, uMain;

{$R *.dfm}

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

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frDM.ADOTableStP.Active:=false;

frDM.ADOTableStP.Active:=true;

Action:=caFree;

end;

procedure TfrNewStP.BitBtn2Click(Sender: TObject);

begin

frDM.ADOTableStP.Active:=false;

frDM.ADOTableStP.Active:=true;

Close;

end;

procedure TfrNewStP.BitBtn1Click(Sender: TObject);

var have: boolean;

begin

if (DBEdit2.Text='')or

(DBEditEh1.Text='')or

(DBEditEh2.Text='')

then MessageDlg('Для продолжения операции заполните все поля',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Подразделения');

Рис. П2.21. Текст модуля uNewStP.pas

П2.21. Продолжение

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

have:=false;

while not EOF do

begin

if FieldValues['id']=DBEdit2.Text

then have:=true;

next;

end;

end;

if (have) and (frNewStP.Tag=201) then begin

MessageDlg('Данная запись уже существует',mtWarning,[mbOk],0);

DBEdit2.SetFocus;

end

else

begin

if frDM.ADOTableStP.Modified then

frDM.ADOTableStP.Post;

frDM.ADOTableStP.Active:=false;

frDM.ADOTableStP.Active:=true;

Close;

end;

end;

end;

procedure TfrNewStP.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

end;

end.

unit uNewProf;

interface

uses

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

Dialogs, DB, ADODB, StdCtrls, Mask, DBCtrls, Buttons, ExtCtrls, DBCtrlsEh;

type

TfrNewProf = class(TForm)

Label2: TLabel;

DBEditEh1: TDBEditEh;

Panel1: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

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

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewProf: TfrNewProf;

implementation

uses uProf, DM, uMain;

{$R *.dfm}

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

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frDM.ADOTableProf.Active:=false;

frDM.ADOTableProf.Active:=true;

Action:=caFree;

end;

procedure TfrNewProf.BitBtn2Click(Sender: TObject);

begin

frDM.ADOTableProf.Active:=false;

frDM.ADOTableProf.Active:=true;

Close;

end;

procedure TfrNewProf.BitBtn1Click(Sender: TObject);

var have: boolean;

begin

if DBEditEh1.Text=''

then MessageDlg('Для продолжения операции заполните все поля',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select Название from Должности');

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

have:=false;

while not EOF do

begin

if FieldValues['Название']=DBEditEh1.Text

then have:=true;

next;

end;

end;

if (have) and (frNewProf.Tag=101) then begin

MessageDlg('Данная запись уже существует',mtWarning,[mbOk],0);

DBEditEh1.SetFocus;

end

else

begin

if frDM.ADOTableProf.Modified then

frDM.ADOTableProf.Post;

frDM.ADOTableProf.Active:=false;

frDM.ADOTableProf.Active:=true;

Close;

end;

end;

end;

procedure TfrNewProf.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false

end;

end.

Рис. П2.22. Текст модуля uNewProf.pas

unit uNewPost;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls, Buttons, DBCtrlsEh, ExtCtrls;

type

TfrNewPost = class(TForm)

Label1: TLabel;

Panel1: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DBEditEh1: TDBEditEh;

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

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewPost: TfrNewPost;

implementation

uses DM, uMain;

{$R *.dfm}

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

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frDM.ADOTablePost.Active:=false;

frDM.ADOTablePost.Active:=true;

Action:=caFree;

end;

procedure TfrNewPost.BitBtn2Click(Sender: TObject);

begin

frDM.ADOTablePost.Active:=false;

frDM.ADOTablePost.Active:=true;

Close;

end;

procedure TfrNewPost.BitBtn1Click(Sender: TObject);

var have: boolean;

begin

if DBEditEh1.Text=''

then MessageDlg('Для продолжения операции введите название постановления',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select Название from Постановления');

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

have:=false;

while not EOF do

begin

if FieldValues['Название']=DBEditEh1.Text

then have:=true;

next;

end;

end;

if (have) and (frNewPost.Tag=401) then begin

MessageDlg('Данная запись уже существует',mtWarning,[mbOk],0);

DBEditEh1.SetFocus;

end

else

begin

if frDM.ADOTablePost.Modified then

frDM.ADOTablePost.Post;

frDM.ADOTablePost.Active:=false;

frDM.ADOTablePost.Active:=true;

Close;

end;

end;

end;

procedure TfrNewPost.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

end;

end.

Рис. П2.23. Текст модуля uNewPost.pas

unit uNewSup;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;

type

TfrNewSup = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

Edit3: TEdit;

Label4: TLabel;

Edit4: TEdit;

BitBtn1: TBitBtn;

Panel1: TPanel;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

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

procedure CreateChildCity(const childName : string);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewSup: TfrNewSup;

implementation

uses DM, uSupplier, uCity, uMain;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

Рис. П2.24. Текст модуля uNewSup.pas

П2.24. Продолжение

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrNewSup.CreateChildCity(const childName : string);

var Child: TfrCity;

begin

Child := TfrCity.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frDM.ADOTableSup.Active:=false;

frDM.ADOTableSup.Active:=true;

Action:=caFree;

end;

procedure TfrNewSup.BitBtn1Click(Sender: TObject);

begin

CreateChildCity('Выбор города');

if frmRefresh(frCity,TfrCity) then frCity.Tag:=704;

end;

procedure TfrNewSup.BitBtn2Click(Sender: TObject);

var have: boolean;

begin

if (Edit1.Text='')or

(Edit2.Text='')or

(Edit3.Text='')or

(Edit4.Text='')

then MessageDlg('Для продолжения операции заполните все поля',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select Название from Поставщики');

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

have:=false;

while not EOF do

begin

if FieldValues['Название']=Edit1.Text

then have:=true;

next;

end;

end;

if (have) and (frNewSup.Tag=701) then MessageDlg('Данная запись уже существует',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Города where Название='+#39+Edit2.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

if FieldValues['id']<>Null then

frDM.ADOTableSup['Город']:=FieldValues['id'];

end;

frDM.ADOTableSup['Название']:=Edit1.Text;

frDM.ADOTableSup['Индекс']:=StrToInt(Edit3.Text);

frDM.ADOTableSup['Адрес']:=Edit4.Text;

if frDM.ADOTableSup.Modified then

frDM.ADOTableSup.Post;

frDM.ADOTableSup.Active:=false;

frDM.ADOTableSup.Active:=true;

frDM.ADOQuerySup.Active:=false;

frDM.ADOQuerySup.SQL.Text:='select Поставщики.id, Поставщики.Название, Города.Название as Город, '+

'Поставщики.Индекс, Поставщики.Адрес '+

'from Поставщики '+

'left join Города on Города.id=Поставщики.Город '+

'order by Поставщики.Название';

frDM.ADOQuerySup.Active:=true;

Close;

end;

end;

end;

procedure TfrNewSup.BitBtn3Click(Sender: TObject);

begin

Close;

end;

procedure TfrNewSup.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

end;

end.

unit uNewCity;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, Mask, DBCtrlsEh, ExtCtrls;

type

TfrNewCity = class(TForm)

Label1: TLabel;

DBEditEh1: TDBEditEh;

Panel1: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

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

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewCity: TfrNewCity;

implementation

uses DM, uMain;

{$R *.dfm}

Рис. П2.25. Текст модуля uNewCity.pas

П2.25. Продолжение

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

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frDM.ADOTableCity.Active:=false;

frDM.ADOTableCity.Active:=true;

Action:=caFree;

end;

procedure TfrNewCity.BitBtn2Click(Sender: TObject);

begin

frDM.ADOTableCity.Active:=false;

frDM.ADOTableCity.Active:=true;

Close;

end;

procedure TfrNewCity.BitBtn1Click(Sender: TObject);

var have: boolean;

begin

if DBEditEh1.Text=''

then MessageDlg('Для продолжения операции введите название города',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select Название from Города');

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

have:=false;

while not EOF do

begin

if FieldValues['Название']=DBEditEh1.Text

then have:=true;

next;

end;

end;

if (have) and (frNewCity.Tag=801) then begin

MessageDlg('Данная запись уже существует',mtWarning,[mbOk],0);

DBEditEh1.SetFocus;

end

else

begin

if frDM.ADOTableCity.Modified then

frDM.ADOTableCity.Post;

frDM.ADOTableCity.Active:=false;

frDM.ADOTableCity.Active:=true;

Close;

end;

end;

end;

procedure TfrNewCity.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

end;

end.

unit uNewNorm;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, DBCtrlsEh, Buttons, Spin, ExtCtrls;

type

TfrNewNorm = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label9: TLabel;

Label10: TLabel;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

BitBtn6: TBitBtn;

Edit1: TEdit;

BitBtn7: TBitBtn;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

CheckBox1: TCheckBox;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

SpinEdit1: TSpinEdit;

Panel1: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

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

procedure CreateChildStP(const childName : string);

procedure CreateChildProf(const childName : string);

procedure CreateChildSiz(const childName : string);

procedure CreateChildPost(const childName : string);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn7Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure BitBtn6Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewNorm: TfrNewNorm;

implementation

uses DM, uNorm, uStP, uProf, uSiz, uPost, uMain;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

Рис. П2.26. Текст модуля uNewNorm.pas

П2.26. Продолжение

procedure TfrNewNorm.CreateChildStP(const childName : string);

var Child: TfrStP;

begin

Child := TfrStP.Create(Application);

Child.Caption := childName;

end;

procedure TfrNewNorm.CreateChildProf(const childName : string);

var Child: TfrProf;

begin

Child := TfrProf.Create(Application);

Child.Caption := childName;

end;

procedure TfrNewNorm.CreateChildSiz(const childName : string);

var Child: TfrSiz;

begin

Child := TfrSiz.Create(Application);

Child.Caption := childName;

end;

procedure TfrNewNorm.CreateChildPost(const childName : string);

var Child: TfrPost;

begin

Child := TfrPost.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frDM.ADOTableNorm.Active:=false;

frDM.ADOTableNorm.Active:=true;

Action:=caFree;

end;

procedure TfrNewNorm.BitBtn2Click(Sender: TObject);

begin

Close;

end;

procedure TfrNewNorm.BitBtn7Click(Sender: TObject);

begin

CreateChildStP('Выбор подразделения');

if frmRefresh(frStP,TfrStP) then frStP.Tag:=504;

end;

procedure TfrNewNorm.BitBtn3Click(Sender: TObject);

begin

CreateChildProf('Выбор должности');

if frmRefresh(frProf, TfrProf) then frProf.Tag:=505;

end;

procedure TfrNewNorm.BitBtn4Click(Sender: TObject);

begin

CreateChildSiz('Выбор спецодежды и СИЗ');

if frmRefresh(frSiz, TfrSiz) then frSiz.Tag:=506;

end;

procedure TfrNewNorm.BitBtn5Click(Sender: TObject);

begin

CreateChildSiz('Выбор замены');

if frmRefresh(frSiz, TfrSiz) then frSiz.Tag:=507;

end;

procedure TfrNewNorm.BitBtn6Click(Sender: TObject);

begin

CreateChildPost('Выбор обоснования');

if frmRefresh(frPost,TfrPost) then frPost.Tag:=508;

end;

procedure TfrNewNorm.BitBtn1Click(Sender: TObject);

var have: boolean;

stpID, profID, postID: integer;

sizID, zamID, s: String;

begin

if (Edit1.Text='')or

(Edit2.Text='')or

(Edit3.Text='')or

(Edit4.Text='')or

(ComboBox1.Text='')or

(ComboBox2.Text='')or

(SpinEdit1.Text='')

then MessageDlg('Для продолжения операции заполните все поля',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select p2, p3, p4 from V_norm');

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

have:=false;

while not EOF do

begin

if (FieldValues['p2']=Edit1.Text) and

(FieldValues['p3']=Edit2.Text) and

(FieldValues['p4']=Edit3.Text)

then have:=true;

next;

end;

end;

if (have) and (frNewNorm.Tag=501) then MessageDlg('Данная запись уже существует',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Подразделения where Сокращение='+#39+Edit1.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

if FieldValues['id']<>Null then

frDM.ADOTableNorm['Подразделение']:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Должности where Название='+#39+Edit2.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

if FieldValues['id']<>Null then

frDM.ADOTableNorm['Должность']:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Спецодежда where Название='+#39+Edit3.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

if FieldValues['id']<>Null then

frDM.ADOTableNorm['Спецодежда']:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Спецодежда where Название='+#39+Edit5.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

П2.26. Продолжение

if FieldValues['id']<>Null then

frDM.ADOTableNorm['Замена']:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Постановления where Название='+#39+Edit6.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

if FieldValues['id']<>Null then

frDM.ADOTableNorm['Постановление']:=FieldValues['id'];

end;

frDM.ADOTableNorm['Тип_периода']:=ComboBox1.Text;

frDM.ADOTableNorm['Период']:=StrToInt(Edit4.Text);

frDM.ADOTableNorm['Ед_изм']:=ComboBox2.Text;

frDM.ADOTableNorm['Количество']:=StrToInt(SpinEdit1.Text);

if CheckBox1.Checked=true then frDM.ADOTableNorm['Дежурная']:='true'

else frDM.ADOTableNorm['Дежурная']:='false';

if frDM.ADOTableNorm.Modified then

frDM.ADOTableNorm.Post;

frDM.ADOTableNorm.Active:=false;

frDM.ADOTableNorm.Active:=true;

frDM.ADOQueryNormProf.Active:=false;

frDM.ADOQueryNormProf.SQL.Text:='select distinct Должности.Название'+

' from Должности, Нормативы, Подразделения'+

' where Нормативы.Должность=Должности.id and'+

' Нормативы.Подразделение=Подразделения.id and'+

' Подразделения.Сокращение='+#39+frNorm.Edit1.Text+#39+

' order by Должности.Название';

frDM.ADOQueryNormProf.Active:=true;

if frDM.ADOQueryNormProf.FieldValues['Название']<>Null then

s:=frDM.ADOQueryNormProf.FieldValues['Название'];

frDM.ADOQueryNormSiz.Active:=false;

frDM.ADOQueryNormSiz.SQL.Text:='select V_norm.p2, V_norm.p3, V_norm.p4, '+

'V_norm.p5, V_norm.p6, V_norm.p7, V_norm.p8, V_norm.p9, '+

'Спецодежда.Название, V_norm.p11 '+

'from V_norm '+

'left join Спецодежда on Спецодежда.id=V_norm.p10 '+

'where V_norm.p2='+#39+frNorm.Edit1.Text+#39+

' and V_norm.p3='+#39+s+#39+

' order by V_norm.p4';

frDM.ADOQueryNormSiz.Active:=true;

Close;

end;

end;

end;

procedure TfrNewNorm.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

end;

end.

unit uNewCrOrd;

interface

uses

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

Dialogs, ImgList, ComCtrls, ToolWin, Grids, DBGridEh, ExtCtrls, StdCtrls,

Buttons, Mask, DBCtrlsEh;

type

TfrNewCrOrd = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Edit1: TEdit;

Edit2: TEdit;

BitBtn1: TBitBtn;

Label4: TLabel;

Edit3: TEdit;

Label5: TLabel;

Label6: TLabel;

Edit4: TEdit;

Label7: TLabel;

Label8: TLabel;

Edit5: TEdit;

Panel1: TPanel;

DBGridEh1: TDBGridEh;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ImageList1: TImageList;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

ToolButton4: TToolButton;

ToolButton5: TToolButton;

Panel2: TPanel;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

DBDateTimeEditEh1: TDBDateTimeEditEh;

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

procedure FormActivate(Sender: TObject);

procedure CreateChildSupplier(const childName : string);

procedure CreateChildNewTabCr(const childName : string);

procedure CreateChildFindTabCr(const childName : string);

procedure BitBtn1Click(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumnEh; State: TGridDrawState);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure ToolButton2Click(Sender: TObject);

procedure ToolButton3Click(Sender: TObject);

procedure DBGridEh1DblClick(Sender: TObject);

procedure DBGridEh1CellClick(Column: TColumnEh);

procedure ToolButton6Click(Sender: TObject);

procedure ToolButton5Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewCrOrd: TfrNewCrOrd;

pole: String;

Рис. П2.27. Текст модуля uNewCrOrd.pas

П2.27. Продолжение

num: integer;

implementation

uses uMain, uSupplier, uStP, DM, uNewTabCr, uNewSup, uFindTabCr;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrNewCrOrd.CreateChildSupplier(const childName : string);

var Child: TfrSupplier;

begin

Child := TfrSupplier.Create(Application);

Child.Caption := childName;

end;

procedure TfrNewCrOrd.CreateChildNewTabCr(const childName : string);

var Child: TfrNewTabCr;

begin

Child := TfrNewTabCr.Create(Application);

Child.Caption := childName;

end;

procedure TfrNewCrOrd.CreateChildFindTabCr(const childName : string);

var Child: TfrFindTabCr;

begin

Child := TfrFindTabCr.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frMain.ToolButton3.Enabled:=true;

frMain.ToolButton5.Enabled:=true;

frMain.ToolButton6.Enabled:=true;

frMain.ToolButton8.Enabled:=true;

frDM.ADOQueryTabCr.Active:=false;

Action:=caFree;

end;

procedure TfrNewCrOrd.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

frMain.ToolButton3.Enabled:=false;

frMain.ToolButton5.Enabled:=false;

frMain.ToolButton6.Enabled:=false;

frMain.ToolButton8.Enabled:=true;

end;

procedure TfrNewCrOrd.BitBtn1Click(Sender: TObject);

begin

CreateChildSupplier('Выбор поставщика');

if frmRefresh(frSupplier,TfrSupplier) then frSupplier.Tag:=904;

end;

procedure TfrNewCrOrd.ToolButton1Click(Sender: TObject);

begin

CreateChildNewTabCr('Добавить СИЗ');

if frmRefresh(frNewTabCr,TfrNewTabCr) then

begin

frNewTabCr.Tag:=10;

frNewTabCr.Edit1.SetFocus;

frNewTabCr.BitBtn1.Caption:='Добавить';

end;

frDM.ADOTableTabCr.Append;

end;

procedure TfrNewCrOrd.DBGridEh1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumnEh;

State: TGridDrawState);

begin

if (Rect.Top=DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and

(not (gdFocused in State) or not DBGridEh1.Focused) then

DBGridEh1.Canvas.Brush.Color:=clBtnFace;

DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

procedure TfrNewCrOrd.BitBtn3Click(Sender: TObject);

begin

if frNewCrOrd.Tag=901 then

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('delete from ТЧ_Приход where Документ='+IntToStr(uMain.k_cr));

frDM.ADOQueryCheck.ExecSQL;

end;

Close;

end;

procedure TfrNewCrOrd.BitBtn2Click(Sender: TObject);

var have: boolean;

kol,ost: integer;

s, izm: String;

price, nds: real;

begin

if (Edit1.Text='')or

(DBDateTimeEditEh1.Text=' . . ')or

(Edit2.Text='')or

(Edit3.Text='')or

(Edit4.Text='')or

(Edit5.Text='')

then MessageDlg('Для продолжения операции заполните все поля',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select Номер from Приход');

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

have:=false;

while not EOF do

begin

if FieldValues['Номер']=Edit1.Text

then have:=true;

next;

end;

end;

if (have) and (frNewSup.Tag=901) then MessageDlg('Приходный ордер с таким номером уже существует',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Поставщики where Название='+#39+Edit2.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

П2.27. Продолжение

if FieldValues['id']<>Null then

frDM.ADOTableCrOrd['Поставщик']:=FieldValues['id'];

end;

frDM.ADOTableCrOrd['Номер']:=StrToInt(Edit1.Text);

frDM.ADOTableCrOrd['Дата']:=DBDateTimeEditEh1.Text;

frDM.ADOTableCrOrd['Кор_счет']:=Edit3.Text;

frDM.ADOTableCrOrd['Сопр_док']:=Edit4.Text;

frDM.ADOTableCrOrd['Плат_док']:=Edit5.Text;

if frDM.ADOTableCrOrd.Modified then

frDM.ADOTableCrOrd.Post;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select Цена, Кол_прин, Номер_по_карт from ТЧ_Приход where Документ='+IntToStr(uMain.k_cr));

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

while not EOF do

begin

kol:=FieldValues['Кол_прин'];

s:=IntToStr(FieldValues['Номер_по_карт']);

frDM.ADOQueryTab.Active:=false;

frDM.ADOQueryTab.SQL.Text:='select Остаток from ТЧ_Склад_Учет where Документ='+s+' order by id';

frDM.ADOQueryTab.Active:=true;

frDM.ADOQueryTab.Last;

if frDM.ADOQueryTab['Остаток']<>Null then

ost:=frDM.ADOQueryTab['Остаток']

else

ost:=0;

frDM.ADOTableTabCard.Append;

frDM.ADOTableTabCard['Дата']:=DBDateTimeEditEh1.Text;

frDM.ADOTableTabCard['Номер_док']:='М-4 № '+Edit1.Text;

frDM.ADOTableTabCard['Организация']:=Edit2.Text;

frDM.ADOTableTabCard['Приход']:=kol;

frDM.ADOTableTabCard['Остаток']:=ost+kol;

frDM.ADOTableTabCard['Документ']:=StrToInt(s);

if frDM.ADOTableTabCard.Modified then

frDM.ADOTableTabCard.Post;

frDM.ADOTableTabCard.Active:=false;

frDM.ADOTableTabCard.Active:=true;

frDM.ADOTableCard.Locate('id',s,[]);

frDM.ADOTableCard.Edit;

frDM.ADOTableCard['Цена']:=FieldValues['Цена'];

frDM.ADOTableCard['Остаток']:=ost+kol;

if frDM.ADOTableCard.Modified then

frDM.ADOTableCard.Post;

frDM.ADOTableCard.Active:=false;

frDM.ADOTableCard.Active:=true;

next;

end;

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select СИЗ, Кол_прин, Номер_по_карт, Ед_изм, Цена, НДС, Без_НДС from ТЧ_Приход where Документ='+IntToStr(uMain.k_cr));

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

while not EOF do

begin

frDM.ADOTableProv.Append;

frDM.ADOTableProv['Дата']:=DBDateTimeEditEh1.Text;

frDM.ADOTableProv['Номер_док']:='М-4 № '+Edit1.Text;

frDM.ADOTableProv['Операция']:='Пост';

frDM.ADOTableProv['Дебет']:='[10/10]';

frDM.ADOTableProv['Кредит']:='[60]';

frDM.ADOTableProv['Номер_по_карт']:=FieldValues['Номер_по_карт'];

frDM.ADOTableProv['Ед_изм']:=FieldValues['Ед_изм'];

frDM.ADOTableProv['Количество']:=FieldValues['Кол_прин'];

frDM.ADOTableProv['Цена']:=FieldValues['Цена'];

frDM.ADOTableProv['Стоимость']:=FieldValues['Без_НДС'];

frDM.ADOTableProv['СИЗ']:=FieldValues['СИЗ'];

if frDM.ADOTableProv.Modified then

frDM.ADOTableProv.Post;

frDM.ADOTableProv.Active:=false;

frDM.ADOTableProv.Active:=true;

frDM.ADOTableProv.Append;

frDM.ADOTableProv['Дата']:=DBDateTimeEditEh1.Text;

frDM.ADOTableProv['Номер_док']:='М-4 № '+Edit1.Text;

frDM.ADOTableProv['Операция']:='Пост';

frDM.ADOTableProv['Дебет']:='[19]';

frDM.ADOTableProv['Кредит']:='[60]';

frDM.ADOTableProv['Номер_по_карт']:=FieldValues['Номер_по_карт'];

frDM.ADOTableProv['Ед_изм']:=FieldValues['Ед_изм'];

frDM.ADOTableProv['Количество']:=FieldValues['Кол_прин'];

frDM.ADOTableProv['Цена']:=FieldValues['Цена'];

frDM.ADOTableProv['Стоимость']:=FieldValues['НДС'];

frDM.ADOTableProv['СИЗ']:=FieldValues['СИЗ'];

if frDM.ADOTableProv.Modified then

frDM.ADOTableProv.Post;

frDM.ADOTableProv.Active:=false;

frDM.ADOTableProv.Active:=true;

next;

end;

end;

frDM.ADOQueryCrOrd.Active:=false;

frDM.ADOQueryCrOrd.SQL.Text:='select Приход.id, Приход.Номер, Приход.Дата, '+

'Поставщики.Название as Поставщик '+

'from Приход '+

'left join Поставщики on Поставщики.id=Приход.Поставщик '+

'order by Приход.Номер';

frDM.ADOQueryCrOrd.Active:=true;

uMain.idx_crord:='Номер';

Close;

end;

end;

end;

procedure TfrNewCrOrd.ToolButton2Click(Sender: TObject);

begin

CreateChildNewTabCr('Редактировать запись');

if frmRefresh(frNewTabCr,TfrNewTabCr) then

begin

frNewTabCr.Tag:=11;

frNewTabCr.Edit1.SetFocus;

frNewTabCr.BitBtn1.Caption:='Записать';

if frDM.ADOQueryTabCr['СИЗ']<>Null then

frNewTabCr.Edit1.Text:=frDM.ADOQueryTabCr['СИЗ'];

if frDM.ADOQueryTabCr['Номер']<>Null then

frNewTabCr.Edit2.Text:=frDM.ADOQueryTabCr['Номер'];

if frDM.ADOQueryTabCr['Ед_изм']<>Null then

frNewTabCr.ComboBox1.Text:=frDM.ADOQueryTabCr['Ед_изм'];

if frDM.ADOQueryTabCr['Размер']<>Null then

frNewTabCr.Edit3.Text:=frDM.ADOQueryTabCr['Размер'];

if frDM.ADOQueryTabCr['Номер_по_карт']<>Null then

frNewTabCr.Edit8.Text:=IntToStr(frDM.ADOQueryTabCr['Номер_по_карт']);

if frDM.ADOQueryTabCr['Кол_док']<>Null then

frNewTabCr.SpinEdit1.Text:=IntToStr(frDM.ADOQueryTabCr['Кол_док']);

if frDM.ADOQueryTabCr['Кол_прин']<>Null then

frNewTabCr.SpinEdit2.Text:=IntToStr(frDM.ADOQueryTabCr['Кол_прин']);

if frDM.ADOQueryTabCr['Цена']<>Null then

frNewTabCr.currEdit1.Text:=FloatToStrf(frDM.ADOQueryTabCr['Цена'],fffixed,12,2);

if frDM.ADOQueryTabCr['Без_НДС']<>Null then

frNewTabCr.currEdit2.Text:=FloatToStrf(frDM.ADOQueryTabCr['Без_НДС'],fffixed,12,2);

if frDM.ADOQueryTabCr['НДС']<>Null then

П2.27. Продолжение

frNewTabCr.currEdit3.Text:=FloatToStrf(frDM.ADOQueryTabCr['НДС'],fffixed,12,2);

if frDM.ADOQueryTabCr['С_НДС']<>Null then

frNewTabCr.currEdit4.Text:=FloatToStrf(frDM.ADOQueryTabCr['С_НДС'],fffixed,12,2);

frDM.ADOTableTabCr.Locate('id',frDM.ADOQueryTabCr['id'],[]);

frDM.ADOTableTabCr.Edit;

end;

end;

procedure TfrNewCrOrd.ToolButton3Click(Sender: TObject);

begin

frDM.ADOTableTabCr.Locate('id',frDM.ADOQueryTabCr['id'],[]);

frDM.ADOTableTabCr.Delete;

frDM.ADOTableTabCr.Active:=false;

frDM.ADOTableTabCr.Active:=true;

frDM.ADOQueryTabCr.Active:=false;

frDM.ADOQueryTabCr.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+IntToStr(uMain.k_cr)+

' order by V_crord.СИЗ';

frDM.ADOQueryTabCr.Active:=true;

end;

procedure TfrNewCrOrd.DBGridEh1DblClick(Sender: TObject);

begin

if frNewCrOrd.Tag=901 then

begin

CreateChildNewTabCr('Редактировать запись');

if frmRefresh(frNewTabCr,TfrNewTabCr) then

begin

frNewTabCr.Tag:=11;

frNewTabCr.Edit1.SetFocus;

frNewTabCr.BitBtn1.Caption:='Записать';

if frDM.ADOQueryTabCr['СИЗ']<>Null then

frNewTabCr.Edit1.Text:=frDM.ADOQueryTabCr['СИЗ'];

if frDM.ADOQueryTabCr['Номер']<>Null then

frNewTabCr.Edit2.Text:=frDM.ADOQueryTabCr['Номер'];

if frDM.ADOQueryTabCr['Ед_изм']<>Null then

frNewTabCr.ComboBox1.Text:=frDM.ADOQueryTabCr['Ед_изм'];

if frDM.ADOQueryTabCr['Размер']<>Null then

frNewTabCr.Edit3.Text:=frDM.ADOQueryTabCr['Размер'];

if frDM.ADOQueryTabCr['Номер_по_карт']<>Null then

frNewTabCr.Edit8.Text:=IntToStr(frDM.ADOQueryTabCr['Номер_по_карт']);

if frDM.ADOQueryTabCr['Кол_док']<>Null then

frNewTabCr.SpinEdit1.Text:=IntToStr(frDM.ADOQueryTabCr['Кол_док']);

if frDM.ADOQueryTabCr['Кол_прин']<>Null then

frNewTabCr.SpinEdit2.Text:=IntToStr(frDM.ADOQueryTabCr['Кол_прин']);

if frDM.ADOQueryTabCr['Цена']<>Null then

frNewTabCr.currEdit1.Text:=FloatToStrf(frDM.ADOQueryTabCr['Цена'],fffixed,12,2);

if frDM.ADOQueryTabCr['Без_НДС']<>Null then

frNewTabCr.currEdit2.Text:=FloatToStrf(frDM.ADOQueryTabCr['Без_НДС'],fffixed,12,2);

if frDM.ADOQueryTabCr['НДС']<>Null then

frNewTabCr.currEdit3.Text:=FloatToStrf(frDM.ADOQueryTabCr['НДС'],fffixed,12,2);

if frDM.ADOQueryTabCr['С_НДС']<>Null then

frNewTabCr.currEdit4.Text:=FloatToStrf(frDM.ADOQueryTabCr['С_НДС'],fffixed,12,2);

frDM.ADOTableTabCr.Locate('id',frDM.ADOQueryTabCr['id'],[]);

frDM.ADOTableTabCr.Edit;

end;

end;

end;

procedure TfrNewCrOrd.DBGridEh1CellClick(Column: TColumnEh);

begin

pole:=DBGridEh1.SelectedField.FieldName;

num:=frDM.ADOQueryTabCr['Документ'];

end;

procedure TfrNewCrOrd.ToolButton6Click(Sender: TObject);

begin

if pole='СИЗ' then

begin

frDM.ADOQueryTabCr.Active:=false;

frDM.ADOQueryTabCr.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+IntToStr(num)+

' order by V_crord.СИЗ';

frDM.ADOQueryTabCr.Active:=true;

end;

if pole='Размер' then

begin

frDM.ADOQueryTabCr.Active:=false;

frDM.ADOQueryTabCr.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+IntToStr(num)+

' order by V_crord.Размер';

frDM.ADOQueryTabCr.Active:=true;

end;

if pole='Номер' then

begin

frDM.ADOQueryTabCr.Active:=false;

frDM.ADOQueryTabCr.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+IntToStr(num)+

' order by V_crord.Номер';

frDM.ADOQueryTabCr.Active:=true;

end;

if pole='Ед_изм' then

begin

frDM.ADOQueryTabCr.Active:=false;

frDM.ADOQueryTabCr.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+IntToStr(num)+

' order by V_crord.Ед_изм';

frDM.ADOQueryTabCr.Active:=true;

end;

if pole='Кол_док' then

begin

frDM.ADOQueryTabCr.Active:=false;

frDM.ADOQueryTabCr.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+IntToStr(num)+

' order by V_crord.Кол_док';

frDM.ADOQueryTabCr.Active:=true;

end;

if pole='Кол_прин' then

begin

frDM.ADOQueryTabCr.Active:=false;

frDM.ADOQueryTabCr.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+IntToStr(num)+

' order by V_crord.Кол_прин';

frDM.ADOQueryTabCr.Active:=true;

end;

if pole='Цена' then

begin

frDM.ADOQueryTabCr.Active:=false;

frDM.ADOQueryTabCr.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+IntToStr(num)+

' order by V_crord.Цена';

frDM.ADOQueryTabCr.Active:=true;

end;

if pole='Без_НДС' then

begin

frDM.ADOQueryTabCr.Active:=false;

frDM.ADOQueryTabCr.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+IntToStr(num)+

' order by V_crord.Без_НДС';

frDM.ADOQueryTabCr.Active:=true;

end;

if pole='НДС' then

begin

frDM.ADOQueryTabCr.Active:=false;

П2.27. Продолжение

frDM.ADOQueryTabCr.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+IntToStr(num)+

' order by V_crord.НДС';

frDM.ADOQueryTabCr.Active:=true;

end;

if pole='С_НДС' then

begin

frDM.ADOQueryTabCr.Active:=false;

frDM.ADOQueryTabCr.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+IntToStr(num)+

' order by V_crord.С_НДС';

frDM.ADOQueryTabCr.Active:=true;

end;

if pole='Номер_по_карт' then

begin

frDM.ADOQueryTabCr.Active:=false;

frDM.ADOQueryTabCr.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+IntToStr(num)+

' order by V_crord.Номер_по_карт';

frDM.ADOQueryTabCr.Active:=true;

end;

frDM.ADOQueryTabCr.First;

end;

procedure TfrNewCrOrd.ToolButton5Click(Sender: TObject);

begin

CreateChildFindTabCr('Поиск СИЗ');

if frmRefresh(frFindTabCr,TfrFindTabCr) then

begin

frFindTabCr.Tag:=120;

frFindTabCr.Edit1.SetFocus;

end;

end;

procedure TfrNewCrOrd.FormCreate(Sender: TObject);

begin

DBDateTimeEditEh1.Text:=DateToStr(Date);

end;

end.

unit uNewTabCr;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, Spin, currEdit;

type

TfrNewTabCr = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

Edit3: TEdit;

Label4: TLabel;

ComboBox1: TComboBox;

Label5: TLabel;

Label6: TLabel;

SpinEdit1: TSpinEdit;

SpinEdit2: TSpinEdit;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

SpinEdit3: TSpinEdit;

Label11: TLabel;

Bevel1: TBevel;

Label12: TLabel;

Edit8: TEdit;

Label13: TLabel;

Bevel2: TBevel;

currEdit1: TcurrEdit;

currEdit2: TcurrEdit;

currEdit3: TcurrEdit;

currEdit4: TcurrEdit;

BitBtn4: TBitBtn;

Panel1: TPanel;

BitBtn2: TBitBtn;

BitBtn1: TBitBtn;

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

procedure BitBtn2Click(Sender: TObject);

procedure currEdit1Change(Sender: TObject);

procedure SpinEdit2Change(Sender: TObject);

procedure SpinEdit3Change(Sender: TObject);

procedure CreateChildCard(const childName : string);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure SpinEdit1Change(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewTabCr: TfrNewTabCr;

implementation

uses uSiz, DM, uNewSup, uMain, uCard, uNewCrOrd;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrNewTabCr.CreateChildCard(const childName : string);

var Child: TfrCard;

begin

Child := TfrCard.Create(Application);

Child.Caption := childName;

end;

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

begin

frNewCrOrd.ToolButton1.Enabled:=true;

frNewCrOrd.ToolButton2.Enabled:=true;

Action:=caFree;

end;

procedure TfrNewTabCr.BitBtn2Click(Sender: TObject);

begin

Close;

end;

procedure TfrNewTabCr.currEdit1Change(Sender: TObject);

var x,z1,z2,z3: real;

Рис. П2.28. Текст модуля uNewTabCr.pas

П2.28. Продолжение

y: integer;

begin

x:=StrToFloat(currEdit1.Text);

y:=StrToInt(SpinEdit2.Text);

z1:=x*y;

currEdit2.Text:=FloatToStrf(z1,fffixed,12,2);

z2:=z1*StrToInt(SpinEdit3.Text)/100;

z3:=z1+z2;

currEdit3.Text:=FloatToStrf(z2,fffixed,12,2);

currEdit4.Text:=FloatToStrf(z3,fffixed,12,2);

end;

procedure TfrNewTabCr.SpinEdit2Change(Sender: TObject);

var x,z1,z2,z3: real;

y: integer;

begin

if SpinEdit2.Text>SpinEdit1.Text then

SpinEdit2.Text:=SpinEdit1.Text;

x:=StrToFloat(currEdit1.Text);

y:=StrToInt(SpinEdit2.Text);

z1:=x*y;

currEdit2.Text:=FloatToStrf(z1,fffixed,12,2);

z2:=z1*StrToInt(SpinEdit3.Text)/100;

z3:=z1+z2;

currEdit3.Text:=FloatToStrf(z2,fffixed,12,2);

currEdit4.Text:=FloatToStrf(z3,fffixed,12,2);

end;

procedure TfrNewTabCr.SpinEdit3Change(Sender: TObject);

var x,y,z: real;

begin

x:=StrToFloat(currEdit2.Text);

y:=x*StrToInt(SpinEdit3.Text)/100;

currEdit3.Text:=FloatToStrf(y,fffixed,12,2);

z:=x+y;

currEdit4.Text:=FloatToStrf(z,fffixed,12,2);

end;

procedure TfrNewTabCr.BitBtn4Click(Sender: TObject);

begin

CreateChildCard('Выбор карточки учета материалов');

if frmRefresh(frCard,TfrCard) then frCard.Tag:=130;

end;

procedure TfrNewTabCr.BitBtn1Click(Sender: TObject);

var have: boolean;

begin

if (Edit1.Text='')or

(SpinEdit1.Text='')or

(SpinEdit2.Text='')or

(currEdit1.Text='')or

(SpinEdit3.Text='')

then MessageDlg('Для продолжения операции заполните все поля',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select СИЗ, Размер, Документ from V_crord');

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

have:=false;

while not EOF do

begin

if (FieldValues['СИЗ']=Edit1.Text) and

(FieldValues['Размер']=Edit3.Text) and

(FieldValues['Документ']=IntToStr(uMain.k_cr))

then have:=true;

next;

end;

end;

if (have) and (frNewTabCr.Tag=10) then MessageDlg('Данное СИЗ уже добавлено в документ',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Спецодежда where Название='+#39+Edit1.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

if FieldValues['id']<>Null then

frDM.ADOTableTabCr['СИЗ']:=FieldValues['id'];

end;

frDM.ADOTableTabCr['Размер']:=StrToInt(Edit3.Text);

frDM.ADOTableTabCr['Ед_изм']:=ComboBox1.Text;

frDM.ADOTableTabCr['Кол_док']:=StrToInt(SpinEdit1.Text);

frDM.ADOTableTabCr['Кол_прин']:=StrToInt(SpinEdit2.Text);

frDM.ADOTableTabCr['Цена']:=StrToFloat(currEdit1.Text);

frDM.ADOTableTabCr['Без_НДС']:=StrToFloat(currEdit2.Text);

frDM.ADOTableTabCr['НДС']:=StrToFloat(currEdit3.Text);

frDM.ADOTableTabCr['С_НДС']:=StrToFloat(currEdit4.Text);

frDM.ADOTableTabCr['Номер_по_карт']:=StrToInt(Edit8.Text);

frDM.ADOTableTabCr['Документ']:=uMain.k_cr;

if frDM.ADOTableTabCr.Modified then

frDM.ADOTableTabCr.Post;

frDM.ADOTableTabCr.Active:=false;

frDM.ADOTableTabCr.Active:=true;

frDM.ADOQueryTabCr.Active:=false;

frDM.ADOQueryTabCr.SQL.Text:='select * from V_crord '+

'where V_crord.Документ='+IntToStr(uMain.k_cr)+

' order by V_crord.СИЗ';

frDM.ADOQueryTabCr.Active:=true;

Close;

end;

end;

end;

procedure TfrNewTabCr.SpinEdit1Change(Sender: TObject);

begin

SpinEdit2.Text:=SpinEdit1.Text;

end;

procedure TfrNewTabCr.FormActivate(Sender: TObject);

begin

frNewCrOrd.ToolButton1.Enabled:=false;

frNewCrOrd.ToolButton2.Enabled:=false;

end;

end.

unit uNewCard;

interface

uses

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

Dialogs, ImgList, ComCtrls, Grids, DBGridEh, ToolWin, ExtCtrls, StdCtrls,

Buttons;

type

TfrNewCard = class(TForm)

Label2: TLabel;

Edit1: TEdit;

Label3: TLabel;

Edit2: TEdit;

BitBtn1: TBitBtn;

Label4: TLabel;

Edit3: TEdit;

Label5: TLabel;

ComboBox1: TComboBox;

Label6: TLabel;

Edit4: TEdit;

Panel1: TPanel;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

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

procedure CreateChildSiz(const childName : string);

procedure FormActivate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewCard: TfrNewCard;

implementation

uses uMain, uSiz, DM;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrNewCard.CreateChildSiz(const childName : string);

var Child: TfrSiz;

begin

Child := TfrSiz.Create(Application);

Child.Caption := childName;

end;

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

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

Action:=caFree;

end;

procedure TfrNewCard.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

end;

procedure TfrNewCard.BitBtn1Click(Sender: TObject);

begin

CreateChildSiz('Выбор СИЗ');

if frmRefresh(frSiz,TfrSiz) then frSiz.Tag:=124;

end;

procedure TfrNewCard.BitBtn2Click(Sender: TObject);

var have: boolean;

begin

if (Edit1.Text='')or

(Edit3.Text='')or

(Edit4.Text='')or

(ComboBox1.Text='')

then MessageDlg('Для продолжения операции заполните все поля',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select СИЗ, Размер from Склад_Учет');

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

have:=false;

while not EOF do

begin

if (FieldValues['СИЗ']=Edit1.Text) and

(FieldValues['Размер']=StrToInt(Edit2.Text))

then have:=true;

next;

end;

end;

if (have) and (frNewCard.Tag=122) then MessageDlg('Такая карточка учета материалов уже существует',mtWarning,[mbOk],0)

else

begin

frDM.ADOTableCard['СИЗ']:=Edit2.Text;

frDM.ADOTableCard['Ед_изм']:=ComboBox1.Text;

frDM.ADOTableCard['Размер']:=Edit3.Text;

frDM.ADOTableCard['Запас']:=StrToInt(Edit4.Text);

if frDM.ADOTableCard.Modified then

frDM.ADOTableCard.Post;

frDM.ADOTableCard.Active:=false;

frDM.ADOTableCard.Active:=true;

frDM.ADOQueryCard.Active:=false;

frDM.ADOQueryCard.SQL.Text:='select Склад_Учет.id, Склад_Учет.СИЗ as Номер, '+

'Спецодежда.Название as СИЗ, Склад_Учет.Размер, Склад_Учет.Запас, '+

'Склад_Учет.Цена, Склад_Учет.Остаток, Склад_Учет.Ед_изм '+

'from Склад_Учет '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'order by Склад_Учет.id';

frDM.ADOQueryCard.Active:=true;

uMain.idx_card:='id';

Close;

end;

end;

end;

procedure TfrNewCard.BitBtn3Click(Sender: TObject);

begin

Close;

end;

end.

Рис. П2.29. Текст модуля uNewCard.pas

unit uNewLichCard;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, ComCtrls, StdCtrls, Buttons, Mask, DBCtrlsEh;

type

TfrNewLichCard = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

BitBtn1: TBitBtn;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Bevel1: TBevel;

Bevel2: TBevel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Edit10: TEdit;

Edit11: TEdit;

Panel1: TPanel;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

DBDateTimeEditEh1: TDBDateTimeEditEh;

DBDateTimeEditEh2: TDBDateTimeEditEh;

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

procedure CreateChildEmp(const childName : string);

procedure FormActivate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewLichCard: TfrNewLichCard;

implementation

uses uMain, uEmp, DM;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrNewLichCard.CreateChildEmp(const childName : string);

var Child: TfrEmp;

begin

Child := TfrEmp.Create(Application);

Child.Caption := childName;

end;

procedure TfrNewLichCard.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

Action:=caFree;

end;

procedure TfrNewLichCard.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

end;

procedure TfrNewLichCard.BitBtn1Click(Sender: TObject);

begin

CreateChildEmp('Выбор сотрудника');

if frmRefresh(frEmp,TfrEmp) then frEmp.Tag:=143;

end;

procedure TfrNewLichCard.BitBtn3Click(Sender: TObject);

begin

Close;

end;

procedure TfrNewLichCard.BitBtn2Click(Sender: TObject);

var have: boolean;

begin

if (Edit1.Text='')or

(Edit6.Text='')or

(Edit7.Text='')or

(Edit8.Text='')or

(Edit9.Text='')or

(DBDateTimeEditEh1.Text=' . . ')

then MessageDlg('Для продолжения операции заполните все поля',mtWarning,[mbOk],0)

else

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select Сотрудник from Выдача');

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

have:=false;

while not EOF do

begin

if FieldValues['Сотрудник']=Edit1.Text

then have:=true;

next;

end;

end;

if (have) and (frNewLichCard.Tag=141) then MessageDlg('Такая личная карточка уже существует',mtWarning,[mbOk],0)

else

begin

frDM.ADOTableLich['Сотрудник']:=StrToInt(Edit1.Text);

if DBDateTimeEditEh1.Text<>' . . ' then

frDM.ADOTableLich['Дата_пост']:=StrToDate(DBDateTimeEditEh1.Text);

if DBDateTimeEditEh2.Text<>' . . ' then

frDM.ADOTableLich['Дата_изм']:=StrToDate(DBDateTimeEditEh2.Text);

frDM.ADOTableLich['Р_одежда']:=Edit7.Text;

frDM.ADOTableLich['Р_обувь']:=StrToInt(Edit8.Text);

frDM.ADOTableLich['Р_голова']:=StrToInt(Edit9.Text);

frDM.ADOTableLich['Рост']:=StrToInt(Edit6.Text);

if frNewLichCard.Tag=141 then

frDM.ADOTableLich['Дата']:=Date;

if frDM.ADOTableLich.Modified then

Рис. П2.30. Текст модуля uNewLichCard.pas

П2.30. Продолжение

frDM.ADOTableLich.Post;

frDM.ADOTableLich.Active:=false;

frDM.ADOTableLich.Active:=true;

frDM.ADOQueryLich.Active:=false;

frDM.ADOQueryLich.SQL.Text:='select Выдача.id, Выдача.Сотрудник as Таб_ном, Сотрудники.Фамилия, '+

'Сотрудники.Имя, Сотрудники.Отчество, '+

'Сотрудники.Пол, Подразделения.Сокращение as Подразделение, '+

'Должности.Название as Должность, Выдача.Дата_пост, '+

'Выдача.Дата_изм, Выдача.Р_одежда, Выдача.Р_обувь, '+

'Выдача.Р_голова, Выдача.Рост, Выдача.Дата '+

'from Выдача '+

'left join Сотрудники on Сотрудники.id=Выдача.Сотрудник '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'order by Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество';

frDM.ADOQueryLich.Active:=true;

uMain.idx_lichcard:='Фамилия';

Close;

end;

end;

end;

end.

unit uNewTabLich;

interface

uses

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

Dialogs, StdCtrls, Buttons, ExtCtrls, currEdit, ComCtrls, Spin, Mask,

DBCtrlsEh;

type

TfrNewTabLich = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Edit2: TEdit;

BitBtn1: TBitBtn;

Bevel1: TBevel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Edit3: TEdit;

Label5: TLabel;

Label6: TLabel;

currEdit1: TcurrEdit;

Bevel2: TBevel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Edit6: TEdit;

Panel1: TPanel;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

currEdit2: TcurrEdit;

SpinEdit1: TSpinEdit;

SpinEdit2: TSpinEdit;

DBDateTimeEditEh1: TDBDateTimeEditEh;

DBDateTimeEditEh2: TDBDateTimeEditEh;

Edit4: TEdit;

Edit5: TEdit;

Label11: TLabel;

procedure BitBtn1Click(Sender: TObject);

procedure CreateChildCard(const childName : string);

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

procedure FormActivate(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure SpinEdit1Change(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewTabLich: TfrNewTabLich;

implementation

uses uCard, uMain, DM, uOpenLichCard;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrNewTabLich.CreateChildCard(const childName : string);

var Child: TfrCard;

begin

Child := TfrCard.Create(Application);

Child.Caption := childName;

end;

procedure TfrNewTabLich.BitBtn1Click(Sender: TObject);

begin

CreateChildCard('Выбор карточки учета материалов');

if frmRefresh(frCard,TfrCard) then frCard.Tag:=146;

end;

procedure TfrNewTabLich.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

frOpenLichCard.ToolButton1.Enabled:=true;

frOpenLichCard.ToolButton2.Enabled:=true;

Action:=caFree;

end;

procedure TfrNewTabLich.FormActivate(Sender: TObject);

begin

frOpenLichCard.ToolButton1.Enabled:=false;

frOpenLichCard.ToolButton2.Enabled:=false;

end;

procedure TfrNewTabLich.BitBtn3Click(Sender: TObject);

begin

Close;

end;

procedure TfrNewTabLich.SpinEdit1Change(Sender: TObject);

Рис. П2.31. Текст модуля uNewTabLich.pas

П2.31. Продолжение

var x,z: real;

y, kol, stpID, profID: integer;

begin

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Подразделения where Сокращение='+#39+frOpenLichCard.Edit10.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

stpID:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select id from Должности where Название='+#39+frOpenLichCard.Edit11.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

profID:=FieldValues['id'];

end;

frDM.ADOQueryCheck.SQL.Clear;

frDM.ADOQueryCheck.SQL.Add('select Количество from Нормативы where Подразделение='+IntToStr(stpID)+' and Должность='+IntToStr(profID)+' and Спецодежда='+#39+Edit2.Text+#39);

with frDM.ADOQueryCheck do

begin

Close;

Prepared:=true;

Open;

kol:=FieldValues['Количество'];

end;

if kol<StrToInt(SpinEdit1.Text) then

if MessageDlg('Данное количество не положено по нормативам. Продолжить?',mtWarning,[mbYes,mbNo],0)=mrNo then

begin

SpinEdit1.Text:=IntToStr(kol);

currEdit1.Text:=currEdit2.Text;

end;

x:=StrToFloat(currEdit2.Text);

y:=StrToInt(SpinEdit1.Text);

z:=x*y;

currEdit1.Text:=FloatToStrf(z,fffixed,12,2);

end;

procedure TfrNewTabLich.BitBtn2Click(Sender: TObject);

var s: String;

ost: integer;

begin

if (Edit4.Text='')or

((DBDateTimeEditEh1.Text=' . . ')and

(DBDateTimeEditEh2.Text=' . . '))or

((Edit3.Text='')and(Edit6.Text=''))or

(SpinEdit1.Text='')or

(currEdit1.Text='')

then MessageDlg('Для продолжения операции заполните все поля',mtWarning,[mbOk],0)

else

begin

s:=frOpenLichCard.Edit12.Text;

frDM.ADOTableTabLich['СИЗ']:=StrToInt(Edit4.Text);

frDM.ADOTableTabLich['Дата_выд']:=DBDateTimeEditEh1.Text;

frDM.ADOTableTabLich['Кол_выд']:=StrToInt(SpinEdit1.Text);

frDM.ADOTableTabLich['Годность_выд']:=StrToInt(Edit3.Text);

frDM.ADOTableTabLich['Стоимость']:=StrToFloat(currEdit1.Text);

if DBDateTimeEditEh2.Text<>' . . ' then

frDM.ADOTableTabLich['Дата_воз']:=DBDateTimeEditEh2.Text;

if SpinEdit2.Text<>'0' then

frDM.ADOTableTabLich['Кол_воз']:=StrToInt(SpinEdit2.Text);

if Edit6.Text<>'' then

frDM.ADOTableTabLich['Годность_воз']:=StrToInt(Edit6.Text);

frDM.ADOTableTabLich['Документ']:=frDM.ADOQueryLich['id'];

if frDM.ADOTableTabLich.Modified then

frDM.ADOTableTabLich.Post;

frDM.ADOTableTabLich.Active:=false;

frDM.ADOTableTabLich.Active:=true;

frDM.ADOQueryTabLich.Active:=false;

frDM.ADOQueryTabLich.SQL.Text:='select ТЧ_Выдача.id, ТЧ_Выдача.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, ТЧ_Выдача.Дата_выд, '+

'ТЧ_Выдача.Кол_выд, ТЧ_Выдача.Годность_выд, '+

'ТЧ_Выдача.Стоимость, ТЧ_Выдача.Дата_воз, '+

'ТЧ_Выдача.Кол_воз, ТЧ_Выдача.Годность_воз, '+

'ТЧ_Выдача.Документ '+

'from ТЧ_Выдача '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Выдача.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Выдача.Документ='+s+

' order by ТЧ_Выдача.id desc';

frDM.ADOQueryTabLich.Active:=true;

frDM.ADOQueryTab.Active:=false;

frDM.ADOQueryTab.SQL.Text:='select Остаток from ТЧ_Склад_Учет where Документ='+Edit4.Text+' order by id';

frDM.ADOQueryTab.Active:=true;

if frNewTabLich.Tag=145 then

frDM.ADOQueryTab.Last

else begin

frDM.ADOQueryTab.Last;

frDM.ADOQueryTab.Prior;

end;

if frDM.ADOQueryTab['Остаток']<>Null then

ost:=frDM.ADOQueryTab['Остаток']

else

ost:=0;

if frNewTabLich.Tag=145 then

frDM.ADOTableTabCard.Append;

frDM.ADOTableTabCard['Дата']:=DBDateTimeEditEh1.Text;

frDM.ADOTableTabCard['Номер_док']:='МБ-6 № '+frOpenLichCard.Edit12.Text;

frDM.ADOTableTabCard['Организация']:=frOpenLichCard.Edit10.Text;

frDM.ADOTableTabCard['Расход']:=StrToInt(SpinEdit1.Text);

frDM.ADOTableTabCard['Остаток']:=ost-StrToInt(SpinEdit1.Text);

frDM.ADOTableTabCard['Документ']:=StrToInt(Edit4.Text);

frDM.ADOTableTabCard['Карточка']:=uOpenLichCard.k_lich;

if frDM.ADOTableTabCard.Modified then

frDM.ADOTableTabCard.Post;

frDM.ADOTableTabCard.Active:=false;

frDM.ADOTableTabCard.Active:=true;

frDM.ADOTableCard.Locate('id',Edit4.Text,[]);

frDM.ADOTableCard.Edit;

frDM.ADOTableCard['Остаток']:=ost-StrToInt(SpinEdit1.Text);

if frDM.ADOTableCard.Modified then

frDM.ADOTableCard.Post;

frDM.ADOTableCard.Active:=false;

frDM.ADOTableCard.Active:=true;

if frNewTabLich.Tag=145 then

frDM.ADOTableProv.Append;

frDM.ADOTableProv['Дата']:=DBDateTimeEditEh1.Text;

frDM.ADOTableProv['Номер_док']:='МБ-6 № '+frOpenLichCard.Edit12.Text;

frDM.ADOTableProv['Операция']:='Выдача';

frDM.ADOTableProv['Дебет']:='[10/11]';

frDM.ADOTableProv['Кредит']:='[10/10]';

frDM.ADOTableProv['Номер_по_карт']:=StrToInt(Edit4.Text);

frDM.ADOTableProv['Ед_изм']:=Edit5.Text;

frDM.ADOTableProv['Количество']:=StrToInt(SpinEdit1.Text);

frDM.ADOTableProv['Цена']:=StrToFloat(currEdit2.Text);

frDM.ADOTableProv['Стоимость']:=StrToFloat(currEdit1.Text);

frDM.ADOTableProv['СИЗ']:=Edit2.Text;

П2.31. Продолжение

frDM.ADOTableProv['Карточка']:=uOpenLichCard.k_lich;

if frDM.ADOTableProv.Modified then

frDM.ADOTableProv.Post;

frDM.ADOTableProv.Active:=false;

frDM.ADOTableProv.Active:=true;

if frNewTabLich.Tag=145 then

frDM.ADOTableProv.Append

else frDM.ADOTableProv.Edit;

frDM.ADOTableProv['Дата']:=DBDateTimeEditEh1.Text;

frDM.ADOTableProv['Номер_док']:='МБ-6 № '+frOpenLichCard.Edit12.Text;

frDM.ADOTableProv['Операция']:='Списание';

frDM.ADOTableProv['Дебет']:='[20]';

frDM.ADOTableProv['Кредит']:='[10/11]';

frDM.ADOTableProv['Номер_по_карт']:=StrToInt(Edit4.Text);

frDM.ADOTableProv['Ед_изм']:=Edit5.Text;

frDM.ADOTableProv['Количество']:=StrToInt(SpinEdit1.Text);

frDM.ADOTableProv['Цена']:=StrToFloat(currEdit2.Text);

frDM.ADOTableProv['Стоимость']:=StrToFloat(currEdit1.Text);

frDM.ADOTableProv['СИЗ']:=Edit2.Text;

frDM.ADOTableProv['Карточка']:=uOpenLichCard.k_lich;

if frDM.ADOTableProv.Modified then

frDM.ADOTableProv.Post;

frDM.ADOTableProv.Active:=false;

frDM.ADOTableProv.Active:=true;

Close;

end;

end;

end.

unit uNewEntry;

interface

uses

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

Dialogs, currEdit, ExtCtrls, StdCtrls, Buttons, Mask, DBCtrlsEh, Spin;

type

TfrNewEntry = class(TForm)

Panel1: TPanel;

RadioGroup1: TRadioGroup;

DBDateTimeEditEh1: TDBDateTimeEditEh;

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Label3: TLabel;

Bevel1: TBevel;

Edit2: TEdit;

Edit3: TEdit;

BitBtn2: TBitBtn;

Label4: TLabel;

Label5: TLabel;

Edit4: TEdit;

Label6: TLabel;

Label7: TLabel;

Bevel2: TBevel;

Label8: TLabel;

Label9: TLabel;

Edit6: TEdit;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Edit8: TEdit;

Label15: TLabel;

Label16: TLabel;

Panel2: TPanel;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

SpinEdit3: TSpinEdit;

currEdit1: TcurrEdit;

currEdit2: TcurrEdit;

Edit5: TEdit;

procedure BitBtn2Click(Sender: TObject);

procedure CreateChildCard(const childName : string);

procedure currEdit1Change(Sender: TObject);

procedure SpinEdit3Change(Sender: TObject);

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

procedure FormActivate(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewEntry: TfrNewEntry;

implementation

uses uCard, uMain, DM, uEntry;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrNewEntry.CreateChildCard(const childName : string);

var Child: TfrCard;

begin

Child := TfrCard.Create(Application);

Child.Caption := childName;

end;

procedure TfrNewEntry.BitBtn2Click(Sender: TObject);

begin

CreateChildCard('Выбор карточки учета материалов');

if frmRefresh(frCard,TfrCard) then frCard.Tag:=134;

end;

procedure TfrNewEntry.currEdit1Change(Sender: TObject);

var x,z: real;

y: integer;

begin

x:=StrToFloat(currEdit1.Text);

y:=StrToInt(SpinEdit3.Text);

z:=x*y;

currEdit2.Text:=FloatToStrf(z,fffixed,12,2);

end;

procedure TfrNewEntry.SpinEdit3Change(Sender: TObject);

var x,z: real;

y: integer;

begin

x:=StrToFloat(currEdit1.Text);

y:=StrToInt(SpinEdit3.Text);

Рис. П2.32. Текст модуля uNewEntry.pas

П2.32. Продолжение

z:=x*y;

currEdit2.Text:=FloatToStrf(z,fffixed,12,2);

end;

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

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

Action:=caFree;

end;

procedure TfrNewEntry.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

end;

procedure TfrNewEntry.BitBtn4Click(Sender: TObject);

begin

Close;

end;

procedure TfrNewEntry.BitBtn3Click(Sender: TObject);

begin

if (DBDateTimeEditEh1.Text=' . . ')or

(Edit1.Text='')or

(Edit2.Text='')or

(Edit6.Text='')or

(Edit8.Text='')or

(SpinEdit3.Text='')or

(currEdit1.Text='')or

(currEdit2.Text='')

then MessageDlg('Для продолжения операции заполните все поля',mtWarning,[mbOk],0)

else

begin

frDM.ADOTableProv['Номер_док']:=Edit1.Text;

frDM.ADOTableProv['Дата']:=StrToDate(DBDateTimeEditEh1.Text);

frDM.ADOTableProv['Дебет']:='['+Edit6.Text+']';

frDM.ADOTableProv['Кредит']:='['+Edit8.Text+']';

frDM.ADOTableProv['Номер_по_карт']:=StrToInt(Edit4.Text);

frDM.ADOTableProv['Ед_изм']:=Edit5.Text;

frDM.ADOTableProv['Количество']:=StrToInt(SpinEdit3.Text);

frDM.ADOTableProv['Цена']:=StrToFloat(currEdit1.Text);

frDM.ADOTableProv['Стоимость']:=StrToFloat(currEdit2.Text);

frDM.ADOTableProv['СИЗ']:=Edit2.Text;

case RadioGroup1.ItemIndex of

0: frDM.ADOTableProv['Операция']:='Пост';

1: frDM.ADOTableProv['Операция']:='Выдача';

2: frDM.ADOTableProv['Операция']:='Списание';

end;

if frDM.ADOTableProv.Modified then

frDM.ADOTableProv.Post;

frDM.ADOTableProv.Active:=false;

frDM.ADOTableProv.Active:=true;

case frEntry.RadioGroup1.ItemIndex of

0: begin

frDM.ADOQueryProv.Active:=false;

frDM.ADOQueryProv.SQL.Text:='select Проводки.id, Проводки.Номер_док, '+

'Проводки.Дата, Проводки.Операция, Проводки.Дебет, '+

'Проводки.Кредит, Спецодежда.Название, Проводки.СИЗ as Номер, '+

'Проводки.Номер_по_карт, Проводки.Ед_изм, '+

'Проводки.Количество, Проводки.Цена, Проводки.Стоимость '+

' from Проводки '+

'left join Спецодежда on Спецодежда.id=Проводки.СИЗ '+

'order by Проводки.Дата, Спецодежда.Название, Проводки.id';

frDM.ADOQueryProv.Active:=true;

end;

1: begin

frDM.ADOQueryProv.Active:=false;

frDM.ADOQueryProv.SQL.Text:='select Проводки.id, Проводки.Номер_док, '+

'Проводки.Дата, Проводки.Операция, Проводки.Дебет, '+

'Проводки.Кредит, Спецодежда.Название, Проводки.СИЗ as Номер, '+

'Проводки.Номер_по_карт, Проводки.Ед_изм, '+

'Проводки.Количество, Проводки.Цена, Проводки.Стоимость '+

' from Проводки '+

'left join Спецодежда on Спецодежда.id=Проводки.СИЗ '+

'where Проводки.Операция='+#39+'Пост'+#39+

' order by Проводки.Дата, Спецодежда.Название, Проводки.id';

frDM.ADOQueryProv.Active:=true;

end;

2: begin

frDM.ADOQueryProv.Active:=false;

frDM.ADOQueryProv.SQL.Text:='select Проводки.id, Проводки.Номер_док, '+

'Проводки.Дата, Проводки.Операция, Проводки.Дебет, '+

'Проводки.Кредит, Спецодежда.Название, Проводки.СИЗ as Номер, '+

'Проводки.Номер_по_карт, Проводки.Ед_изм, '+

'Проводки.Количество, Проводки.Цена, Проводки.Стоимость '+

' from Проводки '+

'left join Спецодежда on Спецодежда.id=Проводки.СИЗ '+

'where Проводки.Операция='+#39+'Выдача'+#39+

' order by Проводки.Дата, Спецодежда.Название, Проводки.id';

frDM.ADOQueryProv.Active:=true;

end;

3: begin

frDM.ADOQueryProv.Active:=false;

frDM.ADOQueryProv.SQL.Text:='select Проводки.id, Проводки.Номер_док, '+

'Проводки.Дата, Проводки.Операция, Проводки.Дебет, '+

'Проводки.Кредит, Спецодежда.Название, Проводки.СИЗ as Номер, '+

'Проводки.Номер_по_карт, Проводки.Ед_изм, '+

'Проводки.Количество, Проводки.Цена, Проводки.Стоимость '+

' from Проводки '+

'left join Спецодежда on Спецодежда.id=Проводки.СИЗ '+

'where Проводки.Операция='+#39+'Списание'+#39+

' order by Проводки.Дата, Спецодежда.Название, Проводки.id';

frDM.ADOQueryProv.Active:=true;

end;

end;

Close;

end;

end;

procedure TfrNewEntry.FormCreate(Sender: TObject);

begin

DBDateTimeEditEh1.Text:=DateToStr(Date);

end;

end.

unit uNewReq;

interface

uses

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

Dialogs, StdCtrls, Buttons, ExtCtrls, Mask, DBCtrlsEh;

type

TfrNewReq = class(TForm)

DBDateTimeEditEh1: TDBDateTimeEditEh;

Label1: TLabel;

Panel1: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

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

procedure BitBtn2Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewReq: TfrNewReq;

implementation

uses DM, uMain;

{$R *.dfm}

procedure TfrNewReq.BitBtn1Click(Sender: TObject);

begin

if DBDateTimeEditEh1.Text=' . . '

then MessageDlg('Для продолжения операции введите дату составления заявки',mtWarning,[mbOk],0)

else

begin

frDM.ADOTableReq['Принята']:='false';

if frDM.ADOTableReq.Modified then

frDM.ADOTableReq.Post;

frDM.ADOTableReq.Active:=false;

frDM.ADOTableReq.Active:=true;

frDM.ADOTableReq.Sort:='Дата DESC';

frDM.ADOTableReq.First;

Close;

end;

end;

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

begin

frMain.ToolButton1.Enabled:=true;

frMain.ToolButton2.Enabled:=true;

frDM.ADOTableReq.Active:=false;

frDM.ADOTableReq.Active:=true;

Action:=caFree;

end;

procedure TfrNewReq.BitBtn2Click(Sender: TObject);

begin

frDM.ADOTableReq.Active:=false;

frDM.ADOTableReq.Active:=true;

Close;

end;

procedure TfrNewReq.FormActivate(Sender: TObject);

begin

frMain.ToolButton1.Enabled:=false;

frMain.ToolButton2.Enabled:=false;

end;

end.

Рис. П2.33. Текст модуля uNewReq.pas

unit uNewTabReq;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls, Buttons;

type

TfrNewTabReq = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Edit2: TEdit;

BitBtn1: TBitBtn;

Label2: TLabel;

Label3: TLabel;

Edit3: TEdit;

Label4: TLabel;

Edit4: TEdit;

Label5: TLabel;

Label6: TLabel;

Edit5: TEdit;

Edit6: TEdit;

Label7: TLabel;

Panel1: TPanel;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

procedure CreateChildCard(const childName : string);

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

procedure FormActivate(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frNewTabReq: TfrNewTabReq;

implementation

uses uCard, uMain, uOpenLichCard, DM, uTabReq;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass

then

Рис. П2. 34. Текст модуля uNewTabReq.pas

П2.34. Продолжение

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrNewTabReq.CreateChildCard(const childName : string);

var Child: TfrCard;

begin

Child := TfrCard.Create(Application);

Child.Caption := childName;

end;

procedure TfrNewTabReq.BitBtn1Click(Sender: TObject);

begin

CreateChildCard('Выбор карточки учета материалов');

if frmRefresh(frCard,TfrCard) then frCard.Tag:=167;

end;

procedure TfrNewTabReq.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

frTabReq.ToolButton1.Enabled:=true;

frTabReq.ToolButton2.Enabled:=true;

Action:=caFree;

end;

procedure TfrNewTabReq.FormActivate(Sender: TObject);

begin

frTabReq.ToolButton1.Enabled:=false;

frTabReq.ToolButton2.Enabled:=false;

end;

procedure TfrNewTabReq.BitBtn3Click(Sender: TObject);

begin

Close;

end;

procedure TfrNewTabReq.BitBtn2Click(Sender: TObject);

var s: String;

begin

if (Edit3.Text='')or

(Edit6.Text='')

then MessageDlg('Для продолжения операции заполните все поля',mtWarning,[mbOk],0)

else

begin

s:=frDM.ADOTableReq['id'];

frDM.ADOTableTabReq['СИЗ']:=StrToInt(Edit3.Text);

frDM.ADOTableTabReq['Количество']:=StrToInt(Edit6.Text);

frDM.ADOTableTabReq['Документ']:=frDM.ADOTableReq['id'];

if frDM.ADOTableTabReq.Modified then

frDM.ADOTableTabReq.Post;

frDM.ADOTableTabReq.Active:=false;

frDM.ADOTableTabReq.Active:=true;

frDM.ADOQueryTabReq.Active:=false;

frDM.ADOQueryTabReq.SQL.Text:='select ТЧ_Заявка.id, ТЧ_Заявка.СИЗ as Номер_по_карт, '+

'Спецодежда.id as Номер, '+

'Спецодежда.Название as СИЗ, '+

'Склад_Учет.Размер, '+

'Склад_Учет.Ед_изм, '+

'ТЧ_Заявка.Количество, '+

'ТЧ_Заявка.Документ '+

'from ТЧ_Заявка '+

'left join Склад_Учет on Склад_Учет.id=ТЧ_Заявка.СИЗ '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where ТЧ_Заявка.Документ='+s+

' order by Спецодежда.Название, Склад_Учет.Размер';

frDM.ADOQueryTabReq.Active:=true;

Close;

end;

end;

end.

unit uFindEmp;

interface

uses

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

Dialogs, StdCtrls, Buttons, ExtCtrls, DB, ADODB, ComCtrls, Mask,

DBCtrlsEh;

type

TfrFindEmp = class(TForm)

Panel1: TPanel;

Label1: TLabel;

RadioGroup1: TRadioGroup;

Edit1: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DBDateTimeEditEh1: TDBDateTimeEditEh;

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

procedure BitBtn2Click(Sender: TObject);

procedure RadioGroup1Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure DBDateTimeEditEh1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frFindEmp: TfrFindEmp;

implementation

uses DM, uMain;

{$R *.dfm}

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

begin

frMain.ToolButton5.Enabled:=true;

Action:=caFree;

end;

begin

Close;

end;

procedure TfrFindEmp.RadioGroup1Click(Sender: TObject);

begin

case RadioGroup1.ItemIndex of

procedure TfrFindEmp.BitBtn2Click(Sender: TObject);

0,1,3: begin

Edit1.Visible:=true;

DBDateTimeEditEh1.Visible:=false;

Edit1.SetFocus;

Рис. П2. 35. Текст модуля uFindEmp.pas

П2.35. Продолжение

Edit1.Text:='';

end;

2:begin

Edit1.Visible:=false;

DBDateTimeEditEh1.Visible:=true;

DBDateTimeEditEh1.SetFocus;

end;

end;

end;

procedure TfrFindEmp.BitBtn1Click(Sender: TObject);

var s: String;

kol: integer;

begin

if (Edit1.Text='')and(DBDateTimeEditEh1.Text=' . . ') then

MessageDlg('Введите строку для поиска', mtWarning,[mbOk],0)

else

with frDM.ADOQuerySearchEmp do

if RecordCount=0 then MessageDlg('Искомых данных в базе нет',mtInformation,[mbOk],0)

else

if not EOF then

begin

next;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOQueryEmp.Locate('id',s,[]);

next;

if not EOF then

prior;

end

else if MessageDlg('Поиск завершен. Начать сначала?',mtInformation,[mbYes,mbNo],0)=mrYes then

begin

frDM.ADOQuerySearchEmp.First;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOQueryEmp.Locate('id',s,[]);

end;

end;

procedure TfrFindEmp.Edit1Change(Sender: TObject);

var b: boolean;

s: String;

begin

s:=uMain.idx_emp;

frDM.ADOQuerySearchEmp.Active:=false;

case RadioGroup1.ItemIndex of

0: begin

frDM.ADOQuerySearchEmp.SQL.Text:='select * from Сотрудники where id like '+#39+Edit1.Text+'%'+#39+

' order by '+s;

frDM.ADOQuerySearchEmp.Active:=true;

frDM.ADOQuerySearchEmp.First;

if frDM.ADOQuerySearchEmp.FieldValues['id']<>Null then

begin

frDM.ADOQueryEmp.Locate('id',frDM.ADOQuerySearchEmp.FieldValues['id'],[]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

1: begin

b:=frDM.ADOQueryEmp.Locate('Фамилия',Edit1.Text,[loCaseInsensitive,loPartialKey]);

frDM.ADOQuerySearchEmp.SQL.Text:='select * from Сотрудники where upper(Фамилия) like upper('+#39+Edit1.Text+'%'+#39+')'+

' order by '+s;

frDM.ADOQuerySearchEmp.Active:=true;

frDM.ADOQuerySearchEmp.First;

if frDM.ADOQuerySearchEmp.FieldValues['Фамилия']<>Null then

begin

frDM.ADOQueryEmp.Locate('Фамилия',frDM.ADOQuerySearchEmp.FieldValues['Фамилия'],[loCaseInsensitive,loPartialKey]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

3: begin

frDM.ADOQuerySearchEmp.SQL.Text:='select * from Сотрудники where Раб_тел like '+#39+Edit1.Text+'%'+#39+

' order by '+s;

frDM.ADOQuerySearchEmp.Active:=true;

frDM.ADOQuerySearchEmp.First;

if frDM.ADOQuerySearchEmp.FieldValues['Раб_тел']<>Null

begin

frDM.ADOQueryEmp.Locate('Раб_тел',frDM.ADOQuerySearchEmp.FieldValues['Раб_тел'],[]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

end;

end;

procedure TfrFindEmp.DBDateTimeEditEh1Change(Sender: TObject);

var b: boolean;

s, s1: String;

begin

if RadioGroup1.ItemIndex=2 then

begin

s:=uMain.idx_emp;

frDM.ADOQuerySearchEmp.Active:=false;

frDM.ADOQuerySearchEmp.SQL.Text:='select * from Сотрудники where Дата_рожд=to_date('+#39+DBDateTimeEditEh1.Text+#39+

','+#39+'dd.mm.yyyy'+#39+')'+

' order by '+s;

s1:=frDM.ADOQuerySearchEmp.SQL.Text;

frDM.ADOQuerySearchEmp.Active:=true;

frDM.ADOQuerySearchEmp.First;

if frDM.ADOQuerySearchEmp.FieldValues['Дата_рожд']<>Null then

begin

frDM.ADOQueryEmp.Locate('Дата_рожд',frDM.ADOQuerySearchEmp.FieldValues['Дата_рожд'],[]);

DBDateTimeEditEh1.Font.Color:=clBlack;

DBDateTimeEditEh1.Font.Style:=DBDateTimeEditEh1.Font.Style-[fsBold];

end

else

begin

DBDateTimeEditEh1.Font.Color:=clRed;

DBDateTimeEditEh1.Font.Style:=DBDateTimeEditEh1.Font.Style+[fsBold];

end;

end;

end;

procedure TfrFindEmp.FormActivate(Sender: TObject);

begin

frMain.ToolButton5.Enabled:=false;

end;

end.

unit uFindSiz;

interface

uses

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

Dialogs, Mask, StdCtrls, Buttons, ExtCtrls, DB, ADODB;

type

TfrFindSiz = class(TForm)

Panel1: TPanel;

Label1: TLabel;

RadioGroup1: TRadioGroup;

Edit1: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure RadioGroup1Click(Sender: TObject);

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

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frFindSiz: TfrFindSiz;

implementation

uses DM, uMain;

{$R *.dfm}

procedure TfrFindSiz.RadioGroup1Click(Sender: TObject);

begin

Edit1.Text:='';

Edit1.SetFocus;

end;

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

begin

frMain.ToolButton5.Enabled:=true;

Action:=caFree;

end;

procedure TfrFindSiz.BitBtn2Click(Sender: TObject);

begin

Close;

end;

procedure TfrFindSiz.BitBtn1Click(Sender: TObject);

var s: String;

kol: integer;

begin

if Edit1.Text='' then

MessageDlg('Введите строку для поиска', mtWarning,[mbOk],0)

else

with frDM.ADOQuerySearchSiz do

if RecordCount=0 then MessageDlg('Искомых данных в базе нет',mtInformation,[mbOk],0)

else

if not EOF then

begin

next;

if FieldValues['id']<>Null then

s:=FieldValues['id'];

frDM.ADOTableSiz.Locate('id',s,[]);

next;

if not EOF then

prior;

end

else if MessageDlg('Поиск завершен. Начать сначала?',mtInformation,[mbYes,mbNo],0)=mrYes then

begin

frDM.ADOQuerySearchSiz.First;

if FieldValues['id']<>Null then

s:=FieldValues['id'];

frDM.ADOTableSiz.Locate('id',s,[]);

end;

end;

procedure TfrFindSiz.Edit1Change(Sender: TObject);

var b: boolean;

s: String;

begin

s:=frDM.ADOTableSiz.IndexFieldNames;

frDM.ADOQuerySearchSiz.Active:=false;

case RadioGroup1.ItemIndex of

0:begin

if length(Edit1.Text)=1

then Edit1.Text:=Edit1.Text+'-';

if length(Edit1.Text)=8

then Edit1.Text:=Edit1.Text+'-';

Edit1.SelStart:=Length(Edit1.Text);

frDM.ADOQuerySearchSiz.SQL.Text:='select * from Спецодежда where id like '+#39+Edit1.Text+'%'+#39+

' order by '+s;

frDM.ADOQuerySearchSiz.Active:=true;

frDM.ADOQuerySearchSiz.First;

if frDM.ADOQuerySearchSiz.FieldValues['id']<>Null then

begin

frDM.ADOTableSiz.Locate('id',frDM.ADOQuerySearchSiz.FieldValues['id'],[]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

1:begin

frDM.ADOQuerySearchSiz.SQL.Text:='select * from Спецодежда where upper(Название) like upper('+#39+Edit1.Text+'%'+#39+')'+

' order by '+s;

frDM.ADOQuerySearchSiz.Active:=true;

frDM.ADOQuerySearchSiz.First;

if frDM.ADOQuerySearchSiz.FieldValues['Название']<>Null then

begin

frDM.ADOTableSiz.Locate('Название',frDM.ADOQuerySearchSiz.FieldValues['Название'],[loCaseInsensitive,loPartialKey]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

end;

end;

procedure TfrFindSiz.FormActivate(Sender: TObject);

begin

frMain.ToolButton5.Enabled:=false;

end;

end.

Рис. П2.36. Текст модуля uFindSiz.pas

unit uFindStP;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, Buttons, DB, ADODB;

type

TfrFindStP = class(TForm)

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

RadioGroup1: TRadioGroup;

Edit1: TEdit;

Label1: TLabel;

Panel1: TPanel;

procedure BitBtn2Click(Sender: TObject);

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

procedure BitBtn1Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure RadioGroup1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frFindStP: TfrFindStP;

implementation

uses DM, uMain;

{$R *.dfm}

procedure TfrFindStP.BitBtn2Click(Sender: TObject);

begin

Close

end;

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

begin

frMain.ToolButton5.Enabled:=true;

Action:=caFree;

end;

procedure TfrFindStP.BitBtn1Click(Sender: TObject);

var s: String;

kol: integer;

begin

if Edit1.Text='' then

MessageDlg('Введите строку для поиска', mtWarning,[mbOk],0)

else

with frDM.ADOQuerySearchStP do

if RecordCount=0 then MessageDlg('Искомых данных в базе нет',mtInformation,[mbOk],0)

else

if not EOF then

begin

next;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOTableStP.Locate('id',s,[]);

next;

if not EOF then

prior;

end

else if MessageDlg('Поиск завершен. Начать сначала?',mtInformation,[mbYes,mbNo],0)=mrYes then

begin

frDM.ADOQuerySearchStP.First;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOTableStP.Locate('id',s,[]);

end;

end;

procedure TfrFindStP.Edit1Change(Sender: TObject);

var s: String;

begin

s:=frDM.ADOTableStP.IndexFieldNames;

frDM.ADOQuerySearchStP.Active:=false;

case RadioGroup1.ItemIndex of

0: begin

frDM.ADOQuerySearchStP.SQL.Text:='select * from Подразделения where id like '+#39+Edit1.Text+'%'+#39+

' order by '+s;

frDM.ADOQuerySearchStP.Active:=true;

frDM.ADOQuerySearchStP.First;

if frDM.ADOQuerySearchStP.FieldValues['id']<>Null then

begin

frDM.ADOTableStP.Locate('id',frDM.ADOQuerySearchStP.FieldValues['id'],[]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

1: begin

frDM.ADOQuerySearchStP.SQL.Text:='select * from Подразделения where upper(Название) like upper('+#39+Edit1.Text+'%'+#39+')'+

' order by '+s;

frDM.ADOQuerySearchStP.Active:=true;

frDM.ADOQuerySearchStP.First;

if frDM.ADOQuerySearchStP.FieldValues['Название']<>Null then

begin

frDM.ADOTableStP.Locate('Название',frDM.ADOQuerySearchStP.FieldValues['Название'],[loCaseInsensitive,loPartialKey]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

2: begin

frDM.ADOQuerySearchStP.SQL.Text:='select * from Подразделения where upper(Сокращение) like upper('+#39+Edit1.Text+'%'+#39+')'+

' order by '+s;

frDM.ADOQuerySearchStP.Active:=true;

frDM.ADOQuerySearchStP.First;

if frDM.ADOQuerySearchStP.FieldValues['Сокращение']<>Null then

begin

frDM.ADOTableStP.Locate('Сокращение',frDM.ADOQuerySearchStP.FieldValues['Сокращение'],[loCaseInsensitive,loPartialKey]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

end;

end;

Рис. П2.37. Текст модуля uFindStP.pas

П2. 37. Продолжение

procedure TfrFindStP.RadioGroup1Click(Sender: TObject);

begin

Edit1.Text:='';

Edit1.SetFocus;

end;

procedure TfrFindStP.FormActivate(Sender: TObject);

begin

frMain.ToolButton5.Enabled:=false;

end;

end.

unit uFindProf;

interface

uses

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

Dialogs, StdCtrls, Buttons, DB, ADODB;

type

TfrFindProf = class(TForm)

Label1: TLabel;

Edit1: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

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

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frFindProf: TfrFindProf;

implementation

uses DM, uMain;

{$R *.dfm}

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

begin

frMain.ToolButton5.Enabled:=true;

Action:=caFree;

end;

procedure TfrFindProf.BitBtn2Click(Sender: TObject);

begin

Close;

end;

procedure TfrFindProf.BitBtn1Click(Sender: TObject);

var s: String;

kol: integer;

begin

if Edit1.Text='' then

MessageDlg('Введите строку для поиска', mtWarning,[mbOk],0)

else

with frDM.ADOQuerySearchProf do

if RecordCount=0 then MessageDlg('Искомых данных в базе нет',mtInformation,[mbOk],0)

else

if not EOF then

begin

next;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOTableProf.Locate('id',s,[]);

next;

if not EOF then

prior;

end

else if MessageDlg('Поиск завершен. Начать сначала?',mtInformation,[mbYes,mbNo],0)=mrYes then

begin

frDM.ADOQuerySearchProf.First;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOTableProf.Locate('id',s,[]);

end;

end;

procedure TfrFindProf.Edit1Change(Sender: TObject);

begin

frDM.ADOQuerySearchProf.Active:=false;

frDM.ADOQuerySearchProf.SQL.Text:='select * from Должности where upper(Название) like upper('+#39+Edit1.Text+'%'+#39+')'+

' order by Название';

frDM.ADOQuerySearchProf.Active:=true;

frDM.ADOQuerySearchProf.First;

if frDM.ADOQuerySearchProf.FieldValues['Название']<>Null

then begin

frDM.ADOTableProf.Locate('Название',frDM.ADOQuerySearchProf.FieldValues['Название'],[loCaseInsensitive,loPartialKey]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

procedure TfrFindProf.FormActivate(Sender: TObject);

begin

frMain.ToolButton5.Enabled:=false;

end;

end.

Рис. П2. 38. Текст модуля uFindProf.pas

unit uFindPost;

interface

uses

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

Dialogs, StdCtrls, Buttons, DB, ADODB;

type

TfrFindPost = class(TForm)

Label1: TLabel;

Edit1: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

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

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frFindPost: TfrFindPost;

implementation

uses DM, uMain;

{$R *.dfm}

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

begin

frMain.ToolButton5.Enabled:=true;

Action:=caFree;

end;

procedure TfrFindPost.BitBtn2Click(Sender: TObject);

begin

Close;

end;

procedure TfrFindPost.BitBtn1Click(Sender: TObject);

var s: String;

kol: integer;

begin

if Edit1.Text='' then

MessageDlg('Введите строку для поиска', mtWarning,[mbOk],0)

else

with frDM.ADOQuerySearchPost do

if RecordCount=0 then MessageDlg('Искомых данных в базе нет',mtInformation,[mbOk],0)

else

if not EOF then

begin

next;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOTablePost.Locate('id',s,[]);

next;

if not EOF then

prior;

end

else if MessageDlg('Поиск завершен. Начать сначала?',mtInformation,[mbYes,mbNo],0)=mrYes then

begin

frDM.ADOQuerySearchPost.First;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOTablePost.Locate('id',s,[]);

end;

end;

procedure TfrFindPost.Edit1Change(Sender: TObject);

var b: boolean;

begin

frDM.ADOQuerySearchPost.Active:=false;

frDM.ADOQuerySearchPost.SQL.Text:='select * from Постановления where upper(Название) like upper('+#39+Edit1.Text+'%'+#39+')'+

' order by Название';

frDM.ADOQuerySearchPost.Active:=true;

frDM.ADOQuerySearchPost.First;

if frDM.ADOQuerySearchPost.FieldValues['Название']<>Null

then begin

frDM.ADOTablePost.Locate('Название',frDM.ADOQuerySearchPost.FieldValues['Название'],[loCaseInsensitive,loPartialKey]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

procedure TfrFindPost.FormActivate(Sender: TObject);

begin

frMain.ToolButton5.Enabled:=false;

end;

end.

Рис. П2.39. Текст модуля uFindPost.pas

unit uFindSup;

interface

uses

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

Dialogs, StdCtrls, Buttons, DB, ADODB;

type

TfrFindSup = class(TForm)

Label1: TLabel;

Edit1: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

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

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frFindSup: TfrFindSup;

implementation

uses DM, uMain;

{$R *.dfm}

Рис. П2.40. Текст модуля uFindSup.pas

П2.40. Продолжение

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

begin

frMain.ToolButton5.Enabled:=true;

Action:=caFree;

end;

procedure TfrFindSup.BitBtn2Click(Sender: TObject);

begin

Close;

end;

procedure TfrFindSup.BitBtn1Click(Sender: TObject);

var s: String;

kol: integer;

begin

if Edit1.Text='' then

MessageDlg('Введите строку для поиска', mtWarning,[mbOk],0)

else

with frDM.ADOQuerySearchSup do

if RecordCount=0 then MessageDlg('Искомых данных в базе нет',mtInformation,[mbOk],0)

else

if not EOF then

begin

next;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOQuerySup.Locate('id',s,[]);

next;

if not EOF then

prior;

end

else if MessageDlg('Поиск завершен. Начать сначала?',mtInformation,[mbYes,mbNo],0)=mrYes then

begin

frDM.ADOQuerySearchSup.First;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOQuerySup.Locate('id',s,[]);

end;

end;

procedure TfrFindSup.Edit1Change(Sender: TObject);

var b: boolean;

begin

b:=frDM.ADOQuerySup.Locate('Название',Edit1.Text,[loCaseInsensitive,loPartialKey]);

frDM.ADOQuerySearchSup.Active:=false;

frDM.ADOQuerySearchSup.SQL.Text:='select * from Поставщики where upper(Название) like upper('+#39+Edit1.Text+'%'+#39+')'+

' order by Название';

frDM.ADOQuerySearchSup.Active:=true;

frDM.ADOQuerySearchSup.First;

if b=false

then begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

End

else begin

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end;

end;

procedure TfrFindSup.FormActivate(Sender: TObject);

begin

frMain.ToolButton5.Enabled:=false;

end;

end.

unit uFindCity;

interface

uses

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

Dialogs, StdCtrls, Buttons, DB, ADODB;

type

TfrFindCity = class(TForm)

Label1: TLabel;

Edit1: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

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

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frFindCity: TfrFindCity;

implementation

uses DM, uMain;

{$R *.dfm}

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

begin

frMain.ToolButton5.Enabled:=true;

Action:=caFree;

end;

procedure TfrFindCity.BitBtn2Click(Sender: TObject);

begin

Close;

end;

procedure TfrFindCity.BitBtn1Click(Sender: TObject);

var s: String;

kol: integer;

begin

if Edit1.Text='' then

MessageDlg('Введите строку для поиска', mtWarning,[mbOk],0)

else

with frDM.ADOQuerySearchCity do

if RecordCount=0 then MessageDlg('Искомых данных в базе нет',mtInformation,[mbOk],0)

else

if not EOF then

begin

next;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOTableCity.Locate('id',s,[]);

next;

if not EOF then

prior;

end

Рис. П2.41. Текст модуля uFindCity.pas

П2.42. Продолжение

else if MessageDlg('Поиск завершен. Начать сначала?',mtInformation,[mbYes,mbNo],0)=mrYes then

begin

frDM.ADOQuerySearchCity.First;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOTableCity.Locate('id',s,[]);

end;

end;

procedure TfrFindCity.Edit1Change(Sender: TObject);

var b: boolean;

begin

b:=frDM.ADOTableCity.Locate('Название',Edit1.Text,[loCaseInsensitive,loPartialKey]);

if b=false

then begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end

else begin

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end;

frDM.ADOQuerySearchCity.Active:=false;

frDM.ADOQuerySearchCity.SQL.Text:='select * from Города where upper(Название) like upper('+#39+Edit1.Text+'%'+#39+')'+

' order by Название';

frDM.ADOQuerySearchCity.Active:=true;

frDM.ADOQuerySearchCity.First;

end;

procedure TfrFindCity.FormActivate(Sender: TObject);

begin

frMain.ToolButton5.Enabled:=false;

end;

end.

unit uFindCrOrd;

interface

uses

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

Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, DB, ADODB, Mask,

DBCtrlsEh;

type

TfrFindCrOrd = class(TForm)

Panel1: TPanel;

RadioGroup1: TRadioGroup;

Label1: TLabel;

Edit1: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DBDateTimeEditEh1: TDBDateTimeEditEh;

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

procedure BitBtn2Click(Sender: TObject);

procedure RadioGroup1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure DBDateTimeEditEh1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frFindCrOrd: TfrFindCrOrd;

implementation

uses uMain, DM;

{$R *.dfm}

procedure TfrFindCrOrd.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

frMain.ToolButton5.Enabled:=true;

Action:=caFree;

end;

procedure TfrFindCrOrd.BitBtn2Click(Sender: TObject);

begin

Close;

end;

procedure TfrFindCrOrd.RadioGroup1Click(Sender: TObject);

begin

case RadioGroup1.ItemIndex of

0,2: begin

Edit1.Visible:=true;

DBDateTimeEditEh1.Visible:=false;

Edit1.Text:='';

Edit1.SetFocus;

end;

1:begin

Edit1.Visible:=false;

DBDateTimeEditEh1.Visible:=true;

DBDateTimeEditEh1.Text:=' . . ';

DBDateTimeEditEh1.SetFocus;

end;

end;

end;

procedure TfrFindCrOrd.FormActivate(Sender: TObject);

begin

frMain.ToolButton5.Enabled:=false;

end;

procedure TfrFindCrOrd.BitBtn1Click(Sender: TObject);

var s: String;

kol: integer;

begin

if (Edit1.Text='')and(DBDateTimeEditEh1.Text=' . . ') then

MessageDlg('Введите строку для поиска', mtWarning,[mbOk],0)

else

with frDM.ADOQuerySearchCrOrd do

if RecordCount=0 then MessageDlg('Искомых данных в базе нет',mtInformation,[mbOk],0)

else

if not EOF then

begin

next;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOQueryCrOrd.Locate('id',s,[]);

next;

if not EOF then

prior;

end

else if MessageDlg('Поиск завершен. Начать сначала?',mtInformation,[mbYes,mbNo],0)=mrYes then

begin

Рис. П2.42. Текст модуля uFindCrOrd.pas

П2.42. Продолжение

frDM.ADOQuerySearchCrOrd.First;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOQueryCrOrd.Locate('id',s,[]);

end;

end;

procedure TfrFindCrOrd.Edit1Change(Sender: TObject);

var b: boolean;

s: String;

begin

s:=uMain.idx_crord;

frDM.ADOQuerySearchCrOrd.Active:=false;

case RadioGroup1.ItemIndex of

0: begin

frDM.ADOQuerySearchCrOrd.SQL.Text:='select * from Приход where Номер like '+#39+Edit1.Text+'%'+#39+

' order by '+s;

frDM.ADOQuerySearchCrOrd.Active:=true;

frDM.ADOQuerySearchCrOrd.First;

if frDM.ADOQuerySearchCrOrd.FieldValues['id']<>Null then

begin

frDM.ADOQueryCrOrd.Locate('id',frDM.ADOQuerySearchCrOrd.FieldValues['id'],[]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

2: begin

b:=frDM.ADOQueryCrOrd.Locate('Поставщик',Edit1.Text,[loCaseInsensitive,loPartialKey]);

frDM.ADOQuerySearchCrOrd.SQL.Text:='select Приход.id, Приход.Дата, Приход.Номер, Поставщики.Название '+

'from Приход '+

'left join Поставщики on Поставщики.id=Приход.Поставщик '+

'where upper(Поставщики.Название) like upper('+#39+Edit1.Text+'%'+#39+')'+

' order by '+s;

frDM.ADOQuerySearchCrOrd.Active:=true;

frDM.ADOQuerySearchCrOrd.First;

if b=false then

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end

else

begin

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end;

end;

end;

end;

procedure TfrFindCrOrd.DBDateTimeEditEh1Change(Sender: TObject);

var b: boolean;

s: String;

begin

if RadioGroup1.ItemIndex=1 then

begin

s:=uMain.idx_crord;

frDM.ADOQuerySearchCrOrd.Active:=false;

b:=frDM.ADOQueryCrOrd.Locate('Дата',DBDateTimeEditEh1.Text,[]);

frDM.ADOQuerySearchCrOrd.SQL.Text:='select * from Приход where Дата=to_date('+#39+DBDateTimeEditEh1.Text+#39+

','+#39+'dd.mm.yyyy'+#39+')'+

' order by '+s;

frDM.ADOQuerySearchCrOrd.Active:=true;

frDM.ADOQuerySearchCrOrd.First;

if b=false then

begin

DBDateTimeEditEh1.Font.Color:=clRed;

DBDateTimeEditEh1.Font.Style:=DBDateTimeEditEh1.Font.Style+[fsBold];

end

else

begin

DBDateTimeEditEh1.Font.Color:=clBlack;

DBDateTimeEditEh1.Font.Style:=DBDateTimeEditEh1.Font.Style-[fsBold];

end;

end;

end;

end.

unit uFindCard;

interface

uses

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

Dialogs, StdCtrls, Buttons, ExtCtrls, DB, ADODB;

type

TfrFindCard = class(TForm)

Panel1: TPanel;

Label1: TLabel;

RadioGroup1: TRadioGroup;

Edit1: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

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

procedure FormActivate(Sender: TObject);

procedure RadioGroup1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frFindCard: TfrFindCard;

implementation

uses uMain, DM;

{$R *.dfm}

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

begin

frMain.ToolButton5.Enabled:=true;

Action:=caFree;

end;

Рис. П2.43. Текст модуля uFindCard.pas

П2.43. Продолжение

procedure TfrFindCard.FormActivate(Sender: TObject);

begin

frMain.ToolButton5.Enabled:=false;

end;

procedure TfrFindCard.RadioGroup1Click(Sender: TObject);

begin

Edit1.Text:='';

Edit1.SetFocus;

end;

procedure TfrFindCard.BitBtn2Click(Sender: TObject);

begin

Close;

end;

procedure TfrFindCard.BitBtn1Click(Sender: TObject);

var s: String;

kol: integer;

begin

if Edit1.Text='' then

MessageDlg('Введите строку для поиска', mtWarning,[mbOk],0)

else

with frDM.ADOQuerySearchCard do

if RecordCount=0 then MessageDlg('Искомых данных в базе нет',mtInformation,[mbOk],0)

else

if not EOF then

begin

next;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOQueryCard.Locate('id',s,[]);

next;

if not EOF then

prior;

end

else if MessageDlg('Поиск завершен. Начать сначала?',mtInformation,[mbYes,mbNo],0)=mrYes then

begin

frDM.ADOQuerySearchCard.First;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOQueryCard.Locate('id',s,[]);

end;

end;

procedure TfrFindCard.Edit1Change(Sender: TObject);

var b: boolean;

s: String;

begin

s:=uMain.idx_card;

frDM.ADOQuerySearchCard.Active:=false;

case RadioGroup1.ItemIndex of

0: begin

frDM.ADOQuerySearchCard.SQL.Text:='select Склад_Учет.id, Склад_Учет.СИЗ as Номер, Спецодежда.Название as СИЗ '+

'from Склад_Учет '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where Склад_Учет.id like '+#39+Edit1.Text+'%'+#39+

' order by '+s;

frDM.ADOQuerySearchCard.Active:=true;

frDM.ADOQuerySearchCard.First;

if frDM.ADOQuerySearchCard.FieldValues['id']<>Null then

begin

frDM.ADOQueryCard.Locate('id',frDM.ADOQuerySearchCard.FieldValues['id'],[]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

1: begin

if length(Edit1.Text)=1

then Edit1.Text:=Edit1.Text+'-';

if length(Edit1.Text)=8

then Edit1.Text:=Edit1.Text+'-';

Edit1.SelStart:=Length(Edit1.Text);

frDM.ADOQuerySearchCard.SQL.Text:='select Склад_Учет.id, Склад_Учет.СИЗ as Номер, Спецодежда.Название as СИЗ '+

'from Склад_Учет '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where Склад_Учет.СИЗ like '+#39+Edit1.Text+'%'+#39+

' order by '+s;

frDM.ADOQuerySearchCard.Active:=true;

frDM.ADOQuerySearchCard.First;

if frDM.ADOQuerySearchCard.FieldValues['Номер']<>Null then

begin

frDM.ADOQueryCard.Locate('Номер',frDM.ADOQuerySearchCard.FieldValues['Номер'],[]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

2: begin

frDM.ADOQuerySearchCard.SQL.Text:='select Склад_Учет.id, Склад_Учет.СИЗ as Номер, Спецодежда.Название as СИЗ '+

'from Склад_Учет '+

'left join Спецодежда on Спецодежда.id=Склад_Учет.СИЗ '+

'where upper(Спецодежда.Название) like upper('+#39+Edit1.Text+'%'+#39+')'+

' order by '+s;

frDM.ADOQuerySearchCard.Active:=true;

frDM.ADOQuerySearchCard.First;

if frDM.ADOQuerySearchCard.FieldValues['СИЗ']<>Null then

begin

frDM.ADOQueryCard.Locate('СИЗ',frDM.ADOQuerySearchCard.FieldValues['СИЗ'],[loCaseInsensitive,loPartialKey]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

end;

end;

end.

unit uFindLichCard;

interface

uses

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

Dialogs, StdCtrls, Buttons, ExtCtrls, Mask, DBCtrlsEh, DB, ADODB;

type

TfrFindLichCard = class(TForm)

Panel1: TPanel;

RadioGroup1: TRadioGroup;

Label1: TLabel;

Edit1: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DBDateTimeEditEh1: TDBDateTimeEditEh;

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

procedure BitBtn2Click(Sender: TObject);

procedure RadioGroup1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure DBDateTimeEditEh1Change(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frFindLichCard: TfrFindLichCard;

implementation

uses uMain, DM;

{$R *.dfm}

procedure TfrFindLichCard.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

frMain.ToolButton5.Enabled:=true;

Action:=caFree;

end;

procedure TfrFindLichCard.BitBtn2Click(Sender: TObject);

begin

Close;

end;

procedure TfrFindLichCard.RadioGroup1Click(Sender: TObject);

begin

case RadioGroup1.ItemIndex of

0,2,3: begin

Edit1.Visible:=true;

DBDateTimeEditEh1.Visible:=false;

Edit1.Text:='';

Edit1.SetFocus;

end;

1:begin

Edit1.Visible:=false;

DBDateTimeEditEh1.Visible:=true;

DBDateTimeEditEh1.Text:=' . . ';

DBDateTimeEditEh1.SetFocus;

end;

end;

end;

procedure TfrFindLichCard.FormActivate(Sender: TObject);

begin

frMain.ToolButton5.Enabled:=false;

end;

procedure TfrFindLichCard.Edit1Change(Sender: TObject);

var s: String;

begin

s:=uMain.idx_lichcard;

frDM.ADOQuerySearchLichCard.Active:=false;

case RadioGroup1.ItemIndex of

0: begin

frDM.ADOQuerySearchLichCard.SQL.Text:='select Выдача.id, Выдача.Сотрудник as Таб_ном, Сотрудники.Фамилия, Выдача.Дата '+

'from Выдача '+

'left join Сотрудники on Сотрудники.id=Выдача.Сотрудник '+

'where Выдача.id like '+#39+Edit1.Text+'%'+#39+

' order by '+s;

frDM.ADOQuerySearchLichCard.Active:=true;

frDM.ADOQuerySearchLichCard.First;

if frDM.ADOQuerySearchLichCard.FieldValues['id']<>Null then

begin

frDM.ADOQueryLich.Locate('id',frDM.ADOQuerySearchLichCard.FieldValues['id'],[]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

2: begin

frDM.ADOQuerySearchLichCard.SQL.Text:='select Выдача.id, Выдача.Сотрудник as Таб_ном, Сотрудники.Фамилия, Выдача.Дата '+

'from Выдача '+

'left join Сотрудники on Сотрудники.id=Выдача.Сотрудник '+

'where Выдача.Сотрудник like '+#39+Edit1.Text+'%'+#39+

' order by '+s;

frDM.ADOQuerySearchLichCard.Active:=true;

frDM.ADOQuerySearchLichCard.First;

if frDM.ADOQuerySearchLichCard.FieldValues['Таб_ном']<>Null then

begin

frDM.ADOQueryLich.Locate('Таб_ном',frDM.ADOQuerySearchLichCard.FieldValues['Таб_ном'],[]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

end;

end;

3: begin

frDM.ADOQuerySearchLichCard.SQL.Text:='select Выдача.id, Выдача.Сотрудник as Таб_ном, Сотрудники.Фамилия, Выдача.Дата '+

'from Выдача '+

'left join Сотрудники on Сотрудники.id=Выдача.Сотрудник '+

'where upper(Сотрудники.Фамилия) like upper('+#39+Edit1.Text+'%'+#39+')'+

' order by '+s;

frDM.ADOQuerySearchLichCard.Active:=true;

frDM.ADOQuerySearchLichCard.First;

if frDM.ADOQuerySearchLichCard.FieldValues['Фамилия']<>Null then

begin

frDM.ADOQueryLich.Locate('Фамилия',frDM.ADOQuerySearchLichCard.FieldValues['Фамилия'],[loCaseInsensitive,loPartialKey]);

Edit1.Font.Color:=clBlack;

Edit1.Font.Style:=Edit1.Font.Style-[fsBold];

end

else

begin

Edit1.Font.Color:=clRed;

Edit1.Font.Style:=Edit1.Font.Style+[fsBold];

Рис. П2. 44. Текст модуля uFindLichCard.pas

П2.44. Продолжение

end;

end;

end;

end;

procedure TfrFindLichCard.DBDateTimeEditEh1Change(Sender: TObject);

var b: boolean;

s: String;

begin

if RadioGroup1.ItemIndex=1 then

begin

s:=uMain.idx_lichcard;

frDM.ADOQuerySearchLichCard.Active:=false;

b:=frDM.ADOQueryLich.Locate('Дата',DBDateTimeEditEh1.Text,[]);

frDM.ADOQuerySearchLichCard.SQL.Text:='select Выдача.id, Выдача.Сотрудник as Таб_ном, Сотрудники.Фамилия, Выдача.Дата '+

'from Выдача '+

'left join Сотрудники on Сотрудники.id=Выдача.Сотрудник '+

'where Выдача.Дата=to_date('+#39+DBDateTimeEditEh1.Text+#39+

','+#39+'dd.mm.yyyy'+#39+')'+

' order by '+s;

frDM.ADOQuerySearchLichCard.Active:=true;

frDM.ADOQuerySearchLichCard.First;

if b=false then

begin

DBDateTimeEditEh1.Font.Color:=clRed;

DBDateTimeEditEh1.Font.Style:=DBDateTimeEditEh1.Font.Style+[fsBold];

end

else

begin

DBDateTimeEditEh1.Font.Color:=clBlack;

DBDateTimeEditEh1.Font.Style:=DBDateTimeEditEh1.Font.Style-[fsBold];

end;

end;

end;

procedure TfrFindLichCard.BitBtn1Click(Sender: TObject);

var s: String;

kol: integer;

begin

if (Edit1.Text='')and(DBDateTimeEditEh1.Text=' . . ') then

MessageDlg('Введите строку для поиска', mtWarning,[mbOk],0)

else

with frDM.ADOQuerySearchLichCard do

if RecordCount=0 then MessageDlg('Искомых данных в базе нет',mtInformation,[mbOk],0)

else

if not EOF then

begin

next;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOQueryLich.Locate('id',s,[]);

next;

if not EOF then

prior;

end

else if MessageDlg('Поиск завершен. Начать сначала?',mtInformation,[mbYes,mbNo],0)=mrYes then

begin

frDM.ADOQuerySearchLichCard.First;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOQueryLich.Locate('id',s,[]);

end;

end;

end.

unit uFindReq;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrlsEh, Buttons;

type

TfrFindReq = class(TForm)

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Label1: TLabel;

DBDateTimeEditEh1: TDBDateTimeEditEh;

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

procedure BitBtn2Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure DBDateTimeEditEh1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frFindReq: TfrFindReq;

implementation

uses uMain, DM;

{$R *.dfm}

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

begin

frMain.ToolButton5.Enabled:=true;

Action:=caFree;

end;

procedure TfrFindReq.BitBtn2Click(Sender: TObject);

begin

Close;

end;

procedure TfrFindReq.FormActivate(Sender: TObject);

begin

frMain.ToolButton5.Enabled:=false;

end;

Рис. П2.45. Текст модуля uFindReq.pas

П2.45. Продолжение

procedure TfrFindReq.BitBtn1Click(Sender: TObject);

var s: String;

kol: integer;

begin

if DBDateTimeEditEh1.Text=' . . ' then

MessageDlg('Введите дату для поиска', mtWarning,[mbOk],0)

else

with frDM.ADOQuerySearchReq do

if RecordCount=0 then MessageDlg('Искомых данных в базе нет',mtInformation,[mbOk],0)

else

if not EOF then

begin

next;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOTableReq.Locate('id',s,[]);

next;

if not EOF then

prior;

end

else if MessageDlg('Поиск завершен. Начать сначала?',mtInformation,[mbYes,mbNo],0)=mrYes then

begin

frDM.ADOQuerySearchReq.First;

if FieldValues['id']<>Null then

s:=IntToStr(FieldValues['id']);

frDM.ADOTableReq.Locate('id',s,[]);

end;

end;

procedure TfrFindReq.DBDateTimeEditEh1Change(Sender: TObject);

begin

frDM.ADOQuerySearchReq.Active:=false;

if uMain.srt=false then

frDM.ADOQuerySearchReq.SQL.Text:='select * from Заявка where Дата=to_date('+#39+DBDateTimeEditEh1.Text+#39+

','+#39+'dd.mm.yyyy'+#39+') '+

'order by Дата desc'

else if uMain.srt=true then

frDM.ADOQuerySearchReq.SQL.Text:='select * from Заявка where Дата=to_date('+#39+DBDateTimeEditEh1.Text+#39+

','+#39+'dd.mm.yyyy'+#39+') '+

'order by Дата';

frDM.ADOQuerySearchReq.Active:=true;

frDM.ADOQuerySearchReq.First;

if frDM.ADOQuerySearchReq.FieldValues['id']<>Null

then begin

frDM.ADOTableReq.Locate('id',frDM.ADOQuerySearchReq.FieldValues['id'],[]);

DBDateTimeEditEh1.Font.Color:=clBlack;

DBDateTimeEditEh1.Font.Style:=DBDateTimeEditEh1.Font.Style-[fsBold];

end

else begin

DBDateTimeEditEh1.Font.Color:=clRed;

DBDateTimeEditEh1.Font.Style:=DBDateTimeEditEh1.Font.Style+[fsBold];

end;

end;

end.

unit uParamPrintEmp;

interface

uses

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

Dialogs, StdCtrls, Buttons, ExtCtrls, Mask, DBCtrlsEh;

type

TfrParamPrintEmp = class(TForm)

RadioGroup1: TRadioGroup;

Edit1: TEdit;

Edit2: TEdit;

ComboBox1: TComboBox;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

StaticText1: TStaticText;

StaticText2: TStaticText;

DBDateTimeEditEh1: TDBDateTimeEditEh;

DBDateTimeEditEh2: TDBDateTimeEditEh;

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

procedure FormActivate(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure RadioGroup1Click(Sender: TObject);

procedure CreateChildStP(const childName : string);

procedure CreateChildProf(const childName : string);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frParamPrintEmp: TfrParamPrintEmp;

implementation

uses uMain, uStP, uProf, DM, uRepEmp;

{$R *.dfm}

function frmRefresh(var instance; FormClass: Tformclass):boolean;

var index: integer;

begin

result:=false;

for index:=0 to pred(screen.formcount) do

if screen.forms[index] is formclass then

begin

tform(instance):=screen.Forms[index];

result:=true;

break;

end;

end;

procedure TfrParamPrintEmp.CreateChildStP(const childName : string);

Рис. П2.46. Текст модуля uParamPrintEmp.pas

П2.46. Продолжение

var Child: TfrStP;

begin

Child := TfrStP.Create(Application);

Child.Caption := childName;

end;

procedure TfrParamPrintEmp.CreateChildProf(const childName : string);

var Child: TfrProf;

begin

Child := TfrProf.Create(Application);

Child.Caption := childName;

end;

procedure TfrParamPrintEmp.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

frMain.ToolButton8.Enabled:=true;

Action:=caFree;

end;

procedure TfrParamPrintEmp.FormActivate(Sender: TObject);

begin

frMain.ToolButton8.Enabled:=false;

end;

procedure TfrParamPrintEmp.BitBtn4Click(Sender: TObject);

begin

Close;

end;

procedure TfrParamPrintEmp.RadioGroup1Click(Sender: TObject);

begin

case RadioGroup1.ItemIndex of

0: begin

ComboBox1.Enabled:=false;

DBDateTimeEditEh1.Enabled:=false;

DBDateTimeEditEh2.Enabled:=false;

BitBtn1.Enabled:=false;

BitBtn2.Enabled:=false;

Edit1.Text:='';

Edit2.Text:='';

ComboBox1.Text:='';

DBDateTimeEditEh1.Clear;

DBDateTimeEditEh2.Clear;

end;

1: begin

ComboBox1.Enabled:=false;

DBDateTimeEditEh1.Enabled:=false;

DBDateTimeEditEh2.Enabled:=false;

BitBtn1.Enabled:=false;

BitBtn2.Enabled:=false;

Edit1.Text:='';

Edit2.Text:='';

ComboBox1.Text:='';

DBDateTimeEditEh1.Clear;

DBDateTimeEditEh2.Clear;

end;

2: begin

ComboBox1.Enabled:=true;

DBDateTimeEditEh1.Enabled:=false;

DBDateTimeEditEh2.Enabled:=false;

BitBtn1.Enabled:=false;

BitBtn2.Enabled:=false;

Edit1.Text:='';

Edit2.Text:='';

DBDateTimeEditEh1.Clear;

DBDateTimeEditEh2.Clear;

end;

3: begin

ComboBox1.Enabled:=false;

DBDateTimeEditEh1.Enabled:=true;

DBDateTimeEditEh2.Enabled:=true;

BitBtn1.Enabled:=false;

BitBtn2.Enabled:=false;

Edit1.Text:='';

Edit2.Text:='';

ComboBox1.Text:='';

end;

4: begin

ComboBox1.Enabled:=false;

DBDateTimeEditEh1.Enabled:=false;

DBDateTimeEditEh2.Enabled:=false;

BitBtn1.Enabled:=true;

BitBtn2.Enabled:=false;

Edit2.Text:='';

ComboBox1.Text:='';

DBDateTimeEditEh1.Clear;

DBDateTimeEditEh2.Clear;

end;

5: begin

ComboBox1.Enabled:=false;

DBDateTimeEditEh1.Enabled:=false;

DBDateTimeEditEh2.Enabled:=false;

BitBtn1.Enabled:=false;

BitBtn2.Enabled:=true;

Edit1.Text:='';

ComboBox1.Text:='';

DBDateTimeEditEh1.Clear;

DBDateTimeEditEh2.Clear;

end;

end;

end;

procedure TfrParamPrintEmp.BitBtn1Click(Sender: TObject);

begin

CreateChildStP('Выбор подразделения');

if frmRefresh(frStP,TfrStP) then frStP.Tag:=151;

end;

procedure TfrParamPrintEmp.BitBtn2Click(Sender: TObject);

begin

CreateChildProf('Выбор должности');

if frmRefresh(frProf, TfrProf) then frProf.Tag:=152;

end;

procedure TfrParamPrintEmp.BitBtn3Click(Sender: TObject);

var s: String;

begin

case RadioGroup1.ItemIndex of

0: begin

frRepEmp.QuickRep1.DataSet:=frDM.ADOQueryEmp;

frRepEmp.QRDBText1.DataSet:=frDM.ADOQueryEmp;

frRepEmp.QRDBText1.DataField:='id';

frRepEmp.QRDBText2.DataSet:=frDM.ADOQueryEmp;

frRepEmp.QRDBText2.DataField:='Фамилия';

frRepEmp.QRDBText3.DataSet:=frDM.ADOQueryEmp;

frRepEmp.QRDBText3.DataField:='Имя';

frRepEmp.QRDBText4.DataSet:=frDM.ADOQueryEmp;

frRepEmp.QRDBText4.DataField:='Отчество';

frRepEmp.QRDBText5.DataSet:=frDM.ADOQueryEmp;

frRepEmp.QRDBText5.DataField:='Пол';

frRepEmp.QRDBText6.DataSet:=frDM.ADOQueryEmp;

frRepEmp.QRDBText6.DataField:='Дата_рожд';

frRepEmp.QRDBText7.DataSet:=frDM.ADOQueryEmp;

frRepEmp.QRDBText7.DataField:='Сокращение';

frRepEmp.QRDBText8.DataSet:=frDM.ADOQueryEmp;

frRepEmp.QRDBText8.DataField:='Название';

frRepEmp.QRDBText9.DataSet:=frDM.ADOQueryEmp;

frRepEmp.QRDBText9.DataField:='Раб_тел';

end;

1: begin

if frDM.ADOQueryEmp['id']<>Null then

s:=frDM.ADOQueryEmp['id'];

frDM.ADOQueryPrint.Active:=false;

frDM.ADOQueryPrint.SQL.Text:='select Сотрудники.id, Сотрудники.Фамилия, Сотрудники.Имя, '+

'Сотрудники.Отчество, Сотрудники.Пол,

Сотрудники.Дата_рожд, '+

'Подразделения.Сокращение,

П2.46. Продолжение

Должности.Название, Сотрудники.Раб_тел '+

'from Сотрудники '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'where Сотрудники.id='+s;

frDM.ADOQueryPrint.Active:=true;

frRepEmp.QuickRep1.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText1.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText1.DataField:='id';

frRepEmp.QRDBText2.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText2.DataField:='Фамилия';

frRepEmp.QRDBText3.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText3.DataField:='Имя';

frRepEmp.QRDBText4.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText4.DataField:='Отчество';

frRepEmp.QRDBText5.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText5.DataField:='Пол';

frRepEmp.QRDBText6.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText6.DataField:='Дата_рожд';

frRepEmp.QRDBText7.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText7.DataField:='Сокращение';

frRepEmp.QRDBText8.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText8.DataField:='Название';

frRepEmp.QRDBText9.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText9.DataField:='Раб_тел';

end;

2: begin

if ComboBox1.Text='' then

MessageDlg('Задайте пол',mtWarning,[mbOk],0)

else begin

if frDM.ADOQueryEmp['id']<>Null then

s:=frDM.ADOQueryEmp['id'];

frDM.ADOQueryPrint.Active:=false;

frDM.ADOQueryPrint.SQL.Text:='select Сотрудники.id, Сотрудники.Фамилия, Сотрудники.Имя, '+

'Сотрудники.Отчество, Сотрудники.Пол, Сотрудники.Дата_рожд, '+

'Подразделения.Сокращение, Должности.Название, Сотрудники.Раб_тел '+

'from Сотрудники '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'where Сотрудники.Пол='+#39+ComboBox1.Text+#39+

' order by Сотрудники.id';

frDM.ADOQueryPrint.Active:=true;

frRepEmp.QuickRep1.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText1.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText1.DataField:='id';

frRepEmp.QRDBText2.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText2.DataField:='Фамилия';

frRepEmp.QRDBText3.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText3.DataField:='Имя';

frRepEmp.QRDBText4.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText4.DataField:='Отчество';

frRepEmp.QRDBText5.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText5.DataField:='Пол';

frRepEmp.QRDBText6.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText6.DataField:='Дата_рожд';

frRepEmp.QRDBText7.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText7.DataField:='Сокращение';

frRepEmp.QRDBText8.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText8.DataField:='Название';

frRepEmp.QRDBText9.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText9.DataField:='Раб_тел';

end;

end;

3: begin

if (DBDateTimeEditEh1.Text=' . . ')or(DBDateTimeEditEh2.Text=' . . ') then

MessageDlg('Задайте дату',mtWarning,[mbOk],0)

else begin

if frDM.ADOQueryEmp['id']<>Null then

s:=frDM.ADOQueryEmp['id'];

frDM.ADOQueryPrint.Active:=false;

frDM.ADOQueryPrint.SQL.Text:='select Сотрудники.id, Сотрудники.Фамилия, Сотрудники.Имя, '+

'Сотрудники.Отчество, Сотрудники.Пол, Сотрудники.Дата_рожд, '+

'Подразделения.Сокращение, Должности.Название, Сотрудники.Раб_тел '+

'from Сотрудники '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'where Сотрудники.Дата_рожд between '+

'to_date('+#39+DBDateTimeEditEh1.Text+#39+','+#39+'DD/MM/YYYY'+#39+') and '+

'to_date('+#39+DBDateTimeEditEh2.Text+#39+','+#39+'DD/MM/YYYY'+#39+') '+

'order by Сотрудники.id';

frDM.ADOQueryPrint.Active:=true;

frRepEmp.QuickRep1.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText1.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText1.DataField:='id';

frRepEmp.QRDBText2.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText2.DataField:='Фамилия';

frRepEmp.QRDBText3.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText3.DataField:='Имя';

frRepEmp.QRDBText4.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText4.DataField:='Отчество';

frRepEmp.QRDBText5.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText5.DataField:='Пол';

frRepEmp.QRDBText6.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText6.DataField:='Дата_рожд';

frRepEmp.QRDBText7.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText7.DataField:='Сокращение';

frRepEmp.QRDBText8.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText8.DataField:='Название';

frRepEmp.QRDBText9.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText9.DataField:='Раб_тел';

end;

end;

4: begin

if Edit1.Text='' then

MessageDlg('Выберите подразделение',mtWarning,[mbOk],0)

else begin

if frDM.ADOQueryEmp['id']<>Null then

s:=frDM.ADOQueryEmp['id'];

frDM.ADOQueryPrint.Active:=false;

frDM.ADOQueryPrint.SQL.Text:='select Сотрудники.id, Сотрудники.Фамилия, Сотрудники.Имя, '+

'Сотрудники.Отчество, Сотрудники.Пол, Сотрудники.Дата_рожд, '+

'Подразделения.Сокращение, Должности.Название, Сотрудники.Раб_тел '+

'from Сотрудники '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'where Подразделения.Сокращение='+#39+Edit1.Text+#39+

' order by Сотрудники.id';

frDM.ADOQueryPrint.Active:=true;

frRepEmp.QuickRep1.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText1.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText1.DataField:='id';

frRepEmp.QRDBText2.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText2.DataField:='Фамилия';

frRepEmp.QRDBText3.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText3.DataField:='Имя';

frRepEmp.QRDBText4.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText4.DataField:='Отчество';

frRepEmp.QRDBText5.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText5.DataField:='Пол';

П2.46. Продолжение

frRepEmp.QRDBText6.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText6.DataField:='Дата_рожд';

frRepEmp.QRDBText7.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText7.DataField:='Сокращение';

frRepEmp.QRDBText8.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText8.DataField:='Название';

frRepEmp.QRDBText9.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText9.DataField:='Раб_тел';

end;

end;

5: begin

if Edit2.Text='' then

MessageDlg('Выберите должность',mtWarning,[mbOk],0)

else begin

if frDM.ADOQueryEmp['id']<>Null then

s:=frDM.ADOQueryEmp['id'];

frDM.ADOQueryPrint.Active:=false;

frDM.ADOQueryPrint.SQL.Text:='select Сотрудники.id, Сотрудники.Фамилия, Сотрудники.Имя, '+

'Сотрудники.Отчество, Сотрудники.Пол, Сотрудники.Дата_рожд, '+

'Подразделения.Сокращение, Должности.Название, Сотрудники.Раб_тел '+

'from Сотрудники '+

'left join Подразделения on Подразделения.id=Сотрудники.Подразделение '+

'left join Должности on Должности.id=Сотрудники.Должность '+

'where Должности.Название='+#39+Edit2.Text+#39+

' order by Сотрудники.id';

frDM.ADOQueryPrint.Active:=true;

frRepEmp.QuickRep1.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText1.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText1.DataField:='id';

frRepEmp.QRDBText2.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText2.DataField:='Фамилия';

frRepEmp.QRDBText3.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText3.DataField:='Имя';

frRepEmp.QRDBText4.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText4.DataField:='Отчество';

frRepEmp.QRDBText5.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText5.DataField:='Пол';

frRepEmp.QRDBText6.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText6.DataField:='Дата_рожд';

frRepEmp.QRDBText7.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText7.DataField:='Сокращение';

frRepEmp.QRDBText8.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText8.DataField:='Название';

frRepEmp.QRDBText9.DataSet:=frDM.ADOQueryPrint;

frRepEmp.QRDBText9.DataField:='Раб_тел';

end;

end;

end;

frRepEmp.QuickRep1.PreviewModal;

Close;

end;

end.

unit uRepEmp;

interface

uses

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

Dialogs, QRCtrls, QuickRpt, ExtCtrls;

type

TfrRepEmp = class(TForm)

QuickRep1: TQuickRep;

ColumnHeaderBand1: TQRBand;

DetailBand1: TQRBand;

PageFooterBand1: TQRBand;

PageHeaderBand1: TQRBand;

TitleBand1: TQRBand;

QRSysData1: TQRSysData;

QRSysData2: TQRSysData;

QRLabel1: TQRLabel;

QRShape1: TQRShape;

QRShape2: TQRShape;

QRShape3: TQRShape;

QRShape4: TQRShape;

QRShape5: TQRShape;

QRShape6: TQRShape;

QRShape7: TQRShape;

QRShape8: TQRShape;

QRShape9: TQRShape;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel4: TQRLabel;

QRLabel5: TQRLabel;

QRLabel6: TQRLabel;

QRLabel7: TQRLabel;

QRLabel8: TQRLabel;

QRLabel9: TQRLabel;

QRLabel10: TQRLabel;

QRLabel11: TQRLabel;

QRLabel12: TQRLabel;

QRShape10: TQRShape;

QRShape11: TQRShape;

QRShape12: TQRShape;

QRShape13: TQRShape;

QRShape14: TQRShape;

QRShape15: TQRShape;

QRShape16: TQRShape;

QRShape17: TQRShape;

QRShape18: TQRShape;

QRDBText1: TQRDBText;

QRDBText2: TQRDBText;

QRDBText3: TQRDBText;

QRDBText4: TQRDBText;

QRDBText5: TQRDBText;

QRDBText6: TQRDBText;

QRDBText7: TQRDBText;

QRDBText8: TQRDBText;

QRDBText9: TQRDBText;

private

{ Private declarations }

public

{ Public declarations }

end;

var

frRepEmp: TfrRepEmp;

implementation

uses DM, uParamPrintEmp;

{$R *.dfm}

end.

Рис. П2.47. Текст модуля uRepEmp.pas

unit uRepSiz;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, QRCtrls, QuickRpt, ExtCtrls;

type

TfrRepSiz = class(TForm)

QuickRep1: TQuickRep;

ColumnHeaderBand1: TQRBand;

DetailBand1: TQRBand;

PageFooterBand1: TQRBand;

PageHeaderBand1: TQRBand;

TitleBand1: TQRBand;

QRSysData1: TQRSysData;

QRSysData2: TQRSysData;

QRLabel1: TQRLabel;

QRShape1: TQRShape;

QRShape2: TQRShape;

QRShape3: TQRShape;

QRShape4: TQRShape;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRDBText1: TQRDBText;

QRDBText2: TQRDBText;

private

{ Private declarations }

public

{ Public declarations }

end;

var

frRepSiz: TfrRepSiz;

implementation

uses DM;

{$R *.dfm}

end.

Рис. П2.48. Текст модуля uRepSiz.pas

unit uRepStP;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, QRCtrls, QuickRpt, ExtCtrls;

type

TfrRepStP = class(TForm)

QuickRep1: TQuickRep;

ColumnHeaderBand1: TQRBand;

DetailBand1: TQRBand;

PageFooterBand1: TQRBand;

PageHeaderBand1: TQRBand;

TitleBand1: TQRBand;

QRSysData1: TQRSysData;

QRLabel1: TQRLabel;

QRSysData2: TQRSysData;

QRShape1: TQRShape;

QRShape2: TQRShape;

QRShape3: TQRShape;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel4: TQRLabel;

QRShape4: TQRShape;

QRShape5: TQRShape;

QRShape6: TQRShape;

QRDBText1: TQRDBText;

QRDBText2: TQRDBText;

QRDBText3: TQRDBText;

private

{ Private declarations }

public

{ Public declarations }

end;

var

frRepStP: TfrRepStP;

implementation

uses DM;

{$R *.dfm}

end.

Рис. П2.49. Текст модуля uRepStP.pas

unit uRepProf;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, QuickRpt, QRCtrls, ExtCtrls, QRExport;

type

TfrRepProf = class(TForm)

QuickRep1: TQuickRep;

ColumnHeaderBand1: TQRBand;

DetailBand1: TQRBand;

PageFooterBand1: TQRBand;

PageHeaderBand1: TQRBand;

TitleBand1: TQRBand;

QRSysData1: TQRSysData;

QRSysData2: TQRSysData;

QRLabel1: TQRLabel;

QRLabel2: TQRLabel;

QRSysData3: TQRSysData;

QRDBText1: TQRDBText;

QRLabel3: TQRLabel;

QRShape1: TQRShape;

QRShape2: TQRShape;

QRShape3: TQRShape;

QRShape4: TQRShape;

QRTextFilter1: TQRTextFilter;

QRCSVFilter1: TQRCSVFilter;

QRHTMLFilter1: TQRHTMLFilter;

private

{ Private declarations }

public

{ Public declarations }

end;

var

frRepProf: TfrRepProf;

implementation

uses DM, uMain;

{$R *.dfm}

end.

Рис. П2. 50. Текст модуля uRepProf.pas

unit uRepPost;

interface

uses

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

Dialogs, QRCtrls, QuickRpt, ExtCtrls;

type

TfrRepPost = class(TForm)

QuickRep1: TQuickRep;

ColumnHeaderBand1: TQRBand;

DetailBand1: TQRBand;

PageFooterBand1: TQRBand;

PageHeaderBand1: TQRBand;

TitleBand1: TQRBand;

QRSysData1: TQRSysData;

QRSysData2: TQRSysData;

QRLabel1: TQRLabel;

QRShape1: TQRShape;

QRShape2: TQRShape;

QRShape3: TQRShape;

QRShape4: TQRShape;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRDBText1: TQRDBText;

QRSysData3: TQRSysData;

private

{ Private declarations }

public

{ Public declarations }

end;

var

frRepPost: TfrRepPost;

implementation

uses DM;

{$R *.dfm}

end.

Рис. П2. 51. Текст модуля uRepPost.pas

unit uRepSup;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, QRCtrls, QuickRpt, ExtCtrls;

type

TfrRepSup = class(TForm)

QuickRep1: TQuickRep;

ColumnHeaderBand1: TQRBand;

DetailBand1: TQRBand;

PageFooterBand1: TQRBand;

PageHeaderBand1: TQRBand;

TitleBand1: TQRBand;

QRSysData1: TQRSysData;

QRSysData2: TQRSysData;

QRLabel1: TQRLabel;

QRShape1: TQRShape;

QRShape2: TQRShape;

QRShape3: TQRShape;

QRShape4: TQRShape;

QRShape5: TQRShape;

QRShape6: TQRShape;

QRShape7: TQRShape;

QRShape8: TQRShape;

QRShape9: TQRShape;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel4: TQRLabel;

QRLabel5: TQRLabel;

QRLabel6: TQRLabel;

QRDBText1: TQRDBText;

QRDBText2: TQRDBText;

QRDBText3: TQRDBText;

QRDBText4: TQRDBText;

QRShape10: TQRShape;

QRShape11: TQRShape;

QRSysData3: TQRSysData;

QRLabel7: TQRLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

frRepSup: TfrRepSup;

implementation

uses DM;

{$R *.dfm}

end.

Рис. П2.52. Текст модуля uRepSup.pas

unit uRepCrOrd;

interface

uses

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

Dialogs, QuickRpt, QRCtrls, ExtCtrls;

type

TfrRepCrOrd = class(TForm)

QuickRep1: TQuickRep;

DetailBand1: TQRBand;

PageHeaderBand1: TQRBand;

QRLabel1: TQRLabel;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel4: TQRLabel;

QRShape1: TQRShape;

QRShape2: TQRShape;

QRLabel5: TQRLabel;

QRShape3: TQRShape;

QRShape4: TQRShape;

QRLabel6: TQRLabel;

QRLabel7: TQRLabel;

QRLabel8: TQRLabel;

QRLabel9: TQRLabel;

QRLabel10: TQRLabel;

QRShape5: TQRShape;

Рис. П2.53. Текст модуля uRepCrOrd.pas

П2.53. Продолжение

QRLabel11: TQRLabel;

QRLabel12: TQRLabel;

QRLabel13: TQRLabel;

QRShape6: TQRShape;

QRShape7: TQRShape;

QRShape8: TQRShape;

QRShape9: TQRShape;

QRShape10: TQRShape;

QRShape11: TQRShape;

QRShape12: TQRShape;

QRShape13: TQRShape;

QRShape14: TQRShape;

QRShape15: TQRShape;

QRShape16: TQRShape;

QRShape17: TQRShape;

QRShape18: TQRShape;

QRShape19: TQRShape;

QRShape20: TQRShape;

QRLabel14: TQRLabel;

QRLabel15: TQRLabel;

QRLabel16: TQRLabel;

QRLabel17: TQRLabel;

QRLabel18: TQRLabel;

QRLabel19: TQRLabel;

QRLabel20: TQRLabel;

QRLabel21: TQRLabel;

QRLabel22: TQRLabel;

QRLabel23: TQRLabel;

QRLabel24: TQRLabel;

QRLabel25: TQRLabel;

QRLabel26: TQRLabel;

QRLabel27: TQRLabel;

QRLabel28: TQRLabel;

QRLabel29: TQRLabel;

QRLabel30: TQRLabel;

QRLabel31: TQRLabel;

QRLabel32: TQRLabel;

QRLabel33: TQRLabel;

QRLabel34: TQRLabel;

QRLabel35: TQRLabel;

QRShape21: TQRShape;

QRShape22: TQRShape;

QRShape23: TQRShape;

QRShape24: TQRShape;

QRShape25: TQRShape;

QRShape26: TQRShape;

QRShape27: TQRShape;

QRShape28: TQRShape;

QRShape29: TQRShape;

QRShape30: TQRShape;

QRShape31: TQRShape;

QRLabel36: TQRLabel;

QRLabel37: TQRLabel;

QRLabel38: TQRLabel;

QRLabel39: TQRLabel;

QRLabel40: TQRLabel;

QRDBText1: TQRDBText;

QRDBText2: TQRDBText;

QRDBText3: TQRDBText;

QRDBText4: TQRDBText;

QRDBText5: TQRDBText;

QRDBText6: TQRDBText;

PageFooterBand1: TQRBand;

QRLabel41: TQRLabel;

QRLabel42: TQRLabel;

QRShape32: TQRShape;

QRShape33: TQRShape;

QRShape34: TQRShape;

QRShape35: TQRShape;

QRShape36: TQRShape;

QRShape37: TQRShape;

QRLabel43: TQRLabel;

QRLabel44: TQRLabel;

QRLabel45: TQRLabel;

QRLabel46: TQRLabel;

QRLabel47: TQRLabel;

QRLabel48: TQRLabel;

QRSubDetail1: TQRSubDetail;

QRShape53: TQRShape;

QRShape54: TQRShape;

QRShape55: TQRShape;

QRShape56: TQRShape;

QRShape57: TQRShape;

QRShape58: TQRShape;

QRShape59: TQRShape;

QRShape60: TQRShape;

QRShape61: TQRShape;

QRShape62: TQRShape;

QRShape63: TQRShape;

QRShape64: TQRShape;

QRLabel85: TQRLabel;

QRLabel86: TQRLabel;

QRShape66: TQRShape;

QRDBText7: TQRDBText;

QRDBText8: TQRDBText;

QRDBText9: TQRDBText;

QRDBText10: TQRDBText;

QRDBText11: TQRDBText;

QRDBText12: TQRDBText;

QRDBText13: TQRDBText;

QRDBText14: TQRDBText;

QRDBText15: TQRDBText;

QRDBText16: TQRDBText;

QRDBText17: TQRDBText;

GroupHeaderBand1: TQRBand;

QRShape38: TQRShape;

QRLabel49: TQRLabel;

QRLabel50: TQRLabel;

QRLabel51: TQRLabel;

QRShape41: TQRShape;

QRShape44: TQRShape;

QRLabel52: TQRLabel;

QRShape47: TQRShape;

QRLabel65: TQRLabel;

QRLabel66: TQRLabel;

QRShape48: TQRShape;

QRLabel67: TQRLabel;

QRLabel68: TQRLabel;

QRLabel69: TQRLabel;

QRLabel70: TQRLabel;

QRShape49: TQRShape;

QRLabel73: TQRLabel;

QRLabel72: TQRLabel;

QRLabel71: TQRLabel;

QRShape50: TQRShape;

QRLabel74: TQRLabel;

QRLabel75: TQRLabel;

QRLabel76: TQRLabel;

QRLabel77: TQRLabel;

QRLabel80: TQRLabel;

QRLabel79: TQRLabel;

QRLabel78: TQRLabel;

QRShape52: TQRShape;

QRLabel84: TQRLabel;

QRLabel83: TQRLabel;

QRLabel81: TQRLabel;

QRLabel82: TQRLabel;

QRShape46: TQRShape;

QRLabel64: TQRLabel;

QRLabel63: TQRLabel;

QRShape45: TQRShape;

QRLabel62: TQRLabel;

QRLabel61: TQRLabel;

QRLabel60: TQRLabel;

QRShape43: TQRShape;

QRShape42: TQRShape;

QRLabel57: TQRLabel;

QRShape65: TQRShape;

QRLabel87: TQRLabel;

QRLabel54: TQRLabel;

QRShape40: TQRShape;

QRLabel56: TQRLabel;

П2.53. Продолжение

QRLabel55: TQRLabel;

QRShape39: TQRShape;

QRLabel53: TQRLabel;

QRShape51: TQRShape;

QRLabel58: TQRLabel;

QRLabel59: TQRLabel;

QRLabel88: TQRLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

frRepCrOrd: TfrRepCrOrd;

implementation

uses DM, uMain;

{$R *.dfm}

end.

unit uRepCard;

interface

uses

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

Dialogs, QuickRpt, QRCtrls, ExtCtrls;

type

TfrRepCard = class(TForm)

QuickRep1: TQuickRep;

PageHeaderBand1: TQRBand;

QRLabel1: TQRLabel;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

DetailBand1: TQRBand;

QRLabel4: TQRLabel;

QRLabel5: TQRLabel;

QRShape1: TQRShape;

QRDBText1: TQRDBText;

QRLabel10: TQRLabel;

QRLabel11: TQRLabel;

QRShape5: TQRShape;

QRLabel12: TQRLabel;

QRShape6: TQRShape;

QRShape2: TQRShape;

QRLabel6: TQRLabel;

QRShape3: TQRShape;

QRLabel8: TQRLabel;

QRShape4: TQRShape;

QRLabel9: TQRLabel;

QRLabel7: TQRLabel;

QRLabel14: TQRLabel;

QRShape7: TQRShape;

QRLabel15: TQRLabel;

QRShape8: TQRShape;

QRLabel16: TQRLabel;

QRShape9: TQRShape;

QRLabel17: TQRLabel;

QRShape10: TQRShape;

QRLabel18: TQRLabel;

QRShape11: TQRShape;

QRShape12: TQRShape;

QRShape13: TQRShape;

QRShape14: TQRShape;

QRLabel19: TQRLabel;

QRLabel20: TQRLabel;

QRLabel21: TQRLabel;

QRLabel22: TQRLabel;

QRShape15: TQRShape;

QRLabel23: TQRLabel;

QRLabel24: TQRLabel;

QRShape16: TQRShape;

QRLabel25: TQRLabel;

QRShape17: TQRShape;

QRLabel26: TQRLabel;

QRShape18: TQRShape;

QRLabel27: TQRLabel;

QRShape19: TQRShape;

QRLabel28: TQRLabel;

QRLabel29: TQRLabel;

QRShape20: TQRShape;

QRLabel30: TQRLabel;

QRLabel31: TQRLabel;

QRShape21: TQRShape;

QRLabel32: TQRLabel;

QRShape22: TQRShape;

QRShape23: TQRShape;

QRShape24: TQRShape;

QRShape25: TQRShape;

QRShape26: TQRShape;

QRShape27: TQRShape;

QRLabel33: TQRLabel;

QRLabel34: TQRLabel;

QRLabel35: TQRLabel;

QRShape28: TQRShape;

QRShape29: TQRShape;

QRShape30: TQRShape;

QRShape31: TQRShape;

QRShape32: TQRShape;

QRLabel36: TQRLabel;

QRDBText2: TQRDBText;

QRDBText3: TQRDBText;

QRDBText4: TQRDBText;

QRDBText5: TQRDBText;

QRDBText6: TQRDBText;

QRLabel13: TQRLabel;

QRShape33: TQRShape;

QRDBText7: TQRDBText;

QRSubDetail1: TQRSubDetail;

GroupHeaderBand1: TQRBand;

QRShape34: TQRShape;

QRShape35: TQRShape;

QRShape36: TQRShape;

QRShape37: TQRShape;

QRLabel37: TQRLabel;

QRLabel38: TQRLabel;

QRLabel39: TQRLabel;

QRLabel40: TQRLabel;

QRShape38: TQRShape;

QRLabel41: TQRLabel;

QRLabel42: TQRLabel;

QRShape39: TQRShape;

QRShape40: TQRShape;

QRShape41: TQRShape;

QRShape42: TQRShape;

QRLabel43: TQRLabel;

QRLabel44: TQRLabel;

QRLabel45: TQRLabel;

QRLabel46: TQRLabel;

QRShape43: TQRShape;

QRShape44: TQRShape;

QRShape45: TQRShape;

QRShape46: TQRShape;

QRShape47: TQRShape;

QRShape48: TQRShape;

Рис. П2.54. Текст модуля uRepCard.pas

П2.54. Продолжение

QRShape49: TQRShape;

QRShape50: TQRShape;

QRSysData1: TQRSysData;

QRDBText8: TQRDBText;

QRDBText9: TQRDBText;

QRDBText10: TQRDBText;

QRDBText11: TQRDBText;

QRDBText12: TQRDBText;

QRDBText13: TQRDBText;

PageFooterBand1: TQRBand;

QRLabel47: TQRLabel;

QRLabel48: TQRLabel;

QRShape51: TQRShape;

QRShape52: TQRShape;

QRLabel49: TQRLabel;

QRShape53: TQRShape;

QRLabel50: TQRLabel;

QRLabel51: TQRLabel;

QRShape54: TQRShape;

QRLabel52: TQRLabel;

QRLabel53: TQRLabel;

QRShape55: TQRShape;

QRShape56: TQRShape;

QRLabel54: TQRLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

frRepCard: TfrRepCard;

implementation

uses DM, uMain;

{$R *.dfm}

end.

unit uRepLichCard;

interface

uses

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

Dialogs, QuickRpt, ExtCtrls, QRCtrls;

type

TfrRepLichCard = class(TForm)

QuickRep1: TQuickRep;

DetailBand1: TQRBand;

QRLabel9: TQRLabel;

QRShape3: TQRShape;

QRLabel10: TQRLabel;

QRLabel11: TQRLabel;

QRShape4: TQRShape;

QRLabel12: TQRLabel;

QRLabel13: TQRLabel;

QRLabel14: TQRLabel;

QRLabel15: TQRLabel;

QRLabel16: TQRLabel;

QRLabel17: TQRLabel;

QRLabel18: TQRLabel;

QRShape5: TQRShape;

QRShape6: TQRShape;

QRShape7: TQRShape;

QRShape8: TQRShape;

QRShape9: TQRShape;

QRLabel19: TQRLabel;

QRShape10: TQRShape;

QRLabel20: TQRLabel;

QRShape11: TQRShape;

QRLabel21: TQRLabel;

QRShape12: TQRShape;

QRLabel22: TQRLabel;

QRShape13: TQRShape;

QRLabel23: TQRLabel;

QRLabel24: TQRLabel;

QRShape14: TQRShape;

QRShape15: TQRShape;

QRLabel25: TQRLabel;

QRShape16: TQRShape;

QRShape17: TQRShape;

QRLabel26: TQRLabel;

QRShape18: TQRShape;

QRLabel27: TQRLabel;

QRLabel28: TQRLabel;

QRShape19: TQRShape;

QRLabel29: TQRLabel;

QRShape20: TQRShape;

QRDBText1: TQRDBText;

QRDBText2: TQRDBText;

QRDBText3: TQRDBText;

QRDBText4: TQRDBText;

QRDBText5: TQRDBText;

QRDBText6: TQRDBText;

QRDBText7: TQRDBText;

QRDBText8: TQRDBText;

QRDBText9: TQRDBText;

QRDBText10: TQRDBText;

QRDBText11: TQRDBText;

QRDBText12: TQRDBText;

QRDBText13: TQRDBText;

QRDBText14: TQRDBText;

QRSubDetail1: TQRSubDetail;

GroupHeaderBand1: TQRBand;

QRShape21: TQRShape;

QRLabel31: TQRLabel;

QRLabel32: TQRLabel;

QRShape22: TQRShape;

QRLabel33: TQRLabel;

QRLabel34: TQRLabel;

QRShape23: TQRShape;

QRLabel35: TQRLabel;

QRLabel36: TQRLabel;

QRShape24: TQRShape;

QRLabel37: TQRLabel;

QRShape25: TQRShape;

QRLabel38: TQRLabel;

QRLabel39: TQRLabel;

QRShape26: TQRShape;

QRShape27: TQRShape;

QRShape28: TQRShape;

QRShape29: TQRShape;

QRShape30: TQRShape;

QRDBText15: TQRDBText;

QRDBText16: TQRDBText;

QRDBText17: TQRDBText;

QRDBText18: TQRDBText;

QRSubDetail2: TQRSubDetail;

GroupHeaderBand2: TQRBand;

QRLabel40: TQRLabel;

QRLabel41: TQRLabel;

QRShape31: TQRShape;

QRLabel42: TQRLabel;

QRLabel43: TQRLabel;

QRShape32: TQRShape;

QRLabel44: TQRLabel;

QRShape33: TQRShape;

Рис. П2.55. Текст модуля uRepLichCard.pas

П2.55. Продолжение

QRLabel45: TQRLabel;

QRLabel46: TQRLabel;

QRShape34: TQRShape;

QRShape35: TQRShape;

QRShape36: TQRShape;

QRShape37: TQRShape;

QRShape38: TQRShape;

QRShape39: TQRShape;

QRShape40: TQRShape;

QRLabel47: TQRLabel;

QRLabel48: TQRLabel;

QRLabel49: TQRLabel;

QRLabel50: TQRLabel;

QRLabel51: TQRLabel;

QRLabel52: TQRLabel;

QRLabel53: TQRLabel;

QRLabel54: TQRLabel;

QRLabel55: TQRLabel;

QRLabel56: TQRLabel;

QRLabel57: TQRLabel;

QRLabel58: TQRLabel;

QRShape41: TQRShape;

QRLabel59: TQRLabel;

QRLabel60: TQRLabel;

QRLabel61: TQRLabel;

QRShape42: TQRShape;

QRShape43: TQRShape;

QRLabel62: TQRLabel;

QRLabel63: TQRLabel;

QRShape44: TQRShape;

QRLabel66: TQRLabel;

QRShape45: TQRShape;

QRLabel67: TQRLabel;

QRLabel68: TQRLabel;

QRLabel69: TQRLabel;

QRLabel70: TQRLabel;

QRLabel71: TQRLabel;

QRLabel72: TQRLabel;

QRShape46: TQRShape;

QRShape47: TQRShape;

QRShape48: TQRShape;

QRShape49: TQRShape;

QRShape50: TQRShape;

QRShape51: TQRShape;

QRShape52: TQRShape;

QRShape53: TQRShape;

QRShape54: TQRShape;

QRShape55: TQRShape;

QRShape56: TQRShape;

QRShape57: TQRShape;

QRShape58: TQRShape;

QRDBText19: TQRDBText;

QRDBText20: TQRDBText;

QRDBText21: TQRDBText;

QRDBText22: TQRDBText;

QRDBText23: TQRDBText;

QRDBText24: TQRDBText;

QRDBText25: TQRDBText;

QRDBText26: TQRDBText;

QRDBText27: TQRDBText;

GroupFooterBand1: TQRBand;

QRLabel64: TQRLabel;

QRShape59: TQRShape;

QRLabel65: TQRLabel;

QRLabel73: TQRLabel;

QRLabel74: TQRLabel;

QRLabel75: TQRLabel;

QRShape60: TQRShape;

QRShape61: TQRShape;

QRLabel30: TQRLabel;

QRLabel1: TQRLabel;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel4: TQRLabel;

QRLabel7: TQRLabel;

QRShape2: TQRShape;

QRLabel8: TQRLabel;

QRLabel6: TQRLabel;

QRShape1: TQRShape;

QRLabel5: TQRLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

frRepLichCard: TfrRepLichCard;

implementation

uses DM, uMain;

{$R *.dfm}

end.

unit uRepRequest;

interface

uses

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

Dialogs, ExtCtrls, QuickRpt, QRCtrls;

type

TfrRepRequest = class(TForm)

QuickRep1: TQuickRep;

DetailBand1: TQRBand;

QRShape3: TQRShape;

QRLabel5: TQRLabel;

QRLabel4: TQRLabel;

QRLabel3: TQRLabel;

QRShape2: TQRShape;

QRShape1: TQRShape;

QRLabel1: TQRLabel;

QRShape4: TQRShape;

QRLabel2: TQRLabel;

QRLabel6: TQRLabel;

QRLabel7: TQRLabel;

QRLabel8: TQRLabel;

QRLabel9: TQRLabel;

QRShape5: TQRShape;

QRDBText1: TQRDBText;

QRSubDetail1: TQRSubDetail;

GroupHeaderBand1: TQRBand;

QRShape7: TQRShape;

QRShape8: TQRShape;

QRShape9: TQRShape;

QRShape10: TQRShape;

QRShape11: TQRShape;

QRShape12: TQRShape;

QRShape13: TQRShape;

QRLabel11: TQRLabel;

QRLabel12: TQRLabel;

QRLabel13: TQRLabel;

QRLabel14: TQRLabel;

QRLabel15: TQRLabel;

QRLabel16: TQRLabel;

QRLabel17: TQRLabel;

QRLabel18: TQRLabel;

Рис. П2.56. Текст модуля uRepRequest.pas

П2.56. Продолжение

QRLabel19: TQRLabel;

QRShape14: TQRShape;

QRShape16: TQRShape;

QRShape17: TQRShape;

QRShape18: TQRShape;

QRShape19: TQRShape;

QRShape20: TQRShape;

QRDBText2: TQRDBText;

QRDBText3: TQRDBText;

QRDBText4: TQRDBText;

QRDBText5: TQRDBText;

QRDBText6: TQRDBText;

QRDBText7: TQRDBText;

PageFooterBand1: TQRBand;

QRLabel20: TQRLabel;

QRLabel21: TQRLabel;

QRShape21: TQRShape;

QRShape22: TQRShape;

private

{ Private declarations }

public

{ Public declarations }

end;

var

frRepRequest: TfrRepRequest;

implementation

{$R *.dfm}

end.

unit DM;

interface

uses SysUtils, Classes, DB, ADODB, Variants;

type

TfrDM = class(TDataModule)

ADOTableStP: TADOTable;

DataSourceStP: TDataSource;

ADOTableStPID: TBCDField;

ADOTableStPDSDesigner: TStringField;

ADOTableStPDSDesigner2: TStringField;

ADOConnect: TADOConnection;

ADOTableProf: TADOTable;

DataSourceProf: TDataSource;

ADOTableProfID: TBCDField;

ADOTableProfDSDesigner: TStringField;

ADOTableSiz: TADOTable;

DataSourceSiz: TDataSource;

ADOTablePost: TADOTable;

DataSourcePost: TDataSource;

ADOTablePostID: TBCDField;

ADOTablePostDSDesigner: TStringField;

DataSourceNormSiz: TDataSource;

ADOQueryNormProf: TADOQuery;

DataSourceNormProf: TDataSource;

ADOQueryNormSiz: TADOQuery;

ADOTableSizID: TStringField;

ADOTableSizDSDesigner: TStringField;

ADOQueryNormSizp4: TStringField;

ADOQueryNormSizp5: TStringField;

ADOQueryNormSizp7: TStringField;

ADOQueryNormSizField: TStringField;

ADOQueryNormSizp11: TStringField;

ADOQueryNormSizp6: TFloatField;

ADOQueryNormSizp8: TFloatField;

ADOQueryNormSizp9: TStringField;

ADOQueryNormProfField: TStringField;

ADOQueryCheck: TADOQuery;

ADOQueryAddNorm: TADOQuery;

ADOTableNorm: TADOTable;

ADOTableNormID: TBCDField;

ADOTableNormDSDesigner: TBCDField;

ADOTableNormDSDesigner2: TBCDField;

ADOTableNormDSDesigner3: TStringField;

ADOTableNormDSDesigner4: TStringField;

ADOTableNormDSDesigner5: TBCDField;

ADOTableNorm_: TStringField;

ADOTableNormDSDesigner6: TBCDField;

ADOTableNorm_2: TStringField;

ADOTableNormDSDesigner7: TBCDField;

ADOTableNormDSDesigner8: TStringField;

ADOQueryEmp: TADOQuery;

DataSourceEmp: TDataSource;

ADOQueryEmpField: TStringField;

ADOQueryEmpp3: TStringField;

ADOQueryEmpField2: TStringField;

ADOQueryEmpField3: TStringField;

ADOQueryEmpField4: TDateField;

ADOQueryEmpField5: TStringField;

ADOQueryEmpField6: TStringField;

ADOQueryEmpid: TBCDField;

ADOQueryEmp_: TBCDField;

ADOTableEmp: TADOTable;

ADOTableEmpID: TBCDField;

ADOTableEmpDSDesigner: TStringField;

ADOTableEmpDSDesigner2: TStringField;

ADOTableEmpDSDesigner3: TStringField;

ADOTableEmpDSDesigner4: TStringField;

ADOTableEmp_: TDateTimeField;

ADOTableEmpDSDesigner5: TBCDField;

ADOTableEmpDSDesigner6: TBCDField;

ADOTableEmp_2: TBCDField;

ADOTableCity: TADOTable;

DataSourceCity: TDataSource;

ADOTableCityID: TBCDField;

ADOTableCityDSDesigner: TStringField;

ADOQuerySup: TADOQuery;

DataSourceSup: TDataSource;

ADOQuerySupField: TStringField;

ADOQuerySupField2: TStringField;

ADOQuerySupField4: TStringField;

ADOQuerySupField3: TBCDField;

ADOTableSup: TADOTable;

ADOTableSupID: TBCDField;

ADOTableSupDSDesigner: TStringField;

ADOTableSupDSDesigner2: TBCDField;

ADOTableSupDSDesigner3: TBCDField;

ADOTableSupDSDesigner4: TStringField;

ADOQueryCrOrd: TADOQuery;

DataSourceCrOrd: TDataSource;

ADOTableCrOrd: TADOTable;

ADOTableCrOrdID: TBCDField;

ADOTableCrOrdDSDesigner: TDateTimeField;

ADOTableCrOrdDSDesigner2: TBCDField;

ADOTableCrOrd_: TStringField;

ADOTableCrOrd_2: TStringField;

ADOTableCrOrd_3: TStringField;

ADOQueryCrOrdid: TBCDField;

ADOQueryCrOrdField: TDateField;

ADOQueryCrOrdField2: TStringField;

ADOQueryTabCr: TADOQuery;

DataSourceTabCr: TDataSource;

ADOTableTabCr: TADOTable;

ADOTableTabCrID: TBCDField;

ADOTableTabCrDSDesigner: TStringField;

ADOTableTabCrDSDesigner2: TStringField;

ADOTableTabCr_2: TBCDField;

Рис. П2.57. Текст модуля DM.pas

П2.57. Продолжение

ADOTableTabCr_3: TBCDField;

ADOTableTabCrDSDesigner4: TBCDField;

ADOTableTabCr_4: TBCDField;

ADOTableTabCrDSDesigner5: TBCDField;

ADOTableTabCr_5: TBCDField;

ADOTableTabCr__: TBCDField;

ADOTableTabCrDSDesigner6: TBCDField;

ADOQueryTabCrField: TStringField;

ADOQueryTabCrField3: TStringField;

ADOQueryTabCr_: TStringField;

ADOQueryTabCr_2: TBCDField;

ADOQueryTabCr_3: TBCDField;

ADOQueryTabCr_4: TCurrencyField;

ADOQueryTabCrField5: TCurrencyField;

ADOQueryTabCr_5: TCurrencyField;

ADOQueryTabCr__: TBCDField;

ADOTableTabCr_: TStringField;

ADOQueryTabCrField2: TStringField;

ADOQueryTabCrField4: TCurrencyField;

ADOTableCrOrdDSDesigner3: TBCDField;

ADOQueryCrOrdid2: TBCDField;

ADOQueryTabCrid: TBCDField;

ADOQueryTabCrField6: TBCDField;

ADOQueryCard: TADOQuery;

ADOTableCard: TADOTable;

DataSourceCard: TDataSource;

ADOQueryCardid: TBCDField;

ADOQueryCardField: TStringField;

ADOQueryCardField2: TStringField;

ADOQueryCardField3: TStringField;

ADOQueryCardField4: TBCDField;

ADOTableCardID: TBCDField;

ADOTableCardDSDesigner: TStringField;

ADOTableCard_: TStringField;

ADOTableCardDSDesigner2: TBCDField; ADOTableCardDSDesigner3: TStringField;

ADOQueryTabCard: TADOQuery;

ADOTableTabCard: TADOTable;

DataSourceTabCard: TDataSource;

ADOTableTabCardID: TBCDField;

ADOTableTabCardDSDesigner: TDateTimeField;

ADOTableTabCard_: TStringField;

ADOTableTabCardDSDesigner2: TStringField;

ADOTableTabCardDSDesigner3: TBCDField;

ADOTableTabCardDSDesigner4: TBCDField;

ADOTableTabCardDSDesigner5: TBCDField;

ADOTableTabCardDSDesigner6: TBCDField;

ADOQueryTabCardid: TBCDField;

ADOQueryTabCardField: TDateField;

ADOQueryTabCard_: TStringField;

ADOQueryTabCardField2: TStringField;

ADOQueryTabCardField3: TBCDField;

ADOQueryTabCardField4: TBCDField;

ADOQueryTabCardField5: TBCDField;

ADOQueryTabCardField6: TBCDField;

ADOQueryTab: TADOQuery;

ADOQueryProv: TADOQuery;

ADOTableProv: TADOTable;

DataSourceProv: TDataSource;

ADOTableProvID: TBCDField;

ADOTableProv_: TStringField;

ADOTableProvDSDesigner: TDateTimeField;

ADOTableProvDSDesigner2: TStringField;

ADOTableProvDSDesigner3: TStringField;

ADOTableProvDSDesigner4: TStringField;

ADOTableProv__: TBCDField;

ADOTableProv_2: TStringField;

ADOTableProvDSDesigner5: TBCDField;

ADOTableProvDSDesigner6: TBCDField;

ADOTableProvDSDesigner7: TBCDField;

ADOTableProvDSDesigner8: TStringField;

ADOQueryProvid: TBCDField;

ADOQueryProv_: TStringField;

ADOQueryProvField: TDateField;

ADOQueryProvField2: TStringField;

ADOQueryProvField3: TStringField;

ADOQueryProvField4: TStringField;

ADOQueryProvField5: TStringField;

ADOQueryProvField6: TStringField;

ADOQueryProv__: TBCDField;

ADOQueryProv_2: TStringField;

ADOQueryProvField7: TBCDField;

ADOQueryProvField8: TCurrencyField;

ADOQueryProvField9: TCurrencyField;

ADOQueryLich: TADOQuery;

ADOTableLich: TADOTable;

ADOTableLichID: TBCDField;

ADOTableLichDSDesigner: TBCDField;

ADOTableLich_: TDateTimeField;

ADOTableLich_2: TDateTimeField;

ADOTableLich_3: TStringField;

ADOTableLich_4: TBCDField;

ADOTableLich_5: TBCDField;

DataSourceLich: TDataSource;

ADOQueryLichid: TBCDField;

ADOQueryLich_: TBCDField;

ADOQueryLichField: TStringField;

ADOQueryLichField2: TStringField;

ADOQueryLichField3: TStringField;

ADOQueryLichField4: TStringField;

ADOQueryLichField5: TStringField;

ADOQueryLichField6: TStringField;

ADOQueryLich_2: TDateField;

ADOQueryLich_3: TDateField;

ADOQueryLich_4: TStringField;

ADOQueryLich_5: TBCDField;

ADOQueryLich_6: TBCDField;

ADOQueryLichField7: TBCDField;

ADOTableLichDSDesigner2: TBCDField;

ADOQueryLichField8: TDateField;

ADOTableLichDSDesigner3: TDateTimeField;

ADOTableCardDSDesigner4: TBCDField;

ADOTableTabLich: TADOTable;

ADOQueryTabLich: TADOQuery;

DataSourceTabLich: TDataSource;

ADOTableCardDSDesigner5: TBCDField;

ADOQueryCardField5: TCurrencyField;

ADOQueryCardField6: TBCDField;

ADOQueryCard_: TStringField;

ADOTableTabCardDSDesigner7: TBCDField;

ADOTableProvDSDesigner9: TBCDField;

ADOQueryTabLichid: TBCDField;

ADOQueryTabLichField: TStringField;

ADOQueryTabLichField2: TStringField;

ADOQueryTabLich_: TDateField;

ADOQueryTabLich_2: TBCDField;

ADOQueryTabLich_3: TBCDField;

ADOQueryTabLich_4: TDateField;

ADOQueryTabLich_5: TBCDField;

ADOQueryTabLich_6: TBCDField;

ADOQueryTabLichField4: TBCDField;

ADOQueryTabLich__: TBCDField;

ADOTableTabLichID: TBCDField;

ADOTableTabLichDSDesigner: TBCDField;

ADOTableTabLich_: TDateTimeField;

ADOTableTabLich_2: TBCDField;

ADOTableTabLich_3: TBCDField;

ADOTableTabLichDSDesigner2: TBCDField;

ADOTableTabLich_4: TDateTimeField;

ADOTableTabLich_5: TBCDField;

ADOTableTabLich_6: TBCDField;

ADOTableTabLichDSDesigner3: TBCDField;

ADOQuerySearchProf: TADOQuery;

ADOQuerySearchStP: TADOQuery;

ADOQuerySearchPost: TADOQuery;

ADOQuerySearchSiz: TADOQuery;

ADOQuerySearchEmp: TADOQuery;

ADOQuerySearchCity: TADOQuery;

ADOQuerySearchSup: TADOQuery;

ADOQuerySupid: TBCDField;

ADOQuerySearchCrOrd: TADOQuery;

ADOQuerySearchCard: TADOQuery;

П2.57. Продолжение

ADOQuerySearchLichCard: TADOQuery;

ADOQueryPrint: TADOQuery;

ADOQueryPrintTab: TADOQuery;

ADOTableReq: TADOTable;

ADOTableReqID: TBCDField;

ADOTableReqDSDesigner: TDateTimeField;

ADOTableReqDSDesigner2: TStringField;

DataSourceReq: TDataSource;

ADOTableTabReq: TADOTable;

DataSourceTabReq: TDataSource;

ADOQueryTabReq: TADOQuery;

ADOTableTabReqID: TBCDField;

ADOTableTabReqDSDesigner: TBCDField;

ADOTableTabReqDSDesigner2: TBCDField;

ADOQueryTabReqid: TBCDField;

ADOQueryTabReq__: TBCDField;

ADOQueryTabReqField: TStringField;

ADOQueryTabReqField2: TStringField;

ADOQueryTabReq_: TStringField;

ADOQueryTabReqField4: TBCDField;

ADOQueryTabReqField5: TBCDField;

ADOQueryTabReqField3: TStringField;

ADOTableTabReqDSDesigner3: TBCDField;

ADOQuerySearchReq: TADOQuery;

ADOQuerySearchTabCr: TADOQuery;

ADOQueryTabLichField3: TCurrencyField;

private

{ Private declarations }

public

{ Public declarations }

end;

var

frDM: TfrDM;

implementation

uses uFindStP;

{$R *.dfm}

end.