以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  在表中判断是否为末级节点  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=22135)

--  作者:chnfo
--  发布时间:2012/8/3 15:13:00
--  在表中判断是否为末级节点
因为节点关系已经用"\\"分隔符标记,这样是可以在窗口中展示成树的。

现在有两个问题
(1)如何判断这个节点就是末级节点。按我的想法是,如果这个节点的“code”在"FindFather"列中能找到,它肯定不是末级节点,否则就是末级节点,在帮助中寻觅了一番,也试了几回,不得其门而入
(2)在实际工作中,需要用到非末级节点的V值递归计算。我的想法是,直接 sum(FindFather=本节点的code,对应的V就OK了),但再想想,好象必须要用到遍历才可以。

请高手指教。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:末级节点判断.table


--  作者:飞
--  发布时间:2012/8/3 15:25:00
--  

就判断节点的子节点数量或者用level属性

if Node.Node.Count = 0 then

 

if Node.Level = ... then


--  作者:狐狸爸爸
--  发布时间:2012/8/3 15:32:00
--  

其实很简单,你在命令窗口执行:

 

For Each dr1 As DataRow In DataTables("data").DataRows
    Dim dr2 As DataRow = DataTables("data").Find("totalcpno Like \'" & dr1("totalcpno") & "\\*\'")
    If dr2 Is Nothing Then
        dr1("Istree") = True
    Else
        dr1("Istree") = False
    End If
Next


--  作者:chnfo
--  发布时间:2012/8/3 15:58:00
--  
还是帮助看得不精啊,我总是用=而不是用like。
晕死。

那第二个问题呢,父节点的V值=sum(子节点的V),一直算到顶级节点,是否也要遍历计算?

--  作者:狐狸爸爸
--  发布时间:2012/8/3 16:14:00
--  

本来想留个你做练习的:

 

For Each dr1 As DataRow In DataTables("data").DataRows
    Dim dr2 As DataRow = DataTables("data").Find("totalcpno Like \'" & dr1("totalcpno") & "\\*\'")
    If dr2 Is Nothing Then
        dr1("Istree") = True
    Else
        dr1("Istree") = False
        dr1("V") = DataTables("data").Compute("Count(sortkey)","totalcpno Like \'" & dr1("totalcpno") & "\\*\'")
    End If
Next


 

你要多看帮助,你看看上面的代码,其实没有技巧可言,全部来自帮助的哦。

[此贴子已经被作者于2012-8-3 16:17:58编辑过]

--  作者:chnfo
--  发布时间:2012/8/3 16:28:00
--  
For Each dr1 As DataRow In  e.DataTable.DataRows
    Dim dr2 As DataRow = e.DataTable.Find("FindFather = \'" & dr1("sortkey") & "\'")
    If dr2 Is Nothing Then
        dr1("Istree") = True
    Else
        dr1("Istree") = False
    End If
Next

用=与like的效率哪一个更高一些?

--  作者:狐狸爸爸
--  发布时间:2012/8/3 16:55:00
--  

好好看看:

 

http://www.foxtable.com/help/topics/0102.htm

http://www.foxtable.com/help/topics/1647.htm

 


--  作者:chnfo
--  发布时间:2012/8/5 9:51:00
--  
这个认真复习了两遍,对以后的练习应当很有帮助。

有个问题再请教,就是如果单单在一个表中来做递归计算没有问题,如果末级节点的某一列数据(例如金额)数据来源于其它的表,这样的代码好象执行中有问题。

题目中的最下级机构的物品数量和金额都可以计算,但往上递归的时候就出错了,试了几个方法都不太行。


--  作者:chnfo
--  发布时间:2012/8/5 10:02:00
--  
这个认真复习了两遍,对以后的练习应当很有帮助。

有个问题再请教,就是如果单单在一个表中来做递归计算没有问题,如果末级节点的某一列数据(例如金额)数据来源于其它的表,这样的代码好象执行中有问题。

题目中的最下级机构的物品数量和金额都可以计算,但往上递归的时候就出错了,试了几个方法都不太行。
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目198.table