viewchartdemomain.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 733 行 · 第 1/2 页
PAS
733 行
unit ViewChartDemoMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxGridChartView, cxGridDBChartView,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, DBTables,
cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, cxTimeEdit,
cxImageComboBox, ImgList, cxLookAndFeels, Menus, StdCtrls;
type
TfrmMain = class(TForm)
tvData: TcxGridDBTableView;
grMainLevel1: TcxGridLevel;
grMain: TcxGrid;
dsOrders: TDataSource;
tblOrders: TTable;
grMainLevel2: TcxGridLevel;
chvSales: TcxGridDBChartView;
qrSales: TQuery;
dsSales: TDataSource;
tblOrdersID: TAutoIncField;
tblOrdersCustomerID: TIntegerField;
tblOrdersProductID: TIntegerField;
tblOrdersPurchaseDate: TDateTimeField;
tblOrdersTime: TDateTimeField;
tblOrdersPaymentType: TStringField;
tblOrdersPaymentAmount: TCurrencyField;
tblOrdersDescription: TMemoField;
tblOrdersQuantity: TIntegerField;
tblProducts: TTable;
tblOrdersProductName: TStringField;
tblCustomers: TTable;
dbMain: TDatabase;
tblOrdersCustomer: TStringField;
tvDataID: TcxGridDBColumn;
tvDataPurchaseDate: TcxGridDBColumn;
tvDataPaymentType: TcxGridDBColumn;
tvDataPaymentAmount: TcxGridDBColumn;
tvDataQuantity: TcxGridDBColumn;
tvDataProductName: TcxGridDBColumn;
tvDataCompany: TcxGridDBColumn;
chvSalesByQuarter: TcxGridChartView;
chvSalesByQuarterSeries1: TcxGridChartSeries;
chvSalesByQuarterSeries2: TcxGridChartSeries;
chvSalesByQuarterSeries3: TcxGridChartSeries;
chvSalesByQuarterSeries4: TcxGridChartSeries;
grMainLevel3: TcxGridLevel;
qrSalesByQuarter: TQuery;
chvSalesSeries1: TcxGridDBChartSeries;
PaymentTypeImages: TImageList;
LookAndFeelController: TcxLookAndFeelController;
mmMain: TMainMenu;
miFile: TMenuItem;
miExit: TMenuItem;
miAbout: TMenuItem;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxStyle2: TcxStyle;
cxStyle3: TcxStyle;
cxStyle4: TcxStyle;
miColumnDiagram: TMenuItem;
miBarDiagram: TMenuItem;
N1: TMenuItem;
miView: TMenuItem;
miTitlePosition: TMenuItem;
miLegendPosition: TMenuItem;
miLegendBorder: TMenuItem;
miValueCaptionPosition: TMenuItem;
miCategoryAxis: TMenuItem;
miCategoryAxisVisible: TMenuItem;
miCategoryAxisTickMarkLabels: TMenuItem;
miCategoryAxisTickMarkKind: TMenuItem;
miCategoryAxisGridLines: TMenuItem;
miTitlePositionDefault: TMenuItem;
miTitlePositionNone: TMenuItem;
miTitlePositionLeft: TMenuItem;
miTitlePositionTop: TMenuItem;
miTitlePositionRight: TMenuItem;
miTitlePositionBottom: TMenuItem;
miLegendPositionDefault: TMenuItem;
miLegendPositionNone: TMenuItem;
miLegendPositionLeft: TMenuItem;
miLegendPositionTop: TMenuItem;
miLegendPositionRight: TMenuItem;
miLegendPositionBottom: TMenuItem;
miValueCaptionPositionNone: TMenuItem;
miValueCaptionPositionInsideBase: TMenuItem;
miValueCaptionPositionCenter: TMenuItem;
miValueCaptionPositionInsideEnd: TMenuItem;
miValueCaptionPositionOutsideEnd: TMenuItem;
miCategoryAxisTickMarkKindNone: TMenuItem;
miCategoryAxisTickMarkKindCross: TMenuItem;
miCategoryAxisTickMarkKindInside: TMenuItem;
miCategoryAxisTickMarkKindOutside: TMenuItem;
miValueAxis: TMenuItem;
miValueAxisTickMarkLabels: TMenuItem;
miValueAxisTickMarkKind: TMenuItem;
miValueAxisTickMarkKindOutside: TMenuItem;
miValueAxisTickMarkKindInside: TMenuItem;
miValueAxisTickMarkKindCross: TMenuItem;
miValueAxisTickMarkKindNone: TMenuItem;
miValueAxisGridLines: TMenuItem;
miValueAxisVisible: TMenuItem;
miCategoryAxisCategoriesInReverseOrder: TMenuItem;
miCategoryAxisValueAxisAtMaxCategory: TMenuItem;
miCategoryAxisValueAxisBetweenCategories: TMenuItem;
N3: TMenuItem;
Label1: TLabel;
miLineDiagram: TMenuItem;
miAreaDiagram: TMenuItem;
miPieDiagram: TMenuItem;
miDiagram: TMenuItem;
miLineValueCaptionPosition: TMenuItem;
miLineValueCaptionPositionNone: TMenuItem;
miLineValueCaptionPositionLeft: TMenuItem;
miLineValueCaptionPositionAbove: TMenuItem;
miLineValueCaptionPositionRight: TMenuItem;
miLineValueCaptionPositionBelow: TMenuItem;
miLineValueCaptionPositionCenter: TMenuItem;
miLineStyle: TMenuItem;
miLineStyleNone: TMenuItem;
miLineStyleSolid: TMenuItem;
miLineStyleDash: TMenuItem;
miLineStyleDot: TMenuItem;
miLineStyleDashDot: TMenuItem;
miLineStyleDashDotDot: TMenuItem;
N2: TMenuItem;
miMarkerStyle: TMenuItem;
miMarkerStyleNone: TMenuItem;
miMarkerStyleSquare: TMenuItem;
miMarkerStyleTriangle: TMenuItem;
miMarkerStyleDiamond: TMenuItem;
miMarkerStyleCircle: TMenuItem;
miValueStacking: TMenuItem;
miValueStackingNone: TMenuItem;
miValueStackingNormal: TMenuItem;
miValueStacking100Percent: TMenuItem;
miLineWidth: TMenuItem;
miLineWidth1: TMenuItem;
miLineWidth2: TMenuItem;
miLineWidth3: TMenuItem;
miLineWidth4: TMenuItem;
miLineWidth5: TMenuItem;
miMarkerSize: TMenuItem;
miMarkerSize3: TMenuItem;
miMarkerSize5: TMenuItem;
miMarkerSize7: TMenuItem;
miMarkerSize9: TMenuItem;
miMarkerSize11: TMenuItem;
miSeriesCaptions: TMenuItem;
miSeriesColumnCount: TMenuItem;
miSeriesSites: TMenuItem;
miPieValueCaptionPosition: TMenuItem;
miPieValueCaptionItems: TMenuItem;
miSeriesColumns1: TMenuItem;
miSeriesColumns2: TMenuItem;
miSeriesColumns3: TMenuItem;
miSeriesColumns4: TMenuItem;
miPieValueCaptionPositionNone: TMenuItem;
miPieValueCaptionPositionCenter: TMenuItem;
miPieValueCaptionPositionInsideEnd: TMenuItem;
miPieValueCaptionPositionOutsideEnd: TMenuItem;
miPieValueCaptionPositionOutsideEndWithLeaderLines: TMenuItem;
miPieValueCaptionItemCategory: TMenuItem;
miPieValueCaptionItemValue: TMenuItem;
miPieValueCaptionItemPercentage: TMenuItem;
cxStyle5: TcxStyle;
cxStyle6: TcxStyle;
miToolBox: TMenuItem;
N4: TMenuItem;
miToolBoxPosition: TMenuItem;
miToolBoxPositionTop: TMenuItem;
miToolBoxPositionBottom: TMenuItem;
cxStyle7: TcxStyle;
procedure FormCreate(Sender: TObject);
procedure chvSalesByQuarterGetValueHint(Sender: TcxGridChartView;
ASeries: TcxGridChartSeries; AValueIndex: Integer;
var AHint: String);
procedure miExitClick(Sender: TObject);
procedure miAboutClick(Sender: TObject);
procedure chvSalesSeries1CustomDrawValue(Sender: TcxGridChartSeries;
ACanvas: TcxCanvas; AViewInfo: TcxGridChartDiagramValueViewInfo;
var ADone: Boolean);
procedure grMainActiveTabChanged(Sender: TcxCustomGrid;
ALevel: TcxGridLevel);
procedure miColumnDiagramClick(Sender: TObject);
procedure miBarDiagramClick(Sender: TObject);
procedure miTitlePositionItemClick(Sender: TObject);
procedure miLegendPositionItemClick(Sender: TObject);
procedure miLegendBorderClick(Sender: TObject);
procedure miValueCaptionPositionItemClick(Sender: TObject);
procedure chvSalesActiveDiagramChanged(Sender: TcxGridChartView;
ADiagram: TcxGridChartDiagram);
procedure miAxisVisibleClick(Sender: TObject);
procedure miAxisGridLinesClick(Sender: TObject);
procedure miAxisTickMarkKindItemClick(Sender: TObject);
procedure miAxisTickMarkLabelsClick(Sender: TObject);
procedure miCategoryAxisCategoriesInReverseOrderClick(Sender: TObject);
procedure miCategoryAxisValueAxisAtMaxCategoryClick(Sender: TObject);
procedure miCategoryAxisValueAxisBetweenCategoriesClick(
Sender: TObject);
procedure miLineDiagramClick(Sender: TObject);
procedure miAreaDiagramClick(Sender: TObject);
procedure miPieDiagramClick(Sender: TObject);
procedure miLineValueCaptionPositionClick(Sender: TObject);
procedure miLineStyleClick(Sender: TObject);
procedure miMarkerStyleClick(Sender: TObject);
procedure miValueStackingClick(Sender: TObject);
procedure miLineWidthClick(Sender: TObject);
procedure miMarkerSizeClick(Sender: TObject);
procedure miSeriesCaptionsClick(Sender: TObject);
procedure miSeriesSitesClick(Sender: TObject);
procedure miSeriesColumnsClick(Sender: TObject);
procedure miPieValueCaptionPositionClick(
Sender: TObject);
procedure miPieValueCaptionItemClick(Sender: TObject);
procedure chvSalesDiagramAreaCustomDrawValueArea(
Sender: TcxGridChartAreaDiagram; ACanvas: TcxCanvas;
AViewInfo: TcxGridChartAreaDiagramValueViewInfo; var ADone: Boolean);
procedure chvSalesValueClick(Sender: TcxGridChartView;
ASeries: TcxGridChartSeries; AValueIndex: Integer; var AHandled: Boolean);
procedure miToolBoxClick(Sender: TObject);
procedure miToolBoxPositionClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
function GetActiveChart: TcxGridChartView;
function GetActiveColumnDiagram: TcxGridChartColumnDiagram;
function GetActiveHistogram: TcxGridChartHistogram;
function GetActiveLineDiagram: TcxGridChartLineDiagram;
function GetActivePieDiagram: TcxGridChartPieDiagram;
protected
procedure UpdateControls;
public
procedure CalculateSalesInfo;
procedure CalculateSalesInfoForQuarter(AQuarter: Integer);
function GetActiveAxis(AMenuItem: TObject): TcxGridChartHistogramAxis;
property ActiveChart: TcxGridChartView read GetActiveChart;
property ActiveColumnDiagram: TcxGridChartColumnDiagram read GetActiveColumnDiagram;
property ActiveHistogram: TcxGridChartHistogram read GetActiveHistogram;
property ActiveLineDiagram: TcxGridChartLineDiagram read GetActiveLineDiagram;
property ActivePieDiagram: TcxGridChartPieDiagram read GetActivePieDiagram;
end;
var
frmMain: TfrmMain;
implementation
uses
dxOffice11, cxGridCommon, AboutDemoForm;
{$R *.dfm}
function TfrmMain.GetActiveChart: TcxGridChartView;
begin
if grMain.ActiveView is TcxGridChartView then
Result := TcxGridChartView(grMain.ActiveView)
else
Result := nil;
end;
function TfrmMain.GetActiveColumnDiagram: TcxGridChartColumnDiagram;
begin
if ActiveChart.ActiveDiagram is TcxGridChartColumnDiagram then
Result := TcxGridChartColumnDiagram(ActiveChart.ActiveDiagram)
else
Result := nil;
end;
function TfrmMain.GetActiveHistogram: TcxGridChartHistogram;
begin
if ActiveChart.ActiveDiagram is TcxGridChartHistogram then
Result := TcxGridChartHistogram(ActiveChart.ActiveDiagram)
else
Result := nil;
end;
function TfrmMain.GetActiveLineDiagram: TcxGridChartLineDiagram;
begin
if ActiveChart.ActiveDiagram is TcxGridChartLineDiagram then
Result := TcxGridChartLineDiagram(ActiveChart.ActiveDiagram)
else
Result := nil;
end;
function TfrmMain.GetActivePieDiagram: TcxGridChartPieDiagram;
begin
if ActiveChart.ActiveDiagram is TcxGridChartPieDiagram then
Result := TcxGridChartPieDiagram(ActiveChart.ActiveDiagram)
else
Result := nil;
end;
procedure TfrmMain.UpdateControls;
var
AChart: TcxGridChartView;
AHistogram: TcxGridChartHistogram;
AColumnDiagram: TcxGridChartColumnDiagram;
ALineDiagram: TcxGridChartLineDiagram;
APieDiagram: TcxGridChartPieDiagram;
ACaptionItem: TcxGridChartPieDiagramValueCaptionItem;
begin
AChart := ActiveChart;
miView.Enabled := AChart <> nil;
miDiagram.Enabled := miView.Enabled;
if AChart = nil then Exit;
{ view }
if AChart.DiagramColumn.Active then
miColumnDiagram.Checked := True
else
if AChart.DiagramBar.Active then
miBarDiagram.Checked := True
else
if AChart.DiagramLine.Active then
miLineDiagram.Checked := True
else
if AChart.DiagramArea.Active then
miAreaDiagram.Checked := True
else
miPieDiagram.Checked := True;
miTitlePosition[Ord(AChart.Title.Position)].Checked := True;
miLegendPosition[Ord(AChart.ActiveDiagram.Legend.Position)].Checked := True;
miLegendBorder.Checked := AChart.ActiveDiagram.Legend.GetBorder = lbSingle;
miToolBox.Checked := AChart.ToolBox.Visible <> tvNever;
miToolBoxPosition[Ord(AChart.ToolBox.Position)].Checked := True;
{ diagram }
// histogram
AHistogram := ActiveHistogram;
miCategoryAxis.Visible := AHistogram <> nil;
miValueAxis.Visible := AHistogram <> nil;
if AHistogram <> nil then
begin
// category axis
miCategoryAxisVisible.Checked := AHistogram.AxisCategory.Visible;
miCategoryAxisGridLines.Checked := AHistogram.AxisCategory.GridLines;
miCategoryAxisTickMarkKind[Ord(AHistogram.AxisCategory.TickMarkKind)].Checked := True;
miCategoryAxisTickMarkLabels.Checked := AHistogram.AxisCategory.TickMarkLabels;
miCategoryAxisCategoriesInReverseOrder.Checked := AHistogram.AxisCategory.CategoriesInReverseOrder;
miCategoryAxisValueAxisAtMaxCategory.Checked := AHistogram.AxisCategory.ValueAxisAtMaxCategory;
miCategoryAxisValueAxisBetweenCategories.Checked := AHistogram.AxisCategory.ValueAxisBetweenCategories;
// value axis
miValueAxisVisible.Checked := AHistogram.AxisValue.Visible;
miValueAxisGridLines.Checked := AHistogram.AxisValue.GridLines;
miValueAxisTickMarkKind[Ord(AHistogram.AxisValue.TickMarkKind)].Checked := True;
miValueAxisTickMarkLabels.Checked := AHistogram.AxisValue.TickMarkLabels;
end;
// column
AColumnDiagram := ActiveColumnDiagram;
miValueCaptionPosition.Visible := AColumnDiagram <> nil;
if AColumnDiagram <> nil then
miValueCaptionPosition[Ord(AColumnDiagram.Values.CaptionPosition)].Checked := True;
// line
ALineDiagram := ActiveLineDiagram;
miLineValueCaptionPosition.Visible := ALineDiagram <> nil;
miLineStyle.Visible := ALineDiagram <> nil;
miLineWidth.Visible := ALineDiagram <> nil;
miMarkerStyle.Visible := ALineDiagram <> nil;
miMarkerSize.Visible := ALineDiagram <> nil;
miValueStacking.Visible := ALineDiagram <> nil;
if ALineDiagram <> nil then
begin
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?