Клиентское программное обеспечение автоматизации рабочего места

Разработка программного приложения для автоматизации рабочего места кладовщика на центральном складе предприятия. Решение задачи создания клиент-серверной архитектуры базы данных в среде программирования Delphi 7 и Interbase для "Windows 9X(NT)".

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 19.06.2012
Размер файла 1,8 M

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

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

Помещения с электрооборудованием должны быть оснащены огнетушителями типа ОУ-2 или ОУБ-3. программа автоматизация сервер

4.1.5 Требования безопасности по окончании работы

После окончания работы необходимо обесточить все средства вычислительной техники и периферийное оборудование. В случае непрерывного производственного процесса необходимо оставить включенными только необходимое оборудование.

4.2 Инструкция по технике безопасности при работе на

компьютере

4.2.1 Введение

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

Настоящая инструкция подлежит обязательному и безусловному выполнению. За нарушение инструкции виновные несут ответственность в административном и судебном порядке в зависимости от характера последствий нарушения.

Соблюдение правил безопасной работы является необходимым условием предупреждения производственного травматизма.

4.2.2 Общие положения

Область распространения и порядок применения инструкции:

Настоящая инструкция распространяется на персонал, эсплуатирующий средства вычислительной техники и периферийное оборудование. Инструкция содержит общие указания по безопасному применению электрооборудования в учреждении. Требования настоящей инструкции являются обязательными, отступления от нее не допускаются.

Требования к персоналу, эксплуатирующему средства вычислительной техники и периферийное оборудование:

К самостоятельной эксплуатации электроаппаратуры допускается только специально обученный персонал не моложе 18 лет, пригодный по состоянию здоровья и квалификации к выполнению указанных работ.

Перед допуском к работе персонал должен пройти вводный и первичный инструктаж по технике безопасности с показом безопасных и рациональных приемов работы. Затем не реже одного раза в 6 мес. проводится повторный инструктаж, возможно, с группой сотрудников одинаковой профессии в составе не более 20 человек. Внеплановый инструктаж проводится при изменении правил по охране труда, при обнаружении нарушений персоналом инструкции по технике безопасности, изменении характера работы персонала.

В помещениях, в которых постоянно эксплуатируется электрооборудование должны быть вывешены в доступном для персонала месте Инструкции по технике безопасности, в которых также должны быть определены действия персонала в случае возникновения аварий, пожаров, электротравм.

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

4.2.3 Виды опасных и вредных факторов

Эксплуатирующий средства вычислительной техники и периферийное оборудование персонал может подвергаться опасным и вредным воздействия, которые по природе действия подразделяются на следующие группы:

1. поражение электрическим током,

2. механические повреждения

3. электромагнитное излучение

4. инфракрасное излучение

5. опасность пожара

6. повышенный уровень шума и вибрации

Для снижения или предотвращения влияния опасных и вредных факторов необходимо соблюдать . Санитарные правила и нормы. гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организации работы

4.2.4 Требования электробезопасности

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

Во избежание поражения электрическим током необходимо твердо знать и выполнять следующие правила безопасного пользования электроэнергией:

1. Необходимо постоянно следить на своем рабочем месте за исправным состоянием электропроводки, выключателей, штепсельных розеток, при помощи которых оборудование включается в сеть, и заземления. При обнаружении неисправности немедленно обесточить электрооборудование, оповестить администрацию. Продолжение работы возможно только после устранения неисправности.

2. Во избежание повреждения изоляции проводов и возникновения коротких замыканий не разрешается:

а) вешать что-либо на провода;

б) закрашивать и белить шнуры и провода;

в) закладывать провода и шнуры за газовые и водопроводные трубы, за батареи отопительной системы;

г) выдергивать штепсельную вилку из розетки за шнур, усилие должно быть приложено к корпусу вилки.

3. Для исключения поражения электрическим током запрещается:

а) часто включать и выключать компьютер без необходимости;

б) прикасаться к экрану и к тыльной стороне блоков компьютера;

в) работать на средствах вычислительной техники и периферийном оборудовании мокрыми руками;

г) работать на средствах вычислительной техники и периферийном оборудовании, имеющих нарушения целостности корпуса, нарушения изоляции проводов, неисправную индикацию включения питания, с признаками электрического напряжения на корпусе

д) класть на средства вычислительной техники и периферийном оборудовании посторонние предметы.

3. Запрещается под напряжением очищать от пыли и загрязнения электроооборудование.

4. Запрещается проверять работоспособность электрооборудования в неприспособленных для эксплуатации помещениях с токопроводящими полами, сырых, не позволяющих заземлить доступные металлические части.

5. Ремонт электроаппаратуры производится только специалистами-техниками с соблюдением необходимых технических требований.

6. Недопустимо под напряжением проводить ремонт средств вычислительной техники и перифейного оборудования.

7. Во избежание поражения электрическим током, при пользовании электроприборами нельзя касаться одновременно каких-либо трубопроводов, батарей отопления, металлических конструкций , соединенных с землей.

8. При пользовании элетроэнергией в сырых помещениях соблюдать особую осторожность.

9. При обнаружении оборвавшегося провода необходимо немедленно сообщить об этом администрации, принять меры по исключению контакта с ним людей. Прикосновение к проводу опасно для жизни.

10. Спасение пострадавшего при поражении электрическим током главным образом зависит от быстроты освобождения его от действия током.

Во всех случаях поражения человека электрическим током немедленно вызывают врача. До прибытия врача нужно, не теряя времени, приступить к оказанию первой помощи пострадавшему.

Необходимо немедленно начать производить искусственное дыхание, наиболее эффективным из которых является метод рот в рот или рот в нос, а также наружный массаж сердца.

Искусственное дыхание пораженному электрическим током производится вплоть до прибытия врача.

4.2.5 Требования по обеспечению пожарной безопасности

На рабочем месте запрещается иметь огнеопасные вещества

В помещениях запрещается:

а) зажигать огонь;

б) включать электрооборудование, если в помещении пахнет газом;

в) курить;

г) сушить что-либо на отопительных приборах;

д) закрывать вентиляционные отверстия в электроаппаратуре

Источниками воспламенения являются:

а) искра при разряде статического электричества

б) искры от электроборудования

в) искры от удара и трения

г) открытое пламя

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

Помещения с электрооборудованием должны быть оснащены огнетушителями типа ОУ-2 или ОУБ-3.

ЗАКЛЮЧЕНИЕ

Целью данной дипломной работы являлась разработка программного приложения для автоматизации рабочего места кладовщика на центральном складе предприятия АО «КЭМОНТ». Решение поставленных задач в ходе его проектирования и реализации позволило достичь поставленных результатов с минимальными затратами материальных ресурсов, точную оценку экономической эффективности и затрат на реализацию программного продукта определить не является возможным, так как цифры в расчетах взяты по среднестатистическим данным в данном регионе.

В данном проекте используется удовлетворяющая всем условиям поставленной задачи клиент-серверная архитектура баз данных. Клиентская часть созданного программного продукта разработана в среде программирования Delphi 7 и Interbase для “Windows 9X(NT)”.

В программном приложении реализованы все требуемые, для удобной работы с базой данных, функции программного обеспечения: ввод, вывод, редактирование, поиск, создание сводной ведомости, подготовка выходных документов и отчетов с возможностью их предварительного просмотра.

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

СПИСОК ЛИТЕРАТУРЫ

1. Блюдина Л.С. «Проектирование баз данных в среде Delphi»- Ульяновск, 2001

2. Вирт Н. Алгоритмы и структуры данных / Пер. с англ. -- М.: Мир, 1989. - 360 с., ил.

3. Гринзоу Лу. Философия программирования для Windows 95/NT / Пер. с англ. -- СПб.: Символ-Плюс, 1997. -- 640 с., ил.

4. Зелковиц М., Шоу А., Гэннон Дж. Принципы разработки программного обеспечения / Пер. с англ. -- М.: Мир, 1982. -- 386 с., ил.

5. Практическое руководство по программированию / Пер. с англ. Б. Мик, П. Хит, Н. Рашби и др.; под ред. Б. Мика, П. Хит, Н. Рашби. -- М.: Радио и связь, 1986. -- 168 с., ил.

6. С. И. Бобровский. Delphi 7. Учебный курс «Описание системы и языка программирования Delphi»- :Питер, 2004

7. Семенова И.И «Разработка клиент-серверных приложений в Microsoft SQL SERVER 2000 и Borland Delphi 2007», учебно-методическое пособие- Омск, 2007

8. Справочное пособие «Borland Delphi или о том, что лучше один раз увидеть, чем сто раз услышать.», 2008

9. Фаронов В. «Программирование баз данных в Delphi 7-Реализация современных технологий баз данных средствами Delphi», -Москва :«Питер» учебный курс, 2006

10. Фокс Дж. Программное обеспечение и его разработка / Пер. с англ. -- М.: Мир, 1985. - 368 с., ил.

11. Шкрыль Андрей «Разработка клиент-серверных приложений в Delphi+видеокурс»-«Питер» 2006

12. Язык компьютера. Пер. с англ, под ред. и с предисл. В. М. Курочки-на. -- М.: Мир, 1989. ~ 240 с., ил.

13. http://forum.xaker.ru

14. http://www.Brain2life.com

15. http://www.cyberforum.ru

16. http://www.delphimaster.ru

17. http://www.forum.vingrad.ru

18. http://www.mydelphi.info

19. http://www.pblog.ru/lab/

20. http://www.programmersforum.ru

21. http://www.samouchka.net

Приложение

unit UMain;

interface

uses

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

Dialogs, Menus, XPMan, ExtCtrls, ComCtrls, StdCtrls,shellapi;

type

TMAIN = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

XPManifest1: TXPManifest;

Timer1: TTimer;

N16: TMenuItem;

GroupBox1: TGroupBox;

PB: TProgressBar;

N17: TMenuItem;

Image1: TImage;

Timer2: TTimer;

procedure N8Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Timer2Timer(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

MAIN: TMAIN;

s,ss:string;l:integer;

implementation

uses UDM, UBASE, UDETAL, UINS_DET, UREP_INS, UREPORT, USET,Upoisk, UOPROG,

UAUTOR;

{$R *.dfm}

procedure TMAIN.N8Click(Sender: TObject);

begin

//BASE:=TBASE.Create(SELF);

BASE.IBQuery1.Open;

//BASE.IBQuery4.Open;

//BASE.IBQuery7.Open;

BASE.IBTable1.Active:=TRUE;

BASE.IBTable2.Active:=TRUE;

BASE.BitBtn7.Visible:=TRUE;

BASE.BitBtn8.Visible:=FALSE; BASE.ShowModal;

end;

procedure TMAIN.N3Click(Sender: TObject);

var

s,ss:string;

f,FF:textfile;

begin

TRY

{begin

if fileexists(ExtractFileDir(Application.ExeName)+'\DB_path.set') then

begin

assignfile(f,ExtractFileDir(Application.ExeName)+'\DB_path.set');

reset(f);

read(f,s);

closefile(f);

end;

if fileexists(ExtractFileDir(Application.ExeName)+'\server.set') then

begin

assignfile(f,ExtractFileDir(Application.ExeName)+'\server.set');

reset(f);

read(f,ss);

closefile(f);

end;

dm.IBD.DatabaseName:=ss+':'+s;

end;}

IF FILEEXISTS('DB.LOG') THEN

BEGIN

ASSIGNFILE(FF,'DB.LOG');

APPEND(FF);WRITELN(FF,'ПОДКЛЮЧЕНИЕ='+DATETIMETOSTR(NOW));

CLOSEFILE(FF);

END

ELSE BEGIN

ASSIGNFILE(FF,'DB.LOG');

REWRITE(FF);WRITELN(FF,'ПОДКЛЮЧЕНИЕ='+DATETIMETOSTR(NOW));

CLOSEFILE(FF);

END;

DM.IBD.Connected:=TRUE;

MAIN.N8.Enabled:=TRUE;

MAIN.N9.Enabled:=TRUE;

MAIN.N16.Enabled:=TRUE;

EXCEPT

MESSAGEDLG('НЕ ПОЛУЧИЛОСЬ ПОДКЛЮЧИТЬСЯ К УДАЛЕННОМУ СЕРВЕРУ!'+#13+#13+'*ПРОВЕРЬТЕ ПРАВИЛЬНОСТЬ УКАЗАННОГО ПУТИ БАЗЫ ДАННЫХ',MTWARNING,[MBOK,MBHELP],0);

END;

end;

procedure TMAIN.N4Click(Sender: TObject);

begin

TRY

DM.IBD.Connected:=FALSE;

MAIN.N8.Enabled:=FALSE;

MAIN.N9.Enabled:=FALSE;

MAIN.N16.Enabled:=FALSE;

EXCEPT

SHOWMESSAGE('НЕ УДАЛОСЬ ОТКЛЮЧИТЬСЯ ОТ СЕРВЕРА'+#13+'ПОПРОБУЙТЕ ЕЩЕ РАЗ');

end;END;

procedure TMAIN.N5Click(Sender: TObject);

begin

TRY

DM.IBD.Connected:=FALSE;

APPLICATION.Terminate;

EXCEPT

SHOWMESSAGE('ОШИБКА ЗАВЕРШЕНИЯ РАБОТЫ ПРОГРАММЫ!!!'+#13+#13+

'ПОПРОБУЙТЕ ЗАВЕРШИТЬ РАБОТУ КОМПЬЮТЕРА!!!');

END;

end;

procedure TMAIN.Timer1Timer(Sender: TObject);

begin

RANDOMIZE;

IF DM.IBD.Connected=FALSE THEN

PB.Position:=0

ELSE

PB.Position:=RANDOM(21)+80;

end;

procedure TMAIN.N16Click(Sender: TObject);

begin

REP_INS.Show;

end;

procedure TMAIN.N9Click(Sender: TObject);

begin

TRY

FREP.IBQuery1.Open;

FREP.IBTable1.Active:=TRUE;

FREP.Show;

EXCEPT

SHOWMESSAGE('НЕ УДАЛОСЬ ОТКРЫТЬ БАЗУ!ПОПРОБУЙТЕ ЕЩЕ РАЗ');

END;

end;

procedure TMAIN.N11Click(Sender: TObject);

begin

SETT.ShowModal;

end;

procedure TMAIN.N17Click(Sender: TObject);

begin

fpoisk.ShowModal;

end;

procedure TMAIN.N14Click(Sender: TObject);

begin

o_prog.ShowModal;

end;

procedure TMAIN.FormDestroy(Sender: TObject);

VAR

FF:TEXTFILE;

begin

IF FILEEXISTS('DB.LOG') THEN

BEGIN

ASSIGNFILE(FF,'DB.LOG');

APPEND(FF);WRITELN(FF,'ВЫКЛЮЧЕНИЕ='+DATETIMETOSTR(NOW));

CLOSEFILE(FF);

END

ELSE BEGIN

ASSIGNFILE(FF,'DB.LOG');

REWRITE(FF);WRITELN(FF,'ВЫКЛЮЧЕНИЕ='+DATETIMETOSTR(NOW));

CLOSEFILE(FF);

END;

end;

procedure TMAIN.N13Click(Sender: TObject);

begin

shellexecute(handle,'open',pchar('WORKSTATHELP.HLP'+#0),nil,nil,sw_shownormal);

end;

procedure TMAIN.N15Click(Sender: TObject);

begin

autor.ShowModal;

end;

procedure TMAIN.FormCreate(Sender: TObject);

begin

L:=LENGTH(application.Title);

S:=' '+application.Title+' ';

application.Title:=s;

end;

procedure TMAIN.Timer2Timer(Sender: TObject);

begin

SS:=application.Title;

application.Title:=application.Title+COPY(sS,1,1);

S:=application.Title;

DELETE(s,1,1);

application.Title:=s;

end;

end.

unit UBASE;

interface

uses

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

Dialogs, StdCtrls, DBCtrls, Grids, DBGrids, DB, IBCustomDataSet, IBQuery,

ExtCtrls, ToolWin, ComCtrls, Buttons, IBTable, XPMan;

type

TBASE = class(TForm)

IBQuery1: TIBQuery;

DataSource1: TDataSource;

IBQuery1ID: TIntegerField;

IBQuery1NAME: TIBStringField;

DBGrid1: TDBGrid;

IBQuery2: TIBQuery;

IBQuery3: TIBQuery;

GroupBox1: TGroupBox;

DBNavigator1: TDBNavigator;

Splitter1: TSplitter;

GroupBox2: TGroupBox;

DBGrid2: TDBGrid;

DBNavigator2: TDBNavigator;

Splitter2: TSplitter;

GroupBox3: TGroupBox;

DBGrid3: TDBGrid;

DBNavigator3: TDBNavigator;

ToolBar1: TToolBar;

ToolBar2: TToolBar;

ToolBar3: TToolBar;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

BitBtn6: TBitBtn;

IBQuery4: TIBQuery;

IBQuery5: TIBQuery;

IBQuery6: TIBQuery;

IBQuery7: TIBQuery;

IBQuery8: TIBQuery;

IBQuery9: TIBQuery;

DataSource2: TDataSource;

DataSource3: TDataSource;

IBQuery7ID: TIntegerField;

IBQuery7E_ID: TIntegerField;

IBQuery7DESCRIPTION: TIBStringField;

IBQuery10: TIBQuery;

IBTable1: TIBTable;

IBTable2: TIBTable;

IBQuery4ID: TIntegerField;

IBQuery4N_ID: TIntegerField;

IBQuery4NAME: TIBStringField;

BitBtn7: TBitBtn;

XPManifest1: TXPManifest;

IBTable1ID: TIntegerField;

IBTable1N_ID: TIntegerField;

IBTable1NAME: TIBStringField;

IBTable2ID: TIntegerField;

IBTable2E_ID: TIntegerField;

BitBtn8: TBitBtn;

IBTable2DESCRIPTION1: TIBStringField;

procedure ButtonClick(Sender: TObject);

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

procedure Button2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure BitBtn6Click(Sender: TObject);

procedure BitBtn7Click(Sender: TObject);

procedure BitBtn8Click(Sender: TObject);

// procedure BitBtn8Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

BASE: TBASE;

implementation

uses UDM, UMain, UDETAL, UINS_DET, UREP_INS, UREPORT, USET, UPR;

{$R *.dfm}

procedure TBASE.ButtonClick(Sender: TObject);

VAR

S:STRING;

begin

S:=INPUTBOX('ДОБАВЛЕНИЕ ГРУППЫ','ВВЕДИТЕ НАЗВАНИЕ ГРУППЫ','');

IBQuery2.Params.ParamByName('NAME').Value:=S;

TRY

IBQuery2.ExecSQL;

EXCEPT

CAPTION:='ERROR';

DM.IBT.RollbackRetaining;

EXIT;END;

DM.IBT.CommitRetaining;

IBQuery1.Close;

IBQUERY1.Open;

end;

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

begin

BASE.IBQuery1.Close;

end;

procedure TBASE.Button2Click(Sender: TObject);

begin

if MessageDlg('ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ УДАЛИТЬ ЭТУ ЗАПИСЬ?',

mtConfirmation,[mbYes,mbNo],0)=mrYes then

begin

IBQuery3.Params.ParamByName('PAR1').Value:=

IBQuery1ID.Value;

try

IBQUERY3.ExecSQL;

Except

ShowMessage('ОШИБКА УДАЛЕНИЯ!'+#13+

'ПОПРОБУЙТЕ ЕЩЕ РАЗ!ВОЗМОЖНО ЗАПИСЬ УДАЛЕНА!');

DM.IBT.RollbackRetaining;

exit;

end;

DM.IBT.CommitRetaining;

IBQuery1.Close;

IBQuery1.Open;

end;

end;

procedure TBASE.BitBtn3Click(Sender: TObject);

VAR

S:STRING;

begin

S:=INPUTBOX('ДОБАВЛЕНИЕ ОБОРУДОВАНИЯ','ВВЕДИТЕ НАЗВАНИЕ ОБОРУДОВАНИЯ','');

IBQuery5.Params.ParamByName('NAME').Value:=S;

IBQUERY5.Params.ParamByName('N_ID').Value:=BASE.IBQuery1ID.Value;

TRY

IBQuery5.ExecSQL;

EXCEPT

CAPTION:='ERROR';

DM.IBT.RollbackRetaining;

EXIT;END;

DM.IBT.CommitRetaining;

base.IBTable1.Active:=FALSE;

BASE.IBTable1.Active:=TRUE;

end;

procedure TBASE.BitBtn4Click(Sender: TObject);

begin

if MessageDlg('ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ УДАЛИТЬ ЭТУ ЗАПИСЬ?',

mtConfirmation,[mbYes,mbNo],0)=mrYes then

begin

IBQuery6.Params.ParamByName('PAR2').Value:=BASE.IBtable1ID.Value;

try

IBQUERY6.ExecSQL;

Except

ShowMessage('ОШИБКА УДАЛЕНИЯ!'+#13+

'ПОПРОБУЙТЕ ЕЩЕ РАЗ!ВОЗМОЖНО ЗАПИСЬ УДАЛЕНА!');

DM.IBT.RollbackRetaining;

exit;

end;

DM.IBT.CommitRetaining;

BASE.IBTable1.Active:=FALSE;

BASE.IBTable1.Active:=TRUE;

end;

end;

procedure TBASE.BitBtn5Click(Sender: TObject);

VAR

S:STRING;

begin

S:=INPUTBOX('ДОБАВЛЕНИЕ ТИПА ОБОРУДОВАНИЯ','ВВЕДИТЕ НАЗВАНИЕ ОБОРУДОВАНИЯ','');

IBQuery8.Params.ParamByName('DESCRIPTION1').Value:=S;

IBQUERY8.Params.ParamByName('E_ID').Value:=BASE.IBTable1ID.Value;

TRY

IBQuery8.ExecSQL;

EXCEPT

SHOWMeSSAGE('Не удалось добавить данные в Таблицу, попробуйте еще раз!');

DM.IBT.RollbackRetaining;

EXIT;END;

DM.IBT.CommitRetaining;

IBTABLE2.Active:=FALSE;

IBTABLE2.Active:=TRUE;

end;

procedure TBASE.BitBtn6Click(Sender: TObject);

begin

if MessageDlg('ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ УДАЛИТЬ ЭТУ ЗАПИСЬ?',

mtConfirmation,[mbYes,mbNo],0)=mrYes then

begin

IBQuery9.Params.ParamByName('PAR1').Value:=BASE.IBTABLE2ID.VALUE;

try

IBQUERY9.ExecSQL;

Except

ShowMessage('ОШИБКА УДАЛЕНИЯ!'+#13+

'ПОПРОБУЙТЕ ЕЩЕ РАЗ!ВОЗМОЖНО ЗАПИСЬ УДАЛЕНА!');

DM.IBT.RollbackRetaining;

exit;

end;

DM.IBT.CommitRetaining;

BASE.IBTable2.Active:=FALSE;

BASE.IBTable2.Active:=TRUE;

end;

end;

{procedure TBASE.BitBtn8Click(Sender: TObject);

begin

if MessageDlg('ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ УДАЛИТЬ ЭТУ ЗАПИСЬ?',

mtConfirmation,[mbYes,mbNo],0)=mrYes then

begin

IBQuery12.Params.ParamByName('PAR1').Value:=

IBQuery10ID.Value;

try

IBQUERY12.ExecSQL;

Except

ShowMessage('ОШИБКА УДАЛЕНИЯ!'+#13+

'ПОПРОБУЙТЕ ЕЩЕ РАЗ!ВОЗМОЖНО ЗАПИСЬ УДАЛЕНА!');

DM.IBT.RollbackRetaining;

exit;

end;

DM.IBT.CommitRetaining;

IBQuery10.Close;

IBQuery10.Open;

end;

end;}

procedure TBASE.BitBtn7Click(Sender: TObject);

begin

//DETAL:=TDETAL.Create(SELF);

DETAL.IBTable1.Active:=TRUE;

DETAL.BitBtn1.Visible:=FALSE;DETAL.ShowModal;

end;

procedure TBASE.BitBtn8Click(Sender: TObject);

begin

REP_INS.Edit7.Text:=BASE.IBTable2DESCRIPTION1.Value;

//BASE.Close;

//DETAL:=DETAL.Create(SELF);

DETAL.BitBtn7.Enabled:=FALSE;

DETAL.BitBtn8.Enabled:=FALSE;

DETAL.IBTable1.Active:=TRUE;

DETAL.BitBtn1.Visible:=TRUE;DETAL.ShowModal;

end;

end.

unit UDETAL;

interface

uses

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

Dialogs, DB, IBCustomDataSet, IBQuery, StdCtrls, Buttons, ToolWin,

ComCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, IBTable, XPMan;

type

TDETAL = class(TForm)

GroupBox4: TGroupBox;

DBGrid4: TDBGrid;

DBNavigator4: TDBNavigator;

ToolBar4: TToolBar;

BitBtn7: TBitBtn;

BitBtn8: TBitBtn;

IBQuery10: TIBQuery;

IBQuery10ID: TIntegerField;

IBQuery10T_ID: TIntegerField;

IBQuery10ASIGNATION: TIBStringField;

IBQuery10FULLNAME: TIBStringField;

IBQuery10CELL: TIBStringField;

IBQuery10REMAINS: TIntegerField;

IBQuery10UNIT: TIBStringField;

IBQuery11: TIBQuery;

IBQuery12: TIBQuery;

DataSource4: TDataSource;

IBTable1: TIBTable;

XPManifest1: TXPManifest;

IBTable1ID: TIntegerField;

IBTable1T_ID: TIntegerField;

IBTable1ASIGNATION: TIBStringField;

IBTable1FULLNAME: TIBStringField;

IBTable1CELL: TIBStringField;

IBTable1REMAINS: TIntegerField;

IBTable1UNIT: TIBStringField;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

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

procedure BitBtn7Click(Sender: TObject);

procedure BitBtn8Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

DETAL: TDETAL;

implementation

uses UDM, UBASE, UMain, UINS_DET, UREP_INS, UREPORT, USET, UPR;

{$R *.dfm}

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

begin

DETAL.IBTable1.Active:=FALSE;

end;

procedure TDETAL.BitBtn7Click(Sender: TObject);

begin

INS_DET:=TINS_DET.Create(SELF);

INS_DET.ShowModal;

end;

procedure TDETAL.BitBtn8Click(Sender: TObject);

begin

if MessageDlg('ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ УДАЛИТЬ ЭТУ ЗАПИСЬ?',

mtConfirmation,[mbYes,mbNo],0)=mrYes then

begin

IBQuery12.Params.ParamByName('PAR1').Value:=DETAL.IBTable1ID.Value;

try

IBQUERY12.ExecSQL;

Except

ShowMessage('ОШИБКА УДАЛЕНИЯ!'+#13+

'ПОПРОБУЙТЕ ЕЩЕ РАЗ!ВОЗМОЖНО ЗАПИСЬ УДАЛЕНА!');

DM.IBT.RollbackRetaining;

exit;

end;

DM.IBT.CommitRetaining;

DETAL.IBTable1.Active:=FALSE;

DETAL.IBTable1.Active:=TRUE;

end;

end;

procedure TDETAL.BitBtn1Click(Sender: TObject);

begin

REP_INS.Edit8.Text:=DETAL.IBTable1FULLNAME.Value;

REP_INS.Label11.Caption:=INTTOSTR(DETAL.IBTable1REMAINS.Value);

REP_INS.Edit10.Text:=DETAL.IBTable1CELL.Value;

REP_INS.Tag:=DETAL.IBTable1ID.Value;

DETAL.Tag:=DETAL.IBTable1REMAINS.Value;

IF BASE.Tag<DETAL.Tag THEN

BEGIN

DETAL.IBTable1.Edit;

DETAL.IBTable1REMAINS.Value:=DETAL.Tag-BASE.Tag;

END

ELSE

BEGIN

DETAL.IBTable1.Edit;

DETAL.IBTable1REMAINS.Value:=0;

END;

BASE.Close;

DETAL.Close;

end;

procedure TDETAL.BitBtn2Click(Sender: TObject);

begin

detal.DBGrid4.Tag:=DETAL.IBTable1REMAINS.Value;

DETAL.IBTable1.Edit;

DETAL.IBTable1ID.Tag:=STRTOINT(INPUTBOX('Ввод количества оборудования','Введите количество',''));

DETAL.IBTable1REMAINS.Value:=DETAL.IBTable1ID.Tag+DETAL.DBGrid4.Tag;

DETAL.IBTable1.Post;

end;

end.

unit UINS_DET;

interface

uses

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

Dialogs, StdCtrls, Buttons, XPMan;

type

TINS_DET = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

GroupBox1: TGroupBox;

Label6: TLabel;

Edit6: TEdit;

Label7: TLabel;

Edit7: TEdit;

BitBtn1: TBitBtn;

XPManifest1: TXPManifest;

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

INS_DET: TINS_DET;

implementation

uses UDETAL, UDM, UBASE, UMain, USET;

{$R *.dfm}

procedure TINS_DET.BitBtn1Click(Sender: TObject);

begin

DETAL.IBQuery11.Params.ParamByName('ASIGNATION').Value:=INS_DET.Edit1.Text;

DETAL.IBQuery11.Params.ParamByName('FULLNAME').Value:=INS_DET.Edit2.Text;

DETAL.IBQuery11.Params.ParamByName('CELL').Value:=INS_DET.Edit3.Text;

DETAL.IBQuery11.Params.ParamByName('REMAINS').Value:=STRTOINT(INS_DET.Edit4.Text);

DETAL.IBQuery11.Params.ParamByName('UNIT').Value:=INS_DET.Edit5.Text;

DETAL.IBQuery11.Params.ParamByName('T_ID').Value:=BASE.IBTable2ID.Value;

TRY

DETAL.IBQuery11.ExecSQL;

EXCEPT

CAPTION:='ERROR';

DM.IBT.RollbackRetaining;

EXIT;END;

DM.IBT.CommitRetaining;

DETAL.IBTable1.Active:=FALSE;

DETAL.IBTable1.Active:=TRUE;

end;

end.

unit UREP_INS;

interface

uses

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

Dialogs, StdCtrls, DB, IBCustomDataSet, IBQuery, Buttons, IBTable, Grids,

DBGrids, Menus, ExtCtrls, DBCtrls, XPMan;

type

TREP_INS = class(TForm)

GroupBox1: TGroupBox;

Label7: TLabel;

Edit7: TEdit;

Label8: TLabel;

Edit8: TEdit;

Label9: TLabel;

Edit9: TEdit;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Edit10: TEdit;

Button1: TButton;

BitBtn1: TBitBtn;

IBQuery1: TIBQuery;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

IBTable1: TIBTable;

GroupBox2: TGroupBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

DataSource2: TDataSource;

IBTable2: TIBTable;

DataSource3: TDataSource;

IBQuery2: TIBQuery;

DataSource4: TDataSource;

IBTable1ID: TIntegerField;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

DBNavigator1: TDBNavigator;

IBTable1NUM: TIBStringField;

Label13: TLabel;

IBTable2NOMENCLAT: TIBStringField;

IBTable2DET_NAME: TIBStringField;

IBTable2SUMM: TIntegerField;

IBTable2AL: TIntegerField;

IBTable2CELL: TIBStringField;

IBTable2ID: TIntegerField;

IBTable2O_ID: TIntegerField;

XPManifest1: TXPManifest;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

IBQuery3: TIBQuery;

IBQuery4: TIBQuery;

IBQuery5: TIBQuery;

DBGrid2: TDBGrid;

procedure Button1Click(Sender: TObject);

procedure Edit9Change(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

REP_INS: TREP_INS;

implementation

uses UBASE, UDETAL, UDM, UINS_DET, UMain, UREPORT, USET;

{$R *.dfm}

procedure TREP_INS.Button1Click(Sender: TObject);

begin

//BASE:=TBASE.Create(SELF);

BASE.IBTable1.Active:=TRUE;

BASE.IBQuery1.Active:=TRUE;

BASE.IBTable2.Active:=TRUE;

BASE.BitBtn1.Enabled:=FALSE;

BASE.BitBtn2.Enabled:=FALSE;

BASE.BitBtn3.Enabled:=FALSE;

BASE.BitBtn4.Enabled:=FALSE;

BASE.BitBtn5.Enabled:=FALSE;

BASE.BitBtn6.Enabled:=FALSE;BASE.BitBtn8.Visible:=TRUE;

BASE.BitBtn7.Visible:=FALSE;

BASE.Tag:=STRTOINT(REP_INS.Edit9.TEXT);

BASE.ShowModal;

end;

procedure TREP_INS.Edit9Change(Sender: TObject);

begin

//IF DETAL.IBTable1REMAINS.Value<STRTOINT(REP_INS.Edit9.Text);

end;

procedure TREP_INS.BitBtn1Click(Sender: TObject);

begin

REP_INS.GroupBox2.Enabled:=TRUE;

REP_INS.GroupBox1.Enabled:=FALSE;

end;

procedure TREP_INS.BitBtn2Click(Sender: TObject);

begin

REP_INS.IBQuery1.Params.ParamByName('NUM').Value:=EDIT1.Text;

REP_INS.IBQuery1.Params.ParamByName('OBJ').Value:=EDIT2.Text;

REP_INS.IBQuery1.Params.ParamByName('ZAKAZ').Value:=EDIT3.Text;

REP_INS.IBQuery1.Params.ParamByName('AUTOR').Value:=EDIT4.Text;

REP_INS.IBQuery1.Params.ParamByName('PICKER').Value:=EDIT5.Text;

REP_INS.IBQuery1.Params.ParamByName('Y').Value:=EDIT6.Text;

TRY

REP_INS.IBQuery1.ExecSQL;

EXCEPT

SHOWMESSAGE('Не удалось создать ведомость!Попробуйте еще раз!');

dm.IBT.RollbackRetaining;exit;

END;

dm.IBT.CommitRetaining;

REP_INS.GroupBox1.Enabled:=TRUE;

REP_INS.GroupBox2.Enabled:=FALSE;

REP_INS.IBTable1.Active:=TRUE;

REP_INS.IBTable2.Active:=TRUE;

EDIT1.Clear;EDIT2.Clear;EDIT3.Clear;EDIT4.Clear;EDIT5.Clear;EDIT6.Clear;

end;

procedure TREP_INS.N3Click(Sender: TObject);

begin

REP_INS.GroupBox1.Enabled:=TRUE;

REP_INS.GroupBox2.Enabled:=TRUE;

REP_INS.IBTable1.Open;

end;

procedure TREP_INS.BitBtn3Click(Sender: TObject);

begin

REP_INS.IBQuery2.Params.ParamByName('O_ID').Value:=REP_INS.IBTable1ID.Value;

REP_INS.IBQuery2.Params.ParamByName('SUMM').Value:=STRTOINT(REP_INS.Edit9.Text);

REP_INS.IBQuery2.Params.ParamByName('AL').Value:=STRTOINT(REP_INS.Label11.Caption);

REP_INS.IBQuery2.Params.ParamByName('NOMENCLAT').Value:=REP_INS.Edit7.Text;

REP_INS.IBQuery2.Params.ParamByName('DET_NAME').Value:=REP_INS.Edit8.Text;

REP_INS.IBQuery2.Params.ParamByName('CELL').Value:=REP_INS.Edit10.Text;

TRY

REP_INS.IBQuery2.ExecSQL;

EXCEPT

SHOWMESSAGE('Не удалось добавить данные!попробуйте еще раз!');

dm.IBT.RollbackRetaining;exit;

END;

dm.IBT.CommitRetaining;

REP_INS.IBTable2.Active:=FALSE;

REP_INS.IBTable2.Active:=TRUE;

EDIT9.Text:='0';

EDIT7.Clear;EDIT8.Clear;EDIT10.Clear;label11.Caption:='0';

end;

procedure TREP_INS.N4Click(Sender: TObject);

begin

TRY

REP_INS.Close;

rep_ins.IBTable1.Close;

rep_ins.IBTable2.Close;

EXCEPT

SHOWMESSAGE('Попробуйте еще раз');

END;

end;

procedure TREP_INS.BitBtn4Click(Sender: TObject);

begin

if MessageDlg('ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ УДАЛИТЬ ЭТУ ЗАПИСЬ?',

mtConfirmation,[mbYes,mbNo],0)=mrYes then

begin

IBQuery4.Params.ParamByName('PAR1').Value:=rep_ins.IBTable1ID.Value;

rep_ins.IBQuery5.Params.ParamByName('PAR1').Value:=REP_INS.IBTable1ID.Value;

try

IBQUERY5.ExecSQL;

IBQUERY4.ExecSQL;

Except

ShowMessage('ОШИБКА УДАЛЕНИЯ!'+#13+

'ПОПРОБУЙТЕ ЕЩЕ РАЗ!ВОЗМОЖНО ЗАПИСЬ УДАЛЕНА!');

DM.IBT.RollbackRetaining;

exit;

end;

DM.IBT.CommitRetaining;

rep_ins.IBTable1.Close;

rep_ins.IBTable1.Open;

rep_ins.IBTable2.Close;

rep_ins.IBTable2.Open;

end;

end;

procedure TREP_INS.BitBtn5Click(Sender: TObject);

begin

if MessageDlg('ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ УДАЛИТЬ ЭТУ ЗАПИСЬ?',

mtConfirmation,[mbYes,mbNo],0)=mrYes then

begin

IBQuery3.Params.ParamByName('PAR1').Value:=REP_INS.IBTable2ID.Value;

try

IBQUERY3.ExecSQL;

Except

ShowMessage('ОШИБКА УДАЛЕНИЯ!'+#13+

'ПОПРОБУЙТЕ ЕЩЕ РАЗ!ВОЗМОЖНО ЗАПИСЬ УДАЛЕНА!');

DM.IBT.RollbackRetaining;

exit;

end;

DM.IBT.CommitRetaining;

REP_INS.IBTable2.Close;

REP_INS.IBTable2.Open;

end;

end;

end.

unit UOPROG;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls, Buttons, XPMan, jpeg;

type

To_prog = class(TForm)

BitBtn1: TBitBtn;

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

XPManifest1: TXPManifest;

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

o_prog: To_prog;

implementation

{$R *.dfm}

procedure To_prog.BitBtn1Click(Sender: TObject);

begin

o_prog.Close;

end;

end.

unit UDM;

interface

uses

SysUtils, Classes, IBDatabase, DB;

type

TDM = class(TDataModule)

IBD: TIBDatabase;

IBT: TIBTransaction;

private

{ Private declarations }

public

{ Public declarations }

end;

var

DM: TDM;

implementation

uses UMain, UBASE, UDETAL, UINS_DET, UREP_INS, UREPORT, USET, UPR, Upoisk;

{$R *.dfm}

end.

unit UREPORT;

interface

uses

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

Dialogs, Grids, DBGrids, StdCtrls, DBCtrls, ExtCtrls, Mask, DB, IBTable,

IBCustomDataSet, IBQuery, ComCtrls, XPMan, jpeg, QuickRpt, QRCtrls,

Buttons;

type

TFREP = class(TForm)

PageControl1: TPageControl;

IBQuery1: TIBQuery;

DataSource1: TDataSource;

XPManifest1: TXPManifest;

IBTable1: TIBTable;

IBTable1ID: TIntegerField;

IBTable1O_ID: TIntegerField;

IBTable1NOMENCLAT: TIBStringField;

IBTable1DET_NAME: TIBStringField;

IBTable1SUMM: TIntegerField;

IBTable1AL: TIntegerField;

IBTable1CELL: TIBStringField;

TabSheet1: TTabSheet;

DBText1: TDBText;

DBText2: TDBText;

DBText3: TDBText;

DBText4: TDBText;

DBText5: TDBText;

Label6: TLabel;

Label5: TLabel;

Label4: TLabel;

Label3: TLabel;

Label2: TLabel;

Label1: TLabel;

DBEdit1: TDBEdit;

DBNavigator1: TDBNavigator;

Button1: TButton;

DBGrid1: TDBGrid;

TabSheet2: TTabSheet;

DataSource2: TDataSource;

QuickRep1: TQuickRep;

QRBand1: TQRBand;

QRSubDetail1: TQRSubDetail;

QRLabel1: TQRLabel;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel4: TQRLabel;

QRDBText1: TQRDBText;

QRDBText2: TQRDBText;

QRLabel5: TQRLabel;

QRDBText3: TQRDBText;

QRDBText4: TQRDBText;

QRLabel6: TQRLabel;

QRDBText5: TQRDBText;

QRLabel7: TQRLabel;

QRDBText6: TQRDBText;

QRSysData1: TQRSysData;

QRLabel8: TQRLabel;

QRShape1: TQRShape;

QRShape2: TQRShape;

QRShape3: TQRShape;

QRShape4: TQRShape;

QRShape5: TQRShape;

QRShape6: TQRShape;

QRShape7: TQRShape;

QRShape8: TQRShape;

QRShape9: TQRShape;

QRShape10: TQRShape;

QRLabel9: TQRLabel;

QRLabel10: TQRLabel;

QRLabel11: TQRLabel;

QRLabel12: TQRLabel;

QRLabel13: TQRLabel;

QRDBText7: TQRDBText;

QRDBText8: TQRDBText;

QRDBText9: TQRDBText;

QRDBText10: TQRDBText;

QRDBText11: TQRDBText;

BitBtn1: TBitBtn;

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

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FREP: TFREP;

implementation

uses UBASE, UDETAL, UDM, UINS_DET, UMain, USET, UREP_INS, UPR;

{$R *.dfm}

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

begin

FREP.IBQuery1.Close;

end;

procedure TFREP.Button1Click(Sender: TObject);

begin

FREP.QuickRep1.Preview;

end;

end.

unit USET;

interface

uses

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

Dialogs, StdCtrls, XPMan, Buttons, ExtCtrls;

type

Tsett = class(TForm)

XPManifest1: TXPManifest;

Memo1: TMemo;

BitBtn1: TBitBtn;

Memo2: TMemo;

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

procedure BitBtn1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

sett: Tsett;

implementation

uses UDM;

{$R *.dfm}

procedure Tsett.BitBtn1Click(Sender: TObject);

begin

if fileexists('DB_path.set') then

deletefile('DB_path.set');

memo1.Lines.SaveToFile(ExtractFileDir(Application.ExeName)+'\DB_path.set');

if fileexists('server.set') then

deletefile('server.set');

memo2.Lines.SaveToFile(ExtractFileDir(Application.ExeName)+'\server.set');

end;

procedure Tsett.FormCreate(Sender: TObject);

begin

memo1.Lines.Clear;

if fileexists('DB_path.set') then

begin

memo1.Lines.LoadFromFile(ExtractFileDir(Application.ExeName)+'\DB_path.set');

end;

memo2.Lines.Clear;

if fileexists('server.set') then

begin

memo2.Lines.LoadFromFile(ExtractFileDir(Application.ExeName)+'\server.set');

end;

end;

end.

unit UPR;

interface

uses

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

Dialogs, QRCtrls, QuickRpt, ExtCtrls;

type

TREPOTRFORM = class(TForm)

QuickRep1: TQuickRep;

QRSubDetail1: TQRSubDetail;

QRDBText1: TQRDBText;

QRLabel1: TQRLabel;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRDBText2: TQRDBText;

QRLabel4: TQRLabel;

QRDBText3: TQRDBText;

QRLabel5: TQRLabel;

QRDBText4: TQRDBText;

QRLabel6: TQRLabel;

QRDBText5: TQRDBText;

QRLabel7: TQRLabel;

QRDBText6: TQRDBText;

QRLabel8: TQRLabel;

QRDBText7: TQRDBText;

QRSysData1: TQRSysData;

QRLabel9: TQRLabel;

QRSubDetail2: TQRSubDetail;

QRDBText8: TQRDBText;

QRDBText9: TQRDBText;

QRDBText10: TQRDBText;

QRDBText11: TQRDBText;

QRDBText12: TQRDBText;

private

{ Private declarations }

public

{ Public declarations }

end;

var

REPOTRFORM: TREPOTRFORM;

implementation

uses UBASE, UDETAL, UDM, UINS_DET, UMain, Upoisk, UREP_INS, UREPORT;

{$R *.dfm}

end.

unit UAUTOR;

interface

uses

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

Dialogs, StdCtrls, Buttons,shellapi;

type

TAutor = class(TForm)

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Memo1: TMemo;

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Autor: TAutor;

implementation

uses UMain;

{$R *.dfm}

procedure TAutor.BitBtn2Click(Sender: TObject);

begin

ShellExecute(application.Handle,'open','http://my.mail.ru/mail/danik_tugyl/',nil,nil,SW_SHOW);

end;

procedure TAutor.BitBtn1Click(Sender: TObject);

begin

autor.Close;

end;

end.

unit UDMOD;

interface

uses

SysUtils, Classes, IBDatabase, DB;

type

TDM = class(TDataModule)

IBDATA: TIBDatabase;

IBT: TIBTransaction;

private

{ Private declarations }

public

{ Public declarations }

end;

var

DM: TDM;

implementation

uses UBASE, UDETAL, UMain;

{$R *.dfm}

end.

unit Upoisk;

interface

uses

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

Dialogs, XPMan, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls, DB, IBQuery,

IBCustomDataSet, IBTable, Buttons;

type

TFpoisk = class(TForm)

RadioGroup1: TRadioGroup;

Edit1: TEdit;

BitBtn1: TBitBtn;

IBTable1: TIBTable;

DataSource1: TDataSource;

RadioGroup2: TRadioGroup;

RadioGroup3: TRadioGroup;

ComboBox1: TComboBox;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

XPManifest1: TXPManifest;

Splitter1: TSplitter;

procedure BitBtn1Click(Sender: TObject);

procedure RadioGroup3Click(Sender: TObject);

procedure RadioGroup2Click(Sender: TObject);

procedure RadioGroup1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Fpoisk: TFpoisk;

implementation

uses UBASE, UDETAL, UDM, UINS_DET, UMain, UREP_INS, UREPORT;

{$R *.dfm}

procedure TFpoisk.BitBtn1Click(Sender: TObject);

VAR T:STRING;I:INTEGER;F:TEXTFILE;

begin

case fpoisk.RadioGroup3.ItemIndex of

1:

begin

//поиск по ведомости

try

IBTABLE1.TableName:='VEDOMOST';

fpoisk.IBTable1.Filtered:=false;

fpoisk.IBTable1.FILTER:='NUM like'+#39+'%'+edit1.Text+'%'+#39;;

fpoisk.IBTable1.Filtered:=true;

Fpoisk.IBTable1.Active:=TRUE;

except

showmessage('ошибка загрузки запроса из файла');

end;

end;

//--------------------------------------------------------

0:

begin

//поиск по базе

case fpoisk.RadioGroup2.ItemIndex of

0:

begin

//по номенклатуре

try

IBTABLE1.TableName:='NOMENCLATURE';

fpoisk.IBTable1.Filtered:=false;

fpoisk.IBTable1.FILTER:='name like'+#39+'%'+edit1.Text+'%'+#39;

fpoisk.IBTable1.Filtered:=true;

Fpoisk.IBTable1.Active:=TRUE;

except

showmessage('ошибка загрузки запроса');

end;

end;

1:

begin

//по оборудованию

try

IBTABLE1.TableName:='EQUIPMENT';

fpoisk.IBTable1.Filtered:=false;

fpoisk.IBTable1.FILTER:='NAME like'+#39+'%'+edit1.Text+'%'+#39;;

fpoisk.IBTable1.Filtered:=true;

Fpoisk.IBTable1.Active:=TRUE;

except

showmessage('ошибка загрузки SQL-запроса');

end;

end;

2:

begin

try

IBTABLE1.TableName:='TIP_O';

fpoisk.IBTable1.Filtered:=false;

fpoisk.IBTable1.FILTER:='DESCRIPTION like'+#39+'%'+edit1.Text+'%'+#39;;

fpoisk.IBTable1.Filtered:=true;

Fpoisk.IBTable1.Active:=TRUE;

except

showmessage('ошибка загрузки SQL-запроса');

end;

end;

3:

begin

//поиск по делаям

case fpoisk.RadioGroup1.ItemIndex of

0:

begin

//обозначение

try

IBTABLE1.TableName:='DETAILS';

fpoisk.IBTable1.Filtered:=false;

fpoisk.IBTable1.FILTER:='ASIGNATION like'+#39+'%'+edit1.Text+'%'+#39;;

fpoisk.IBTable1.Filtered:=true;

Fpoisk.IBTable1.Active:=TRUE;

except

showmessage('ошибка загрузки SQL-запроса');

end;

end;

1:

begin

//поиск по полному наименованию

try

IBTABLE1.TableName:='DETAILS';

fpoisk.IBTable1.Filtered:=false;

fpoisk.IBTable1.FILTER:='FULLNAME like'+#39+'%'+edit1.Text+'%'+#39;;

fpoisk.IBTable1.Filtered:=true;

Fpoisk.IBTable1.Active:=TRUE;

except

showmessage('ошибка загрузки SQL-запроса');

end;

end;

2:

begin

//поиск по ячейкам

try

IBTABLE1.TableName:='DETAILS';

fpoisk.IBTable1.Filtered:=false;

fpoisk.IBTable1.FILTER:='CELL like'+#39+'%'+edit1.Text+'%'+#39;;

fpoisk.IBTable1.Filtered:=true;

Fpoisk.IBTable1.Active:=TRUE;

except

showmessage('ошибка загрузки SQL-запроса');

end;

end;

3:

begin

//поиск по количеству

try

IBTABLE1.TableName:='DETAILS';

fpoisk.IBTable1.Filtered:=false;

fpoisk.IBTable1.FILTER:='REMAINS'+COMBOBOX1.Text+EDIT1.Text;

fpoisk.IBTable1.Filtered:=true;

Fpoisk.IBTable1.Active:=TRUE;

except

showmessage('ошибка загрузки SQL-запроса');

end;

end;

end;

end;

end;end;end;end;

procedure TFpoisk.RadioGroup3Click(Sender: TObject);

begin

case fpoisk.RadioGroup3.ItemIndex of

0: fpoisk.RadioGroup2.Enabled:=true;

1: begin fpoisk.RadioGroup2.Enabled:=false; fpoisk.RadioGroup1.Enabled:=false;end;

end;

end;

procedure TFpoisk.RadioGroup2Click(Sender: TObject);

begin

case fpoisk.RadioGroup2.ItemIndex of

0..2: fpoisk.RadioGroup1.Enabled:=false;

3:fpoisk.RadioGroup1.Enabled:=true;

end;

end;

procedure TFpoisk.RadioGroup1Click(Sender: TObject);

begin

case fpoisk.RadioGroup1.ItemIndex of

3: fpoisk.ComboBox1.Enabled:=true;

0..2:fpoisk.ComboBox1.Enabled:=false;

end;

end;

end.

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


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

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