以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=118247)

--  作者:沪上游客
--  发布时间:2018/4/27 15:36:00
--  [求助]
老师您好!五一快乐!
我在窗口设置了一个加载树,以下是AfterLoad 事件代码:

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


"TreeView1" NodeMouseDoubleClick 事件也有相应代码

代码是对的,可以加载。但是这样用户就可以加载所有数据库的数据,我想达到用户只能加载所在部门的数据。我的项目中部门是以分组形式

请老师指教一下,怎么在窗口加载树按用户所在部门条件加载?谢谢!

--  作者:沪上游客
--  发布时间:2018/4/27 15:38:00
--  
以下是我的项目在启动时在项目事件AfterOpenProject 中的代码(参考一下,代码是执行对的)
谢谢老师
    Dim Filter As String = "(合同状态 = \'执行中\' or 合同状态 is null)"
    Dim y As String = "(合同状态 = \'执行中\' or 合同状态 is null) and 所属年份 = \'" & Date.Today.Year - 4  & "\'"
    If User.Type = UserTypeEnum.Administrator Then
        DataTables("工程合同基础数据").LoadFilter = ""
        Tables("工程合同基础数据").OpenLoadTree("所属部门_区域公司|所属部门_分公司|所属部门_项目部|工程名称",200,20,True)
    Else If User.Type = UserTypeEnum.Developer Then
        DataTables("工程合同基础数据").LoadFilter = "" & filter
        Tables("工程合同基础数据").OpenLoadTree("所属部门_区域公司|所属部门_分公司|所属部门_项目部|工程名称",200,20,True,y)
    Else If User.Group = "总公司" Then
        DataTables("工程合同基础数据").LoadFilter = "" & filter
        Tables("工程合同基础数据").OpenLoadTree("所属部门_区域公司|所属部门_分公司|所属部门_项目部|工程名称",200,20,True,filter)
    Else If User.Group Like "*区域" Then
        DataTables("工程合同基础数据").LoadFilter = "所属部门_区域公司 = \'" & User.Group & "\' And " & filter
        Tables("工程合同基础数据").OpenLoadTree("所属部门_区域公司|所属部门_分公司|所属部门_项目部|工程名称",200,20,True,"所属部门_区域公司 = \'" & User.Group & "\' And " & filter)
    Else If User.Group Like "*分公司" Then
        DataTables("工程合同基础数据").LoadFilter = "所属部门_分公司 = \'" & User.Group & "\' And " & filter
        Tables("工程合同基础数据").OpenLoadTree("所属部门_区域公司|所属部门_分公司|所属部门_项目部|工程名称",200,20,True,"所属部门_分公司 = \'" & User.Group & "\' And " & filter)
    Else If User.Group = "项目部" Then
        Dim dr As DataRow
        dr = DataTables("操作人员").SQLFind("[姓名] = \'" & User.name & "\'")
        If dr IsNot Nothing
            DataTables("工程合同基础数据").LoadFilter = "项目部全称 = \'" & dr("项目部全称") & "\'"
            Tables("工程合同基础数据").OpenLoadTree("所属部门_区域公司|所属部门_分公司|所属部门_项目部|工程名称",200,20,True,"项目部全称 = \'" & dr("项目部全称") & "\'")
        End If
    End If
    DataTables("工程合同基础数据").Load()


--  作者:有点甜
--  发布时间:2018/4/27 15:40:00
--  

1、sql语句加上条件, where 部门 = \'" & user.Group & "\'

 

2、loadfilter加上条件 "部门 = \'" & user.Group & "\'"

 

3、同样的目录树点击事件也要加上条件


--  作者:沪上游客
--  发布时间:2018/5/1 15:00:00
--  
谢谢老师!
我的部门是根据多列内容设置的,所以条件设置很复杂。现在上传事件代码给您看一下,请帮我指正一下。命令不报错,但加载树没有显示。
谢谢啦!


[此贴子已经被作者于2018/5/1 15:06:42编辑过]

--  作者:沪上游客
--  发布时间:2018/5/1 15:12:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文本文档20180501 .txt


--  作者:沪上游客
--  发布时间:2018/5/1 16:29:00
--  
老师你好!
我是要用用户的所属部门加载属于自己的数据,但我的项目设置的部门不在一列,也就是说项目部属于上级分公司,而分公司属于上级区域公司,如下图所示:

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

在项目打开时,我已经设置好,只是在窗口查询数据时要从后台加载数据,所以请老师指教一下,应该怎么做合理?
谢谢老师!

[此贴子已经被作者于2018/5/1 16:30:10编辑过]

--  作者:有点甜
--  发布时间:2018/5/1 18:04:00
--  

1、根据user.group加载数据?逻辑是什么,举例说明。

 

2、尽量做一个foxtable实例上来测试。


--  作者:沪上游客
--  发布时间:2018/5/1 20:02:00
--  [求助]
因为我的主表中设置了“所属部门_区域公司”、“所属部门_分公司”、“所属部门_项目部”三个列,而在用户管理中分别将这三个部门的人员设置了user.group(用户分组针对每个部门,比如:上海区域、上海分公司、项目部)
请问一下,窗口的加载树能不能直接引用表里加载树窗口?如果可以就简单多了。
谢谢!

[此贴子已经被作者于2018/5/1 20:10:54编辑过]

--  作者:有点甜
--  发布时间:2018/5/2 9:32:00
--  

参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=114434&skin=0