以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [原创]高手请帮忙  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=10252)

--  作者:aloby
--  发布时间:2011/5/27 10:04:00
--  [原创]高手请帮忙

1.这段是树的"重命名"按钮,"重命名"操作以后立即存入表,但表中数据没修改,请帮忙看一下.

 

Dim tr As WinForm.TreeView
tr = e.Form.Controls("TreeView1")
tr.Select()
tr.BeginEdit()

Dim nd As WinForm.TreeNode = tr.SelectedNode
Dim id As Integer = nd.index

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nds As List(of Winform.TreeNode) = trv.AllNodes
DataTables("商品").DataRows(id)("条码") = nds(id).fullpath

 

2.从表中读出树时,树控件公重新按字母顺序重排树,这样再存回去顺序就变了.怎么办?

[此贴子已经被作者于2011-5-27 10:07:25编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/5/27 10:19:00
--  

1、Dim id As Integer = nd.index,是同父节点的相同等级节点中的位置,不是在所有节点中的位置,更不是行的位置。

2、既然你要直接通过树来编辑,而不是通过表,那么直接将整个树保存为一个字符串,存入表中一个单元格,或者保存为一个文件,不是更加简单合理吗?

 

 


--  作者:aloby
--  发布时间:2011/5/27 10:35:00
--  

树的问题,是这样的.

1.你的树是要事先编好的,等用了树以后再修改树节点,树没问题,但相应的表就不行了.原因在于,你的树与表中的行不是一一对应的.

比如,我事先编一组树,茶叶,然后在表里对各种茶叶设置了"规格,金额,库存量"等等信息,过几天我要插入一种新茶叶,在树里是可以插入到我想要的位置,但在表里,就牛头不对马嘴了,因为"规格,金额,库存量"等等信息跟相应茶叶的位置不对了.

就是这个问题.

 

2.树的逻辑关系在改进一下.比如上海\\浦东,南京\\江宁,江宁\\南京\\上海,这样三个树是可以并存的,这不合逻辑

 

3.常用的一种树,是每个节点要对应一行,比如:江苏\\南京\\江宁,这在表里至少要有三行,其中江苏和南京是汇总的行,江宁是末级行.所以树里至少要区分末级行和汇总行二种行.

 

[此贴子已经被作者于2011-5-27 10:42:19编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/5/27 10:41:00
--  

不对,树在编辑后,是可以保存的,可以保存为一个文件,下次加载,也可以将整个树保存为以一个字符串,下次读取,都很简单,无需你现在这么复杂的。

帮助都提供了例子的,例如:

http://help.foxtable.com/topics/1988.htm