Выбор стратегии тестирования и разработка тестов
Тестирование – процесс многократного повторения программы с целью обнаружения ошибок. Существуют следующие методы тестирования ПС:
- статическое тестирование – ручная проверка программы за столом;
- детерминированное тестирование – при различных комбинациях исходных данных;
- стохастическое – исходные данные выбираются произвольно, на выходе определяется качественное совпадение результатов или примерная оценка /13/.
При тестировании данного программного средства была применена ручная проверка программы за столом и детерминированное тестирование.
Ошибки, которые связаны с некорректным вводом данных, вводом значений, выходящих за пределы допустимых, а также ошибки, возникающие в работе пользователя с АИС, исключаются средствами самой СУБД при создании базы данных, а именно – методы сохранения целостности данных, маски ввода, логические ограничения, обязательность значений.
Ниже приведен пример контрольного теста с использованием разработанного программного средства.
На рисунке 7 приведены исходные данные для теста.
Рисунок 7 – Тестовый набор данных
Нормированная матрица исходных данных изображена на рисунке 8.
Рисунок 8 – Нормированная исходная матрица
Результаты корреляционного анализа представлены на рисунке 9.
Рисунок 9 – Результаты корреляционного анализа
Результаты регрессионного анализа и расчёта неприкосновенного запаса ГСМ представлены на рисунке 10.
Рисунок 10 – Результаты РА и расчёта запаса ГСМ
Результат расчета коэффициентов регрессионного уравнения при помощи пакета MathCAD 2001 Professional приведен на рисунке 11.
Рассчитанные коэффициенты уравнения регрессии с помощью разработанного программного средства и математического пакета MathCAD 2001 Professional совпадают, что свидетельствует о корректности проведённого расчета разработанным приложением. Таким же методом можно проверить и результаты расчета матрицы парных корреляций, множественных коэффициентов детерминации и корреляции и их адекватности, а также значимости уравнения регрессии.
Рисунок 11 – Расчет коэффициентов уравнения регрессии в среде MathCAD 2001
Приложение А
Приложение Б
Руководство пользователя
1 Назначение программного средства
Разработанное программное средство предназначено для ведения справочной информации, учётных данных отдела горюче-смазочных материалов автобазы, проведения прогноза неприкосновенного запаса ГСМ на автобазе с помощью корреляционно-регрессионного анализа.
2 Условия выполнения программы
Программная система должна работать под управлением операционной системы MS Windows 98 или выше на IBM/PC совместимых персональных компьютерах с минимальной конфигурацией, указанной в техническом задании в пункте 4.3.2. Необходима установленная среда C++Builder 6 и InterBase 7.5.
3 Выполнение программного средства
После запуска программы происходит идентификация пользователя. Необходимо ввести логин и пароль. Войдя в программу, пользователь видит главное окно программы, макет которого представлен на рисунке 12.
Рисунок 12 – Макет главного окна программы
В верхней части окна находятся три вкладки:
- ведение учётной и справочной информации. Данная вкладка, изображённая на рисунке 13, необходима для ввода, обновления, поиска, просмотра соответствующей информации отдела ГСМ автобазы. Пример просмотра справочника автомобилей приведён на рисунке 14.
Рисунок 13 – Ведение учётной и справочной информации
Рисунок 14 – Справочник автомобилей
- просмотр запросов и отчётов. Пример запроса перечня всех ГСМ, выданных за заданный период, и их количества представлен на рисунке 15.
Рисунок 15 – Виды и количества ГСМ, выданных за заданный период
- корреляционно-регрессионный анализ. С помощью данной вкладки проводится корреляционно-регрессионный анализ и расчёт неприкосновенного запаса ГСМ на автобазе. Пример проведённого анализа и прогноза неприкосновенного запаса ГСМ на автобазе представлен на рисунке 16.
Рисунок 16 – Пример результата проведённого анализа и прогноза запаса ГСМ
Сообщения пользователю
В данном программном средстве сообщения пользователю содержатся на соответствующих интерфейсных элементах, а также в информационных окнах, предупреждающих об ошибках.
Приложение В
Листинг программы
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "Main.h"
#include "Autobasa.h"
#include "Garag.h"
#include "GSM.h"
#include "Automobil.h"
#include "ViewVed.h"
#include "OtchV.h"
#include "ViewProc2.h"
#include "ViewProc3.h"
#include "Matriza.h"
#include "Adekvat.h"
#include "PutList.h"
#include "Vedom.h"
#include "Zaprav.h"
#include "HistoryKRA.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form2->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form3->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Form5->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Form4->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Form6->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
Form7->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
Form1->PageControl1->ActivePage=TabSheet4;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
BitBtn1->Click();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
Form8->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
Form9->ShowModal();
}
//---------------------------------------------------------------------------
double roundResult (double d, int p)
{
int pr=1;
for (int j=0; j<p; j++)
pr*=10;
d = d*pr;
int i = (int) d;
return (double) i/pr;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button10Click(TObject *Sender)
{
StringGrid1->Cells[0][0]="X1";
StringGrid1->Cells[1][0]="X2";
StringGrid1->Cells[2][0]="X3";
StringGrid1->Cells[3][0]="Y";
n=-1; k=3;
for (int i=0; i<row; i++)
{
n++;
IBStoredProc1->Params->Items[4]->Value=1;
IBStoredProc1->Params->Items[5]->Value=Now()-7*(i+1);
IBStoredProc1->Params->Items[6]->Value=Now()-7*i;
IBStoredProc1->Prepare();
IBStoredProc1->ExecProc();
X[n][0]=IBStoredProc1->ParamByName("COLAVTO")->AsInteger;
X[n][1]=IBStoredProc1->ParamByName("SREDCOLL")->AsFloat;
X[n][2]=IBStoredProc1->ParamByName("PROBEG")->AsFloat;
Y[n]=IBStoredProc1->ParamByName("SUMCOLL")->AsFloat;
StringGrid1->Cells[0][i+1]=X[n][0];
StringGrid1->Cells[1][i+1]=X[n][1];
StringGrid1->Cells[2][i+1]=X[n][2];
StringGrid1->Cells[3][i+1]=Y[n];
}
n=16;
Button10->Enabled=false;
Button12->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button11Click(TObject *Sender)
{
for (int i=0; i<row; i++)
{
XX[i][0]=1;
XX[i][1]=X[i][0];
XX[i][2]=X[i][1];
XX[i][3]=X[i][2];
}
Object.Transponirovanie_Matriza(XX,XXtran,row,k+1);
Object.Mult_Matriza_Matriza(XXtran,XX,CX,k+1,row,k+1);
Object.Obratnaya_Matriza(CX,Xobr,k+1);
Object.Mult_Matriza_Vector(XXtran,Y,A1,k+1,row);
Object.Mult_Matriza_Vector(Xobr,A1,A,k+1,k+1);
double t0=roundResult(A[0],3), t1=roundResult(A[1],3),
t2=roundResult(A[2],3), t3=roundResult(A[3],3);
Edit1->Text=" Y = "+FloatToStr(t0)+" + "+FloatToStr(t1)+" * X1"+
" + "+FloatToStr(t2)+" * X2"+" + "+FloatToStr(t3)+" * X3";
Button11->Enabled=false;
Button14->Enabled=true;
Button17->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button12Click(TObject *Sender)
{
Object.Mat_Ozidanie(X,Mx,row,k);
Object.Sred_Kvadr_Otkl(X,Mx,Sig,row,k);
Object.Normirovanie_Matriza(X,Mx,Sig,Xnorm,row,k);
Object.Normirovanie_Vector(Y,Ynorm,row);
StringGrid4->Cells[0][0]="X1";
StringGrid4->Cells[1][0]="X2";
StringGrid4->Cells[2][0]="X3";
StringGrid4->Cells[3][0]="Y";
for (int i=0; i<row; i++)
{
StringGrid4->Cells[0][i+1]=roundResult(Xnorm[i][0],4);
StringGrid4->Cells[1][i+1]=roundResult(Xnorm[i][1],4);
StringGrid4->Cells[2][i+1]=roundResult(Xnorm[i][2],4);
StringGrid4->Cells[3][i+1]=roundResult(Ynorm[i],4);
}
Button12->Enabled=false;
Button13->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button13Click(TObject *Sender)
{
for (int i=0; i<row; i++)
{
Z[i][0]=Xnorm[i][0];
Z[i][1]=Xnorm[i][1];
Z[i][2]=Xnorm[i][2];
Z[i][3]=Ynorm[i];
}
Object.Transponirovanie_Matriza(Z,Xtran,row,k+1);
Object.Mult_Matriza_Matriza(Xtran,Z,C,k+1,row,k+1);
Object.Mult_Matriza_Number(C,CC,k+1,k+1,0.0625); // n=16, следовательно 1/n=0.0625
for (int i=0; i<k+1; i++)
for (int j=0; j<k+1; j++)
StringGrid5->Cells[i][j]=roundResult(CC[i][j],4);
kd=1-(Object.Opredelitel_Matriza(CC,k+1)/Object.Opredelitel_Matriza(CC,k));
kk=pow(kd,0.5);
double ttkd=roundResult(kd,4);
Edit2->Text=FloatToStr(ttkd);
ttkd=roundResult(kk,4);
Edit3->Text=FloatToStr(ttkd);
Button13->Enabled=false;
Button18->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button14Click(TObject *Sender)
{
double zap=roundResult(A[0]+A[1]*StrToFloat(Edit4->Text)+
A[2]*StrToFloat(Edit5->Text)+A[3]*StrToFloat(Edit6->Text),2);
Edit7->Text=FloatToStr(zap);
Button15->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button18Click(TObject *Sender)
{
ObjectAd.Kor_Adekv();
Button18->Enabled=false;
Button11->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button17Click(TObject *Sender)
{
// ObjectAd.Reg_Znachim();
Object.Mult_Matriza_Vector(XX,A,Q1,n,k+1);
for (int i=0; i<n; i++)
Qr+=Q1[i]*Q1[i];
double tQr=roundResult(Qr,2);
Form1->Edit8->Text=FloatToStr(tQr);
Object.Sub_Vector(Y,Q1,Q2,n);
for (int i=0; i<n; i++)
Qost+=Q2[i]*Q2[i];
tQr=roundResult(Qost,2);
Form1->Edit9->Text=FloatToStr(tQr);
double temp=(Qr/3)/(Qost/(16-3-1));
Fras_r=roundResult(temp,2);
Form1->Edit10->Text=FloatToStr(Fras_r);
Form1->Edit11->Text=FloatToStr(Fkrit);
if (Fras_r>Fkrit)
Form1->Memo1->Lines->Add("Уравнение является значимым, т.е. хотя бы один из коэффициентов регрессии существенно отличен от нуля, так как Fras > Fkrit для alpha=0.05 и числа степеней свободы 3 и 12.");
else
Form1->Memo1->Lines->Add("Уравнение является незначимым, так как Fras < Fkrit для alpha=0.05 и числа степеней свободы 3 и 12.");
Button17->Enabled=false;
Button10->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button9Click(TObject *Sender)
{
Form10->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button19Click(TObject *Sender)
{
Form11->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button20Click(TObject *Sender)
{
Form12->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button16Click(TObject *Sender)
{
Form13->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button15Click(TObject *Sender)
{
Form1->IBDatabase1->Connected=true;
Form1->IBTransaction1->Active=true;
Form13->IBClientDataSet1->Active=true;
Form13->IBClientDataSet1->Insert();
IBQuery1->Active=true;
int maxk=StrToInt(DBEdit1->Text);
IBQuery1->Active=false;
Form13->IBClientDataSet1->FieldByName("KODH")->Value=maxk+1;
Form13->IBClientDataSet1->FieldByName("DATEH")->Value=Now();
Form13->IBClientDataSet1->FieldByName("ZAPAS")->AsFloat=StrToFloat(Edit7->Text);
Form13->IBClientDataSet1->ApplyUpdates(-1);
Form13->IBClientDataSet1->Active=false;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#ifndef MainH
#define MainH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include <Menus.hpp>
#include <Buttons.hpp>
#include <DB.hpp>
#include <IBDatabase.hpp>
#include <Grids.hpp>
#include <IBCustomDataSet.hpp>
#include <IBQuery.hpp>
#include <IBStoredProc.hpp>
#include "Matriza.h"
#include "Adekvat.h"
#include <DBCtrls.hpp>
#include <Mask.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TPanel *Panel1;
TPageControl *PageControl1;
TTabSheet *TabSheet1;
TMainMenu *MainMenu1;
TMenuItem *N1;
TPanel *Panel2;
TBevel *Bevel1;
TTabSheet *TabSheet2;
TBitBtn *BitBtn1;
TIBDatabase *IBDatabase1;
TIBTransaction *IBTransaction1;
TMenuItem *N2;
TButton *Button5;
TButton *Button7;
TButton *Button8;
TTabSheet *TabSheet4;
TGroupBox *GroupBox2;
TLabel *Label2;
TLabel *Label3;
TLabel *Label4;
TLabel *Label5;
TLabel *Label6;
TGroupBox *GroupBox1;
TStringGrid *StringGrid1;
TButton *Button10;
TBevel *Bevel3;
TButton *Button11;
TIBStoredProc *IBStoredProc1;
TEdit *Edit1;
TLabel *Label1;
TComboBox *ComboBox1;
TGroupBox *GroupBox3;
TStringGrid *StringGrid4;
TButton *Button12;
TGroupBox *GroupBox4;
TStringGrid *StringGrid5;
TButton *Button13;
TEdit *Edit2;
TEdit *Edit3;
TLabel *Label7;
TButton *Button6;
TGroupBox *GroupBox5;
TLabel *Label8;
TEdit *Edit4;
TLabel *Label9;
TEdit *Edit5;
TLabel *Label10;
TEdit *Edit6;
TButton *Button14;
TLabel *Label11;
TEdit *Edit7;
TLabel *Label12;
TButton *Button15;
TButton *Button16;
TGroupBox *GroupBox6;
TButton *Button17;
TLabel *Label13;
TLabel *Label14;
TLabel *Label15;
TLabel *Label16;
TMemo *Memo1;
TEdit *Edit8;
TEdit *Edit9;
TEdit *Edit10;
TEdit *Edit11;
TGroupBox *GroupBox7;
TLabel *Label17;
TLabel *Label18;
TEdit *Edit12;
TEdit *Edit13;
TMemo *Memo2;
TButton *Button18;
TLabel *Label19;
TLabel *Label20;
TGroupBox *GroupBox8;
TButton *Button1;
TButton *Button2;
TButton *Button3;
TButton *Button4;
TGroupBox *GroupBox9;
TButton *Button9;
TButton *Button19;
TButton *Button20;
TIBQuery *IBQuery1;
TDBEdit *DBEdit1;
TDataSource *DataSource1;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall Button3Click(TObject *Sender);
void __fastcall Button4Click(TObject *Sender);
void __fastcall Button5Click(TObject *Sender);
void __fastcall Button6Click(TObject *Sender);
void __fastcall FormActivate(TObject *Sender);
void __fastcall N2Click(TObject *Sender);
void __fastcall Button7Click(TObject *Sender);
void __fastcall Button8Click(TObject *Sender);
void __fastcall Button10Click(TObject *Sender);
void __fastcall Button11Click(TObject *Sender);
void __fastcall Button12Click(TObject *Sender);
void __fastcall Button13Click(TObject *Sender);
void __fastcall Button14Click(TObject *Sender);
void __fastcall Button18Click(TObject *Sender);
void __fastcall Button17Click(TObject *Sender);
void __fastcall Button9Click(TObject *Sender);
void __fastcall Button19Click(TObject *Sender);
void __fastcall Button20Click(TObject *Sender);
void __fastcall Button16Click(TObject *Sender);
void __fastcall Button15Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
double roundResult (double d, int p);
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Adekvat.h"
#include "Main.h"
#include "Matriza.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
void CAdekvatnost::Kor_Adekv()
{
double temp=((16-3-1)*StrToFloat(Form1->Edit2->Text))/(3*(1-StrToFloat(Form1->Edit2->Text)));
Fras_k=roundResult(temp,2);
Form1->Edit12->Text=FloatToStr(Fras_k);
Form1->Edit13->Text=FloatToStr(Fkrit);
if (Fras_k>Fkrit)
Form1->Memo2->Lines->Add("Гипотеза о значимости множественного коэффициента детерминации принимается, так как Fras > Fkrit для alpha=0.05 и числа степеней свободы 3 и 12.");
else
Form1->Memo2->Lines->Add("Гипотеза о значимости множественного коэффициента детерминации отвергается, так как Fras < Fkrit для alpha=0.05 и числа степеней свободы 3 и 12.");
}
void CAdekvatnost::Reg_Znachim()
{
}
//---------------------------------------------------------------------------
#ifndef AdekvatH
#define AdekvatH
//---------------------------------------------------------------------------
#include "Main.h"
#include "Matriza.h"
namespace adek
{
const double Fkrit=3.49;
double Fras_k, Fras_r;
double Qr=0, Qost=0;
}
using namespace adek;
class CAdekvatnost
{
public:
// Метод, проверяющий адекватность коэффициентов корреляции
void Kor_Adekv();
// Метод, проверяющий знчимость уравнения регрессии
void Reg_Znachim();
};
CAdekvatnost ObjectAd;
//---------------------------------------------------------------------------
#endif
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Autobasa.h"
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
IBClientDataSet1->ApplyUpdates(-1);
DBGrid1->Columns->Items[0]->Title->Caption="Код автобазы";
DBGrid1->Columns->Items[1]->Title->Caption="Название автобазы";
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormActivate(TObject *Sender)
{
Form1->IBDatabase1->Connected=true;
Form1->IBTransaction1->Active=true;
IBClientDataSet1->Active=true;
DBGrid1->Columns->Items[0]->Title->Caption="Код автобазы";
DBGrid1->Columns->Items[1]->Title->Caption="Название автобазы";
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
IBClientDataSet1->Active=false;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Automobil.h"
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm5 *Form5;
//---------------------------------------------------------------------------
__fastcall TForm5::TForm5(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm5::Button1Click(TObject *Sender)
{
IBClientDataSet1->ApplyUpdates(-1);
DBGrid1->Columns->Items[0]->Title->Caption="Код автомобиля";
DBGrid1->Columns->Items[1]->Title->Caption="Марка";
DBGrid1->Columns->Items[2]->Title->Caption="Гос.Номер";
DBGrid1->Columns->Items[3]->Title->Caption="ФИО водителя";
}
//---------------------------------------------------------------------------
void __fastcall TForm5::FormActivate(TObject *Sender)
{
Form1->IBDatabase1->Connected=true;
Form1->IBTransaction1->Active=true;
IBClientDataSet1->Active=true;
DBGrid1->Columns->Items[0]->Title->Caption="Код автомобиля";
DBGrid1->Columns->Items[1]->Title->Caption="Марка";
DBGrid1->Columns->Items[2]->Title->Caption="Гос.Номер";
DBGrid1->Columns->Items[3]->Title->Caption="ФИО водителя";
}
//---------------------------------------------------------------------------
void __fastcall TForm5::FormClose(TObject *Sender, TCloseAction &Action)
{
IBClientDataSet1->Active=false;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Garag.h"
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm3::FormActivate(TObject *Sender)
{
Form1->IBDatabase1->Connected=true;
Form1->IBTransaction1->Active=true;
IBClientDataSet1->Active=true;
DBGrid1->Columns->Items[0]->Title->Caption="Номер гаража";
DBGrid1->Columns->Items[1]->Title->Caption="Код автобазы";
DBGrid1->Columns->Items[2]->Title->Caption="Название гаража";
DBGrid1->Columns->Items[3]->Title->Caption="ФИО заправщика";
}
//---------------------------------------------------------------------------
void __fastcall TForm3::FormClose(TObject *Sender, TCloseAction &Action)
{
IBClientDataSet1->Active=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button1Click(TObject *Sender)
{
IBClientDataSet1->ApplyUpdates(-1);
DBGrid1->Columns->Items[0]->Title->Caption="Номер гаража";
DBGrid1->Columns->Items[1]->Title->Caption="Код автобазы";
DBGrid1->Columns->Items[2]->Title->Caption="Название гаража";
DBGrid1->Columns->Items[3]->Title->Caption="ФИО заправщика";
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "GSM.h"
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm4 *Form4;
//---------------------------------------------------------------------------
__fastcall TForm4::TForm4(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm4::Button1Click(TObject *Sender)
{
IBClientDataSet1->ApplyUpdates(-1);
DBGrid1->Columns->Items[0]->Title->Caption="Код ГСМ";
DBGrid1->Columns->Items[1]->Title->Caption="Название ГСМ";
}
//---------------------------------------------------------------------------
void __fastcall TForm4::FormActivate(TObject *Sender)
{
Form1->IBDatabase1->Connected=true;
Form1->IBTransaction1->Active=true;
IBClientDataSet1->Active=true;
DBGrid1->Columns->Items[0]->Title->Caption="Код ГСМ";
DBGrid1->Columns->Items[1]->Title->Caption="Название ГСМ";
}
//---------------------------------------------------------------------------
void __fastcall TForm4::FormClose(TObject *Sender, TCloseAction &Action)
{
IBClientDataSet1->Active=false;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "HistoryKRA.h"
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm13 *Form13;
//---------------------------------------------------------------------------
__fastcall TForm13::TForm13(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm13::FormActivate(TObject *Sender)
{
Form1->IBDatabase1->Connected=true;
Form1->IBTransaction1->Active=true;
IBClientDataSet1->Active=true;
DBGrid1->Columns->Items[0]->Title->Caption="Код истории";
DBGrid1->Columns->Items[1]->Title->Caption="Дата проведения анализа";
DBGrid1->Columns->Items[2]->Title->Caption="Запас ГСМ";
}
//---------------------------------------------------------------------------
void __fastcall TForm13::FormClose(TObject *Sender, TCloseAction &Action)
{
IBClientDataSet1->Active=false;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#pragma hdrstop
#include <vcl.h>
#include <iostream>
#include <conio.h>
#include "Matriza.h"
#include "Main.h"
#include "Adekvat.h"
#include <math.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
void CMatriza::Mat_Ozidanie(Matriza X, Vector Mx, int n, int k)
{
for (int j=0; j<k; j++)
{
double sum=0;
for (int i=0; i<n; i++)
sum+=X[i][j];
Mx[j]=sum/double(n);
}
}
void CMatriza::Sred_Kvadr_Otkl(Matriza X, Vector Mx, Vector Sig, int n, int k)
{
CMatriza::Mat_Ozidanie(X, Mx, n, k);
for (int j=0; j<k; j++)
{
double sum=0;
for (int i=0; i<n; i++)
sum+=pow((X[i][j]-Mx[j]),2);
Sig[j]=sqrt(sum/double(n));
}
}
void CMatriza::Normirovanie_Matriza(Matriza X, Vector Mx, Vector Sig, Matriza Xnorm, int n, int k)
{
CMatriza::Sred_Kvadr_Otkl(X, Mx, Sig, n, k);
for (int i=0; i<n; i++)
for (int j=0; j<k; j++)
Xnorm[i][j]=(X[i][j]-Mx[j])/Sig[j];
}
void CMatriza::Normirovanie_Vector(Vector Y, Vector Ynorm, int n)
{
double sum=0;
for (int i=0; i<n; i++)
sum+=Y[i];
My=sum/double(n);
sum=0;
for (int i=0; i<n; i++)
sum+=(Y[i]-My)*(Y[i]-My);
Sigy=sqrt(sum/double(n));
for (int i=0; i<n; i++)
Ynorm[i]=(Y[i]-My)/Sigy;
}
void CMatriza::Delete_Matriza(Matriza DX)
{
memset(DX, 0, MaxMatriza*MaxMatriza*sizeof(double));
}
void CMatriza::Transponirovanie_Matriza(Matriza X, Matriza Xtran, int n, int k)
{
for (int i=0; i<n; i++)
for (int j=0; j<k; j++)
Xtran[j][i]=X[i][j];
}
double CMatriza::Algeb_Dopol_Matriza(Matriza X, int n, int i, int j)
{
Matriza Xal;
double Al;
int a, b;
for (a=0; a<i; a++)
{
for (b=0; b<j; b++)
Xal[a][b]=X[a][b];
for (b=j+1; b<n; b++)
Xal[a][b-1]=X[a][b];
}
for (a=i+1; a<n; a++)
{
for (b=0; b<j; b++)
Xal[a-1][b]=X[a][b];
for (b=j+1; b<n; b++)
Xal[a-1][b-1]=X[a][b];
}
Al=CMatriza::Opredelitel_Matriza(Xal, n-1);
if ((i+j)%2!=0) Al=-Al;
return Al;
}
double CMatriza::Opredelitel_Matriza(Matriza X, int n)
{
double op;
if (n!=1)
{
op=0;
for (int j=0; j<n; j++)
op+=X[0][j]*CMatriza::Algeb_Dopol_Matriza(X, n, 0, j);
}
else op=X[0][0];
if (op==0) op=1;
return op;
}
void CMatriza::Obratnaya_Matriza(Matriza X, Matriza Xobr, int n)
{
double d=CMatriza::Opredelitel_Matriza(X, n);
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
Xobr[i][j]=CMatriza::Algeb_Dopol_Matriza(X, n, j, i)/d;
}
void CMatriza::Add_Matriza(Matriza A, Matriza B, Matriza C, int n, int k)
{
for (int i=0; i<n; i++)
for (int j=0; j<k; j++)
C[i][j]=A[i][j]+B[i][j];
}
void CMatriza::Sub_Vector(Vector A, Vector B, Vector C, int n)
{
for (int i=0; i<n; i++)
C[i]=A[i]-B[i];
}
void CMatriza::Mult_Matriza_Matriza(Matriza A, Matriza B, Matriza C, int n, int m, int k)
{
double mul;
for (int i=0; i<n; i++)
for (int j=0; j<k; j++)
{
mul=0;
for (int t=0; t<m; t++)
mul+=A[i][t]*B[t][j];
C[i][j]=mul;
}
}
void CMatriza::Mult_Matriza_Vector(Matriza A, Vector B, Vector C, int n, int k)
{
double mul;
for (int i=0; i<n; i++)
{
mul=0;
for (int j=0; j<k; j++)
mul+=A[i][j]*B[j];
C[i]=mul;
}
}
void CMatriza::Mult_Matriza_Number(Matriza A, Matriza C, int n, int k, double num)
{
for (int i=0; i<n; i++)
for (int j=0; j<k; j++)
C[i][j]=A[i][j]*num;
}
//---------------------------------------------------------------------------
#ifndef MatrizaH
#define MatrizaH
//---------------------------------------------------------------------------
#include "Main.h"
#include "Adekvat.h"
#define MaxMatriza 16
namespace matr
{
const int row=16;
const int col=3;
typedef double Matriza[MaxMatriza][MaxMatriza];
typedef double Vector[MaxMatriza];
Matriza X, Xnorm, Xtran, Xobr, C, CC;
Vector Y, Ynorm;
Vector Mx, Sig;
double My, Sigy;
double kd, kk;
int n, k;
Matriza Z, XX, XXtran, CX, CCX;
Vector A1, A;
Vector Q1, Q2;
}
using namespace matr;
class CMatriza
{
public:
// Метод, вычисляющий математическое ожидание по столбцу
void Mat_Ozidanie(Matriza X, Vector Mx, int n, int k);
// Метод, вычисляющий среднее квадратическое отклонение по столбцу
void Sred_Kvadr_Otkl(Matriza X, Vector Mx, Vector Sig, int n, int k);
// Метод, вычисляющий нормализованную матрицу
void Normirovanie_Matriza(Matriza X, Vector Mx, Vector Sig, Matriza Xnorm, int n, int k);
// Метод, вычисляющий нормализованный вектор
void Normirovanie_Vector(Vector Y, Vector Ynorm, int n);
// Метод, обнуляющий матрицу
void Delete_Matriza(Matriza DX);
// Метод, транспонирующий матрицу размерностью n*k
void Transponirovanie_Matriza(Matriza X, Matriza Xtran, int n, int k);
// Метод, вычисляющий алгебраическое дополнение элемента x[i,j] квадратной матрицы
double Algeb_Dopol_Matriza(Matriza X, int n, int i, int j);
// Метод, вычисляющий определитель квадратной матрицы размерностью n*n
double Opredelitel_Matriza(Matriza X, int n);
// Метод, вычисляющий матрицу, обратную квадратной матрице n*n
void Obratnaya_Matriza(Matriza X, Matriza Xobr, int n);
// Метод, производящий сложение двух матриц C = A + B
void Add_Matriza(Matriza A, Matriza B, Matriza C, int n, int k);
// Метод, производящий вычитание двух векторов C = A - B
void Sub_Vector(Vector A, Vector B, Vector C, int n);
// Метод, производящий умножение двух матриц C(n*k) = A(n*m) * B(m*k)
void Mult_Matriza_Matriza(Matriza A, Matriza B, Matriza C, int n, int m, int k);
// Метод, производящий умножение матрицы на вектор C(n) = A(n*k) * B(k)
void Mult_Matriza_Vector(Matriza A, Vector B, Vector C, int n, int k);
// Метод, производящий умножение матрицы размерностью n*k на число num
void Mult_Matriza_Number(Matriza A, Matriza C, int n, int k, double num);
};
CMatriza Object;
//---------------------------------------------------------------------------
#endif
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "OtchV.h"
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm7 *Form7;
//---------------------------------------------------------------------------
__fastcall TForm7::TForm7(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm7::FormActivate(TObject *Sender)
{
Form1->IBDatabase1->Connected=true;
Form1->IBTransaction1->Active=true;
IBClientDataSet1->Active=true;
DBGrid1->Columns->Items[0]->Title->Caption="Автобаза";
DBGrid1->Columns->Items[1]->Title->Caption="Гараж";
DBGrid1->Columns->Items[2]->Title->Caption="ФИО заправщика";
DBGrid1->Columns->Items[3]->Title->Caption="Номер ведомости";
DBGrid1->Columns->Items[4]->Title->Caption="Дата ведомости";
DBGrid1->Columns->Items[5]->Title->Caption="Марка авто";
DBGrid1->Columns->Items[6]->Title->Caption="Гос.номер авто";
DBGrid1->Columns->Items[7]->Title->Caption="ФИО водителя";
DBGrid1->Columns->Items[8]->Title->Caption="Путевой лист";
DBGrid1->Columns->Items[9]->Title->Caption="Вид ГСМ";
DBGrid1->Columns->Items[10]->Title->Caption="Кол-во (л)";
DBGrid1->Columns->Items[11]->Title->Caption="Кол-во (кг)";
}
//---------------------------------------------------------------------------
void __fastcall TForm7::FormClose(TObject *Sender, TCloseAction &Action)
{
IBClientDataSet1->Active=false;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "PutList.h"
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm10 *Form10;
//---------------------------------------------------------------------------
__fastcall TForm10::TForm10(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm10::FormActivate(TObject *Sender)
{
Form1->IBDatabase1->Connected=true;
Form1->IBTransaction1->Active=true;
IBClientDataSet1->Active=true;
DBGrid1->Columns->Items[0]->Title->Caption="Номер";
DBGrid1->Columns->Items[1]->Title->Caption="Код авто";
DBGrid1->Columns->Items[2]->Title->Caption="Задание";
DBGrid1->Columns->Items[3]->Title->Caption="Замечание";
DBGrid1->Columns->Items[4]->Title->Caption="Дальность";
}
//---------------------------------------------------------------------------
void __fastcall TForm10::Button1Click(TObject *Sender)
{
IBClientDataSet1->ApplyUpdates(-1);
DBGrid1->Columns->Items[0]->Title->Caption="Номер";
DBGrid1->Columns->Items[1]->Title->Caption="Код авто";
DBGrid1->Columns->Items[2]->Title->Caption="Задание";
DBGrid1->Columns->Items[3]->Title->Caption="Замечание";
DBGrid1->Columns->Items[4]->Title->Caption="Дальность";
}
//---------------------------------------------------------------------------
void __fastcall TForm10::FormClose(TObject *Sender, TCloseAction &Action)
{
IBClientDataSet1->Active=false;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Vedom.h"
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm11 *Form11;
//---------------------------------------------------------------------------
__fastcall TForm11::TForm11(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm11::FormActivate(TObject *Sender)
{
Form1->IBDatabase1->Connected=true;
Form1->IBTransaction1->Active=true;
IBClientDataSet1->Active=true;
DBGrid1->Columns->Items[0]->Title->Caption="Номер ведомости";
DBGrid1->Columns->Items[1]->Title->Caption="Номер гаража";
DBGrid1->Columns->Items[2]->Title->Caption="Дата ведомости";
}
//---------------------------------------------------------------------------
void __fastcall TForm11::Button1Click(TObject *Sender)
{
IBClientDataSet1->ApplyUpdates(-1);
DBGrid1->Columns->Items[0]->Title->Caption="Номер ведомости";
DBGrid1->Columns->Items[1]->Title->Caption="Номер гаража";
DBGrid1->Columns->Items[2]->Title->Caption="Дата ведомости";
}
//---------------------------------------------------------------------------
void __fastcall TForm11::FormClose(TObject *Sender, TCloseAction &Action)
{
IBClientDataSet1->Active=false;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "ViewProc2.h"
#include "Main.h"
#include "GSM.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#define MaxCol 1000 // Максимальное количество видов ГСМ
TForm8 *Form8;
class Spisok
{
public:
int n;
AnsiString name;
float coll;
float colkg;
} Sp[MaxCol] ;
//---------------------------------------------------------------------------
__fastcall TForm8::TForm8(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm8::FormActivate(TObject *Sender)
{
Edit1->Text="";
Edit2->Text="";
Edit3->Text="";
StringGrid1->RowCount=2;
if (!Form4->IBClientDataSet1->Active)
Form4->IBClientDataSet1->Active=true;
int max=Form4->IBClientDataSet1->RecordCount;
for (int i=0; i<max; i++)
{
StringGrid1->Cells[0][i+1]="";
StringGrid1->Cells[1][i+1]="";
StringGrid1->Cells[2][i+1]="";
StringGrid1->Cells[3][i+1]="";
}
Button1->Enabled=false;
BitBtn1->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm8::Button1Click(TObject *Sender)
{
StringGrid1->RowCount=2;
if (!Form4->IBClientDataSet1->Active)
Form4->IBClientDataSet1->Active=true; // Чтение справочника ГСМ
Form4->IBClientDataSet1->First();
int max=Form4->IBClientDataSet1->RecordCount;
for (int i=0; i<max; i++)
{
StringGrid1->Cells[0][i+1]="";
StringGrid1->Cells[1][i+1]="";
StringGrid1->Cells[2][i+1]="";
StringGrid1->Cells[3][i+1]="";
}
for (int i=0; i<max; i++)
{
IBStoredProc1->Params->Items[2]->Value=StrToInt(Edit1->Text);
IBStoredProc1->Params->Items[3]->Value=Form4->IBClientDataSet1->Fields->Fields[0]->AsInteger;
IBStoredProc1->Params->Items[4]->Value=StrToDate(Edit2->Text);
IBStoredProc1->Params->Items[5]->Value=StrToDate(Edit3->Text);
IBStoredProc1->Prepare();
IBStoredProc1->ExecProc();
Sp[i].n=Form4->IBClientDataSet1->Fields->Fields[0]->AsInteger;
Sp[i].name=Form4->IBClientDataSet1->Fields->Fields[1]->AsString;
Sp[i].coll=IBStoredProc1->ParamByName("PCOLL")->AsFloat;
Sp[i].colkg=IBStoredProc1->ParamByName("PCOLKG")->AsFloat;
Form4->IBClientDataSet1->Next();
}
StringGrid1->Cells[0][0]="Код ГСМ";
StringGrid1->Cells[1][0]="Название ГСМ";
StringGrid1->Cells[2][0]="Количество, л";
StringGrid1->Cells[3][0]="Количество, кг";
int j=0;
for (int i=0; i<max; i++)
{
if (Sp[i].coll!=0)
{
StringGrid1->RowCount++;
j++;
StringGrid1->Cells[0][j]=IntToStr(Sp[i].n);
StringGrid1->Cells[1][j]=Sp[i].name;
StringGrid1->Cells[2][j]=FloatToStr(Sp[i].coll);
StringGrid1->Cells[3][j]=FloatToStr(Sp[i].colkg);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm8::Edit1Enter(TObject *Sender)
{
AnsiString s;
// Формирование списка компонента ComboBox1 для выбора водителя
IBClientDataSet1->Open(); // Чтение справочника ГСМ
IBClientDataSet1->First();
ComboBox1->Clear();
for(int i=0; i<IBClientDataSet1->RecordCount; i++)
{
s=IntToStr(IBClientDataSet1->Fields->Fields[0]->AsInteger) + "/" +
IBClientDataSet1->Fields->Fields[1]->AsString;
ComboBox1->Items->Add(s);
IBClientDataSet1->Next();
}
ComboBox1->Show();
ComboBox1->Text="Выберите водителя";
ComboBox1->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm8::ComboBox1Exit(TObject *Sender)
{
ComboBox1->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TForm8::ComboBox1Click(TObject *Sender)
{
// Выборка из ComboBox1 строки и засылка из нее кода водителя
AnsiString s1, s=ComboBox1->Items->Strings[ComboBox1->ItemIndex];
int pos=s.AnsiPos("/");
s1=s.SubString(1,pos-1);
Edit1->Text=StrToInt(s1);
Edit2->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm8::Edit2Enter(TObject *Sender)
{
DateTimePicker1->Show();
DateTimePicker1->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm8::DateTimePicker1CloseUp(TObject *Sender)
{
DateTimePicker1->Hide();
Edit2->Text=DateTimePicker1->Date;
Edit3->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm8::Edit3Enter(TObject *Sender)
{
DateTimePicker2->Show();
DateTimePicker2->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm8::DateTimePicker2CloseUp(TObject *Sender)
{
DateTimePicker2->Hide();
Edit3->Text=DateTimePicker2->Date;
Button1->Enabled=true;
Button1->SetFocus();
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "ViewProc3.h"
#include "Main.h"
#include "GSM.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#define MaxCol 1000 // Максимальное количество видов ГСМ
TForm9 *Form9;
class CSpisok
{
public:
int n;
AnsiString name;
float coll;
float colkg;
} Spp[MaxCol] ;
//---------------------------------------------------------------------------
__fastcall TForm9::TForm9(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm9::FormActivate(TObject *Sender)
{
Edit2->Text="";
Edit3->Text="";
StringGrid1->RowCount=2;
if (!Form4->IBClientDataSet1->Active)
Form4->IBClientDataSet1->Active=true;
int max=Form4->IBClientDataSet1->RecordCount;
for (int i=0; i<max; i++)
{
StringGrid1->Cells[0][i+1]="";
StringGrid1->Cells[1][i+1]="";
StringGrid1->Cells[2][i+1]="";
StringGrid1->Cells[3][i+1]="";
}
Button1->Enabled=false;
BitBtn1->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm9::Button1Click(TObject *Sender)
{
StringGrid1->RowCount=2;
if (!Form4->IBClientDataSet1->Active)
Form4->IBClientDataSet1->Active=true; // Чтение справочника ГСМ
Form4->IBClientDataSet1->First();
int max=Form4->IBClientDataSet1->RecordCount;
for (int i=0; i<max; i++)
{
StringGrid1->Cells[0][i+1]="";
StringGrid1->Cells[1][i+1]="";
StringGrid1->Cells[2][i+1]="";
StringGrid1->Cells[3][i+1]="";
}
for (int i=0; i<max; i++)
{
IBStoredProc1->Params->Items[2]->Value=Form4->IBClientDataSet1->Fields->Fields[0]->AsInteger;
IBStoredProc1->Params->Items[3]->Value=StrToDate(Edit2->Text);
IBStoredProc1->Params->Items[4]->Value=StrToDate(Edit3->Text);
IBStoredProc1->Prepare();
IBStoredProc1->ExecProc();
Spp[i].n=Form4->IBClientDataSet1->Fields->Fields[0]->AsInteger;
Spp[i].name=Form4->IBClientDataSet1->Fields->Fields[1]->AsString;
Spp[i].coll=IBStoredProc1->ParamByName("PCOLL")->AsFloat;
Spp[i].colkg=IBStoredProc1->ParamByName("PCOLKG")->AsFloat;
Form4->IBClientDataSet1->Next();
}
StringGrid1->Cells[0][0]="Код ГСМ";
StringGrid1->Cells[1][0]="Название ГСМ";
StringGrid1->Cells[2][0]="Количество, л";
StringGrid1->Cells[3][0]="Количество, кг";
int j=0;
for (int i=0; i<max; i++)
{
if (Spp[i].coll!=0)
{
StringGrid1->RowCount++;
j++;
StringGrid1->Cells[0][j]=IntToStr(Spp[i].n);
StringGrid1->Cells[1][j]=Spp[i].name;
StringGrid1->Cells[2][j]=FloatToStr(Spp[i].coll);
StringGrid1->Cells[3][j]=FloatToStr(Spp[i].colkg);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm9::Edit2Enter(TObject *Sender)
{
DateTimePicker1->Show();
DateTimePicker1->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm9::DateTimePicker1CloseUp(TObject *Sender)
{
DateTimePicker1->Hide();
Edit2->Text=DateTimePicker1->Date;
Edit3->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm9::Edit3Enter(TObject *Sender)
{
DateTimePicker2->Show();
DateTimePicker2->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm9::DateTimePicker2CloseUp(TObject *Sender)
{
DateTimePicker2->Hide();
Edit3->Text=DateTimePicker2->Date;
Button1->Enabled=true;
Button1->SetFocus();
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "ViewVed.h"
#include "Main.h"
#include "GSM.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm6 *Form6;
//---------------------------------------------------------------------------
__fastcall TForm6::TForm6(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm6::Button1Click(TObject *Sender)
{
IBStoredProc1->Params->Items[2]->Value=StrToInt(Edit1->Text);
IBStoredProc1->Params->Items[3]->Value=StrToInt(Edit2->Text);
IBStoredProc1->Params->Items[4]->Value=StrToDate(Edit3->Text);
IBStoredProc1->Params->Items[5]->Value=StrToDate(Edit6->Text);
IBStoredProc1->Prepare();
IBStoredProc1->ExecProc();
Edit4->Text=IBStoredProc1->ParamByName("PCOLL")->AsFloat;
Edit5->Text=IBStoredProc1->ParamByName("PCOLKG")->AsFloat;
}