【发布时间】:2017-05-17 14:55:29
【问题描述】:
在 cxGrid 中,我有一个布尔列(属性:复选框)。 如何对此类列进行页脚摘要 (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)。
不明白这个。字段为布尔类型(位)。
编辑2:
问题是sql server默认设置布尔类型为NULL。 这就是转换错误的原因。
【问题讨论】:
-
我会问here。
-
DevExpress 总是广泛更新他们的产品,并且他们的支持得到了很大的改善。您链接的那个问题已有 7 年历史,并且是从他们的旧支持系统迁移而来的。你应该自己再问一遍。
-
关于您的编辑:我想您必须决定是否要将
Nulls 视为已检查,并相应地使用VarIsNull。 -
好的,那么我会尝试以这种方式处理它——可能使用
VarIsNull,如上所述。 :-)