Foxtable(狐表)用户栏目专家坐堂 → [求助]自定义排序问题


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

主题:[求助]自定义排序问题

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/21 10:20:00 [显示全部帖子]

用静态变量标记一下:

 

Select e.DataCol.Name
    Case "流程顺序"
        Static bj As Boolean
        If bj = True Then
            Return
        Else
            bj = True
        End If
        Dim n As Integer = e.NewValue
        Dim o As Integer = e.OldValue
        Dim s As String = e.DataRow("_sortkey")
        If n < o Then
            Dim drs As List (Of DataRow) = e.DataTable.Select("办单号 = '" & e.DataRow("办单号") & "' and 流程顺序 >= " & e.NewValue & " and 流程顺序 < " & e.OldValue & " and _sortkey <> '" & s & "'"  )
            For Each dr As DataRow In drs
                dr("流程顺序") = dr("流程顺序")+1
                'msgbox("小于旧值")
            Next
        End If
        If n > o Then
            Dim drs As List (Of DataRow) = e.DataTable.Select("办单号 = '" & e.DataRow("办单号") & "' and 流程顺序 <= " & e.NewValue & " and  流程顺序 > " & e.OldValue & " and _sortkey <> '" & s & "'")
            For Each dr As DataRow In drs
                dr("流程顺序") = dr("流程顺序")-1
                'msgbox("大于旧值")
            Next
        End If
        Tables("工序工艺流程表").Sort = "流程顺序"
        DataTables("工序工艺流程表").Save
        bj = False
End Select


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/21 18:14:00 [显示全部帖子]

呵呵,我的解释就是帮助中的内容。

道理很简单,就是在DataColchanged事件中流程顺序后,不得执行DatacolChanged事件中的关键代码,避免死循环。


 回到顶部