在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 对话框上的“摘要”选项卡,然后添加新摘要:
- 将 Column 属性设置为您希望其显示的网格列
- 将 FieldName 设置为您的计算字段
- 最后将 Kind 设置为 skSum
关于delphi - cxGrid - 检查记录的页脚摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43994150/