以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] sqlfind和find 显示结果不一样  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=113431)

--  作者:wei447221918
--  发布时间:2018/1/15 23:17:00
--  [求助] sqlfind和find 显示结果不一样
 \'期初余额为: 查找 "小于当前行" 和 "系统主卡编号"的行,并取值"余额",如果
If e.DataCol.name = "系统主卡编号" Then
    Dim dr1 As DataRow
    Dim dr2 As DataRow
    Dim mr As DataRow = e.DataRow
    dr1 = DataTables("主卡余额汇总流水").find("[_sortkey] < " & mr("_sortkey") & " And [系统主卡编号] = \'" & mr("系统主卡编号") & "\'","[_sortkey] desc")
    dr2 = DataTables("新增主卡明细").find("[系统主卡编号] = \'" & mr("系统主卡编号") & "\'")
    If dr1 Is Nothing Then
        mr("期初余额") = dr2("期初余额")
    Else
        mr("期初余额") = dr1("主卡余额")
    End If
End If

这个代码如果将"FIND"改成“SQLFind”后,就无法显示结果了。求解

--  作者:有点蓝
--  发布时间:2018/1/16 8:44:00
--  
SQLFind查询的是已经保存的数据,如果没有保存,是查不到的

If e.DataCol.name = "系统主卡编号" Then
    Dim dr1 As DataRow
    Dim dr2 As DataRow
    Dim mr As DataRow = e.DataRow
    dr1 = DataTables("主卡余额汇总流水").find("[_sortkey] < " & mr("_sortkey") & " And [系统主卡编号] = \'" & mr("系统主卡编号") & "\'","[_sortkey] desc")
    dr2 = DataTables("新增主卡明细").find("[系统主卡编号] = \'" & mr("系统主卡编号") & "\'")
    If dr1 Is Nothing Then
        If dr2 IsNot Nothing Then  mr("期初余额") = dr2("期初余额")
    Else
        mr("期初余额") = dr1("主卡余额")
    End If
End If

--  作者:wei447221918
--  发布时间:2018/1/16 12:00:00
--  
怎么确定保存了呢,我把数据都从外部数据源加载到foxtable了噢。感谢
--  作者:有点甜
--  发布时间:2018/1/16 12:03:00
--  

试试sqlFind之前,先save,如

 

DataTables("主卡余额汇总流水").Save

dr1 = DataTables("主卡余额汇总流水").find("[_sortkey] < " & mr("_sortkey") & " And [系统主卡编号] = \'" & mr("系统主卡编号") & "\'","[_sortkey] desc")


--  作者:wei447221918
--  发布时间:2018/1/16 16:10:00
--  
 感谢大大,已成功解决!