以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助:SQLFIND条件代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48588) |
||||
-- 作者:shixia -- 发布时间:2014/4/1 14:02:00 -- 求助:SQLFIND条件代码 在内部函数中有如下代码: Dim r As DataRow = args(0) Dim flag As Boolean = args(1) Dim dr As DataRow Dim drs As List(of DataRow) dr = r.DataTable.Find("日期 < #" & r("日期") & "# or (日期 = #" & r("日期") & "# And _sortkey < " & r("_sortkey") & " )", "日期 Desc, [_SortKey] Desc") \'找出上一行 If dr Is Nothing Then \'如果没有找到上一行,说明本行就是第一行 r("余额") = r("流入金额") - r("流出金额") If flag Then drs = r.DataTable.Select("日期 >= #" & r("日期") & "#", "日期, [_SortKey]") For i As Integer = 1 To drs.Count - 1 \'重算余下行的余额 drs(i)("余额") = drs(i-1)("余额") + drs(i)("流入金额") - drs(i)("流出金额") Next End If Else If dr.IsNull("余额") Then Functions.Execute("compute", dr, False) Else drs = r.DataTable.Select("日期 >= #" & dr("日期") & "#", "日期, [_SortKey]") For i As Integer = 1 To drs.Count - 1 \'重算余下行的余额 drs(i)("余额") = drs(i-1)("余额") + drs(i)("流入金额") - drs(i)("流出金额") Next End If 用于计算现金流水账 中现金余额,执行正常。 近期对现金流水账实行动态加载,比如只加载本日数据,再添加数据时,调用以上内部数据执行后余额为本行发生数,没有加载到表中最后一行余额无法参与计算。 我把dr = r.DataTable.Find("日期 < #" & r("日期") & "# or (日期 = #" & r("日期") & "# And _sortkey < " & r("_sortkey") & " )", "日期 Desc, [_SortKey] Desc") \'找出上一行 这行代码 中Find 改为SQLFind ,执行后报错:提示该代码中 条件语句出错 |
||||
-- 作者:Bin -- 发布时间:2014/4/1 14:05:00 -- 你用的是什么数据源? SQL的话 日期用的是单引号不是 #号哦. |
||||
-- 作者:shixia -- 发布时间:2014/4/1 14:13:00 -- Access 数据源 |
||||
-- 作者:Bin -- 发布时间:2014/4/1 14:22:00 -- 上例子看看,目测没发现问题. |
||||
-- 作者:shixia -- 发布时间:2014/4/1 15:12:00 --
想实现的功能:如果只加载今年的数据,余额可以连前累计 |
||||
-- 作者:有点甜 -- 发布时间:2014/4/1 15:23:00 -- 用sqlfind的时候,如果是内部数据源或access数据库,需要加[]
dr = r.DataTable.sqlFind("日期 < #" & r("日期") & "# or (日期 = #" & r("日期") & "# And [_sortkey] < " & r("_sortkey") & " )", "日期 Desc, [_SortKey] Desc") \'找出上一行 |
||||
-- 作者:Bin -- 发布时间:2014/4/1 15:40:00 -- 这里有现成例子,找了半天才找到. http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=42410 |
||||
-- 作者:shixia -- 发布时间:2014/4/1 17:28:00 -- 谢谢 |