CxGrid如何用鼠标右键自由选择统计类型阿

tco9999 2005-09-15 10:11:25
change the summary types (right mouse click on the group footer cell)
...全文
181 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cqs6616 2006-04-24
  • 打赏
  • 举报
回复
使用 cxGridPopupMenu
cqs6616 2005-12-03
  • 打赏
  • 举报
回复
可以的
xiaocuo_zrf 2005-12-03
  • 打赏
  • 举报
回复
cxGrid似乎很难但是用Dev公司的另外一套类似Excel的控件就很简单!
cncharles 2005-12-03
  • 打赏
  • 举报
回复
我觉得很难的, 除非你改写TcxDBDataSummaryItem加上MouseMove事件.
我的做法是在Cell中右击调用统计菜单, 代码如下希望对你有些帮忙.

type
TForm1 = class(TForm)
tvcxgd1DBTableView1: TcxGridDBTableView;
lvcxgd1Level1: TcxGridLevel;
cxgd1: TcxGrid;
ds1: TDataSource;
qry1: TADOQuery;
con1: TADOConnection;
cltvcxgd1DBTableView1ID: TcxGridDBColumn;
cltvcxgd1DBTableView1desr: TcxGridDBColumn;
cltvcxgd1DBTableView1TEST: TcxGridDBColumn;
cltvcxgd1DBTableView1Num: TcxGridDBColumn;
pm1: TPopupMenu;
btn1: TButton;
procedure tvcxgd1DBTableView1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure OnMenuItemClick(Sender:TObject);
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses
TypInfo;


{$R *.dfm}

procedure TForm1.OnMenuItemClick(Sender: TObject);
begin
tvcxgd1DBTableView1.DataController.Summary.FooterSummaryItems[0].Kind:=
TcxsummaryKind((sender as TMenuItem).tag) ;
end;

procedure TForm1.tvcxgd1DBTableView1CellClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
var
Pt:TPoint;
begin
if AButton=mbright then begin
GetCursorPos(Pt);
pm1.Popup(Pt.X, Pt.Y);
AHandled:=True;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
MI:TMenuItem;
MinValue, MaxValue, I:Integer;
MiCaption:string;
begin
pm1.Items.Clear;
MinValue:=GetTypeData(TypeInfo(TcxSummaryKind))^.MinValue;
MaxValue:=GetTypeData(TypeInfo(TcxSummaryKind))^.MaxValue;
for I:= MinValue to MaxValue do begin
MI:=TMenuItem.Create(Self);
MiCaption:=GetEnumName(TypeInfo(TcxSummaryKind), I);
MiCaption:=Copy(MiCaption, 3, Length(MiCaption)-2);
MI.Caption:=MiCaption;
MI.Tag:=I;
MI.OnClick:=OnMenuItemClick;
pm1.Items.Add(MI);
end;
end;





***********************************
高级群号:16497064欢迎编程高手加入.
***********************************




2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧