Загрузка данных


//----2 МОДУЛЬ ФОРМА 1 ЛОГИН cpp----------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmLogin *frmLogin;
//---------------------------------------------------------------------------
__fastcall TfrmLogin::TfrmLogin(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TfrmLogin::Button1Click(TObject *Sender)
{
qLogin->Close();
qLogin->SQL->Text = "SELECT * FROM Users WHERE Login = :login AND Password = :pass";
qLogin->Parameters->ParamByName("login")->Value = edtLogin->Text;
qLogin->Parameters->ParamByName("pass")->Value = edtPassword->Text;
qLogin->Open();
if (!qLogin->IsEmpty())
{
frmMain = new TfrmMain(NULL);
frmMain->userId = qLogin->FieldByName("User_ID")->AsInteger;
frmMain->userFio = qLogin->FieldByName("LastName")->AsString + " " +
qLogin->FieldByName("FirstName")->AsString;
frmMain->userRole = qLogin->FieldByName("Role_ID")->AsInteger;
frmMain->Show();
Hide();
}
else ShowMessage("Неверный логин или пароль!");

}
//---------------------------------------------------------------------------

void __fastcall TfrmLogin::Button2Click(TObject *Sender)
{
frmMain = new TfrmMain(NULL);
frmMain->userFio = "Гость";
frmMain->userRole = 0;
frmMain->Show();
Hide();

}
//---------------------------------------------------------------------------
//-----2 МОДУЛЬ ФОРМА1 ЛОГИН h----------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Data.DB.hpp>
#include <Data.Win.ADODB.hpp>
//---------------------------------------------------------------------------
class TfrmLogin : public TForm
{
__published:	// IDE-managed Components
	TADOConnection *ADOConnection1;
	TLabel *Label1;
	TLabel *Label2;
	TEdit *edtLogin;
	TEdit *edtPassword;
	TButton *Button1;
	TButton *Button2;
	TADOQuery *qLogin;
	void __fastcall Button1Click(TObject *Sender);
	void __fastcall Button2Click(TObject *Sender);
private:	// User declarations
public:		// User declarations
	__fastcall TfrmLogin(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TfrmLogin *frmLogin;
//---------------------------------------------------------------------------
#endif



//--------2 МОДУЛЬ ФОРМА 2 ТАБЛИЦА ПРОДУКТЫ cpp-------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <Vcl.Imaging.pngimage.hpp>
#include <Vcl.Imaging.jpeg.hpp>

#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmMain *frmMain;
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FormShow(TObject *Sender)
{
Caption = "Список товаров - " + userFio;
qProducts->Open();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FormClose(TObject *Sender, TCloseAction &Action)
{
qProducts->Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnExitClick(TObject *Sender)
{
frmLogin->Show();
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::dbgProductsDrawColumnCell(TObject *Sender, const TRect &Rect,
		  int DataCol, TColumn *Column, TGridDrawState State)
{
TCanvas *c = dbgProducts->Canvas;
double disc = qProducts->FieldByName("DiscountPrice")->AsFloat;
int stock = qProducts->FieldByName("StockQuantity")->AsInteger;
if (stock == 0) c->Brush->Color = (TColor)0xFFAAAA;
else if (disc > 15) c->Brush->Color = (TColor)0x578B2E;
else c->Brush->Color = clWhite;
c->FillRect(Rect);
if (Column->FieldName == "Price" && disc > 0)
{
double p = qProducts->FieldByName("Price")->AsFloat;
c->Font->Color = clRed;
c->Font->Style = TFontStyles() << fsStrikeOut;
c->TextOut(Rect.Left + 2, Rect.Top + 2, FormatFloat("0.00", p));
c->Font->Color = clBlack;
c->Font->Style = TFontStyles();
c->TextOut(Rect.Left + 55, Rect.Top + 2, FormatFloat("0.00", p * (100 - disc) / 100));
}
else { c->Font->Color = clBlack; c->TextOut(Rect.Left + 2, Rect.Top + 2, Column->Field->AsString); }

}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::dbgProductsCellClick(TColumn *Column)
{
if (qProducts->IsEmpty()) return;

    String photoPath = qProducts->FieldByName("PhotoPath")->AsString;
    if (photoPath != "" && FileExists(photoPath))
  imgProduct->Picture->LoadFromFile(photoPath);
 else
  imgProduct->Picture->LoadFromFile("picture.png");
}
//---------------------------------------------------------------------------

//-------2 МОДУЛЬ ФОРМА 2 ТАБЛИЦА ПРОДУКТС h--------------------------------------------------------------------

#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Data.DB.hpp>
#include <Data.Win.ADODB.hpp>
#include <Vcl.DBGrids.hpp>
#include <Vcl.ExtCtrls.hpp>
#include <Vcl.Grids.hpp>
#include <Vcl.Imaging.pngimage.hpp>
//---------------------------------------------------------------------------
class TfrmMain : public TForm
{
__published:	// IDE-managed Components
	TImage *imgLogo;
	TButton *btnExit;
	TADOQuery *qProducts;
	TDataSource *dsProducts;
	TDBGrid *dbgProducts;
	TPanel *pnlImage;
	TImage *imgProduct;
	void __fastcall FormShow(TObject *Sender);
	void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
	void __fastcall btnExitClick(TObject *Sender);
	void __fastcall dbgProductsDrawColumnCell(TObject *Sender, const TRect &Rect, int DataCol,
          TColumn *Column, TGridDrawState State);
	void __fastcall dbgProductsCellClick(TColumn *Column);
private:	// User declarations
public:		// User declarations
int userId;
String userFio;
int userRole;
	__fastcall TfrmMain(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TfrmMain *frmMain;
//---------------------------------------------------------------------------
#endif