Foxtable(狐表)用户栏目专家坐堂 → 流水帐相关


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

主题:流水帐相关

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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
流水帐相关  发帖心情 Post By:2012/2/10 18:44:00 [只看该作者]

流水帐中要区分  帐户
DataColChanged事件为:

Select Case e.DataCol.Name
    Case "金额","收付"
        Dim dr As DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < " & e.DataRow("_SortKey"), "[_SortKey] Desc") '找出上一行
        If dr Is Nothing Then '如果没有找到上一行,说明本行就是第一行
            If  e.DataRow("收付") = "收" Then
                e.DataRow("帐户余额") = e.DataRow("金额")
            End If
            If  e.DataRow("收付") = "付" Then
                e.DataRow("帐户余额") = -e.DataRow("金额")
            End If
            dr = e.DataRow
        End If
        MessageBox.Show(dr("帐户"))
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & "  And  [帐户] = " & dr("帐户") & "" ,"[_SortKey]")
        For i As Integer = 1 To drs.Count - 1 '重算余下行的余额
            If drs(i)("收付") = "收" Then
                drs(i)("帐户余额") = drs(i-1)("帐户余额") + drs(i)("金额")
            End If
            If  drs(i)("收付") = "付" Then
                drs(i)("帐户余额") = drs(i-1)("帐户余额") - drs(i)("金额")
            End If
        Next
End Select

更改金额时提示如下:


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



[此贴子已经被作者于2012-2-10 18:46:27编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/2/10 18:49:00 [只看该作者]

Select Case e.DataCol.Name
    Case "金额","收付"
        Dim dr As DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < " & e.DataRow("_SortKey"), "[_SortKey] Desc") '找出上一行
        If dr Is Nothing Then '如果没有找到上一行,说明本行就是第一行
            If  e.DataRow("收付") = "收" Then
                e.DataRow("帐户余额") = e.DataRow("金额")
            End If
            If  e.DataRow("收付") = "付" Then
                e.DataRow("帐户余额") = -e.DataRow("金额")
            End If
            dr = e.DataRow
        End If
        MessageBox.Show(dr("帐户"))
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & "  And  [帐户] = '" & dr("帐户") & "'" ,"[_SortKey]")
        For i As Integer = 1 To drs.Count - 1 '重算余下行的余额
            If drs(i)("收付") = "收" Then
                drs(i)("帐户余额") = drs(i-1)("帐户余额") + drs(i)("金额")
            End If
            If  drs(i)("收付") = "付" Then
                drs(i)("帐户余额") = drs(i-1)("帐户余额") - drs(i)("金额")
            End If
        Next
End Select

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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/2/10 19:19:00 [只看该作者]

十分感谢!
可以了

Select Case e.DataCol.Name
    Case "金额","收付"
        Dim dr As DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < '" & e.DataRow("_SortKey") & "' And [帐户] = '" & e.DataRow("帐户") & "'" , "[_SortKey] Desc") '找出上一行
        If dr Is Nothing Then '如果没有找到上一行,说明本行就是第一行
            If  e.DataRow("收付") = "收" Then
                e.DataRow("帐户余额") = e.DataRow("金额")
            End If
            If  e.DataRow("收付") = "付" Then
                e.DataRow("帐户余额") = -e.DataRow("金额")
            End If
            dr = e.DataRow
        End If
        MessageBox.Show(dr("帐户"))
        drs = e.DataTable.Select("[_SortKey] >= '" & dr("_SortKey") & "'  And  [帐户] = '" & dr("帐户") & "'" ,"[_SortKey]")
        For i As Integer = 1 To drs.Count - 1 '重算余下行的余额
            If drs(i)("收付") = "收" Then
                drs(i)("帐户余额") = drs(i-1)("帐户余额") + drs(i)("金额")
            End If
            If  drs(i)("收付") = "付" Then
                drs(i)("帐户余额") = drs(i-1)("帐户余额") - drs(i)("金额")
            End If
        Next
End Select

 回到顶部