summarygroupdemomain.pas

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

PAS
168
字号
unit SummaryGroupDemoMain;

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, ToolWin, cxStyles, cxGraphics, cxFilter, cxData, cxEdit,
  DB, cxDBData, cxClasses, cxDataStorage, cxDBLookupComboBox, cxCalendar,
  cxImageComboBox, cxCalc, cxBlobEdit, cxSpinEdit, cxLookAndFeels;

type
  TSummaryGroupDemoMainForm = class(TForm)
    mmMain: TMainMenu;
    miAbout: TMenuItem;
    miFile: TMenuItem;
    miOptions: TMenuItem;
    miExit: TMenuItem;
    miSummaries: TMenuItem;
    sbMain: TStatusBar;
    Grid: TcxGrid;
    tvOrders: TcxGridDBTableView;
    tvOrdersCustomerID: TcxGridDBColumn;
    tvOrdersPurchaseDate: TcxGridDBColumn;
    tvOrdersPaymentType: TcxGridDBColumn;
    tvOrdersPaymentAmount: TcxGridDBColumn;
    tvOrdersDescription: TcxGridDBColumn;
    tvOrdersQuantity: TcxGridDBColumn;
    lbDescription: TLabel;
    miSelectedRecordOnly: TMenuItem;
    miIgnoreNullValues: TMenuItem;
    N1: TMenuItem;
    miGroupFooter: TMenuItem;
    miMultiSelect: TMenuItem;
    miGroupFooterAlwaysShow: TMenuItem;
    miGroupFooterNeverShow: TMenuItem;
    miGroupFooterShowWhenExpand: TMenuItem;
    cxGridPopupMenu1: TcxGridPopupMenu;
    lvOrders: TcxGridLevel;
    tvOrdersProductID: TcxGridDBColumn;
    tvOrdersPurchaseMonth: TcxGridDBColumn;
    LookAndFeelController: TcxLookAndFeelController;
    procedure miAboutClick(Sender: TObject);
    procedure miExitClick(Sender: TObject);
    procedure miSelectedRecordsOnlyClick(Sender: TObject);
    procedure miIgnoreNullValuesClick(Sender: TObject);
    procedure miMultiSelectClick(Sender: TObject);
    procedure GridFocusedViewChanged(Sender: TcxCustomGrid;
      APrevFocusedView, AFocusedView: TcxCustomGridView);
    procedure miGroupFooterShowClick(Sender: TObject);
    procedure tvOrdersStylesGetGroupStyle(Sender: TcxGridTableView;
      ARecord: TcxCustomGridRecord; ALevel: Integer; out AStyle: TcxStyle);
    procedure FormShow(Sender: TObject);
  public
    { Public declarations }
  end;

var
  SummaryGroupDemoMainForm: TSummaryGroupDemoMainForm;

implementation

{$R *.dfm}

uses
  SummaryGroupDemoData, AboutDemoForm;

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

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

procedure TSummaryGroupDemoMainForm.miSelectedRecordsOnlyClick(
  Sender: TObject);
var
  ASummary: TcxDataSummary;
begin
  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 TSummaryGroupDemoMainForm.miIgnoreNullValuesClick(
  Sender: TObject);
var
  ASummary: TcxDataSummary;
begin
  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 TSummaryGroupDemoMainForm.miMultiSelectClick(Sender: TObject);
var
  AView: TcxGridDBTableView;
begin
  with Sender as TMenuItem do
    Checked := not Checked;
  AView := TcxGridDBTableView(Grid.FocusedView);
  AView.OptionsSelection.MultiSelect := (Sender as TMenuItem).Checked;
end;

procedure TSummaryGroupDemoMainForm.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;
  miGroupFooterAlwaysShow.Checked :=
    AView.OptionsView.GroupFooters = gfAlwaysVisible;
  miGroupFooterNeverShow.Checked :=
    AView.OptionsView.GroupFooters = gfInvisible;
  miGroupFooterShowWhenExpand.Checked :=
    AView.OptionsView.GroupFooters = gfVisibleWhenExpanded;
end;

procedure TSummaryGroupDemoMainForm.miGroupFooterShowClick(Sender: TObject);
var
  AView: TcxGridDBTableView;
begin
  (Sender as TMenuItem).Checked := True;
  AView := TcxGridDBTableView(Grid.FocusedView);
  AView.OptionsView.GroupFooters :=
    TcxGridGroupFootersMode(Byte((Sender as TMenuItem).Tag));
end;

procedure TSummaryGroupDemoMainForm.tvOrdersStylesGetGroupStyle(
  Sender: TcxGridTableView; ARecord: TcxCustomGridRecord; ALevel: Integer;
  out AStyle: TcxStyle);
begin
  if (ALevel mod 2) = 0 then
    AStyle := SummaryGroupDemoDataDM.stGreyLight
  else
    AStyle := SummaryGroupDemoDataDM.stBlueSky;
end;

procedure TSummaryGroupDemoMainForm.FormShow(Sender: TObject);
begin
  if SummaryGroupDemoDataDM.tblOrders.Active then
  begin
    tvOrders.DataController.Groups.FullExpand;
    tvOrders.Controller.GoToFirst;
  end;
end;

end.

⌨️ 快捷键说明

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