Foxtable(狐表)用户栏目专家坐堂 → 不同银行不同账号的流水账如何做?


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

主题:不同银行不同账号的流水账如何做?

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12984 威望:0 精华:0 注册:2013/6/10 9:23:00
不同银行不同账号的流水账如何做?  发帖心情 Post By:2013/10/26 11:12:00 [只看该作者]

不同银行不同账号的流水账如何做,见附件

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


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/10/26 11:13:00 [只看该作者]


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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12984 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2013/10/26 11:26:00 [只看该作者]

版主, 我用的就是高效率的流水账模板文件做的,我按照银行分类, 起始余额不对,你看看

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12984 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2013/10/26 11:27:00 [只看该作者]

是不是需要按照出入库的样板文件去做

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/10/26 11:28:00 [只看该作者]

先按照帮助的例子去做,试图去理解原理. 再进行扩展.

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12984 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2013/10/26 11:30:00 [只看该作者]

对了,就是按照出入库的例子就可以, 谢谢

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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2013/10/26 12:42:00 [只看该作者]

通用代码

'--------------------------库存计算-----------------------------
Dim zd As New Dictionary(of String,String)
zd.Add("库存","物料编号")
zd.Add("本款本采购单","物料编号,规格,颜色,采购订单编号")
zd.Add("本规格库存","物料编号,规格,颜色")
Dim dr As DataRow
Dim mr As DataRow = e.DataRow
Dim drs As List(of DataRow)
For Each key As String In zd.Keys
    Dim vs() As String = zd(key).Split(",")
    Dim cs As New List(of String)
    cs.AddRange(vs)
    If cs.Contains(e.DataCol.Name) OrElse e.DataCol.Name = "入库" OrElse e.DataCol.Name = "出库" Then   '找出上一行
        dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And " & Functions.Execute("FilterStr_Buid",zd(key),mr,Nothing,Nothing), "[_SortKey] Desc")        
        If dr Is Nothing Then   '如果没有找到上一行,说明本行就是第一行
            mr(key) = mr("入库") - mr("出库")
            dr = mr
        End If
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And " & Functions.Execute("FilterStr_Buid",zd(key),dr,Nothing,Nothing), "[_SortKey]")          '上一行以下的所有行-----------------
        For i As Integer = 1 To drs.Count - 1    '重算余下行的余额
            drs(i)(key) = drs(i-1)(key) + drs(i)("入库") - drs(i)("出库")
        Next

        If cs.Contains(e.DataCol.Name) AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And " & Functions.Execute("FilterStr_Buid",zd(key),mr,e.DataCol.Name ,e.OldValue), "[_SortKey] Desc")     '找出被修改行的上一个【修改列】的行------------------------
            If dr Is Nothing Then
                dr = e.DataTable.Find(Functions.Execute("FilterStr_Buid",zd(key),mr,e.DataCol.Name ,e.OldValue), "[_SortKey]")                                              '被修改的就是第一行------------------------
                If dr IsNot Nothing Then
                    dr(key) = dr("入库") - dr("出库")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And " & Functions.Execute("FilterStr_Buid",zd(key),dr,e.DataCol.Name ,e.OldValue), "[_SortKey]")  '重算余下所有行------------------------
                For i As Integer = 1 To drs.Count - 1
                    drs(i)(key) = drs(i-1)(key) + drs(i)("入库") - drs(i)("出库")
                Next
            End If
        End If
    End If
Next


 回到顶部