以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教ListView回写表记录的排序问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184780)

--  作者:lanbor
--  发布时间:2023/1/1 18:16:00
--  请教ListView回写表记录的排序问题
请教专家:ListView回写表记录的排序问题
我有ListView1 和ListView2 , ListView2 对应保存一到 TableB;
我首次从LV1 拖记录到LV2 并保存到 TableB 时,TableB里面的记录顺序能与 LV2显示的一致
但保存TableB之后,再从LV1 拖记录到 LV2 的任意位置,再保存到 TableB 时,
      后来拖到Lv2的记录就始终被追加保存到TableB 的最后行了,

请问:如何才能保证后期向LV2 追加拖记录时,也能按显示的顺序直接保存到TableB的相应行?
        我现在只能:“关闭应用”-->打开应用-->重新调整行序-->再保存,才能达到目的
----保存代码如下----

Dim lvw As WinForm.ListView = e.Form.Controls("ListView2")
Dim cls() As String = {"工号", "姓名", "年龄", "出生日期"} \'指定要显示的列
DataTables("TableB").StopRedraw \'暂停绘制
For Each vr As WinForm.ListViewRow In lvw.Rows
    Dim dr As DataRow = vr.tag
    dr.baseRow("_SortKey") = vr.Index
    dr.Save()
    Dim ps As DataRow = DataTables("TableB").Find("工号=\'" & dr("工号") & "\'")
    If ps Is Nothing Then
        Dim r1 As Row = Tables("TableB").addNew()
        For Each cl As String In cls
            r1(cl) = dr(cl)
        Next
        r1("_Index") = r1("_Identify") 
        r1.Save()
    End If 
Next
DataTables("TableB").ResumeRedraw \'恢复绘制
DataTables("TableB").Save() \'保存

--  作者:有点蓝
--  发布时间:2023/1/2 20:01:00
--  
使用插入行功能:http://www.foxtable.com/webhelp/topics/1981.htm