Foxtable(狐表)用户栏目专家坐堂 → 流水账问题


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

主题:流水账问题

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/10 14:46:00 [显示全部帖子]

查找那个日期的_Identify或_Sortkey最大的一条。

 

DataTables("").find("日期 = #2015-10-30#", "_Identify desc")

 

或者换个思路,统计那个日期之前的 借和贷,相减就是余额


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/10 23:50:00 [显示全部帖子]

你既然是根据日期统计,那么 _Sortkey 就应该改成 日期列。

 

相同日期的时候,如果根据 _Sortkey/_Identify排序,那就这样写     日期 desc, _Sortkey desc

 

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/11 9:17:00 [显示全部帖子]

1、自动增加行,参考 http://www.foxtable.com/help/topics/2490.htm

 

2、把_Sortkey改成你的日期列就行啊。

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/11 10:18:00 [显示全部帖子]

汗,参考代码

 

Select Case e.DataCol.Name
    Case "科目编号","借方金额","贷方金额","项目编号"
        Dim dr As DataRow
        Dim mr As DataRow = e.DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[日期] = #" & mr("日期") & "# and _Sortkey < " & mr("_Sortkey") & " And [科目编号] = '" & mr("科目编号") & "' and [项目编号] = '" & mr("项目编号") & "'", "日期 desc, _Sortkey desc")
        If dr Is Nothing Then '同日期么找到
            dr = e.DataTable.Find("[日期] < #" & mr("日期") & "# And [科目编号] = '" & mr("科目编号") & "' and [项目编号] = '" & mr("项目编号") & "'", "日期 desc, _Sortkey desc")
            If dr Is Nothing Then
                mr("余额") = mr("借方金额") - mr("贷方金额")
                dr = mr
            Else
                mr("余额") = dr("余额") + mr("借方金额") - mr("贷方金额")
            End If
        Else
            mr("余额") = dr("余额") + mr("借方金额") - mr("贷方金额")
        End If
        drs = e.DataTable.Select("[日期] >= #" & mr("日期") & "# and [科目编号] = '" & dr("科目编号") & "' and [项目编号] = '" & mr("项目编号") & "'", "日期,[_SortKey]")
        For i As Integer = 1 To drs.Count - 1
            drs(i)("余额") = drs(i-1)("余额") + drs(i)("借方金额") - drs(i)("贷方金额")
        Next
msgbox(2)
        If e.DataCol.Name = "科目编号" OrElse e.DataCol.name = "项目编号" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            Dim filter As String = ""
            If e.DataCol.name = "科目编号" Then
                filter = " [科目编号] = '" & e.oldvalue & "' and [项目编号] = '" & mr("项目编号") & "'"
            ElseIf e.DataCol.name = "项目编号"
                filter = " [科目编号] = '" & mr("科目编号") & "' and [项目编号] = '" & e.OldValue & "'"
            End If
           
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[日期] >= #" & mr("日期") & "# And " & filter, "日期,[_SortKey]")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("余额") = drs(i-1)("余额") + drs(i)("借方金额") - drs(i)("贷方金额")
                Next
            End If
        End If
End Select


 回到顶部