Загрузка данных
//----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