Foxtable(狐表)用户栏目专家坐堂 → [求助]请教编号代码中的一个问题!!!!


  共有9766人关注过本帖树形打印复制链接

主题:[求助]请教编号代码中的一个问题!!!!

帅哥哟,离线,有人找我吗?
gaoyong30000
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
[求助]请教编号代码中的一个问题!!!!  发帖心情 Post By:2013/1/3 16:10:00 [显示全部帖子]

下面这段代码功能是在当前节点,添加下级节点!
Dim trv As WinForm.TreeView = Forms("ERP界面").Controls("综合部物品分类设置TreeView1")
If trv.SelectedNode.Text <> "全部" Then
    Dim t As Integer = trv.SelectedNode.Text.LastIndexOf(" ")
    Dim s As String = trv.SelectedNode.Text.SubString(0,t)
    Dim i As Integer = s.Length - 2
    
    Dim s2,s3,s4 As String
    Dim dr,dr1,dr2 As DataRow
    Dim n,n1 As Integer
    Dim dt As DataTable = Tables("综合部物品分类设置_综合部物品分类设置Table1").DataTable
    
    dr = dt.AddNew
    s2 =  "SubString(分类编号, 1, " & t & ") = '" & s & "' And len(分类编号) = " & t+2
    dr1 =  dt.Find(s2)
    If dt.DataRows.count =1  OrElse  dr1 Is Nothing Then 'dt.DataRows.count =1 是因为有dr = dt.AddNew,增加了一行
        dr("分类编号") = s & "01"
    Else
        For Each dr2 In dt.Select(s2)
            n = right(dr2("分类编号"),2)
            n1= iif(n1<n,n,n1)
        Next
        
        For n  = 1 To n1
            If dt.Find("分类编号 = '" & s & Functions.Execute("数值转换2",n) & "'") Is Nothing Then
                dr("分类编号") = s & Functions.Execute("数值转换2",n)
                Exit For

            Else
                dr("分类编号") = s & Functions.Execute("数值转换2",n+1)
            End If
        Next
    End If
End If
With Tables("综合部物品分类设置_综合部物品分类设置Table1")
    .Position = .Rows.Count - 1
End With


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

按道理1004的下级节点中  100402 没有此编号    因此会执行代码中的红色部分  也就是 n=2, dr("分类编号") = s & Functions.Execute("数值转换2",n)  dr("分类编号") = “100402”,结果却是执行的else下的代码  变成了 100411.....   调试了半天不知道为什么~~~~
[此贴子已经被作者于2013-1-3 16:11:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2013/1/4 9:11:00 [显示全部帖子]

 测试正常啊 这种表达不妥???

 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2013/1/7 16:05:00 [显示全部帖子]

用msgbox测试值

图片点击可在新窗口打开查看此主题相关图片如下:未命名2.jpg
图片点击可在新窗口打开查看
显示为100402
那就应该执行上面红色段的代码  ,但是结果还是添加的1004011


另外我在命令窗口里测试的
 output.show(Tables("综合部物品分类设置_综合部物品分类设置Table1").DataTable.Find("分类编号 = '1008'") Is Nothing)

结果
为true    

很奇怪  为true了 但是没执行代码

 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2013/1/7 17:04:00 [显示全部帖子]

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


点击左边的目录树 1004  然后点击  下级按钮(别点同级,同级里代码是错误的)  就发现100402 编号空缺,但是还是增加了100411这个号码

麻烦您了~~~

 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2013/1/8 16:09:00 [显示全部帖子]

 这代码可以了 

老大 您这代码 我理解了!


但是我那代码 是什么情况?  为什么会有问题?  我分析不出来~~~

 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2013/1/8 21:18:00 [显示全部帖子]

 老大 老大  我红色部分 是什么情况?

 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2013/1/9 12:38:00 [显示全部帖子]

 顶下

 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2013/1/9 22:21:00 [显示全部帖子]

 但是我用exit for了啊 只要找到这个值 就会退出循环了~~  怎么会?

 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2013/1/13 16:12:00 [显示全部帖子]

 原来如此  多谢您了~~~~~~~~~~

 回到顶部