以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  递归定义出现错误  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=54745)

--  作者:blsu33
--  发布时间:2014/8/4 8:51:00
--  递归定义出现错误

图片点击可在新窗口打开查看此主题相关图片如下:错误1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:错误2.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:基础档案.rar

请老师帮忙看下 为什么有错误提示
--  作者:Bin
--  发布时间:2014/8/4 8:54:00
--  
开发者密码?
--  作者:Bin
--  发布时间:2014/8/4 8:55:00
--  
请问操作哪里重现错误?
--  作者:有点甜
--  发布时间:2014/8/4 9:04:00
--  
 密码多少,哪里出错?
--  作者:Bin
--  发布时间:2014/8/4 9:33:00
--  
Dim nd As WinForm.TreeNode = args(0)
Dim dt As DataTable = args(1)
Dim gz As String = args(2)
For Each dr As DataRow In dt.Select("","编码规则") \'按代码顺序添加
    Dim km As String = dr("编码规则")
    If km.StartsWith(nd.name) AndAlso km.Length = nd.Name.Length + val(gz(dr("编码级次"))) Then
         Dim cd As Winform.TreeNode = nd.Nodes.Add(km,km & " " & dr("编码名称"))
        Functions.Execute("AddChildren",cd,dt,gz)
    End If
Next

莫名奇妙的代码 GZ是String类型, 下面你这样用它是什么意思?

--  作者:blsu33
--  发布时间:2014/8/4 12:15:00
--  
老师,   
代码想要达到根据“分类编码规则”的对该DATATABLE的编码定义,根据这个定义,生成一个递归的目录树;
   
   Dim gz As String = args(2)   希望定义为“分类编码规则”的“规则gz”列;
   
   val(gz(dr("编码级次"))是希望增加编规则的“编码规则”的每一位(例如:编码规则 433,第一位4位数 第二位3位数 第三位3位数),字符转换为数字

--  作者:blsu33
--  发布时间:2014/8/4 12:18:00
--  
有点甜老师,
      烦您指点 密码12345。
[此贴子已经被作者于2014-8-4 17:28:27编辑过]

--  作者:有点甜
--  发布时间:2014/8/4 15:13:00
--  

 1、你表里面的编码级次一点要先计算出来,可以通过重置列;

 

 2、代码

 

Dim nd As WinForm.TreeNode = args(0)
Dim dt As DataTable = args(1)
Dim gz As String = args(2)
For Each dr As DataRow In dt.Select("","编码规则") \'按代码顺序添加
    Dim km As String = dr("编码规则")
    If km.StartsWith(nd.name) AndAlso km.Length = nd.Name.Length + val(gz(dr("编码级次")-1)) Then
         Dim cd As Winform.TreeNode = nd.Nodes.Add(km,km & " " & dr("编码名称"))
        Functions.Execute("AddChildren",cd,dt,gz)
    End If
Next