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


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

主题:按条件统计子表

帅哥,在线噢!
cd_tdh
  11楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3088 积分:20626 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2017/5/26 14:53:00 [只看该作者]

蓝老师,示例文件已上传。

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


加好友 发短信
等级:超级版主 帖子:107032 积分:544391 威望: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

 回到顶部
帅哥,在线噢!
cd_tdh
  13楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3088 积分:20626 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2017/5/26 16:22:00 [只看该作者]

谢谢有点蓝老师,表达式不能统计,修改的时候搞混淆了,感谢感谢。

 回到顶部
帅哥,在线噢!
cd_tdh
  14楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3088 积分:20626 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2017/5/31 16:06:00 [只看该作者]

有点蓝老师,我用相同的方法库存统计出库,不执行怎么回事呢?

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)
    Dim sum As Double = 0
    For Each dr As DataRow In DataTables("出库").Select(Filter)
        sum += dr("数量") * dr("单价")
    Next
    e.DataRow("出库_金额") = sum
End If

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/31 16:15:00 [只看该作者]

加入msgbox,看是否进入执行了代码。

 

弹出生成的条件filter看看。

 

 

 


 回到顶部
帅哥,在线噢!
cd_tdh
  16楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3088 积分:20626 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2017/5/31 16:47:00 [只看该作者]

找到问题了,解决了。

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


 回到顶部
总数 16 上一页 1 2