Foxtable(狐表)用户栏目专家坐堂 → 递归函数与权限问题


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

主题:递归函数与权限问题

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/8/4 13:44:00 [显示全部帖子]

岗位编号看不出他们之间的上下级关系· 所以单从这个表是无法实现的。。。

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/8/4 17:12:00 [显示全部帖子]

打开你的项目后发现可以解决:

 

1、XR人事表· 筛选代码前 ·   用下面代码取得所有下级的‘岗位编号’后就可以筛选出所有下级了:

Dim s As String
drs = DataTables("XR人事岗位配置表").Select("[领导] = '" & CurrentTable.current("岗位编号") & "'")

 

2、XR人事岗位配置表·中你那个“领导”列设计的不好,不能自动得到! 你可以参考一般会计软件中的会计科目的代码方式。这样就可以不用“领导”列了,只要“岗位编号”就行了,而且筛选下级时轻而易举···

 



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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/8/4 18:19:00 [显示全部帖子]

1、按你这种设计,下下级的取得要重复用select来完成,太麻烦了··· 也就是把上一个select中的所有“领导”都当着本次select里的“岗位编号”···  这样套嵌6次或更多,将严重影响速度。

 

2、其实就是系统自带例子中的‘会计科目.Table’,就是一级、二级、三级 ····1001、100101、10010101···  你的岗位编号应该这样编,筛选时就容易了 只要【like ‘1001*’】它的下级就全出来了。

[此贴子已经被作者于2012-8-4 18:23:08编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/8/4 19:44:00 [显示全部帖子]

仔细看了你的项目,这样也可以实现:

 

1、增加几个全局变量 “dlz ”  (vars("dlz")

2、在用户登陆窗口的“UserName”控件的SelectedIndexChanged事件中增加一行:vars("dlz") = dr("姓名")

3、在出库明细窗口的“加载我的下属记录”按钮中设置代码:
Dim fr As DataRow
fr = DataTables("XR人事表").Find("姓名 = '" & vars("dlz") & "' ")
Dim drs As List(Of DataRow)
Dim s As String
drs = DataTables("XR人事岗位配置表").Select("[领导] = '" & fr("岗位编号") & "'")
For Each dr As DataRow In drs
    s = s & "'" & dr("岗位编号") & "'"  & ","
Next
s = "(" & s.trim(",") & ")"

DataTables("wl出库明细表").LoadFilter="岗位编号 in " & s & " "
DataTables("wl出库明细表").load

 


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/8/4 21:41:00 [显示全部帖子]

,“未将对象引用设置到对象的实例”

s = "(" & s.trim(",") & ")"   前面加个判断:if s > ""


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/8/4 22:40:00 [显示全部帖子]

我前面说了要嵌套N级的Select··· 很麻烦的。再说事先你也不知道有几级的下级啊。所以无法确定要用几个嵌套!

为何要加载所有下级呢,成百上千行的怎么看的舒服呢。 

 

要不你直接用目录树筛选或加载不行吗,想看那个节点的都可以呀。

 

要不你就改变你的编码结构,按前面我说的例子一样不是更方便简单吗。 干吗要自找麻烦呢。。。


 回到顶部