Foxtable(狐表)用户栏目专家坐堂 → [求助]判断问题


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

主题:[求助]判断问题

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
[求助]判断问题  发帖心情 Post By:2016/1/27 20:19:00 [显示全部帖子]

红袍老师,
   弄了好久,还是弄不好,能否给看下。一个判断末级的例子。
[此贴子已经被作者于2016/1/28 9:59:36编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2016/1/27 20:39:00 [显示全部帖子]

好似复杂了 有点乱。麻烦您给看下,年前想弄完。


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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2016/1/27 20:40:00 [显示全部帖子]


[此贴子已经被作者于2016/1/27 22:57:06编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2016/1/27 20:43:00 [显示全部帖子]



当第二行 编码规则 0101 改为 0201 时 出现错误 第一行 不能判定为末级 ,这个怎么改啊

现在的状况是只有保存一下 才能变成末级 可是添加e.datarow.save 加不好 麻烦您给看看
[此贴子已经被作者于2016/1/27 22:57:22编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2016/1/27 21:36:00 [显示全部帖子]

哦 可以 但是再新增一行0201 有提示问题 我在看下

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2016/1/27 21:43:00 [显示全部帖子]

老师,
为什么 这就里过不去呢

  If e.DataRow("是否末级") = True Then
            For i As Integer = 0 To dr("规则长度").length - 1
                count += val(dr("规则长度").chars(i))
MessageBox.Show("count" & count)‘提示2次2
                If  e.oldvalue IsNot Nothing AndAlso count <= e.oldvalue.length Then’这里您在给看看可以过了 但是对吗 
                    Dim str As String = e.oldvalue.Substring(0,count)
MessageBox.Show("str" & str)

[此贴子已经被作者于2016/1/27 21:43:28编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2016/1/27 21:51:00 [显示全部帖子]

没用过啊 老师给演示一下啊
逐渐测试 还是有判断不正确的

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2016/1/27 21:55:00 [显示全部帖子]

直接这么写图片点击可在新窗口打开查看 

Dim e As object=args(0)

cmd99.CommandText = "Se lect * From {Z001分类编码方案} where [规则列]='"& e.DataCol.Name &"' and  [基础档案名称]='"& e.DataTable.name &"'"
Dim dt1 As DataTable= cmd99.ExecuteReader()
If dt1.DataRows.Count>0 Then
    Dim dr As DataRow=dt1.DataRows(0)
    Dim reg As new System.Text.RegularExpressions.Regex(dr("正则"))
    If reg.Ismatch(e.NewValue) = False Then
        e.Cancel = True
        Return Nothing
    Else
        Dim count As Integer = 0
        Dim prev As String = ""
        For i As Integer = 0 To dr("规则长度").length - 1
            count += val(dr("规则长度").chars(i))
            Dim str As String = e.NewValue.Substring(0, count)
            If count < e.NewValue.length Then
                If e.DataTable.find(dr("规则列") & "='" & str & "'") Is Nothing Then
                    PopMessage("缺少上级编码:" & str,"错误", PopIconEnum.Error, 5)
                    e.Cancel = True
                    Return Nothing
                    Exit For
                Else If e.OldValue = str Then
                    PopMessage("缺少上级编码:" & str,"错误", PopIconEnum.Error, 5)
                    e.Cancel = True
                    Return Nothing
                    Exit For
                End If
            Else If count = e.NewValue.length  Then
                If i = dr("规则长度").length - 1 Then
                    e.DataRow("是否末级") = True
                    e.DataTable.ReplaceFor("是否末级", False, dr("规则列") & "=" & prev)
                Else
                    Dim filter As String = dr("规则列") & "<> '" & str & "' And " & dr("规则列") & " Like '" & str & "*'"
                    If  e.DataTable.find(filter) Is Nothing Then
                        e.DataRow("是否末级") = True
                        filter = dr("规则列") & "= '" & prev & "'"
                        e.DataTable.ReplaceFor("是否末级", False, filter)
                    Else
                        e.DataRow("是否末级") = False
                    End If
                    Exit For
                End If
            End If
            prev = str
        Next
        count = 0
        systemready = False

 

'红色那段代码

 

systemready = true

    End If
End If

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2016/1/27 21:59:00 [显示全部帖子]

直接用您的代码 是这个提示

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20160127215844.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2016/1/27 22:00:00 [显示全部帖子]

这个提示是在 添加新的代码 0201 时提示的

 回到顶部
总数 18 1 2 下一页