case when,是sqlserver数据库的,access数据库,用iif函数。
我这样测试没问题
Dim cn As String = "" '数据源名(空白时为内数据表)
'Dim cn As String = "swptsql" 'sql外部数据源
Dim bm As String = "统计表1"
Dim b As New SQLGroupTableBuilder(bm,"机关负责人出庭")
'b.ConnectionName = cn
b.Groups.AddDef("案号")
b.Groups.AddDef("被告")
b.Groups.AddDef("承办人") '暂
'b.Totals.AddExp("负责人","Case When 出庭情况_负责人 =1 then 1 Else null End")
'b.Totals.AddExp("正职","Case When 出庭情况_正职 =1 then 1 Else null End")
'b.Totals.AddExp("本机关工作人员","Case When 出庭情况_本机关工作人员 =1 then 1 Else null End")
'b.Totals.AddExp("下级机关工作部门人员","Case When 出庭情况_下级机关工作部门人员 =1 then 1 Else null End")
'b.Totals.AddExp("仅下级机关工作部门人员","Case When 出庭情况_仅下级机关工作部门人员 =1 then 1 Else null End")
'b.Totals.AddExp("仅委托律师","Case When 出庭情况_仅委托律师 =1 then 1 Else null End")
'b.Totals.AddExp("仅下级机关工作部门人员和律师","Case When 出庭情况_仅下级机关工作部门人员和律师 =1 then 1 Else null End")
'b.Totals.AddExp("行政机关未经法庭许可中途退庭","Case When 出庭情况_行政机关未经法庭许可中途退庭 =1 then 1 Else null End")
'b.Totals.AddExp("无人出庭应诉","Case When 出庭情况_无人出庭应诉 =1 then 1 Else null End")
b.Subtotal = True
b.SubtotalLevel = 0
Tables("司法统计_Table1").DataSource = b.BuildDataSource
With Tables("司法统计_Table1")
.MergeMode = MergeModeEnum.Standard '标准合并模式
.MergeCols.Clear() '清除原来的合并列
.MergeCols.Add("案号") '加入要合并的列
'.MergeSort = "被告" '设置合并模式下的排序方式
.AllowMerge = True '启用合并模式
End With
Tables("司法统计_Table1").AutoSizeCols() '自动列宽End If