Foxtable(狐表)用户栏目专家坐堂 → 跨表引用是空值时显示0


  共有77人关注过本帖树形打印复制链接

主题:跨表引用是空值时显示0

帅哥哟,离线,有人找我吗?
g1j2h3
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:388 积分:4629 威望:0 精华:0 注册:2016/4/30 10:41:00
跨表引用是空值时显示0  发帖心情 Post By:2024/12/19 20:35:00 [只看该作者]

请教大师,看代码错在哪里
接单明细datacolchanged中
If e.DataCol.Name = "产品名称" Then 
    e.DataRow("发货数量") = DataTables("发货明细").Compute("isnull(sum(发货数量),0)", "接单单号= '" & e.DataRow("接单单号") & "' And 产品名称='" & e.DataRow("产品名称") & "' and 规格型号='" & e.DataRow("规格型号") & "'")
End If
发货明细datacolchanged中
If e.DataCol.Name = "发货数量" Then
    Dim pr As DataRow
    pr = DataTables("接单明细").Find( "接单单号= '" & e.DataRow("接单单号") & "' And 产品名称='" & e.DataRow("产品名称") & "' and 规格型号='" & e.DataRow("规格型号") & "'")
    If pr IsNot Nothing Then
        DataTables("接单明细").DataCols("产品名称").RaiseDataColChanged(pr)
    End If
End If



出现错误提示

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2024.11.1.1
错误所在事件:表,接单明细, DataColChanged
详细错误信息:
调用的目标发生了异常。
无法计算。表达式“System.Data.FunctionNode”不是聚合。
[此贴子已经被作者于2024/12/19 20:36:12编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111376 积分:566944 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/19 20:51:00 [只看该作者]

这里不需要判断是否为空

   e.DataRow("发货数量") = DataTables("发货明细").Compute("sum(发货数量)", "接单单号= '" & e.DataRow("接单单号") & "' And 产品名称='" & e.DataRow("产品名称") & "' and 规格型号='" & e.DataRow("规格型号") & "'")

 回到顶部
帅哥哟,离线,有人找我吗?
g1j2h3
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:388 积分:4629 威望:0 精华:0 注册:2016/4/30 10:41:00
  发帖心情 Post By:2024/12/19 21:02:00 [只看该作者]

但我想让发货数量是空值时显示0,要参与计算,该怎么写啊
[此贴子已经被作者于2024/12/19 21:03:13编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111376 积分:566944 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/19 21:06:00 [只看该作者]

If e.DataCol.Name = "产品名称" Then 
    dim a as double = DataTables("发货明细").Compute("sum(发货数量)", "接单单号= '" & e.DataRow("接单单号") & "' And 产品名称='" & e.DataRow("产品名称") & "' and 规格型号='" & e.DataRow("规格型号") & "'")
e.DataRow("发货数量") = a
End If

 回到顶部