以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  想能像FT的窗体管理那样上下调整节点顺序  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=84214)

--  作者:李睿涵
--  发布时间:2016/4/26 8:50:00
--  想能像FT的窗体管理那样上下调整节点顺序
做了个年级、班级的树,想能够像FT的窗体管理那样自由调整节点顺序
把控件打好了,希望能帮助实现一下


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160426084758.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:树.table



--  作者:大红袍
--  发布时间:2016/4/26 9:37:00
--  

年级上移

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode = tr.SelectedNode
If nd.Index = 0 Then
    msgbox("无法再上移")
Else
    Dim pnd As WinForm.TreeNode = tr.Nodes(nd.Index-1)
    Dim s1 As Double = DataTables("表a").find("年级 = \'" & pnd.text & "\'")("_Sortkey")
    Dim s2 As Double = DataTables("表a").find("年级 = \'" & nd.text & "\'")("_Sortkey")
    DataTables("表a").replacefor("_Sortkey", s2, "年级 = \'" & pnd.text & "\'")
    DataTables("表a").replacefor("_Sortkey", s1, "年级 = \'" & nd.text & "\'")
    nd.MoveUp
End If

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:树.table


--  作者:李睿涵
--  发布时间:2016/4/26 10:31:00
--  

谢谢

年级的上移好用,班级的上移不行,窗体关闭后重开,会恢复之前的排序


--  作者:大红袍
--  发布时间:2016/4/26 10:32:00
--  
两种,测试都没问题。
--  作者:李睿涵
--  发布时间:2016/4/26 11:26:00
--  

加了弹窗,发现S1  S2  2个值相同

我数据删了重新添加 就可以了

 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160426084758.png
图片点击可在新窗口打开查看


--  作者:大红袍
--  发布时间:2016/4/26 11:29:00
--  
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode = tr.SelectedNode
If nd.Index = 0 Then
    msgbox("无法再上移")
Else
    Dim pnd As WinForm.TreeNode = nd.ParentNode.nodes(nd.Index-1)
    Dim s1 As Double = DataTables("表a").find("年级 = \'" & pnd.ParentNode.text & "\' and 班级 = \'" & pnd.Text & "\'")("_Sortkey")
    Dim s2 As Double = DataTables("表a").find("年级 = \'" & nd.ParentNode.text & "\' and 班级 = \'" & nd.text & "\'")("_Sortkey")
    If s1 = s2 Then
        s1 -= 0.1
        s2 += 0.1
    End If

    DataTables("表a").replacefor("_Sortkey", s2, "年级 = \'" & pnd.ParentNode.text & "\' and 班级 = \'" & pnd.Text & "\'")
    DataTables("表a").replacefor("_Sortkey", s1, "年级 = \'" & nd.ParentNode.text & "\' and 班级 = \'" & nd.Text & "\'")
   
    nd.MoveUp
End If

--  作者:李睿涵
--  发布时间:2016/4/26 11:38:00
--  
这个代码补充得好,谢谢!
--  作者:李睿涵
--  发布时间:2016/4/26 12:12:00
--  

领导,还有个问题

就是节点会重复出现,该怎么规避?

 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160426084758.png
图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2016/4/26 12:16:00
--  

你表A的数据,相同年级的数据,必须放在一起,不能分开的。


--  作者:大红袍
--  发布时间:2016/4/26 12:17:00
--  

不然,参考这两个例子

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=79823&skin=0