Foxtable(狐表)用户栏目专家坐堂 → [求助]关于自动求和的问题(新问题,狐爸请进)


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

主题:[求助]关于自动求和的问题(新问题,狐爸请进)

帅哥哟,离线,有人找我吗?
狐狸爸爸
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/2/26 19:21:00 [只看该作者]

再来:

 

 

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


 回到顶部
美女呀,离线,留言给我吧!
小小鸟
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:112 积分:1116 威望:0 精华:0 注册:2011/5/14 14:47:00
  发帖心情 Post By:2013/2/27 11:30:00 [只看该作者]

好,我再试试看~

 回到顶部
美女呀,离线,留言给我吧!
小小鸟
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:112 积分:1116 威望:0 精华:0 注册:2011/5/14 14:47:00
  发帖心情 Post By:2013/3/11 18:38:00 [只看该作者]

狐爸,按照您的代码,我套用到我的项目里面,现在我遇到一个新的问题,就是插入行显示的余额却是所有有数据行最终的余额,我是按照您的代码依葫芦画瓢套用的,现在我上传输出的代码,麻烦您帮忙看看哪里出问题了?

 

好像上传不了Word文档,我转换成纯文本文档上传:

 

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

 

补充:好像我试了您做的例子,插入行的余额也是显示最终的余额,如图新增的第四行中的信用社的余额应该为2903.18,可是显示的却是903.18:


 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130226161230.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-3-11 18:46:12编辑过]

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


加好友 发短信
等级:狐精 帖子:3355 积分:24732 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2013/3/11 21:11:00 [只看该作者]

废话不说 看例子  例子中用到的代码基本上都是帮助里的 略微有点变动

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

[此贴子已经被作者于2013-3-11 21:11:26编辑过]

 回到顶部
美女呀,离线,留言给我吧!
小小鸟
  25楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:112 积分:1116 威望:0 精华:0 注册:2011/5/14 14:47:00
  发帖心情 Post By:2013/3/13 11:24:00 [只看该作者]

楼上的,您可能不太理解我说的意思,现在是增加行显示的余额有问题。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/13 11:44:00 [只看该作者]

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


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/3/13 12:26:00 [只看该作者]

DataColChanged这样可能高效些:


Dim lm3 As String
Dim n1 As Integer
Dim sum As Double
Dim drs1 As New List(of DataRow)
drs1 = e.DataTable.Select("日期 > #1/1/1900# And [_Identify] >= " & e.DataRow("_Identify"))
Select Case e.DataCol.name
    Case "工行G02"
        lm3 = "G02余额"
        n1=0
        sum =  e.DataTable.Compute("Sum(" & e.DataCol.name & ")", "[_Identify] <=  " &  e.DataRow("_Identify"))
        For Each dr As DataRow In drs1
            If n1 = 0 Then
                dr(lm3) = sum
            Else
                dr(lm3) = drs1(n1-1)(lm3)+ dr(e.DataCol.name)
            End If
            n1+=1
        Next
    Case "农行N01"
        lm3 = "N01余额"
        n1=0
        sum =  e.DataTable.Compute("Sum(" & e.DataCol.name & ")", "[_Identify] <=  " &  e.DataRow("_Identify"))
        For Each dr As DataRow In drs1
            If n1 = 0 Then
                dr(lm3) = sum
            Else
                dr(lm3) = drs1(n1-1)(lm3)+ dr(e.DataCol.name)
            End If
            n1+=1
        Next
    Case "建行J01"
        lm3 ="J01余额"
        n1=0
        sum =  e.DataTable.Compute("Sum(" & e.DataCol.name & ")", "[_Identify] <=  " &  e.DataRow("_Identify"))
        For Each dr As DataRow In drs1
            If n1 = 0 Then
                dr(lm3) = sum
            Else
                dr(lm3) = drs1(n1-1)(lm3)+ dr(e.DataCol.name)
            End If
            n1+=1
        Next
        
    Case "信用社X01"
        lm3 = "X01余额"
        n1=0
        sum =  e.DataTable.Compute("Sum(" & e.DataCol.name & ")", "[_Identify] <=  " &  e.DataRow("_Identify"))
        For Each dr As DataRow In drs1
            If n1 = 0 Then
                dr(lm3) = sum
            Else
                dr(lm3) = drs1(n1-1)(lm3)+ dr(e.DataCol.name)
            End If
            n1+=1
        Next
End Select

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/13 12:42:00 [只看该作者]

是的,don这样高效很多

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/3/13 12:50:00 [只看该作者]

简化些:
Dim lm2,lm3 As String
Dim n1 As Integer
Dim sum As Double
Dim drs1 As New List(of DataRow)

Dim Lbs1 As String() ={"工行G02","农行N01","建行J01","信用社X01"}
Dim Lbs2 As String() ={"G02余额","N01余额","J01余额","X01余额"}
Dim Ls3 As new List(of String)
Ls3.AddRange(Lbs1)

If  Ls3.Contains(e.DataCol.name)  Then
    For Each lm2 In Ls3
        If lm2 = e.DataCol.name Then
            Exit For
        End If
        n1+=1
    Next
    drs1 = e.DataTable.Select("日期 > #1/1/1900# And [_Identify] >= " & e.DataRow("_Identify"))
    sum =  e.DataTable.Compute("Sum(" & e.DataCol.name & ")", "[_Identify] <=  " &  e.DataRow("_Identify"))
    lm3 = Lbs2(n1)
    n1=0
    For Each dr As DataRow In drs1
        If n1 = 0 Then
            dr(lm3) = sum
        Else
            dr(lm3) = drs1(n1-1)(lm3)+ dr(e.DataCol.name)
        End If
        n1+=1
    Next    
End If

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/3/13 13:09:00 [只看该作者]

不应鼓励这样的连录入代结果的表格方式(包括所谓“流水帐”),还是按照用简单表格顺序录入,再通过查询得到相应的结果比较好。

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