summaryfooterdemomain.pas

来自「DevExpress ExpressQuantumGrid Suite v5.9」· PAS 代码 · 共 184 行

PAS
184
字号
unit SummaryFooterDemoMain;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, cxGridLevel, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, cxControls, cxGridCustomView, cxGrid, cxCustomData,
  ExtCtrls, ActnList, ImgList, Menus, ComCtrls, cxGridCustomPopupMenu,
  cxGridPopupMenu, cxStyles, cxGraphics, cxFilter, cxData, cxEdit, DB,
  cxDBData, cxClasses, cxDataStorage, cxBlobEdit, cxSpinEdit, cxCheckBox,
  cxHyperLinkEdit, cxCurrencyEdit, cxDBLookupComboBox, cxCalendar,
  cxTimeEdit, cxImageComboBox, cxCalc, cxLookAndFeels;

type
  TSummaryFooterDemoMainForm = class(TForm)
    mmMain: TMainMenu;
    miAbout: TMenuItem;
    miFile: TMenuItem;
    miOptions: TMenuItem;
    miExit: TMenuItem;
    miSummaries: TMenuItem;
    sbMain: TStatusBar;
    Grid: TcxGrid;
    lvCars: TcxGridLevel;
    tvCars: TcxGridDBTableView;
    tvCarsTrademark: TcxGridDBColumn;
    tvCarsModel: TcxGridDBColumn;
    tvCarshp: TcxGridDBColumn;
    tvCarsliter: TcxGridDBColumn;
    tvCarscyl: TcxGridDBColumn;
    tvCarsTransmissSpeedCount: TcxGridDBColumn;
    tvCarsTransmissAutomatic: TcxGridDBColumn;
    tvCarsMPG_City: TcxGridDBColumn;
    tvCarsMPG_Highway: TcxGridDBColumn;
    tvCarsCategory: TcxGridDBColumn;
    tvCarsDescription: TcxGridDBColumn;
    tvCarsHyperlink: TcxGridDBColumn;
    tvCarsPicture: TcxGridDBColumn;
    tvCarsPrice: TcxGridDBColumn;
    lvOrders: TcxGridLevel;
    tvOrders: TcxGridDBTableView;
    tvOrdersCustomerID: TcxGridDBColumn;
    tvOrdersPurchaseDate: TcxGridDBColumn;
    tvOrdersTime: TcxGridDBColumn;
    tvOrdersPaymentType: TcxGridDBColumn;
    tvOrdersPaymentAmount: TcxGridDBColumn;
    tvOrdersDescription: TcxGridDBColumn;
    tvOrdersQuantity: TcxGridDBColumn;
    lbDescription: TLabel;
    miCustomizeSummaries: TMenuItem;
    miSelectedRecordOnly: TMenuItem;
    miIgnoreNullValues: TMenuItem;
    N1: TMenuItem;
    miFooter: TMenuItem;
    miMultiSelect: TMenuItem;
    N2: TMenuItem;
    cxGridPopupMenu1: TcxGridPopupMenu;
    LookAndFeelController: TcxLookAndFeelController;
    procedure miAboutClick(Sender: TObject);
    procedure miExitClick(Sender: TObject);
    procedure btnAddSummaryClick(Sender: TObject);
    procedure miCustomizeSummariesClick(Sender: TObject);
    procedure miSelectedRecordOnlyClick(Sender: TObject);
    procedure miIgnoreNullValuesClick(Sender: TObject);
    procedure miMultiSelectClick(Sender: TObject);
    procedure miFooterClick(Sender: TObject);
    procedure GridFocusedViewChanged(Sender: TcxCustomGrid;
      APrevFocusedView, AFocusedView: TcxCustomGridView);
    procedure FormShow(Sender: TObject);
  public
    { Public declarations }
  end;

var
  SummaryFooterDemoMainForm: TSummaryFooterDemoMainForm;

implementation

{$R *.dfm}

uses
  SummaryFooterDemoData, SummaryFooterDemoEditSummary, AboutDemoForm;

procedure TSummaryFooterDemoMainForm.btnAddSummaryClick(Sender: TObject);
begin
  SummaryFooterDemoEditSummaryForm.ShowModal;
end;

procedure TSummaryFooterDemoMainForm.miAboutClick(Sender: TObject);
begin
  ShowAboutDemoForm;
end;

procedure TSummaryFooterDemoMainForm.miExitClick(Sender: TObject);
begin
  Close;
end;

procedure TSummaryFooterDemoMainForm.miCustomizeSummariesClick(Sender: TObject);
begin
  SummaryFooterDemoEditSummaryForm.ShowModal;
end;

procedure TSummaryFooterDemoMainForm.miSelectedRecordOnlyClick(
  Sender: TObject);
var
  ASummary: TcxDataSummary;
begin
  if not Assigned(Grid.FocusedView) then Exit;
  with Sender as TMenuItem do
    Checked := not Checked;
  ASummary := Grid.FocusedView.DataController.Summary;
  if (Sender as TMenuItem).Checked then
    ASummary.Options := ASummary.Options + [soSelectedRecords]
  else
    ASummary.Options := ASummary.Options - [soSelectedRecords];
end;

procedure TSummaryFooterDemoMainForm.miIgnoreNullValuesClick(
  Sender: TObject);
var
  ASummary: TcxDataSummary;
begin
  if not Assigned(Grid.FocusedView) then Exit;
  with Sender as TMenuItem do
    Checked := not Checked;
  ASummary := Grid.FocusedView.DataController.Summary;
  if (Sender as TMenuItem).Checked then
    ASummary.Options := ASummary.Options + [soNullIgnore]
  else
    ASummary.Options := ASummary.Options - [soNullIgnore];
end;

procedure TSummaryFooterDemoMainForm.miMultiSelectClick(
  Sender: TObject);
var
  AView: TcxGridDBTableView;
begin
  if not Assigned(Grid.FocusedView) then Exit;
  with Sender as TMenuItem do
    Checked := not Checked;
  AView := TcxGridDBTableView(Grid.FocusedView);
  AView.OptionsSelection.MultiSelect := (Sender as TMenuItem).Checked;
end;

procedure TSummaryFooterDemoMainForm.miFooterClick(Sender: TObject);
var
  AView: TcxGridDBTableView;
begin
  if not Assigned(Grid.FocusedView) then Exit;
  with Sender as TMenuItem do
    Checked := not Checked;
  AView := TcxGridDBTableView(Grid.FocusedView);
  AView.OptionsView.Footer := (Sender as TMenuItem).Checked;
end;

procedure TSummaryFooterDemoMainForm.GridFocusedViewChanged(
  Sender: TcxCustomGrid; APrevFocusedView,
  AFocusedView: TcxCustomGridView);
var
  AView: TcxGridDBTableView;
begin
  AView := TcxGridDBTableView(Grid.FocusedView);
  miSelectedRecordOnly.Checked := soSelectedRecords in
    AView.DataController.Summary.Options;
  miIgnoreNullValues.Checked := soNullIgnore in
    AView.DataController.Summary.Options;
  miMultiSelect.Checked := AView.OptionsSelection.MultiSelect;
  miFooter.Checked := AView.OptionsView.Footer;
end;

procedure TSummaryFooterDemoMainForm.FormShow(Sender: TObject);
begin
  if SummaryFooterDemoDataDM.tblCars.Active then
  begin
    SummaryFooterDemoDataDM.tblCars.First;
    if Assigned(tvCars.Controller.FocusedRecord) then
      tvCars.Controller.FocusedRecord.Expanded := true;
  end;
end;

end.  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?