偶最近几天用到cxGrid组件,觉得其功能确实很强大,尤其是它的分组功能.
不过,我主要还是用它来做报表显示与统计,但是有几个细节的地方不知道怎么处理:
1、关于右键处理,我希望在做分组统计或不分组全部合计时,
     A、只能在那个统计行,才能打开右键菜单,其他地方点右键不起效;
     B、只能在那个统计行,且对应某列打开的右键菜单,只对该列进行统计,其他列不影响;如果要统计其他列,则必须对应到该列再点一次右键再统计;
     C、在标题处点右键,打开另外一个右键菜单,实现相应的功能不一样;
2、分组统计或不分组全部合计时,希望在那个统计行上加上一些自定义的文字;

解决方案 »

  1.   

    http://hi.baidu.com/mcs51_vc_linux/blog/item/2d8ad3343114b4b0d1a2d308.html
    2:双击cxgrid,在Summary页面中的Footer页,添加items,并设置它的Format,比如设置Format为:总共0个
      

  2.   


    第1个问题没有找到答案;
    第2个问题我是这样写的:
    procedure TFReport1.cxGrid1DBTableView1TcxGridDBDataControllerTcxDataSummaryFooterSummaryItems0GetText(
      Sender: TcxDataSummaryItem; const AValue: Variant; AIsFooter: Boolean;
      var AText: String);
    begin
            AText:='汇总:在此单击鼠标右键做自定义加总';
    end;但是这个信息需要绑定列才可以,但第一列如果不够不宽则显示不全,当然如果设宽了也不好看了.能不能不绑定列,显示上面这个问题?
      

  3.   

    第二个问题解决了:
    procedure TFReport1.cxGrid1DBTableView1CustomDrawPartBackground(
      Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
      AViewInfo: TcxCustomGridCellViewInfo; var ADone: Boolean);
    begin
           if  cxGrid1DBTableView1.OptionsView.Footer=True  then
               AViewInfo.Text:='汇总:在此单击鼠标右键做自定义加总'
               else
               AViewInfo.Text:='分组汇总:在此单击鼠标右键做自定义分组加总';
               ACanvas.FillRect(AViewInfo.Bounds);
    end;期待第1个问题的解决!
      

  4.   

    不好意思第一个问题加一个cxGrid自带的cxGridPopupMenu1就搞定了,原来如此简单!