Componentes.Terceros.DevExp.../official/x.19/ExpressQuantumGrid 5/Demos/Delphi/MasterDetailChartDemo/MasterDetailChartDemoMain.pas
2007-09-09 11:27:22 +00:00

115 lines
3.6 KiB
ObjectPascal

unit MasterDetailChartDemoMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGrid, StdCtrls, DBTables, cxLookAndFeels, Menus,
cxGridChartView, cxGridDBChartView;
type
TfrmMain = class(TForm)
dbMain: TDatabase;
mmMain: TMainMenu;
miFile: TMenuItem;
miExit: TMenuItem;
miAbout: TMenuItem;
LookAndFeelController: TcxLookAndFeelController;
dsOrders: TDataSource;
tblOrders: TTable;
tblOrdersID: TAutoIncField;
tblOrdersCustomerID: TIntegerField;
tblOrdersProductID: TIntegerField;
tblOrdersPurchaseDate: TDateTimeField;
tblOrdersTime: TDateTimeField;
tblOrdersPaymentType: TStringField;
tblOrdersPaymentAmount: TCurrencyField;
tblOrdersDescription: TMemoField;
tblOrdersQuantity: TIntegerField;
tblProducts: TTable;
tblCustomers: TTable;
Label1: TLabel;
tvCustomers: TcxGridDBTableView;
grMainLevel1: TcxGridLevel;
grMain: TcxGrid;
grMainLevel2: TcxGridLevel;
chvOrders: TcxGridDBChartView;
dsCustomers: TDataSource;
tvCustomersID: TcxGridDBColumn;
tvCustomersFirstName: TcxGridDBColumn;
tvCustomersLastName: TcxGridDBColumn;
tvCustomersCompany: TcxGridDBColumn;
tvCustomersAddress: TcxGridDBColumn;
tvCustomersCity: TcxGridDBColumn;
tvCustomersState: TcxGridDBColumn;
tvCustomersZipCode: TcxGridDBColumn;
tvCustomersEmail: TcxGridDBColumn;
chvOrdersPaymentAmountSeries: TcxGridDBChartSeries;
chvOrdersIDSeries: TcxGridDBChartSeries;
chvOrdersProductIDSeries: TcxGridDBChartSeries;
chvOrdersQuantitySeries: TcxGridDBChartSeries;
qryProducts: TQuery;
grMainLevel3: TcxGridLevel;
chvProducts: TcxGridDBChartView;
dsProducts: TDataSource;
chvProductsCopiesSeries: TcxGridDBChartSeries;
procedure miExitClick(Sender: TObject);
procedure miAboutClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure chvOrdersGetValueHint(Sender: TcxGridChartView;
ASeries: TcxGridChartSeries; AValueIndex: Integer;
var AHint: String);
protected
function GetProductName(AID: Integer): string;
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
uses
AboutDemoForm;
function TfrmMain.GetProductName(AID: Integer): string;
begin
if tblProducts.FindKey([AID]) then
Result := (tblProducts.FieldValues['Name'])
else
Result := '';
end;
procedure TfrmMain.miExitClick(Sender: TObject);
begin
Close;
end;
procedure TfrmMain.miAboutClick(Sender: TObject);
begin
ShowAboutDemoForm;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
tvCustomers.ViewData.Rows[0].Expanded := True;
tvCustomers.ViewData.Rows[1].Expanded := True;
(tvCustomers.ViewData.Rows[1] as TcxGridMasterDataRow).ActiveDetailIndex := 1;
end;
procedure TfrmMain.chvOrdersGetValueHint(Sender: TcxGridChartView;
ASeries: TcxGridChartSeries; AValueIndex: Integer; var AHint: String);
begin
AHint := Format('Order #%d (%d copies of %s) for %s made on %s',
[Integer(Sender.FindSeriesByID(chvOrdersIDSeries.ID)[AValueIndex]),
Integer(Sender.FindSeriesByID(chvOrdersQuantitySeries.ID)[AValueIndex]),
GetProductName(Integer(Sender.FindSeriesByID(chvOrdersProductIDSeries.ID)[AValueIndex])),
ASeries.GetValueCaption(AValueIndex), Sender.Categories[AValueIndex]]);
end;
end.