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


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

主题:统计

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


加好友 发短信
等级:一尾狐 帖子:407 积分:3087 威望:0 精华:0 注册:2014/6/10 11:31:00
统计  发帖心情 Post By:2016/2/15 13:30:00 [只看该作者]


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

表A中张三有两个数据

表A代码

If e.DataCol.Name = "金额" Then
    Dim pr As DataRow
    pr = DataTables("表E").Find("姓名 = '" & e.DataRow("姓名") & "'")
    If pr IsNot Nothing Then
        pr("表A金额")= pr("表A金额") + e.NewValue - e.OldValue
    End If
End If

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

表E中应该是表A中张三两个数据之和
表E代码

If e.DataCol.Name = "姓名" Then
    e.DataRow("表A金额") = DataTables("表A").Compute("Sum(金额)","[姓名] = '" & e.NewValue & "'")

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/15 14:11:00 [只看该作者]

If e.DataCol.Name = "金额" Then
    Dim pr As DataRow
    pr = DataTables("表E").Find("姓名 = '" & e.DataRow("姓名") & "'")
    If pr IsNot Nothing Then
        pr("表A金额")= DataTables("表A").Compute("Sum(金额)","[姓名] = '" & e.DataRow("姓名") & "'")
    End If
End If

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


加好友 发短信
等级:一尾狐 帖子:407 积分:3087 威望:0 精华:0 注册:2014/6/10 11:31:00
回复:(大红袍)If e.DataCol.Name = "金额" Then&nb...  发帖心情 Post By:2016/2/15 15:13:00 [只看该作者]

1.录入表A B C D 数据时自动生成的表E.  在ABCD四个表中增加或减少数据,表E能否自动跟着增加或减少?

2.点击查询按钮表ABCD 跟着变化,表E是否也能在筛选条件下自动跟着变化?

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


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/15 15:22:00 [只看该作者]

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


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


加好友 发短信
等级:一尾狐 帖子:407 积分:3087 威望:0 精华:0 注册:2014/6/10 11:31:00
回复:(大红袍)[upload=table,管理项目1 (1).table]...  发帖心情 Post By:2016/2/15 17:02:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:实验2 (1).table

1.点击查询按钮,如果表E中某一列某一行没有数据,能否自动填充为 0 ?

2.按日期查询时,某人在表A中有数据 在BCD中都没有数据,表E中竟然出现了BCD表中的数据?

 


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


 


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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/15 17:15:00 [只看该作者]

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:实验2 (1).table


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


加好友 发短信
等级:一尾狐 帖子:407 积分:3087 威望:0 精华:0 注册:2014/6/10 11:31:00
回复:(大红袍) [upload=table,实验2 (1).tabl...  发帖心情 Post By:2016/2/15 17:35:00 [只看该作者]

谢谢

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


加好友 发短信
等级:一尾狐 帖子:407 积分:3087 威望:0 精华:0 注册:2014/6/10 11:31:00
回复:(大红袍) [upload=table,实验2 (1).tabl...  发帖心情 Post By:2016/2/16 10:42:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:实验3.table

我把表ABCD 中姓名列都区分开,金额列都改成表达式列,在表E中不运算了

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/16 10:58:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:实验3.table


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


加好友 发短信
等级:一尾狐 帖子:407 积分:3087 威望:0 精华:0 注册:2014/6/10 11:31:00
回复:(大红袍)[upload=table,实验3.table]viewFile...  发帖心情 Post By:2016/2/16 12:38:00 [只看该作者]

Dim Filter As String = "1=1"
With e.Form.Controls("开始时间")
    If .Value IsNot Nothing Then
        Filter = Filter & " and 日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("姓名")
    If .Value IsNot Nothing Then
        Filter = Filter & " and 姓名 = '" & .Value & "'"
    End If
End With
With e.Form.Controls("结束时间")
    If .Value IsNot Nothing Then
        Filter = Filter & " and 日期 <= #" & .Value & "#"
    End If
End With
If Filter > "" Then
    Tables("应收查询").Filter = Filter.replace("姓名", "托运单位")
    Tables("扣款录入").Filter = Filter.replace("姓名", "欠款人")
    Tables("已收款录入").Filter = Filter.replace("姓名", "交款单位")
    Tables("应付查询").Filter = Filter.replace("姓名", "承运单位")
End If

Dim dt As DataTable = DataTables("综合查询")
dt.DataRows.Clear
Dim tbs() As String = {"应收查询", "扣款录入", "已收款录入", "应付查询"}
For i As Integer = 1 To tbs.length
    Dim tb = tbs(i-1)
    For Each xm As String In DataTables(tb).GetValues("姓名" & i, Tables(tb).Filter & " and 姓名" & i & " is not null")
        Dim fdr As DataRow = dt.Find("姓名 = '" & xm & "'")
        If fdr Is Nothing Then
            fdr = dt.AddNew
            fdr("姓名") = xm
        End If
        fdr(tb & "金额") = DataTables(tb).Compute("sum(金额" & i & ")", "姓名" & i & " = '" & xm & "' and " & Tables(tb).Filter)
        If fdr.Isnull(tb & "金额") Then fdr(tb & "金额") = 0
    Next
Next

 

 


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

应收查询 和 应付查询 都是查询表,不影响吧?原始代码如下:

Dim Filter As String = "1=1"
With e.Form.Controls("开始时间")
    If .Value IsNot Nothing Then
        Filter = Filter & " and 日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("姓名")
    If .Value IsNot Nothing Then
        Filter = Filter & " and 姓名 = '" & .Value & "'"
    End If
End With
With e.Form.Controls("结束时间")
    If .Value IsNot Nothing Then
        Filter = Filter & " and 日期 <= #" & .Value & "#"
    End If
End With
If Filter > "" Then
    Tables("表A").Filter = Filter.replace("姓名", "姓名1")
    Tables("表B").Filter = Filter.replace("姓名", "姓名2")
    Tables("表C").Filter = Filter.replace("姓名", "姓名3")
    Tables("表D").Filter = Filter.replace("姓名", "姓名4")
End If

Dim dt As DataTable = DataTables("表E")
dt.DataRows.Clear
Dim tbs() As String = {"表A", "表B", "表C", "表D"}
For i As Integer = 1 To tbs.length
    Dim tb = tbs(i-1)
    For Each xm As String In DataTables(tb).GetValues("姓名" & i, Tables(tb).Filter & " and 姓名" & i & " is not null")
        Dim fdr As DataRow = dt.Find("姓名 = '" & xm & "'")
        If fdr Is Nothing Then
            fdr = dt.AddNew
            fdr("姓名") = xm
        End If
        fdr(tb & "金额") = DataTables(tb).Compute("sum(金额" & i & ")", "姓名" & i & " = '" & xm & "' and " & Tables(tb).Filter)
        If fdr.Isnull(tb & "金额") Then fdr(tb & "金额") = 0
    Next
Next


 

[此贴子已经被作者于2016/2/16 12:38:59编辑过]

 回到顶部
总数 34 1 2 3 4 下一页