Постановление на учет автомобилей. Прохождение техосмотра
Автоматизации рабочих мест работников ГИБДД для регистрации транспортного средства, их владельца и составления отчетов по прохождению техосмотра. Организация ввода/вывода и пользовательского интерфейса. Общие сведения, структурная схема программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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