Modify the grouping headings for Cxgrid _cxgrid

Source: Internet
Author: User


Modify the Cxgrid Group Title Delphi XE Test Pass.



Unit file





unit Unit15;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters,
  cxStyles, dxSkinsCore, dxSkinCoffee, dxSkinscxPCPainter, cxCustomData,
  cxFilter, cxData, cxDataStorage, cxEdit, cxGridCustomTableView,
  cxGridTableView, cxGridBandedTableView, cxGridCustomView, cxClasses,
  cxGridLevel, cxGrid;

type
  TForm15 = class (TForm)
    cxgrdlvlGrid1Level1: TcxGridLevel;
    cxgrd1: TcxGrid;
    cxgrdbndtblvw: TcxGridBandedTableView;
    cxgrdbndclmncxgrdbndtblvwcxgrd1BandedTableView1Column1: TcxGridBandedColumn;
    cxgrdbndclmncxgrdbndtblvwcxgrd1BandedTableView1Column2: TcxGridBandedColumn;
    cxgrdbndclmncxgrdbndtblvwcxgrd1BandedTableView1Column3: TcxGridBandedColumn;
    procedure cxgrdbndtblvwCustomDrawGroupCell (
      Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
      AViewInfo: TcxGridTableCellViewInfo; var ADone: Boolean);
  private
    {Private declarations}
  public
    {Public declarations}
  end;

var
  Form15: TForm15;

implementation

{$ R * .dfm}
{Example:
cxgrdbndtblvw: cxgrid's view name
  Contains two columns company, type
}
procedure TForm15.cxgrdbndtblvwCustomDrawGroupCell (
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableCellViewInfo; var ADone: Boolean);
var
  FBounds: TRect;
  sGroupName: string; // The title of the group line display
  i, iChildCount: Integer;
begin
  iChildCount: = 0;

  // Get the number of subordinates of the current group
  for i: = 0 to cxgrdbndtblvw.DataController.RecordCount-1 do
  begin
    if VarToStr (AViewInfo.GridRecord.Values [0]) = VarToStr (cxgrdbndtblvw.DataController.Values [i, 0]) then
    begin
      inc (iChildCount);
      sGroupName: = cxgrdbndtblvw.DataController.Values [i, 1]; // Take the name of the type column as part of the group row header
    end;
  end;

  // Format group lines
  sGroupName: = Format ('>>% s:% s (% d)% s', [
    cxgrdbndtblvw.GroupedColumns [0] .Caption,
    AViewInfo.GridRecord.Values [0],
    iChildCount,
    sGroupName
  ]);

  // print group lines
  FBounds: = AViewInfo.Bounds;
  ACanvas.FillRect (FBounds);
  OffsetRect (FBounds, 25, 0);

  ACanvas.Font.Style: = [fsBold];
  ACanvas.DrawTexT (sGroupName, FBounds, cxAlignLeft or cxAlignVCenter or cxDontClip);
  ADone: = True;
end;

end.



Form file





object Form15: TForm15
  Left = 0
  Top = 0
  Caption = 'Form15'
  ClientHeight = 559
  ClientWidth = 696
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -12
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 106
  TextHeight = 14
  object cxgrd1: TcxGrid
    Left = 24
    Top = 16
    Width = 649
    Height = 473
    TabOrder = 0
    object cxgrdbndtblvw: TcxGridBandedTableView
      NavigatorButtons.ConfirmDelete = False
      NavigatorButtons.First.Visible = True
      NavigatorButtons.PriorPage.Visible = True
      NavigatorButtons.Prior.Visible = True
      NavigatorButtons.Next.Visible = True
      NavigatorButtons.NextPage.Visible = True
      NavigatorButtons.Last.Visible = True
      NavigatorButtons.Insert.Visible = True
      NavigatorButtons.Append.Visible = False
      NavigatorButtons.Delete.Visible = True
      NavigatorButtons.Edit.Visible = True
      NavigatorButtons.Post.Visible = True
      NavigatorButtons.Cancel.Visible = True
      NavigatorButtons.Refresh.Visible = True
      NavigatorButtons.SaveBookmark.Visible = True
      NavigatorButtons.GotoBookmark.Visible = True
      NavigatorButtons.Filter.Visible = True
      DataController.Summary.DefaultGroupSummaryItems = <>
      DataController.Summary.FooterSummaryItems = <>
      DataController.Summary.SummaryGroups = <
        item
          Links = <>
          SummaryItems = <
            item
              Column = cxgrdbndclmncxgrdbndtblvwcxgrd1BandedTableView1Column1
            end>
        end>
      DataController.Data = {
        E90000000F00000044617461436F6E74726F6C6C657231030000001200000054
        6378537472696E6756616C75655479706512000000546378537472696E675661
        6C75655479706512000000546378537472696E6756616C756554797065030000
        00445855464D540000040000007400650073007400000200000079728A6B0001
        0000003100445855464D5400000B00000041006300740069006F006E00200043
        006C00750062000003000000F14F504EE89000010000003200445855464D5400
        000B00000041006300740069006F006E00200043006C00750062000003000000
        F14F504EE89000010000003100}
      OnCustomDrawGroupCell = cxgrdbndtblvwCustomDrawGroupCell
      Bands = <
        item
        end>
      object cxgrdbndclmncxgrdbndtblvwcxgrd1BandedTableView1Column1: TcxGridBandedColumn
        Caption = 'Company'
        Width = 93
        Position.BandIndex = 0
        Position.ColIndex = 0
        Position.RowIndex = 0
      end
      object cxgrdbndclmncxgrdbndtblvwcxgrd1BandedTableView1Column2: TcxGridBandedColumn
        Caption = 'Type'
        Position.BandIndex = 0
        Position.ColIndex = 1
        Position.RowIndex = 0
      end
      object cxgrdbndclmncxgrdbndtblvwcxgrd1BandedTableView1Column3: TcxGridBandedColumn
        Caption = 'num'
        Width = 93
        Position.BandIndex = 0
        Position.ColIndex = 2
        Position.RowIndex = 0
      end
    end
    object cxgrdlvlGrid1Level1: TcxGridLevel
      GridView = cxgrdbndtblvw
    end
  end
end

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.