代码中的cxGrid刷新页脚值

时间:2014-12-30 02:40:18

标签: delphi devexpress tcxgrid

在cxGrid中显示或隐藏实现了页脚(SUM)的列(在代码中)时,它不会刷新其值。

如何刷新代码中的页脚?

使用此:

procedure TForm1.cxGrid2DBTableView1CustomDrawFooterCell(
Sender: TcxGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridColumnHeaderViewInfo; var ADone: Boolean);
begin
cxgrid2DBTableView1.DataController.Summary.Recalculate;
end;

...使表单上的所有其他devexpress组件无法正确重新绘制。可以看到一个东西....

编辑: 要显示或隐藏网格中的字段,我使用:

    procedure TForm1.cxCheckBox1Click(Sender: TObject);
    var
    C:TcxGridDBColumn;
    begin
    C := cxGrid1DBTableView1.GetColumnByFieldName('PP');
    if Assigned(C) then C.Visible := not C.Visible;
    begin
          absquery2.Edit;
          absquery2.FieldByName('PP').AsCurrency := 15 * ABSQuery2.FieldByName('days').asInteger;
          if C.Visible then  begin
          ABSQuery2.FieldByName('total').asCurrency := (ABSQuery2.FieldByName('total').AsCurrency) + (ABSQuery2.FieldByName('PP').AsCurrency) ;
          end else begin
          ABSQuery2.FieldByName('total').asCurrency := (ABSQuery2.FieldByName('total').AsCurrency) - (ABSQuery2.FieldByName('PP').AsCurrency);
          ABSQuery2.Post;
          ABSQuery2.Refresh;
          end;

end;
end;

在计算我的查询字段时:

procedure TForm1.ABSQuery2CalcFields(DataSet: TDataSet);
begin
case cxradiogroup1.ItemIndex of
0: begin
absquery2.FieldByName('tt').value := 1.30;
if (absquery2.FieldByName('room_type').asstring = 'SGL') then begin
absquery2.FieldByName('TTS').value := absquery2.FieldByName('days').value * 1.30;
absquery2.FieldByName('OSEB').value :='1';
end else begin
absquery2.FieldByName('TTS').value := (absquery2.FieldByName('days').value) * (absquery2.FieldByName('tt').value * 2);
absquery2.FieldByName('OSEB').value :='2';
end;
absquery2.FieldByName('total').value := absquery2.FieldByName('days').value * absquery2.FieldByName('rate_price').value + absquery2.FieldByName('TTS').value;
absquery2.FieldByName('POND').value := absquery2.FieldByName('RATE_PRICE').value / absquery2.FieldByName('OSEB').value;
end;
.....

这一切似乎都在起作用,除了不会接受网格总值变化的页脚。在我看来,网格页脚只接受oncalculate字段事件而不显示或隐藏字段。我怎样才能使这个工作?

0 个答案:

没有答案