以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  跨表统计问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=150902)

--  作者:swagger
--  发布时间:2020/6/10 12:11:00
--  跨表统计问题

If e.DataCol.Name = "编号" Then 

if e.DataRow("第一列") = true then
  e.DataRow("数量") = DataTables("表B").Compute("Sum(数量)","[编号] = \'" & e.NewValue & "\'")

else e.DataRow("第一列") = false then
  e.DataRow("数量") = DataTables("表B").Compute("Sum(总数量)","[编号] = \'" & e.NewValue & "\'")

 End If 


为什么     e.DataRow("数量") = DataTables("表B").Compute("Sum(数量)","[编号] = \'" & e.NewValue & "\'") 这个可以统计出来,
  而 e.DataRow("数量") = DataTables("表B").Compute("Sum(总数量)","[编号] = \'" & e.NewValue & "\'") 这个不能统计出来呢?改怎么修改?




--  作者:有点蓝
--  发布时间:2020/6/10 13:46:00
--  
"第一列"是逻辑列?代码没有问题,没有数据说明没有符合条件的记录
--  作者:swagger
--  发布时间:2020/6/10 14:06:00
--  
是的,第一列是逻辑列。不知道为什么统计不了。用了另外一种方法,暂时解决了

if e.DataCol.Name = "编号" Then 
  e.DataRow("数量") = DataTables("表B").Compute("Sum(数量)","[编号] = \'" & e.NewValue & "\'")
  e.DataRow("总数量") = DataTables("表B").Compute("Sum(总数量)","[编号] = \'" & e.NewValue & "\'")
 End If 


If e.DataCol.Name = "第一列" Then
If e.DataRow("第一列") = true Then
e.DataRow("统计数量") = e.DataRow("数量")
Else If e.DataRow("第一列") = false Then
e.DataRow("统计数量") = e.DataRow("总数量")
End If 
End If 

--  作者:有点蓝
--  发布时间:2020/6/10 14:36:00
--  
不应该有问题的,试试

If e.DataCol.Name = "编号" Then
    If e.DataRow("第一列") = True Then
        e.DataRow("数量") = DataTables("表B").Compute("Sum(数量)","[编号] = \'" & e.NewValue & "\'")
    Else
        e.DataRow("数量") = DataTables("表B").Compute("Sum(总数量)","[编号] = \'" & e.NewValue & "\'")
    End If
End If