Foxtable(狐表)用户栏目专家坐堂 → 按条件统计子表


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

主题:按条件统计子表

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107031 积分:544386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/26 11:00:00 [显示全部帖子]

很多地方都要判断“规格型号”是否是空值,上传完整例子测试一下

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


加好友 发短信
等级:超级版主 帖子:107031 积分:544386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/26 16:03:00 [显示全部帖子]

你这个金额是表达式,不能触发事件的

方法一

把金额改为数据列,通过代码计算金额,统计的代码不变

方法二

金额里类型不变

入库datacolchanged改改
Select Case e.DataCol.Name
     Case  "数量","单价"
          Dim pr  As  DataRow
         pr =  DataTables("库存").Find("产品名称 = '" & e.DataRow("产品名称") & "'And 规格型号 = '" & e.DataRow("规格型号") & "'")
         If pr  IsNot  Nothing  Then
             DataTables("库存").DataCols("产品名称").RaiseDataColChanged(pr)
         End  If
 End Select

库存datacolchanged改改
If e.DataCol.Name = "产品名称" OrElse e.DataCol.Name = "规格型号" Then
    Dim Filter As String = "1=1"
    If e.DataRow.IsNull("产品名称") = False Then filter &= " and 产品名称 = '" & e.DataRow("产品名称") & "'"
    If e.DataRow.IsNull("规格型号") = False Then filter &= " and 规格型号 = '" & e.DataRow("规格型号") & "'"
    e.DataRow("入库_数量") = DataTables("入库").Compute("Sum(数量)", Filter)
    e.DataRow("入库_快递费") = DataTables("入库").Compute("Sum(快递费)", Filter)
    Dim sum As Double = 0
    For Each dr As DataRow In DataTables("入库").Select(Filter)
        sum += dr("数量") * dr("单价")
    Next
    e.DataRow("入库_金额") = sum
End If

 回到顶部