Foxtable(狐表)用户栏目专家坐堂 → 找下级部门


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

主题:找下级部门

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


加好友 发短信
等级:二尾狐 帖子:517 积分:3383 威望:0 精华:0 注册:2013/1/3 17:08:00
  发帖心情 Post By:2013/9/22 13:27:00 [只看该作者]

谢谢lsy
你的方法和狐爸4楼说的差不多,碰到上级部门变更还是解决不了

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


加好友 发短信
等级:二尾狐 帖子:517 积分:3383 威望:0 精华:0 注册:2013/1/3 17:08:00
  发帖心情 Post By:2013/9/22 13:50:00 [只看该作者]

Dim r As Row = Tables("部门").Current
Dim key As String = r("名称")
Dim ids As String
For Each dr As DataRow In DataTables("部门").DataRows
    Dim pd As String = dr("名称")    ' 这句有问题吗?
    Dim dr1 As DataRow=dr
    Do
        If pd = key Then
            If ids > "" Then
                ids= ids &  ","
            End If
            ids = ids & "'" & DR("部门") & "'"
            Exit Do
        Else
            pd = dr1("上级编码")        '这句有问题吗?
            If pd Is Nothing Then
                Exit Do
            End If
        End If
    Loop
Next
MessageBox.Show(ids)
一运行就卡死了,不知哪句不对

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/9/22 13:58:00 [只看该作者]

上级编码变更,下级编码不变,不乱套了?即使相应变更,其他事件、数据引用部门编码,也会出错。


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


加好友 发短信
等级:二尾狐 帖子:517 积分:3383 威望:0 精华:0 注册:2013/1/3 17:08:00
  发帖心情 Post By:2013/9/22 14:11:00 [只看该作者]

比如说人员的上司是会变更的(原来上司升职了,离职了),新来的上司是其他部门调过来的(原则上员工编号不变,只是岗位变了),那新上司的编号和现在的下属的编号不一定成规则了,所以通过编号规则来处理会碰到这个问题,
组织结构的部门变更也是这样,可能会划到其他大部门下面去,所以部门编码就没规则了
而通过“上级部门”、“上司”这个列来处理会比较好一点
真不行就借用目录树来中转完成,通过目录树能做到的,通过命令我想也可以的吧


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40574 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/9/22 16:13:00 [只看该作者]

以下是引用nothing在2013-9-22 14:11:00的发言:
比如说人员的上司是会变更的(原来上司升职了,离职了),新来的上司是其他部门调过来的(原则上员工编号不变,只是岗位变了),那新上司的编号和现在的下属的编号不一定成规则了,所以通过编号规则来处理会碰到这个问题,
组织结构的部门变更也是这样,可能会划到其他大部门下面去,所以部门编码就没规则了
而通过“上级部门”、“上司”这个列来处理会比较好一点
真不行就借用目录树来中转完成,通过目录树能做到的,通过命令我想也可以的吧

 

部门会变吗?为什么不以部门来命上级?


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/9/22 17:17:00 [只看该作者]

例如列出01的所有下级部门:

 

Dim f1 As String = "01"
For Each r1 As DataRow In DataTables("部门").DataRows
    Dim r2 As DataRow = r1
    Do While r2 IsNot Nothing
        If r2("上级编码") = f1 Then
            output.show(r1("名称"))
            Exit Do
        Else
            r2 = DataTables("部门").Find("编码 = '" & r2("上级编码") & "'")
        End If
    Loop
Next


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


加好友 发短信
等级:二尾狐 帖子:517 积分:3383 威望:0 精华:0 注册:2013/1/3 17:08:00
  发帖心情 Post By:2013/9/22 20:39:00 [只看该作者]

感谢狐爸,解决了
继续努力学习

 回到顶部
总数 17 上一页 1 2