以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]重定向后,生成的SQL语句错误,无法进行统计  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=105670)

--  作者:jyh7081
--  发布时间:2017/8/23 22:28:00
--  [求助]重定向后,生成的SQL语句错误,无法进行统计
重定向外部表后,其他正常,就一处统计代码报错,代码如下:

Dim cn As String = "" \'数据源名(空白时为内数据表)
Dim bm As String = "统计表1"
Dim b As New SQLGroupTableBuilder(bm,"机关负责人出庭")
b.ConnectionName = cn
b.Groups.AddDef("案号")
b.Groups.AddDef("被告")
b.Totals.AddExp("负责人","iif(出庭情况_负责人=true,1,null)")
b.Totals.AddExp("正职","iif(出庭情况_正职=true,1,null)")
b.Totals.AddExp("本机关工作人员","iif(出庭情况_本机关工作人员=true,1,null)")
b.Totals.AddExp("下级机关工作部门人员","iif(出庭情况_下级机关工作部门人员=true,1,null)")
b.Totals.AddExp("仅下级机关工作部门人员","iif(出庭情况_仅下级机关工作部门人员=true,1,null)")
b.Totals.AddExp("仅委托律师","iif(出庭情况_仅委托律师=true,1,null)")
b.Totals.AddExp("仅下级机关工作部门人员和律师","iif(出庭情况_仅下级机关工作部门人员和律师=true,1,null)")
b.Totals.AddExp("行政机关未经法庭许可中途退庭","iif(出庭情况_行政机关未经法庭许可中途退庭=true,1,null)")
b.Totals.AddExp("无人出庭应诉","iif(出庭情况_无人出庭应诉=true,1,null)")
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()  \'自动列宽

--  作者:lihe60
--  发布时间:2017/8/23 22:37:00
--  
没有写外部数据源名称
--  作者:有点甜
--  发布时间:2017/8/23 22:40:00
--  
b.ConnectionName = "数据源名"
[此贴子已经被作者于2017/8/23 22:39:54编辑过]

--  作者:有点蓝
--  发布时间:2017/8/24 8:52:00
--  
如果数据源是Sqlserver,iif要改成case when


--  作者:jyh7081
--  发布时间:2018/1/12 11:47:00
--  

转换sql外部数据源后,将一楼的代码中 iif语句 修改为 case when语句,提示错误:

 
图片点击可在新窗口打开查看此主题相关图片如下:image 1.jpg
图片点击可在新窗口打开查看

 

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 出庭情况_负责人=true then 1 Else null End")
b.Totals.AddExp("正职","Case When 出庭情况_正职=true then 1 Else null End")
b.Totals.AddExp("本机关工作人员","Case When 出庭情况_本机关工作人员=true then 1 Else null End")
b.Totals.AddExp("下级机关工作部门人员","Case When 出庭情况_下级机关工作部门人员=true then 1 Else null End")
b.Totals.AddExp("仅下级机关工作部门人员","Case When 出庭情况_仅下级机关工作部门人员=true then 1 Else null End")
b.Totals.AddExp("仅委托律师","Case When 出庭情况_仅委托律师=true then 1 Else null End")
b.Totals.AddExp("仅下级机关工作部门人员和律师","Case When 出庭情况_仅下级机关工作部门人员和律师=true then 1 Else null End")
b.Totals.AddExp("行政机关未经法庭许可中途退庭","Case When 出庭情况_行政机关未经法庭许可中途退庭=true then 1 Else null End")
b.Totals.AddExp("无人出庭应诉","Case When 出庭情况_无人出庭应诉=true 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()  \'自动列宽


--  作者:有点甜
--  发布时间:2018/1/12 12:07:00
--  
把true/false,分别改成 1/0