Постановление на учет автомобилей. Прохождение техосмотра

Автоматизации рабочих мест работников ГИБДД для регистрации транспортного средства, их владельца и составления отчетов по прохождению техосмотра. Организация ввода/вывода и пользовательского интерфейса. Общие сведения, структурная схема программы.

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

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

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

Button3Click(Sender); // то процедура поиска

end;

end;

procedure TForma_Glavnaya.Button3Click(Sender: TObject);

var field:string; // поле по котор. поиск

begin

if Edit29.Text <> '' then

begin

if ComboBox16.ItemIndex= 0 then field:='Id' else

if ComboBox16.ItemIndex= 1 then field:='Sotrudnik' else

if ComboBox16.ItemIndex= 2 then field:='kod_TC' else

if ComboBox16.ItemIndex= 3 then field:='Data' ;

if not(DataModule1.ADO_TO.Locate(field,Edit29.Text,[loCaseInsensitive,loPartialKey])) then // если запись не найдена

begin

MessageDlg('Ошибка - Такая запись не найдена', mtError, [mbOK], 0); // ругаемся

exit; // выход

end;

end

end;

procedure TForma_Glavnaya.FormCloseQuery(Sender: TObject;

var CanClose: Boolean);

begin

if MessageDlg('Вы действительно хотите выйти?', mtConfirmation, [mbOK, mbCancel], 0) = mrCancel then

canclose:=false

else Application.Terminate; // закрываем программу

end;

end.

unit Unit3;

interface

uses

SysUtils, Classes, DB, ADODB, dialogs,Variants, Forms;

type

TDataModule1 = class(TDataModule)

ADO_TC: TADOTable;

DataSource1: TDataSource;

ADOConnection1: TADOConnection;

ADO_Vladelcu: TADOTable;

DataSource2: TDataSource;

ADOConnection2: TADOConnection;

ADO_Sotrudniki: TADOTable;

DataSource3: TDataSource;

ADOConnection3: TADOConnection;

ADO_TO: TADOTable;

DataSource4: TDataSource;

ADOConnection4: TADOConnection;

procedure DataModuleCreate(Sender: TObject);

procedure DataSource2DataChange(Sender: TObject; Field: TField);

procedure DataSource1DataChange(Sender: TObject; Field: TField);

procedure DataSource3DataChange(Sender: TObject; Field: TField);

procedure DataSource4DataChange(Sender: TObject; Field: TField);

private

{ Private declarations }

public

{ Public declarations }

end;

var

DataModule1: TDataModule1;

implementation

uses Unit2;

{$R *.dfm}

procedure TDataModule1.DataModuleCreate(Sender: TObject);

begin

try

// при старте программы подключаемся к базе

ADOConnection3.Connected:=false; // сначало отключимся навсякий случай

ADOConnection3.ConnectionString:=pchar('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + ExtractFileDir(ParamStr(0))+'\baza\gibdd.mdb'+';Mode=ReadWrite;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;');

ADOConnection3.Connected:=true; // конектимся

ADO_Sotrudniki.Active:=true; // активируем таблицы

ADOConnection2.Connected:=false;

ADOConnection2.ConnectionString:=pchar('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + ExtractFileDir(ParamStr(0))+'\baza\gibdd.mdb'+';Mode=ReadWrite;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;');

ADOConnection2.Connected:=true;

ADO_Vladelcu.Active:=true;

ADOConnection1.Connected:=false;

ADOConnection1.ConnectionString:=pchar('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + ExtractFileDir(ParamStr(0))+'\baza\gibdd.mdb'+';Mode=ReadWrite;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;');

ADOConnection1.Connected:=true;

ADO_TC.Active:=true;

ADOConnection4.Connected:=false;

ADOConnection4.ConnectionString:=pchar('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + ExtractFileDir(ParamStr(0))+'\baza\gibdd.mdb'+';Mode=ReadWrite;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;');

ADOConnection4.Connected:=true;

ADO_TO.Active:=true;

except

ShowMessage('Не удалось выполнить подключение к базе данных');

Application.terminate; // завершить программу

end;

end;

procedure TDataModule1.DataSource2DataChange(Sender: TObject; Field: TField);

begin

if (ADO_Vladelcu.State=dsedit) or (ADO_Vladelcu.State=dsinsert) then exit; // выходим если таблица в режиме редактирования или вставки

if ADO_Vladelcu.FieldByName('id').value = null then exit; // если поле не заполено ты выходим

{заносим в поля на форме значения из базы}

Forma_Glavnaya.DateTimePicker5.Date:= StrToDate(ADO_Vladelcu.fieldbyname('Data_rog').value);

Forma_Glavnaya.DateTimePicker6.Date:= StrToDate(ADO_Vladelcu.fieldbyname('Data_vyd').value);

Forma_Glavnaya.DateTimePicker7.Date:= StrToDate(ADO_Vladelcu.fieldbyname('Data_vud_vu').value);

end;

procedure TDataModule1.DataSource1DataChange(Sender: TObject; Field: TField);

var i:integer; // параметр цикла

begin

try

if (ADO_TC.State=dsedit) or (ADO_TC.State=dsinsert) then exit; // выходим если таблица в режиме редактирования или вставки

if ADO_TC.fieldbyname('vladelec').value= null then exit; // если поле не заполено ты выходим

Forma_Glavnaya.DateTimePicker14.Date:= StrToDate(ADO_TC.fieldbyname('Datareg').value);

Forma_Glavnaya.Label48.Caption:= ADO_TC.fieldbyname('vladelec').value;

ADO_Vladelcu.Locate('id',Forma_Glavnaya.Label48.Caption,[]);

{ищем в раскрывающемся списке циклом значение из Таблицы (ФИО)}

for i:=0 to Forma_Glavnaya.ComboBox4.Items.Count-1 do

if Forma_Glavnaya.ComboBox4.Items[i] = string(Datamodule1.ADO_Vladelcu.FieldValues['Fam']+' '+Datamodule1.ADO_Vladelcu.FieldValues['Imya']+' '+Datamodule1.ADO_Vladelcu.FieldValues['Otch']) then

begin

Forma_Glavnaya.ComboBox4.ItemIndex:= i; // присваиваем индекс активной строки в раскрывающемся списке - найденному элементу

break; // завершаем цикл, т.к. элемент найден и продолжать перебор бессмысленно

end;

for i:=0 to Forma_Glavnaya.ComboBox5.Items.Count-1 do

if Forma_Glavnaya.ComboBox5.Items[i]= string(Datamodule1.ADO_TC.FieldValues['kategoriya']) then

begin

Forma_Glavnaya.ComboBox5.ItemIndex:=i;

break;

end;

Forma_Glavnaya.Label73.Caption:= ADO_TC.fieldbyname('sotrudnik').value;

ADO_Sotrudniki.Locate('id',Forma_Glavnaya.Label73.Caption,[]);

for i:=0 to Forma_Glavnaya.ComboBox10.Items.Count-1 do

if Forma_Glavnaya.ComboBox10.Items[i] = string(Datamodule1.ADO_Sotrudniki.FieldValues['Fam']+' '+Datamodule1.ADO_Sotrudniki.FieldValues['Imya']+' '+Datamodule1.ADO_Sotrudniki.FieldValues['Otch']) then

begin

Forma_Glavnaya.ComboBox10.ItemIndex:= i;

break;

end;

Forma_Glavnaya.ComboBox6.Text:= Datamodule1.ADO_TC.FieldValues['cvet'];

Forma_Glavnaya.ComboBox5Change(Sender); // обработка события изменения раскрывающегося списка

except

end;

end;

procedure TDataModule1.DataSource3DataChange(Sender: TObject; Field: TField);

begin

if (ADO_Sotrudniki.State=dsedit) or (ADO_Sotrudniki.State=dsinsert) then exit;

if ADO_Sotrudniki.FieldByName('id').value = null then exit;

Forma_Glavnaya.DateTimePicker11.Date:= StrToDate(ADO_Sotrudniki.fieldbyname('Data_rog').value);

Forma_Glavnaya.DateTimePicker12.Date:= StrToDate(ADO_Sotrudniki.fieldbyname('Data_vyd').value);

Forma_Glavnaya.DateTimePicker13.Date:= StrToDate(ADO_Sotrudniki.fieldbyname('DataPost').value);

end;

procedure TDataModule1.DataSource4DataChange(Sender: TObject; Field: TField);

var i :integer;

begin

if Datamodule1.ADO_Sotrudniki.Active=false then exit;

if (ADO_TO.State=dsedit) or (ADO_TO.State=dsinsert) then exit;

if ADO_TO.FieldByName('id').value = null then exit;

Forma_Glavnaya.DateTimePicker15.Date:= StrToDate(ADO_TO.fieldbyname('Data').value);

Forma_Glavnaya.Label88.Caption:= ADO_TO.fieldbyname('Sotrudnik').value;

ADO_Sotrudniki.Locate('id',Forma_Glavnaya.Label88.Caption,[]);

for i:=0 to Forma_Glavnaya.ComboBox19.Items.Count-1 do

if Forma_Glavnaya.ComboBox19.Items[i] = string(Datamodule1.ADO_Sotrudniki.FieldValues['Fam']+' '+Datamodule1.ADO_Sotrudniki.FieldValues['Imya']+' '+Datamodule1.ADO_Sotrudniki.FieldValues['Otch']) then

begin

Forma_Glavnaya.ComboBox19.ItemIndex:= i;

break;

end;

Forma_Glavnaya.Label91.Caption:= ADO_TO.fieldbyname('kod_TC').value;

ADO_TC.Locate('id',Forma_Glavnaya.Label91.Caption,[]);

for i:=0 to Forma_Glavnaya.ComboBox20.Items.Count-1 do

if Forma_Glavnaya.ComboBox20.Items[i] = string(Datamodule1.ADO_TC.FieldValues['RegNum']) then

begin

Forma_Glavnaya.ComboBox20.ItemIndex:= i;

break;

end;

if ADO_TO.fieldbyname('Ekspl').value='Да' then

Forma_Glavnaya.ComboBox15.ItemIndex:=0

else

Forma_Glavnaya.ComboBox15.ItemIndex:=1;

Forma_Glavnaya.ComboBox15Change(self);

end;

end.

unit Unit6;

interface

uses

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

Dialogs, StdCtrls, Buttons, DateUtils;

type

TF_VU = class(TForm)

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

ComboBox1: TComboBox;

Label1: TLabel;

Label2: TLabel;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

F_VU: TF_VU;

implementation

uses Unit5, Unit2, Unit3;

{$R *.dfm}

procedure TF_VU.BitBtn1Click(Sender: TObject);

begin

// фильтруем по ФИО владельца ТС

DataModule1.ADO_Vladelcu.Filter:='Fam = '''+ copy(ComboBox1.Text,1,pos(' ',ComboBox1.Text)-1)+'''';

DataModule1.ADO_Vladelcu.Filtered:=true;

if DataModule1.ADO_Vladelcu.RecordCount<1 then // ругаемся если нет такого владельца

begin

ShowMessage('Нет записей, удовлетворяющих данному условию.');

DataModule1.ADO_Vladelcu.Filtered:=false;

exit; // выходим

end;

close; // закрываем

// расчитываем срок действия Водительского удостоверения = + 10 лет от даты выдачи Data_vud_vu

Forma_VU.QRLabel19.Caption:= datetostr(IncYear(strtodate(DataModule1.ADO_Vladelcu.fieldbyname('Data_vud_vu').Value),10));

Forma_VU.QuickRep1.Preview; // показать отчет

datamodule1.ADO_Vladelcu.Filtered:=false;

end;

procedure TF_VU.BitBtn2Click(Sender: TObject);

begin

close; // закрываем форму

end;

procedure TF_VU.FormActivate(Sender: TObject);

begin

Forma_Glavnaya.Enabled:=false; // блокируем главную форму

Forma_Glavnaya.Obn_Vladelcev; // вызываем процедуру обновления владельцев, чтобы заполнить раскрывающийся список

end;

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

begin

Forma_Glavnaya.Enabled:=true; // разрешаем главную форму

end;

end.

unit Unit10;

interface

uses

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

Dialogs, StdCtrls, Buttons;

type

TF_LKS = class(TForm)

Label1: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

ComboBox1: TComboBox;

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

F_LKS: TF_LKS;

implementation

uses Unit3, Unit5, Unit9, Unit6, Unit2;

{$R *.dfm}

procedure TF_LKS.BitBtn2Click(Sender: TObject);

begin

close; // закрываем форму

end;

procedure TF_LKS.BitBtn1Click(Sender: TObject);

begin

// фильтруем сотрудников по фамилии

DataModule1.ADO_Sotrudniki.Filter:='Fam = '''+ copy(ComboBox1.Text,1,pos(' ',ComboBox1.Text)-1)+'''';

DataModule1.ADO_Sotrudniki.Filtered:=true;

close; // закрываем форму

Forma_LKS.QuickRep1.Preview; // показать отчет

DataModule1.ADO_Sotrudniki.Filtered:=false; // сброс фильтра

end;

procedure TF_LKS.FormActivate(Sender: TObject);

begin

Forma_Glavnaya.Enabled:=false; // блокируем главную форму

try

Datamodule1.ADO_Sotrudniki.Refresh; // обновляем таблицу

Datamodule1.ADO_Sotrudniki.First; // переходим к первой записи

ComboBox1.Clear; // очищаем список

while not(Datamodule1.ADO_Sotrudniki.EOF) do // до конца таблицы делаем...

begin

ComboBox1.Items.add(string(Datamodule1.ADO_Sotrudniki.FieldValues['Fam']+' '+Datamodule1.ADO_Sotrudniki.FieldValues['Imya']+' '+Datamodule1.ADO_Sotrudniki.FieldValues['Otch']));

Datamodule1.ADO_Sotrudniki.Next; // к следующей записи

end;

ComboBox1.ItemIndex:=0; // на первого в списке

Datamodule1.ADO_Sotrudniki.First; // на первую запись в таблице

except

end;

end;

procedure TF_LKS.ComboBox1KeyPress(Sender: TObject; var Key: Char);

begin

key:=#0; // запрет ввода символов (жаль дел не отлавливает)

end;

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

begin

Forma_Glavnaya.Enabled:=true; // разрешаем главную форму

end;

end.

unit Unit11;

interface

uses

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

Dialogs, StdCtrls, Buttons;

type

TF_PTC = class(TForm)

Label1: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

ComboBox1: TComboBox;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

F_PTC: TF_PTC;

implementation

uses Unit3, Unit5, Unit8, Unit2;

{$R *.dfm}

procedure TF_PTC.BitBtn1Click(Sender: TObject);

begin

// фильтруем таблицу по рег номеру выбранному в нашем раскрывающемся списке

DataModule1.ADO_TC.Filter:='regnum = '''+ ComboBox1.Text+'''';

DataModule1.ADO_TC.Filtered:=true; // применяем фильтр

if DataModule1.ADO_TC.RecordCount<1 then // смотрим есть ли записи после фильтрации

begin

ShowMessage('Нет записей, удовлетворяющих данному условию.');

DataModule1.ADO_TC.Filtered:=false; // снимаем фильтр

exit; // выходим

end;

close; // закрываем форму

DataModule1.ADO_Vladelcu.Locate('id',DataModule1.ADO_TC.fieldbyname('vladelec').value,[]); // ищем владельца ТС

// выводим в метку в отчете его ФИО (сборно из Ф + И +О)

Forma_PTC.QRLabel20.Caption:= Datamodule1.ADO_Vladelcu.FieldValues['Fam']+' '+Datamodule1.ADO_Vladelcu.FieldValues['Imya']+' '+Datamodule1.ADO_Vladelcu.FieldValues['Otch'];

Forma_PTC.QRLabel22.Caption:= Datamodule1.ADO_Vladelcu.FieldValues['MestoGit']; // выводим местожит.

Forma_PTC.QuickRep1.Preview; // показать отчет

DataModule1.ADO_TC.Filtered:=false; // сброс фильтра (т.е. сброс фильтра делаем всегда только после отчета)

end;

procedure TF_PTC.BitBtn2Click(Sender: TObject);

begin

close; // закрываем форму

end;

procedure TF_PTC.FormActivate(Sender: TObject);

begin

Forma_Glavnaya.Enabled:=false; // блокируем главную форму

try

Datamodule1.ADO_TC.Refresh; // обновляем таблицу

Datamodule1.ADO_TC.First; // переходим к первой записи

ComboBox1.Clear; // очищаем список

while not(Datamodule1.ADO_TC.EOF) do // до конца таблицы делаем...

begin

ComboBox1.Items.add(string(Datamodule1.ADO_TC.FieldValues['RegNum']));

Datamodule1.ADO_TC.Next; // к следующей записи

end;

ComboBox1.ItemIndex:=0; // на первого в списке

Datamodule1.ADO_TC.First; // на первую запись в таблице

except

end;

end;

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

begin

Forma_Glavnaya.Enabled:=true; // разрешаем заблокированную ранее главную форму

end;

end.

unit Unit14;

interface

uses

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

Dialogs, StdCtrls, Buttons, DateUtils, ExtCtrls;

type

TF_TTO = class(TForm)

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

Label1: TLabel;

Label2: TLabel;

procedure FormActivate(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

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

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

F_TTO: TF_TTO;

x:bool;

implementation

uses Unit3, Unit12, Unit13, Unit2;

{$R *.dfm}

procedure TF_TTO.FormActivate(Sender: TObject);

begin

Forma_Glavnaya.Enabled:=false; // блочим главную форму

try

Datamodule1.ADO_TC.Refresh; // обновляем таблицу

Datamodule1.ADO_TC.First; // переходим к первой записи

ComboBox1.Clear; // очищаем список сотрудников

while not(Datamodule1.ADO_TC.EOF) do // до конца таблицы делаем...

begin

ComboBox1.Items.add(string(Datamodule1.ADO_TC.FieldValues['RegNum'])); // выводим в раскрывающийся список все рег номера из таблицы

Datamodule1.ADO_TC.Next; // к следующей записи

end;

ComboBox1.ItemIndex:=0; // на первого в списке

Datamodule1.ADO_TC.First; // на первую запись в таблице

ComboBox1Change(Sender);

except

end;

x:=false;

end;

procedure TF_TTO.ComboBox1Change(Sender: TObject);

begin

// фильтруем таблицу по текущему рег номеру из ComboBox1

DataModule1.ADO_TC.Locate('regnum',ComboBox1.Text,[]);

// фильтр где код ТС = текущему коду ТС и эксплуатация ТС разрешена (Да)

DataModule1.ADO_TO.Filter:='kod_TC = '''+ DataModule1.ADO_TC.fieldbyname('id').asstring+''''+ ' and Ekspl=''Да''';

DataModule1.ADO_TO.Filtered:=true;

ComboBox2.Clear; // очищаем раскрывающийся список с датами прохождения ТО

if DataModule1.ADO_TO.RecordCount<1 then exit; // если записейй нет то выходим

DataModule1.ADO_TO.First; // на первую запись в ADO_TO

// в цикле по таблице ADO_TO

while not(DataModule1.ADO_TO.Eof) do // пока таблица не кончится

begin

ComboBox2.Items.Add(DataModule1.ADO_TO.fieldbyname('data').value); // заносим даты прохождения

DataModule1.ADO_TO.Next; // следующая запись

end;

ComboBox2.ItemIndex:=0; // на первую дату в раскрывающемся списке

end;

procedure TF_TTO.ComboBox1KeyPress(Sender: TObject; var Key: Char);

begin

key:=#0 // запрет ввода символов

end;

procedure TF_TTO.BitBtn2Click(Sender: TObject);

begin

DataModule1.ADO_TC.Filtered:=false; // снимаем фильтр таблиц

DataModule1.ADO_TO.Filtered:=false;

close; // закрываем форму

end;

procedure TF_TTO.BitBtn1Click(Sender: TObject);

var god,q,w:word;

begin

if ComboBox2.Text='' then

begin

ShowMessage('Нет записей, удовлетворяющих данному условию.');

exit;

end;

DataModule1.ADO_TC.Locate('regnum',ComboBox1.Text,[]);

DataModule1.ADO_TO.Filter:='kod_TC = '''+DataModule1.ADO_TC.fieldbyname('id').asstring+''' and data='+(ComboBox2.Text);

DataModule1.ADO_TO.Filtered:=true;

DataModule1.ADO_TC.Locate('id',DataModule1.ADO_TO.fieldbyname('kod_TC').value,[]);

Forma_TTO.QRLabel2.Caption:= Datamodule1.ADO_TC.FieldValues['RegNum'];

Forma_TTO.QRLabel3.Caption:= Datamodule1.ADO_TC.FieldValues['RegNum'];

DataModule1.ADO_Vladelcu.Locate('id',DataModule1.ADO_TC.fieldbyname('vladelec').value,[]);

Forma_TTO.QRLabel21.Caption:= Datamodule1.ADO_Vladelcu.FieldValues['Fam'];

Forma_TTO.QRLabel22.Caption:=Datamodule1.ADO_Vladelcu.FieldValues['Imya'];

Forma_TTO.QRLabel23.Caption:=Datamodule1.ADO_Vladelcu.FieldValues['Otch'];

DecodeDate(strtodate(DataModule1.ADO_TO.fieldbyname('data').asstring),god,q,w);

Forma_TTO.QRLabel1.Caption:=''''+copy(inttostr(god+1),3,4);

Forma_TTO.QRLabel11.Caption:=datetostr(strtodate(DataModule1.ADO_TO.fieldbyname('data').asstring)+IncDay(365));

x:=true;

close;

Forma_TTO.QuickRep1.Preview; // показать отчет

DataModule1.ADO_TC.Filtered:=false;

DataModule1.ADO_TO.Filtered:=false;

end;

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

begin

Forma_Glavnaya.Enabled:=true; // разрешаем главную форму

if x=false then // проверяем, если форма закрыается раньше чем показался отчет, то мы не снимаем фильтра с таблиц.

begin

DataModule1.ADO_TC.Filtered:=false;

DataModule1.ADO_TO.Filtered:=false;

x:=false;

end;

end;

procedure TF_TTO.FormCreate(Sender: TObject);

begin

x:=false; // при старте формы - для закрытия подразумевается что отчет не запускался и нужно снять фильтры с таблиц

end;

end.

unit Unit15;

interface

uses

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

Dialogs, StdCtrls, Buttons;

type

TF_SRG = class(TForm)

Label1: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

ComboBox1: TComboBox;

procedure FormActivate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure ComboBox2KeyPress(Sender: TObject; var Key: Char);

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

F_SRG: TF_SRG;

implementation

uses Unit3, Unit7, DB, Unit2;

{$R *.dfm}

procedure TF_SRG.FormActivate(Sender: TObject);

begin

Forma_Glavnaya.Enabled:=false; // блокируем главную форму

try

Datamodule1.ADO_TC.Refresh; // обновляем таблицу

Datamodule1.ADO_TC.First; // переходим к первой записи

ComboBox1.Clear; // очищаем список

while not(Datamodule1.ADO_TC.EOF) do // до конца таблицы делаем...

begin

ComboBox1.Items.add(string(Datamodule1.ADO_TC.FieldValues['RegNum']));

Datamodule1.ADO_TC.Next; // к следующей записи

end;

ComboBox1.ItemIndex:=0; // на первого в списке

Datamodule1.ADO_TC.First; // на первую запись в таблице

except

end;

end;

procedure TF_SRG.BitBtn1Click(Sender: TObject);

begin

// фильтруем таблицу ADO_TC по рег номеру авто выбранному в раскр списке ComboBox1

DataModule1.ADO_TC.Filter:='regnum = '''+ ComboBox1.Text+'''';

DataModule1.ADO_TC.Filtered:=true; // применяем фильтр

if DataModule1.ADO_TC.RecordCount<1 then // ругаемся если фильтр не дает записей

begin

ShowMessage('Нет записей, удовлетворяющих данному условию.');

DataModule1.ADO_TC.Filtered:=false; // сбрасываем фильтр

exit; // выходим

end;

close; // закрываем форму

DataModule1.ADO_Vladelcu.Locate('id',DataModule1.ADO_TC.fieldbyname('vladelec').value,[]); // ищем владельца ТС

// Выводим его фио в соответствующие поля

Forma_SRG.QRLabel21.Caption:= Datamodule1.ADO_Vladelcu.FieldValues['Fam'];

Forma_SRG.QRLabel22.Caption:= Datamodule1.ADO_Vladelcu.FieldValues['Imya'];

Forma_SRG.QRLabel23.Caption:= Datamodule1.ADO_Vladelcu.FieldValues['Otch'];

Forma_SRG.QRLabel4.Caption:= Datamodule1.ADO_Vladelcu.FieldValues['MestoGit'];

Forma_SRG.QuickRep1.Preview; // показать отчет

DataModule1.ADO_TC.Filtered:=false;

end;

procedure TF_SRG.BitBtn2Click(Sender: TObject);

begin

close; // закрываем форму

end;

procedure TF_SRG.ComboBox2KeyPress(Sender: TObject; var Key: Char);

begin

key:=#0; // запрещаем нажатие клавиш

end;

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

begin

Forma_Glavnaya.Enabled:=true; // разрешаем главную форму

end;

end.

unit Unit16;

interface

uses

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

Dialogs, StdCtrls, Buttons, ExtCtrls;

type

TF_AKT_TO = class(TForm)

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

Label2: TLabel;

Label1: TLabel;

procedure FormActivate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);

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

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

F_AKT_TO: TF_AKT_TO;

x:bool;

implementation

uses Unit3, Unit8, Unit13, Unit2;

{$R *.dfm}

procedure TF_AKT_TO.FormActivate(Sender: TObject);

begin

Forma_Glavnaya.Enabled:=false; // запрещаем главную форму

try

Datamodule1.ADO_TC.Refresh; // обновляем таблицу

Datamodule1.ADO_TC.First; // переходим к первой записи

ComboBox1.Clear; // очищаем раскрывающийся список

while not(Datamodule1.ADO_TC.EOF) do // до конца таблицы делаем...

begin

ComboBox1.Items.add(string(Datamodule1.ADO_TC.FieldValues['RegNum'])); // добавляем регистрационный номер

Datamodule1.ADO_TC.Next; // к следующей записи

end;

ComboBox1.ItemIndex:=0; // на первую запись в списке

Datamodule1.ADO_TC.First; // на первую запись в таблице

ComboBox1Change(Sender);

except

end;

end;

procedure TF_AKT_TO.BitBtn1Click(Sender: TObject);

begin

if ComboBox2.Text='' then // если нет рег номеров то ругаемся и выходим

begin

ShowMessage('Нет записей, удовлетворяющих данному условию.');

exit;

end;

DataModule1.ADO_TC.Locate('regnum',ComboBox1.Text,[]); // находим в таблице ТС regnum , для того чтобы ниже взять поле id этой записи

{Фильтруем таблицу}

DataModule1.ADO_TO.Filter:='kod_TC = '''+DataModule1.ADO_TC.fieldbyname('id').asstring+''' and data='+(ComboBox2.Text);

DataModule1.ADO_TO.Filtered:=true; // фильтруем

DataModule1.ADO_TC.Locate('id',DataModule1.ADO_TO.fieldbyname('kod_TC').value,[]); // ищем в таблице ТС запись по коду ТС

Forma_AKT_TO.QRLabel3.Caption:= Datamodule1.ADO_TC.FieldValues['RegNum']; // выводим в метку в отчете рег номер

DataModule1.ADO_Sotrudniki.Locate('id',DataModule1.ADO_TO.fieldbyname('Sotrudnik').value,[]); // изем в таблице Sotrudniki код сотрудника

// выводим его ФИО в отчет

Forma_AKT_TO.QRLabel4.Caption:= string(Datamodule1.ADO_Sotrudniki.FieldValues['Fam']+' '+Datamodule1.ADO_Sotrudniki.FieldValues['Imya']+' '+Datamodule1.ADO_Sotrudniki.FieldValues['Otch']);

DataModule1.ADO_Vladelcu.Locate('id',DataModule1.ADO_TC.fieldbyname('vladelec').value,[]);

Forma_AKT_TO.QRLabel5.Caption:= string(Datamodule1.ADO_Vladelcu.FieldValues['Fam']+' '+Datamodule1.ADO_Vladelcu.FieldValues['Imya']+' '+Datamodule1.ADO_Vladelcu.FieldValues['Otch']);

Forma_AKT_TO.QRLabel6.Caption:= Datamodule1.ADO_TC.FieldValues['marka']+' '+ Datamodule1.ADO_TC.FieldValues['god']+' г.';

Forma_AKT_TO.QRLabel7.Caption:= Datamodule1.ADO_TC.FieldValues['n_shassi'];

Forma_AKT_TO.QRLabel8.Caption:= Datamodule1.ADO_TC.FieldValues['n_dvig'];

{В зависимости от того разрешена или нет эксплуатация, очищаем или заполянем метки в отчете}

if Datamodule1.ADO_TO.FieldValues['Ekspl']='Да' then

begin

Forma_AKT_TO.QRLabel9.Caption:='Соответствует техническим требованиям и допускается к эксплуатации';

Forma_AKT_TO.QRLabel10.Caption:='';

Forma_AKT_TO.QRRichText1.Lines.Clear;

end

else

begin

Forma_AKT_TO.QRLabel9.Caption:='';

Forma_AKT_TO.QRLabel10.Caption:='В ходе проверке обнаружены следующие несоответствия';

Forma_AKT_TO.QRRichText1.Lines.Add(Datamodule1.ADO_TO.FieldValues['Zamec']);

end;

x:=true; // для того чтобы при закрытии формы не снять фильтр (иначе отчет не получится)

close; // закрываем

Forma_AKT_TO.QuickRep1.Preview; // показать отчет

// и только теперь снимаем фильтр

DataModule1.ADO_TC.Filtered:=false;

DataModule1.ADO_TO.Filtered:=false;

end;

procedure TF_AKT_TO.BitBtn2Click(Sender: TObject);

begin

DataModule1.ADO_TC.Filtered:=false; // снимаем фильтр таблиц

DataModule1.ADO_TO.Filtered:=false;

close; // закрываем форму

end;

procedure TF_AKT_TO.ComboBox1Change(Sender: TObject);

begin

DataModule1.ADO_TC.Locate('regnum',ComboBox1.Text,[]);

DataModule1.ADO_TO.Filter:='kod_TC = '''+ DataModule1.ADO_TC.fieldbyname('id').asstring+'''';

DataModule1.ADO_TO.Filtered:=true;

ComboBox2.Clear;

if DataModule1.ADO_TO.RecordCount<1 then exit;

while not(DataModule1.ADO_TO.Eof) do

begin

ComboBox2.Items.Add(DataModule1.ADO_TO.fieldbyname('data').value);

DataModule1.ADO_TO.Next;

end;

ComboBox2.ItemIndex:=0;

end;

procedure TF_AKT_TO.ComboBox1KeyPress(Sender: TObject; var Key: Char);

begin

key:=#0

end;

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

begin

Forma_Glavnaya.Enabled:=true; // разрешаем главную форму

if x=false then // проверяем, если форма закрыается раньше чем показался отчет, то мы не снимаем фильтра с таблиц.

begin

DataModule1.ADO_TC.Filtered:=false;

DataModule1.ADO_TO.Filtered:=false;

x:=false;

end;

end;

procedure TF_AKT_TO.FormCreate(Sender: TObject);

begin

x:=false; // при старте формы - для закрытия подразумевается что отчет не запускался и нужно снять фильтры с таблиц

end;

end.

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


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

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

    курсовая работа [1,2 M], добавлен 30.01.2016

  • Использование программой функции ввода-вывода данных для реализации дружественного интерфейса с пользователем. Функции консоли и особенности их применения для обеспечения аккуратного ввода информации и упорядоченного вывода. Обзор стандартных функций.

    лабораторная работа [40,4 K], добавлен 06.07.2009

  • Структура и информационные потоки объекта автоматизации, основные требования к разрабатываемой системе. Моделирование предметной области, структуры данных, форм ввода и вывода информации, отчетов, Требование к оборудованию и программному обеспечению.

    курсовая работа [1,0 M], добавлен 14.06.2014

  • Разработка программы для автоматизации складского учета. Описание предметной области и технологии функционирования информационной системы. Физическое проектирование базы данных. Создание экранных форм ввода-вывода, отчетов, модулей для прикладных решений.

    курсовая работа [3,6 M], добавлен 08.12.2013

  • Общие сведения о языке С++. Операции и выражения, стандартные функции и структура программы. Использование функций при программировании на С++. Основные алгоритмы обработки массивов. Статические и динамические матрицы. Организация ввода-вывода в C++.

    учебное пособие [6,7 M], добавлен 28.03.2014

  • Создание программы на платформе "1С: Предприятие" для учета продуктов, доходов, формирования печатных форм документов. Логическая и физическая модель информационной системы. Разработка экранных форм ввода-вывода, отчетов и функциональных модулей.

    курсовая работа [2,4 M], добавлен 26.11.2013

  • Внедрение программы "Частный предприниматель" для оперативной обработки информации и автоматизации работы с клиентами и учета товаров. Основные функции системы. Построение информационно-логической модели. Разработка пользовательского интерфейса.

    контрольная работа [1,5 M], добавлен 30.11.2009

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

    контрольная работа [93,1 K], добавлен 31.08.2010

  • Необходимые для разработки автоматизированной информационной системы программные и технические средства. Иерархическая схема наследования объектов. Добавление новой записи. Формирование отчетов в формате Word. Инструментальные средства разработки.

    дипломная работа [996,2 K], добавлен 20.06.2014

  • Организация и назначение консольного ввода-вывода, необходимые для этого функции и их применение. Библиотеки, организующие функционирование потокового ввода-вывода, выполняемые операции. Арифметические операции и математические функции в среде С++.

    лабораторная работа [33,8 K], добавлен 15.07.2009

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