Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:流水帐相关

1楼
jinruan 发表于: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编辑过]
2楼
czy 发表于: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
3楼
jinruan 发表于: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
共3 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03308 s, 2 queries.