Foxtable(狐表)用户栏目专家坐堂 → 查找指定条件的后台数据所在位置


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

主题:查找指定条件的后台数据所在位置

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
查找指定条件的后台数据所在位置  发帖心情 Post By:2021/8/10 15:03:00 [显示全部帖子]

 查找指定条件的后台数据所在位置,如果r存在,删除借方的行,再在贷方行前插入一行,否则在贷方行前插入一行。
Dim r As DataRow = DataTables("财务数据源").SQLFind("[字号] = '" & (e.Form.Controls("TextBox2").text).SubString(0,2) & "' And [凭证号] = '" & e.Form.Controls("dh").text & "' And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").text & "' And [借或贷] = '借'")
        If r IsNot Nothing Then
            DataTables("财务数据源").SQLDeleteFor("[字号] = '" & (e.Form.Controls("TextBox2").text).SubString(0,2) & "' And [凭证号] = '" & e.Form.Controls("dh").text & "' And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").Value & "' And [借或贷] = '借'")
            Dim r1 As DataRow = DataTables("财务数据源").SQLFind("[字号] = '" & (e.Form.Controls("TextBox2").text).SubString(0,2) & "' And [凭证号] = '" & e.Form.Controls("dh").text & "' And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").text & "' And [借或贷] = '贷'")
            If r1 IsNot Nothing Then
                Dim wz As Integer = Tables("财务数据源").FindRow(r1)
                If wz = 0 Then
                    Tables("财务数据源").Position = wz + 1
                End If
            End If
           r =Tables("财务数据源").InsertNew (注这样写报错,改为:Tables("财务数据源").InsertNew不报错,但我要的是借方行插入一行)
        Else
           r = Tables("财务数据源").AddNew (注这样写报错,改为:Tables("财务数据源").InsertNew不报错,但我要的是借方行插入一行)
        End If
这样写不无法定位后台数据。


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/8/10 19:35:00 [显示全部帖子]

r1可能有多行,这r("_sortkey") = r1("_sortkey") - 0.0001岂不是多值?要求只在r1第一行插入一行。
[此贴子已经被作者于2021/8/10 20:08:33编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/8/10 20:07:00 [显示全部帖子]

这样写吗?
        Dim r As DataRow = DataTables("财务数据源").SQLFind("[字号] = '" & (e.Form.Controls("TextBox2").text).SubString(0,2) & "' And [凭证号] = '" & e.Form.Controls("dh").text & "' And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").text & "' And [借或贷] = '借'")
        If r IsNot Nothing Then
            DataTables("财务数据源").SQLDeleteFor("[字号] = '" & (e.Form.Controls("TextBox2").text).SubString(0,2) & "' And [凭证号] = '" & e.Form.Controls("dh").text & "' And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").Value & "' And [借或贷] = '借'")
            Dim r1s As List(Of DataRow) = DataTables("财务数据源").SQLSelect("[字号] = '" & (e.Form.Controls("TextBox2").text).SubString(0,2) & "' And [凭证号] = '" & e.Form.Controls("dh").text & "' And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").text & "' And [借或贷] = '贷'")
            If r1s IsNot Nothing Then
                r = DataTables("财务数据源").AddNew
                r("_sortkey") = r1s(0)("_sortkey") - 0.0001
            End If
        Else
            r = DataTables("财务数据源").AddNew
        End If

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/8/10 20:30:00 [显示全部帖子]

或者写成这样:
        Dim r As DataRow = DataTables("财务数据源").SQLFind("[字号] = '" & (e.Form.Controls("TextBox2").text).SubString(0,2) & "' And [凭证号] = '" & e.Form.Controls("dh").text & "' And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").text & "' And [借或贷] = '借'")
        If r IsNot Nothing Then
            DataTables("财务数据源").SQLDeleteFor("[字号] = '" & (e.Form.Controls("TextBox2").text).SubString(0,2) & "' And [凭证号] = '" & e.Form.Controls("dh").text & "' And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").Value & "' And [借或贷] = '借'")
            Dim r1s As List(Of DataRow) = DataTables("财务数据源").SQLSelect("[字号] = '" & (e.Form.Controls("TextBox2").text).SubString(0,2) & "' And [凭证号] = '" & e.Form.Controls("dh").text & "' And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").text & "' And [借或贷] = '贷'",1)
            If r1s IsNot Nothing Then
                r = DataTables("财务数据源").AddNew
                r("_sortkey") = r1s(0)("_sortkey") - 0.0001
            End If
        Else
            r = DataTables("财务数据源").AddNew
        End If

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/8/10 21:39:00 [显示全部帖子]

            Dim r1s As List(Of DataRow) = DataTables("财务数据源").SQLSelect("[字号] = '" & (e.Form.Controls("TextBox2").text).SubString(0,2) & "' And [凭证号] = '" & e.Form.Controls("dh").text & "' And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").text & "' And [借或贷] = '贷'",0)
第一行应该是0吧?

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/8/10 22:20:00 [显示全部帖子]

哦,明白了,谢谢。

 回到顶部