Foxtable(狐表)用户栏目专家坐堂 → 特定用户加载特定的表


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

主题:特定用户加载特定的表

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/2 13:38:00 [显示全部帖子]

你不是吧,连最基础的还不会写。

 

If user.Name = "王五" Then
    If e.DataTableName = "全部合同" Or e.DataTableName = "合同转换" Then
        e.SelectString = "Select * Fr om {" & e.DataTableName & "}"
    Else
        e.SelectString = "Select * Fr om {" & e.DataTableName & "} where 1=2"

    End If
End If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/2 20:14:00 [显示全部帖子]

 在这个时间,DataTables所有的表都没加载。

 

 你应该在这个事件不加载任何表,然后在AfterOpenProject事件再加载需要的表。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/3 9:27:00 [显示全部帖子]

Dim dr As DataRow  = DataTables("Users").find("Name= '" & _UserName & "'")
If dr IsNot Nothing Then
    Dim nms1() As String = dr("可以打开的表").Split(",")
   
    If _UserName = "王五" Then
        For Each dt As DataTable In DataTables
            If Array.IndexOf(nms1, dt.name) >= 0 Then
                'If dt.name = "全部合同" Or dt.name = "合同转换" Then
                dt.LoadFilter = ""
                dt.Load()
            Else
                dt.LoadFilter = "[_Identify] Is Null"
                dt.Load()
            End If
        Next
    End If
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/3 11:08:00 [显示全部帖子]

以下是引用kaituozhe在2016/5/3 10:51:00的发言:
表的一个多值字段列自动提取数据库中所有表的名字并作为列表项目,代码该怎么写?

 

控件.ComboList = 某行("某列").Replace(",", "|")


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/3 11:30:00 [显示全部帖子]

动态获取

 

Dim lst As List(Of String)
lst = Connections("nwnd").GetTableNames
Dim str As String = String.Join("|", lst.ToArray)
msgbox(str)


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/3 12:08:00 [显示全部帖子]

以下是引用kaituozhe在2016/5/3 12:02:00的发言:
上述代码写在那里?列属性-基本属性-自定义列表中没有办法写代码

 

可以写在prepareEdit事件

 

If e.Col.Name = "第一列" Then
    Dim lst As List(Of String)
    lst = Connections("nwnd").GetTableNames
    Dim str As String = String.Join("|", lst.ToArray)
    e.Col.ComboList = str
End If


 回到顶部