Foxtable(狐表)用户栏目专家坐堂 → 主表怎么取子表的字段进行计算


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

主题:主表怎么取子表的字段进行计算

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


加好友 发短信
等级:幼狐 帖子:89 积分:1097 威望:0 精华:0 注册:2011/5/18 11:17:00
主表怎么取子表的字段进行计算  发帖心情 Post By:2021/12/8 17:27:00 [显示全部帖子]

图片点击可在新窗口打开查看

装机容量 =子表中 分类为“组件”的数量合计值*主表的组件功率
求大神指点,用了表事件也不行

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


加好友 发短信
等级:幼狐 帖子:89 积分:1097 威望:0 精华:0 注册:2011/5/18 11:17:00
  发帖心情 Post By:2021/12/8 20:14:00 [显示全部帖子]

If e.DataCol.Name = "组件功率" Then
    If e.NewValue Is Nothing Then

         e.DataRow("装机容量")=Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("光伏物料清单.物料明细表").Find("[分类] = '组件'")
        Dim m As Double = dr(sum("数量"))
        If dr IsNot Nothing
             e.DataRow("装机容量")= m * e.DataRow("组件功率")

        End If
    End If
End If

玩不懂啊  老大求助

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


加好友 发短信
等级:幼狐 帖子:89 积分:1097 威望:0 精华:0 注册:2011/5/18 11:17:00
  发帖心情 Post By:2021/12/8 21:18:00 [显示全部帖子]

谢谢兄弟 ,太难学了 
折腾了一天,想找个师傅学习下。
If e.DataCol.Name = "组件功率" Then
    If e.NewValue Is Nothing Then

        e.DataRow("装机容量")=Nothing
    Else
        Dim dr As DataRow
       dr = DataTables("物料明细表").Find("[分类] = '组件'")

        If dr IsNot Nothing
            
            Dim sum As Double = Tables("物料明细表").Compute("Sum(数量)", "模板编号 = 'A01' and 分类 = '组件' ")
            e.DataRow("装机容量")= sum * e.DataRow("组件功率")

        End If
    End If
End If
[此贴子已经被作者于2021/12/8 21:19:21编辑过]

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


加好友 发短信
等级:幼狐 帖子:89 积分:1097 威望:0 精华:0 注册:2011/5/18 11:17:00
  发帖心情 Post By:2021/12/9 23:52:00 [显示全部帖子]

谢谢各位老大!
我子表还有个计算,不知道怎么写了 
图片点击可在新窗口打开查看

Select Case  DataTables("物料明细表").DataCols("分类")
    Case  "横一"  当分类为横一时,取主表的横一的数量
        '代码一
      Dim ff As Double = Tables("物料明细表").Compute("斜梁数量_横一", 模板编号 = '  e.DataRow("模板编号")' )
      e.DataRow("数量")=  ff
   Case  "竖一 竖二" ' 当为竖一 竖二时取主表竖一 竖二之和
  Dim ff1 As Double = Tables("物料明细表").Compute("斜梁数量_竖一", 模板编号 = '  e.DataRow("模板编号")' )
  Dim ff2 As Double = Tables("物料明细表").Compute("斜梁数量_竖二", 模板编号 = '  e.DataRow("模板编号")' )
   e.DataRow("数量")=  ff1+ff2
End Select

请问这个为什么总是报错呢

[此贴子已经被作者于2021/12/9 23:53:20编辑过]

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


加好友 发短信
等级:幼狐 帖子:89 积分:1097 威望:0 精华:0 注册:2011/5/18 11:17:00
  发帖心情 Post By:2021/12/10 13:40:00 [显示全部帖子]

图片点击可在新窗口打开查看

按照您的思路写进去,为什么显示还是0

[此贴子已经被作者于2021/12/10 13:40:03编辑过]

 回到顶部