Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2094

.pdf
Скачиваний:
4
Добавлен:
16.06.2024
Размер:
4.76 Mб
Скачать

Продолжение прил. 1

MainMenu1: TMainMenu;

N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N8: TMenuItem; N9: TMenuItem; N7: TMenuItem; N10: TMenuItem; N20: TMenuItem; N21: TMenuItem; N23: TMenuItem;

Panel1: TPanel; Panel2: TPanel; Panel4: TPanel; Panel5: TPanel; Panel6: TPanel;

Chart1: TChart; DBChart5: TDBChart;

Series1: TPieSeries; BarSeries9: TBarSeries; BarSeries11: TBarSeries; DBChart6: TDBChart; DBChart7: TDBChart; DBChart1: TDBChart; Series2: TBarSeries; Series3: TBarSeries; BarSeries7: TBarSeries; BarSeries8: TBarSeries;

Label7: TLabel; Label5: TLabel; Label6: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label17: TLabel; Label18: TLabel; Label1: TLabel; Label2: TLabel; Label19: TLabel; Label20: TLabel;

ComboBox1: TComboBox; ComboBox2: TComboBox; DateTimePicker2: TDateTimePicker; DateTimePicker1: TDateTimePicker; N11: TMenuItem; N12: TMenuItem;

Chart2: TChart; Chart3: TChart; Chart4: TChart;

Series4: TBarSeries; Series5: TBarSeries; Series6: TBarSeries; Series7: TBarSeries; Series8: TBarSeries; Series9: TBarSeries; Button1: TButton;

procedure N4Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure N23Click(Sender: TObject); procedure N21Click(Sender: TObject); procedure FormActivate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction); function SumRasxod(Stroka:string):real;

procedure AvtoPererasxod;

procedure ComboBox1Click(Sender: TObject); procedure OneAvtoRasxod(Nom:integer); procedure FormCreate(Sender: TObject); procedure Create_Alias(MyAlias:string); private

231

Продолжение прил. 1

{Private declarations } public

{Public declarations } end;

var

FormAvtoMain: TFormAvtoMain;

Period:integer; T_KMAll,UdRasxodAll,UdRasxodAllNorma,RasxodAll,RasxodAllNorma:

array[1..366] of real; implementation

uses AvtoOne2, AvtoDvigateli, AvtoVoditeli, AvtoSpravka, AvtoAtribut, AvtoPut_List, AvtoModul;

{$R *.DFM}

procedure TFormAvtoMain.N4Click(Sender: TObject); begin

FormAvtoSpravka.ShowModal;

end;

procedure TFormAvtoMain.N6Click(Sender: TObject); begin

FormAvtoDvigateli.ShowModal;

end;

procedure TFormAvtoMain.N10Click(Sender: TObject); begin

FormAvtoVoditeli.ShowModal;

end;

procedure TFormAvtoMain.N8Click(Sender: TObject); begin

FormAvtoOne2.ShowModal;

end;

procedure TFormAvtoMain.N23Click(Sender: TObject); begin

FormAvtoAtribut.ShowModal;

end;

procedure TFormAvtoMain.N21Click(Sender: TObject); begin

FormAvtoPut_List.ShowModal; end;

procedure TFormAvtoMain.FormActivate(Sender: TObject); var L,i,code:integer;

Y,Reit:real;

232

Продолжение прил. 1

param1:string; begin

Create_Alias('dbAvto_S');

for i:=1 to Trunc(DateTimePicker2.Date)-Trunc(DateTimePicker1.Date)+1 do begin

RasxodAll[i]:=0;

RasxodAllNorma[i]:=0;

UdRasxodAll[i]:=0;

UdRasxodAllNorma[i]:=0; T_KMAll[i]:=0;

end;

DataModule1.Table5.Open;

AvtoPererasxod; With Series1 do begin

Clear;

AddPie(SumRasxod('Расход горючего-факт'),'Факт',clTeeColor); AddPie(SumRasxod('Расход горючего -норма'),'Норма',clTeeColor); end;

OneAvtoRasxod(0);

with DataModule1.Query2 do begin

If Active then Close; SQL.Clear;

SQL.Add('Select * from PUTLIST where PUTLIST."Дата" between "'+DateToStr(DateTimePicker1.Date)+'" and"'+ DateToStr(DateTimePicker2.Date)+'"');

Prepare;

Open;

for i:=1 to Trunc(DateTimePicker2.Date)-Trunc(DateTimePicker1.Date)+1 do begin

First;

while Eof=False do begin

If (FieldByName('Дата').AsDateTime=Trunc(DateTimePicker1.Date)+i-1)

and

(FieldByName('Расход горючего -норма').AsFloat<>0) then begin

233

Продолжение прил. 1

RasxodAll[i]:=RasxodAll[i]+FieldByName('Расход горючегофакт').AsInteger;

RasxodAllNorma[i]:=RasxodAllNorma[i]+FieldByName('Расход горючего -норма').AsFloat;

T_KMAll[i]:=T_KMAll[i]+FieldByName('Всего тонно-км').AsFloat end;

Next;

end;

if T_KMAll[i]<>0 then begin

UdRasxodAll[i]:=RasxodAll[i]/T_KMAll[i]; UdRasxodAllNorma[i]:=RasxodAllNorma[i]/T_KMAll[i]; end

else begin

UdRasxodAll[i]:=0;

UdRasxodAllNorma[i]:=0;

end;

end;

end;

With Series4 do begin

Clear;

for i:=1 to Trunc(DateTimePicker2.Date)-Trunc(DateTimePicker1.Date)+1

do

AddBar(RasxodAll[i],DateToStr(Trunc(DateTimePicker1.Date)+i- 1),clTeeColor);

end;

With Series5 do begin

Clear;

for i:=1 to Trunc(DateTimePicker2.Date)-Trunc(DateTimePicker1.Date)+1 do AddBar(RasxodAllNorma[i],DateToStr(Trunc(DateTimePicker1.Date)+i-

1),clTeeColor);

end;

With Series6 do begin

Clear;

for i:=1 to Trunc(DateTimePicker2.Date)-Trunc(DateTimePicker1.Date)+1 do

234

Продолжение прил. 1

AddBar(UdRasxodAll[i],DateToStr(Trunc(DateTimePicker1.Date)+i- 1),clTeeColor);

end;

With Series7 do begin

Clear;

for i:=1 to Trunc(DateTimePicker2.Date)-Trunc(DateTimePicker1.Date)+1

do

AddBar(UdRasxodAllNorma[i],DateToStr(Trunc(DateTimePicker1.Date)+i- 1),clTeeColor);

end;

With Series8 do begin

Clear;

for i:=1 to Trunc(DateTimePicker2.Date)-Trunc(DateTimePicker1.Date)+1 do Add-

Bar(UdRasxodAll[i]*ro*Emd,DateToStr(Trunc(DateTimePicker1.Date)+i- 1),clTeeColor);

end;

With Series9 do begin

Clear;

for i:=1 to Trunc(DateTimePicker2.Date)-Trunc(DateTimePicker1.Date)+1 do Add-

Bar(UdRasxodAllNorma[i]*ro*Emd,DateToStr(Trunc(DateTimePicker1.Date)+ i-1),clTeeColor);

end;

end;

function TFormAvtoMain.SumRasxod(Stroka:string):real; begin

Result:=0;

DataModule1.Table5.First;

while DataModule1.Table5.Eof=False do begin

If (DataModule1.Table5.FieldByName('Дата').AsDateTime>=DateTimePicker1.Date) and

(DataModule1.Table5.FieldByName('Дата').AsDateTime<=DateTimePicker2.Date) then

235

Продолжение прил. 1

Result:=Result+DataModule1.Table5.FieldByName(Stroka).AsFloat; DataModule1.Table5.Next;

end;

end;

procedure TFormAvtoMain.AvtoPererasxod; var otnoshenie:real;

i,j:integer; begin i:=0; j:=0;

ComboBox1.Clear; ComboBox2.Clear; DataModule1.Table5.First;

while DataModule1.Table5.Eof=False do begin

If (DataModule1.Table5.FieldByName('Дата').AsDateTime>=DateTimePicker1.Date) and

(DataModule1.Table5.FieldByName('Дата').AsDateTime<=DateTimePicker2.Date) then

begin

if DataModule1.Table5.FieldByName('Расход горючего - норма').AsFloat<>0 then

otnoshenie:=DataModule1.Table5.FieldByName('Расход горючегофакт').AsInteger/DataModule1.Table5.FieldByName('Расход горючего - норма').AsFloat

else otnoshenie:=0; If otnoshenie>1 then begin

omboBox1.Items[i]:=DataModule1.Table5.FieldByName('Госномер автомобиля').AsString+'-'+ DataModule1.Table5.FieldByName('Дата').AsString;

inc(i);

end;

If otnoshenie=0 then begin

ComboBox2.Items[j]:=DataModule1.Table5.FieldByName('Госномер автомобиля').AsString+'-'+

DataModule1.Table5.FieldByName('Дата').AsString; inc(j);

end;

end;

236

Продолжение прил. 1

DataModule1.Table5.Next;

end;

end;

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

begin

Series1.Clear; Series2.Clear; Series3.Clear; Series4.Clear; Series5.Clear; Series6.Clear; Series7.Clear; Series8.Clear; Series9.Clear; BarSeries11.Clear; BarSeries9.Clear; BarSeries7.Clear; BarSeries8.Clear; DataModule1.Table5.CLOSE; DataModule1.Query1.CLOSE; DataModule1.Query2.CLOSE;

end;

procedure TFormAvtoMain.ComboBox1Click(Sender: TObject); begin

OneAvtoRasxod(ComboBox1.ItemIndex);

end;

procedure TFormAvtoMain.OneAvtoRasxod(Nom:integer); var L:byte;

begin L:=Length(ComboBox1.Items[Nom]);

Label7.Caption:=Copy(ComboBox1.Items[Nom],1,L-11); Label8.Caption:=Copy(ComboBox1.Items[Nom],L-11+2,10); DataModule1.Table5.First;

while DataModule1.Table5.Eof=False do begin

If (DataModule1.Table5.FieldByName('Дата').AsString=Label8.Caption) and (DataModule1.Table5.FieldByName('Госномер

автомобиля').AsString=Label7.Caption) then begin

Label14.Caption:=DataModule1.Table5.FieldByName('Расход горючегофакт').AsString;

Label15.Caption:=DataModule1.Table5.FieldByName('Расход горючего - норма').AsString;

Label16.Caption:=DataModule1.Table5.FieldByName('Перевезено всего, Т').AsString;

Label17.Caption:=DataModule1.Table5.FieldByName('Пробег общий авто').AsString;

Label18.Caption:=DataModule1.Table5.FieldByName('Пробег с грузом авто').AsString;

end;

237

Продолжение прил. 1

DataModule1.Table5.Next;

end;

with DataModule1.Query1 do begin

If Active then Close; SQL.Clear;

{Params[0].AsDateTime:=DateTimePicker1.Date;

Params[1].AsDateTime:=DateTimePicker2.Date;} SQL.Add('Select * from PUTLIST where (PUTLIST."Госномер

автомобиля"="'+Label7.Caption+'") and (PUTLIST."Дата" between "'+DateToStr(DateTimePicker1.Date)+'" and"'+ Date-

ToStr(DateTimePicker2.Date)+'")');

Prepare;

Open;

end;

DBChart1.Title.Text[1]:=Label7.Caption; With Series3 do

begin Clear;

ParentChart:=DBChart1;

DataSource:=DataModule1.Query1; XLabelsSource:='Дата'; XValues.ValueSource:= 'Дата';

YValues.ValueSource:= 'Расход горючего -норма'; CheckDatasource;

end;

With Series2 do begin

Clear;

ParentChart:=DBChart1;

DataSource:=DataModule1.Query1; XLabelsSource:='Дата'; XValues.ValueSource:= 'Дата';

YValues.ValueSource:= 'Расход горючего-факт'; CheckDatasource;

end;

DBChart7.Title.Text[1]:=Label7.Caption; With BarSeries11 do

begin Clear;

238

Продолжение прил. 1

ParentChart:=DBChart7;

DataSource:=DataModule1.Query1; XLabelsSource:='Дата'; XValues.ValueSource:= 'Дата'; YValues.ValueSource:= 'Перевезено всего, Т'; CheckDatasource;

end;

DBChart6.Title.Text[1]:=Label7.Caption; With BarSeries9 do

begin Clear;

ParentChart:=DBChart6;

DataSource:=DataModule1.Query1; XLabelsSource:='Дата'; XValues.ValueSource:= 'Дата'; YValues.ValueSource:= 'Пробег общий авто'; CheckDatasource;

end;

DBChart5.Title.Text[1]:=Label7.Caption; With BarSeries7 do

begin Clear;

ParentChart:=DBChart5;

DataSource:=DataModule1.Query1; XLabelsSource:='Дата'; XValues.ValueSource:= 'Дата'; YValues.ValueSource:= 'LitrT_KMQ1'; CheckDatasource;

end;

With BarSeries8 do begin

Clear;

ParentChart:=DBChart5;

DataSource:=DataModule1.Query1; XLabelsSource:='Дата'; XValues.ValueSource:= 'Дата'; YValues.ValueSource:= 'LitrT_KM_NormaQ1'; CheckDatasource;

end;

end;

239

Продолжение прил. 1

procedure TFormAvtoMain.FormCreate(Sender: TObject); begin

Period:=7;

DateTimePicker2.Date:=Date{DateToStr(Date)}; DateTimePicker1.Date:=Date-Period{DateToStr(Date)}; end;

procedure TFormAvtoMain.Create_Alias(MyAlias:string); var

AParams: TStringList; Dir: string;

begin

Dir := ExtractFilePath(ParamStr(0)) + MyAlias; //Путь к базе. AParams := TStringList.Create;

if not Session.IsAlias(MyAlias) then //Проверка существования псевдонима dbBaza

begin

Session.AddStandardAlias(MyAlias, Dir, 'PARADOX'); Session.SaveConfigFile;

end else try begin

AParams.Clear; AParams.Add('PATH=' + Dir);

Session.ModifyAlias(MyAlias, AParams); Session.SaveConfigFile;

end; finally

AParams.Free;

end;

end;

end.

unit AvtoModul; interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables;

type

TDataModule1 = class(TDataModule)

240

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]