delphi - cxGrid - 检查记录的页脚摘要

标签 delphi tcxgrid

在cxGrid中,我有一列 bool 值(属性:复选框)。 如何对此类列进行页脚摘要 (SUM),即对检查的记录数进行求和。

现在,如果我将其设置为 SUM,我的页脚摘要将显示所检查项目的负数。如何避免这些负数?

编辑: 我在他们的网站上找到了一个解决方案:

procedure TForm1.cxGrid1DBTableView1DataControllerSummaryFooterSummaryItemsSummary(
  ASender: TcxDataSummaryItems; Arguments: TcxSummaryEventArguments;
  var OutArguments: TcxSummaryEventOutArguments);
var
  si: TcxGridDBTableSummaryItem;
begin
  si := Arguments.SummaryItem as TcxGridDBTableSummaryItem;
  if si.Column = cxGrid1DBTableView1Sonda then
    OutArguments.Done := not OutArguments.Value;
end;

但是我收到错误: 无法将类型(Null)的变体转换为类型(Boolean)。

不明白这个。字段为boolean类型(bit)。

编辑2:

问题是sql server默认将boolean类型设置为NULL。 这就是转换错误的原因。

最佳答案

您还可以设置网格以使用不同的字段来计算该摘要,例如,您可以在计算字段中分配每次要添加的确切值。

  • 将计算字段添加到数据集中,并包含所需的值。 MyHiddenField.Value := -1 * YourCheckingField.AsInteger;

  • 转到 CxGrid 对话框上的“摘要”选项卡,然后添加新摘要:

    1. 将 Column 属性设置为您希望其显示的网格列
    2. 将 FieldName 设置为您的计算字段
    3. 最后将 Kind 设置为 skSum

关于delphi - cxGrid - 检查记录的页脚摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43994150/

相关文章:

delphi - 如何自动调整 DevExpress TcxGrid 的大小

delphi - TcxGridDBBandedColumn 中的 TdxDBTreeListColumn.OnFilterStringUnformat 模拟在哪里?

delphi - cxGrid 最后一个字段上的新记录 Enter

delphi - 在delphi中获取字符串字节长度

delphi - 使用搜索字符串搜索通用列表,错误 E2034 参数过多

delphi - 如果 Delphi TSpeedButton 是组中唯一的一个,如何使其保持按下状态

delphi - 如何使用默认文本编辑器打开文件?

delphi - 过滤而不显示过滤器

sql - 无法对已关闭的数据集和表中输入的数据不正确执行此操作