以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  未定义函数的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=39377)

--  作者:yuyijun2
--  发布时间:2013/8/22 22:06:00
--  未定义函数的问题

Dim bd1 As New GroupTableBuilder("统计表1",DataTables("行政案件"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("办案部门") \'根据办案部门分组
bd1.Totals.AddDef("案件数","查办案件总数") \'对数量进行统计
bd1.Totals.AddDef("行政罚款","行政罚款") \'对金额进行统计
dt1 = bd1.BuildDataSource()

Tables("统计_Table1").DataSource = dt1 \'将统计结果绑定到Table
With DataTables("统计_Table1").DataCols  \'用表达式列计算库存数据
    .Add("滥伐案",Gettype(Integer), " DataTables(\'行政案件\').Compute(\'Sum(案件数)\',\'[办案部门] = \'\' & dr(\'办案部门\') & \'\'\')")

End With

这段代码提示下面的问题,我是要怎么改正?


此主题相关图片如下:截图20130822220207.png
按此在新窗口浏览图片

--  作者:有点甜
--  发布时间:2013/8/22 22:14:00
--  
亲,不能这样统计的,好吧?
With DataTables("统计_Table1").DataCols  \'用表达式列计算库存数据
    .Add("滥伐案",Gettype(Integer), " DataTables(\'行政案件\').Compute(\'Sum(案件数)\',\'[办案部门] = \'\' & dr(\'办案部门\') & \'\'\')")

你需要循环每一行,然后根据每一行的数据来统计的。

--  作者:yuyijun2
--  发布时间:2013/8/22 22:19:00
--  

要怎么编写呀


--  作者:有点甜
--  发布时间:2013/8/22 22:28:00
--  
具体你根据实际情况修改一下,不然你就上传一个例子

With DataTables("统计_Table1").DataCols  \'用表达式列计算库存数据

    .Add("滥伐案",Gettype(Integer))
End With

For Each r As Row In Tables("统计_Table1").Rows
r("滥伐案") = DataTables(\'行政案件\').Compute("Sum(案件数)", "[办案部门] = \'\'\' & r(\'办案部门\') & \'\'\')"
Next

--  作者:yuyijun2
--  发布时间:2013/8/22 22:48:00
--  

谢谢“有点甜”,是好甜


--  作者:yuyijun2
--  发布时间:2013/8/23 1:16:00
--  

Dim bd1 As New GroupTableBuilder("统计表1",DataTables("行政案件"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("办案部门") \'根据办案部门分组

bd1.Totals.AddDef("行政罚款","行政罚款") \'对金额进行统计
dt1 = bd1.BuildDataSource()

Tables("统计_Table1").DataSource = dt1 \'将统计结果绑定到Table

 
With DataTables("统计_Table1").DataCols  \'用表达式列计算库存数据
    .Add("投诉案",Gettype(Integer))
  .Add("查办案件总数",Gettype(Integer))
End With


For Each dr As Row In Tables("统计_Table1").Rows
    dr("查办案件总数")= DataTables("行政案件").Compute("Count(办案部门)", "[办案部门] = \'" & dr("办案部门") & "\'"  )
   dr("投诉案") = DataTables("行政案件").Compute("Count(办案部门)", "[案件来源]=\'投诉\'" )
 Next

 

上面的红色代码如何再加入统计条件?例如在加入橙色部分的条件


--  作者:有点甜
--  发布时间:2013/8/23 20:42:00
--  
以下是引用yuyijun2在2013-8-23 1:16:00的发言:


For Each dr As Row In Tables("统计_Table1").Rows
    dr("查办案件总数")= DataTables("行政案件").Compute("Count(办案部门)", "[办案部门] = \'" & dr("办案部门") & "\'"  )
   dr("投诉案") = DataTables("行政案件").Compute("Count(办案部门)", "[案件来源]=\'投诉\'" )
 Next

 

上面的红色代码如何再加入统计条件?例如在加入橙色部分的条件


参考