Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
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.从表中读出树时,树控件公重新按字母顺序重排树,这样再存回去顺序就变了.怎么办?
1、Dim id As Integer = nd.index,是同父节点的相同等级节点中的位置,不是在所有节点中的位置,更不是行的位置。
2、既然你要直接通过树来编辑,而不是通过表,那么直接将整个树保存为一个字符串,存入表中一个单元格,或者保存为一个文件,不是更加简单合理吗?
树的问题,是这样的.
1.你的树是要事先编好的,等用了树以后再修改树节点,树没问题,但相应的表就不行了.原因在于,你的树与表中的行不是一一对应的.
比如,我事先编一组树,茶叶,然后在表里对各种茶叶设置了"规格,金额,库存量"等等信息,过几天我要插入一种新茶叶,在树里是可以插入到我想要的位置,但在表里,就牛头不对马嘴了,因为"规格,金额,库存量"等等信息跟相应茶叶的位置不对了.
就是这个问题.
2.树的逻辑关系在改进一下.比如上海\浦东,南京\江宁,江宁\南京\上海,这样三个树是可以并存的,这不合逻辑
3.常用的一种树,是每个节点要对应一行,比如:江苏\南京\江宁,这在表里至少要有三行,其中江苏和南京是汇总的行,江宁是末级行.所以树里至少要区分末级行和汇总行二种行.
不对,树在编辑后,是可以保存的,可以保存为一个文件,下次加载,也可以将整个树保存为以一个字符串,下次读取,都很简单,无需你现在这么复杂的。
帮助都提供了例子的,例如:
http://help.foxtable.com/topics/1988.htm