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


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

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

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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
特定用户加载特定的表  发帖心情 Post By:2016/4/30 19:57:00 [只看该作者]

以下代码用户是用SQL SERVER 2008数据源,目的是如果王登录但只有全部合同及合同转换两张表加载数据,其他都是空表,但是会提示错误,是什么原因,怎么修改?

If _UserName = "王五" Then
    For Each d As DataTable In DataTables
        If d.name = "全部合同" Or d.name = "合同转换" Then
            e.SelectString = "Sel ect * Fr om {d.name}"
        Else
            e.SelectString = "Se lect * Fr om {d.name} Where [_Identify] Is Null"
        End If
    Next
End If


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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/4/30 20:19:00 [只看该作者]

以下代码想全部合同及合同转换两个表加载数据,其他表为空表,但是其他表无法加载进来,该怎么修改?

If _UserName = "王五" Then
    If e.DataTableName = "全部合同" Or e.DataTableName = "合同转换" Then
        e.SelectString = "Select * Fr om {全部合同}"
        e.SelectString = "Select * Fr om {合同转换}"
    Else
        e.SelectString = "Select * Fr om {e.DataTableName} Where [_Identify] Is Null"
    End If
End If


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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/5/1 6:45:00 [只看该作者]

例子中的数据源为SQL server 2008数据源,目的是想实现如何如果张三则表A不是空表,其他都是空表;李四则表B不是空表,其他都是空表;该怎么修改

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:加载表.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/5/2 18:41:00 [只看该作者]

以下代码是想更进一步,在users中设置允许加载数据的表,在黄色部分提示错误,该怎么改进?
Dim dr As DataRow  = DataTables("Users").find("_UserName= '" & DataTables("users").DataRow("Name") & "'")
Dim nms1() As String
If dr IsNot Nothing Then
    nms1 = dr("可以打开的表").Split(",")
End If
If _userName = "王五" Then
    If nms1.Contains(dt.name ) = True Then
        e.SelectString = "Select * Fr  om {" & e.DataTableName & "}"
    Else
        e.SelectString = "Select * Fr om {" & e.DataTableName & "} where [_Identify] Is Null"
    End If
End If

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


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

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

 

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


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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/5/2 21:17:00 [只看该作者]

AfterOpenProject事件中黄色部分的代码该怎么写

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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/5/2 21:55:00 [只看该作者]

以下黄色代码怎么修改
'Dim dr As DataRow  = DataTables("Users").find("_UserName= '" & e.DataRow("Name") & "'")
'Dim nms1() As String
'If dr IsNot Nothing Then
    'nms1 = dr("可以打开的表").Split(",")
'End If
'If _UserName = "王五" Then
    'For Each dt As DataTable In DataTables
        ''If nms1.Contains(dt.name ) = True 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

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/5/3 8:52:00 [只看该作者]

Dim dr As DataRow  = DataTables("Users").find("name= '" & _UserName & "'")

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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/5/3 9:13:00 [只看该作者]

以下代码提示错误,是什么原因形成的?   错误如下:无法将类型为“System.String[]”的对象强制转换为类型“System.Collections.Generic.List`1[System.String]”。
Dim dr As DataRow  = DataTables("Users").find("Name= '" & _UserName & "'")
Dim nms1  As list (of String)
If dr IsNot Nothing Then
    nms1 = dr("可以打开的表").Split(",")
End If
If _UserName = "王五" Then
    For Each dt As DataTable In DataTables
        If nms1.Contains(dt.name ) = True 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

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