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


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

主题:按条件统计子表

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


加好友 发短信
等级:狐精 帖子:3077 积分:20571 威望:0 精华:0 注册:2016/3/28 16:57:00
按条件统计子表  发帖心情 Post By:2017/5/24 13:46:00 [只看该作者]

关联表,根据”产品名称“列关联,当”规格型号“不一致时,根据规格型号统计数量,当规格型号为空时,根据产品名称统计数量,用表达式Sum(Child(po).数量)有没办法实现,还是只能用代码啊?

[此贴子已经被作者于2017/5/24 13:51:54编辑过]

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


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

 你的逻辑是什么?父表如果产品名称、规格型号都不为空,就根据两列统计,否者,就根据产品名称统计?

 

 跨表统计,用代码处理 http://www.foxtable.com/webhelp/scr/1454.htm

 


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


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

色大师,代码统计没问题了,自动更新这儿怎么修改?

按照当产品名称,按照规格型号统计数量、金额

If e.DataCol.Name = "产品名称" Then
    Dim
Filter As String = "[产品名称] = '" & e.NewValue & "'"
    e.
DataRow("入库_数量") = DataTables("入库").Compute("Sum(数量)", Filter)
    e.
DataRow("入库_金额") = DataTables("入库").Compute("Sum(金额)", Filter)
End
If

 


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


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

当我第一次在库存表输入一个产品时,金额不会自动统计,如果在修改一下数量,金额才会自动统计。

 


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/25 16:17: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)
    e.DataRow("入库_金额") = DataTables("入库").Compute("Sum(金额)", Filter)
End If

 

自动更新的话,你就重置列就好了

 

http://www.foxtable.com/webhelp/scr/1472.htm

 


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


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

色大师,数量会自动汇总,金额不自动汇总呢,重新输入数量,库存才会汇总金额?

订单截图

 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

 

库存截图

 


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

 

 

还是加个刷新按钮吧。

[此贴子已经被作者于2017/5/25 16:44:33编辑过]

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


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

 你datacolchanged事件怎么写,贴出全部代码。

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


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

入库表:

Dim tns() As String = {"入库"}
Dim dt As DataTable = DataTables("库存")
For Each tn As String In tns
    For Each r As Row In Tables(tn).Rows
        If r.IsNull("产品名称") OrElse r.IsNull("规格型号") = False Then
            Dim fdr As DataRow = dt.Find("产品名称 = '" & r("产品名称") & "' And 规格型号 = '" & r("规格型号") & "'")
            If fdr Is Nothing Then
                Dim nr As DataRow = dt.AddNew
                nr("产品名称") = r("产品名称")
                nr("规格型号") = r("规格型号")
            End If
        End If
    Next
Next

 

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

 

库存表:

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)
    e.DataRow("入库_快递费") = DataTables("入库").Compute("Sum(快递费)", Filter)
End If

 


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


加好友 发短信
等级:超级版主 帖子:106601 积分:542176 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/26 11:00:00 [只看该作者]

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

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


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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table

有点蓝老师,示例已上传
[此贴子已经被作者于2017/5/26 14:42:12编辑过]

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