- •Выпускная квалификационная работа
- •Аннотация
- •Оглавление
- •Введение
- •1 Основная часть
- •1. 1 Сравнительный анализ отечественных и зарубежных аналогов проектируемого объекта
- •1.2 Выбор технологии, среды и языка программирования
- •1.2.1 Выбор модели жизненного цикла
- •1.2.2 Выбор технологии проектирования
- •1.2.3 Выбор case-средств
- •1.2.4 Выбор технологии программирования
- •1.2.5 Выбор среды и языка разработки
- •1.3. Анализ и уточнение требований к программному обеспечению
- •1.4. Разработка спецификаций программного обеспечения
- •1.4.1 Построение диаграмм потоков данных
- •1.4.2 Проектирование структур данных и построение диаграмм отношений компонентов данных
- •1.4.3 Построение диаграмм переходов состояний
- •1.5 Проектирование программного обеспечения
- •1.5.1 Построение структуры программного обеспечения
- •1.5.2 Разработка функциональной схемы
- •1.5.3 Разработка модульной структуры программного обеспечения
- •1.5.4 Спецификации программных модулей
- •1.6 Проектирование интерфейса пользователя
- •1.6.1 Построение графа диалога
- •1.6.2 Разработка форм ввода-вывода информации
- •1.7.4 Требования к программной документации
- •1.7.5 Состав и порядок испытаний
- •1.7.6 Методы испытаний
- •1.7.7 Результаты проведения испытаний
- •2 Технико-экономическое обоснование разработки
- •2.1 Расчет себестоимости программного продукта
- •2.2 Расчет цены программного продукта
- •2.3 Расчет экономической эффективности
- •3 Анализ мероприятий по безопасности жизнедеятельности и обеспечению экологической чистоты
- •3.1 Анализ мероприятий по безопасности жизнедеятельности
- •3.1.1 Общая характеристика безопасности производственного процесса
- •3.1.2 Анализ вредных производственных факторов и мероприятия по их снижению
- •3.1.3 Анализ опасных производственных факторов и мероприятия по их снижению
- •3.1.4 Оценка электробезопасности помещения и мероприятия по повышению электробезопасности
- •3.1.5 Оценка помещения по пожарной безопасности и мероприятия по повышению пожарной безопасности
- •3.1.6 Анализ неполадок и аварийных ситуаций
- •3.2 Анализ мероприятий по обеспечению экологической чистоты
- •Заключение
- •Список литературы
- •Приложение 1
- •Приложение 2
- •Приложение 3
- •Приложение 4
Приложение 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.