Foxtable(狐表)用户栏目专家坐堂 → 关于财务帐的余额问题


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

主题:关于财务帐的余额问题

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


加好友 发短信
等级:童狐 帖子:291 积分:4470 威望:0 精华:0 注册:2012/6/24 9:08:00
关于财务帐的余额问题  发帖心情 Post By:2012/9/10 9:32:00 [显示全部帖子]

我做了一个财务小系统,其中有一个表为“记帐凭证明细表”用于存储所有记帐凭证的详细内容,表内有18000余行记录。另一个为“明细帐表”用于从“记帐凭证表”中提取某往来单位的相关往记录,表中有一“余额”列,用于计算往来帐的及时余额,某一单位往来有5500余行,计算时间用了大约6-7分钟。太慢了!

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


加好友 发短信
等级:童狐 帖子:291 积分:4470 威望:0 精华:0 注册:2012/6/24 9:08:00
  发帖心情 Post By:2012/9/10 9:42:00 [显示全部帖子]

DataColChanged事件设为:

If e.DataCol.Name = "日期" Then
      For Each dr As DataRow In e.DataTable.Select("[_SortKey] >= " & e.DataRow("_SortKey"))
            Dim Val1 As Double = e.DataTable.Compute("Sum(借方金额)","[_SortKey] <= " & dr("_SortKey"))
            Dim Val2 As Double = e.DataTable.Compute("Sum(贷方金额)","[_SortKey] <= " & dr("_SortKey"))
            dr("余额") = Val1 - Val2
        Next

End If

按钮的代码为:

If MainTable.Name = "金额明细帐" Then
    Dim f As New Filler
    DataTables("金额明细帐").DataRows.Clear() '清除原有数据
    f.SourceTable = DataTables("凭证库")
    f.SourceCols = "日期,凭证号,摘要,借方数量,借方金额,贷方数量,贷方金额"
    f.DataTable = DataTables("金额明细帐")
    f.DataCols = "日期,凭证号,摘要,借方数量,借方金额,贷方数量,贷方金额"
    f.Filter = ("[子目] = '"& vars("dwmc") & "'")
    f.Fill()
End If
If MainTable.Name = "金额明细帐" Then
    DataTables("金额明细帐").DataCols("借方数量").RaiseDataColChanged()
End If
With DataTables("金额明细帐")
    .DataCols("日期").RaiseDataColChanged(.DataRows(0))
End With


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


加好友 发短信
等级:童狐 帖子:291 积分:4470 威望:0 精华:0 注册:2012/6/24 9:08:00
  发帖心情 Post By:2012/9/10 9:50:00 [显示全部帖子]

代码中的“dwmc“为一个变量,记录往来单位名称,请高手邦忙。


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


加好友 发短信
等级:童狐 帖子:291 积分:4470 威望:0 精华:0 注册:2012/6/24 9:08:00
  发帖心情 Post By:2012/9/10 10:05:00 [显示全部帖子]

把下面的代码删后,还需2分多钟

If MainTable.Name = "金额明细帐" Then
    DataTables("金额明细帐").DataCols("借方数量").RaiseDataColChanged()
End If


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


加好友 发短信
等级:童狐 帖子:291 积分:4470 威望:0 精华:0 注册:2012/6/24 9:08:00
  发帖心情 Post By:2012/9/10 10:08:00 [显示全部帖子]

DataColChanged在金额明细帐中

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


加好友 发短信
等级:童狐 帖子:291 积分:4470 威望:0 精华:0 注册:2012/6/24 9:08:00
  发帖心情 Post By:2012/9/10 15:20:00 [显示全部帖子]

关闭事件代码后计算时间还需1分52秒,还是有点慢,如果填充数据再大点话,肯定还要再慢很多。

 回到顶部