以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  下面这段代码为何总是报错?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=10026)

--  作者:唐尸三摆手
--  发布时间:2011/5/18 20:10:00
--  下面这段代码为何总是报错?

下面这段代码为何总是报错?

 

Dim cmd1 As New SQLCommand
Dim dt1 As DataTable
cmd1.C
cmd1.CommandText ="select [功能区],[功能组],[菜单项],[开通权限] from {组权限} where [用户名]= \'李四\'"
dt1 = cmd1.ExecuteReader
If dt1 IsNot Nothing Then
    For Each dr1 As DataRow In dt1.DataRows
        RibbonTabs(dr1("功能区")).Groups(dr1("功能组")).Items(dr1("菜单项")).Enabled =  (dr1("开通权限")= -1)
    Next
End If

 


图片点击可在新窗口打开查看此主题相关图片如下:screenshot31.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:screenshot32.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目24_0519.zip

[此贴子已经被作者于2011-5-19 9:50:01编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/5/18 21:32:00
--  
呵呵,没看出问题来。
做个例子上来看看。

--  作者:e-png
--  发布时间:2011/5/18 22:39:00
--  

 

 If dt1 IsNot Nothing Then  》》》  If dt1.datarows.count > 0 Then  试试看

[此贴子已经被作者于2011-5-18 22:43:34编辑过]

--  作者:唐尸三摆手
--  发布时间:2011/5/19 8:11:00
--  
还是不行 ,就是搞不懂,为什么会出现提示“不存在名称为""的datatable”呢?
[此贴子已经被作者于2011-5-19 8:16:05编辑过]

--  作者:mr725
--  发布时间:2011/5/19 9:14:00
--  

也许列名称有误 或 条件不成立。


--  作者:唐尸三摆手
--  发布时间:2011/5/19 9:51:00
--  

请看一楼附件,附件窗口1的登录按钮中使用这段代码,就会报错:

If dr("用户组")<>"管理员" Then      \'如果不是管理员,
    Dim cmd1 As New SQLCommand
    Dim dt1 As DataTable
    cmd1.C
    cmd1.CommandText ="select [功能区],[功能组],[菜单项],[开通权限] from {组权限} where [用户名]=\'"& UserName &"\'"
    dt1 = cmd1.ExecuteReader
    If dt1 IsNot Nothing Then
        For Each dr1 As DataRow In dt1.DataRows
            RibbonTabs(dr1("功能区")).Groups(dr1("功能组")).Items(dr1("菜单项")).Enabled =  (dr1("开通权限")=True)
        Next
    Else
        For Each rb As RibbonMenu.Tab In RibbonTabs
            For Each gp As RibbonMenu.Group In rb.Groups
                For Each itm As RibbonMenu.RibbonItem In gp.Items
                    itm.Enabled = False
                Next
            Next
        Next        
    End If
Else   \'如果是管理员,
    For Each rb As RibbonMenu.Tab In RibbonTabs
        For Each gp As RibbonMenu.Group In rb.Groups
            For Each itm As RibbonMenu.RibbonItem In gp.Items
                itm.Enabled = True
            Next
        Next
    Next
End If

[此贴子已经被作者于2011-5-19 10:34:27编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/5/19 9:55:00
--  

做例子上传。


--  作者:唐尸三摆手
--  发布时间:2011/5/19 10:16:00
--  
见附件或一楼附件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目24_0519.zip

[此贴子已经被作者于2011-5-19 10:16:36编辑过]

--  作者:唐尸三摆手
--  发布时间:2011/5/19 10:40:00
--  EXCEL报表中如何将逻辑列值标记为勾或叉?

我这样试了一下

 

Dim UserName As String = "李四"
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim a As Integer
cmd.C
cmd.CommandText ="select [功能区],[功能组],[菜单项],[开通权限] from {组权限} where [用户名]=\'"& UserName &"\'"
dt = cmd.ExecuteReader
If dt IsNot Nothing Then
    For Each dr As DataRow In dt.DataRows
        Output.show(dr("功能区") & dr("功能组") & dr("菜单项") & dr("开通权限"))    \'这里插入一行显示数据是正常的
        RibbonTabs(dr("功能区")).Groups(dr("功能组")).Items(dr("菜单项")).Enabled = dr("开通权限")   \'这里执行就会提示错误,不存在名称为""的datatable
    Next
End If

[此贴子已经被作者于2011-5-19 10:40:07编辑过]

--  作者:唐尸三摆手
--  发布时间:2011/5/19 10:48:00
--  EXCEL报表中如何将逻辑列值标记为勾或叉?

老大,将下面这行代码

       RibbonTabs(dr("功能区")).Groups(dr("功能组")).Items(dr("菜单项")).Enabled = dr("开通权限")

改为下面的代码就可以了

        Dim rb As RibbonMenu.Tab = RibbonTabs(dr("功能区"))
        Dim gp As RibbonMenu.Group = rb.Groups(dr("功能组"))
        Dim itm As RibbonMenu.RibbonItem = gp.Items(dr("菜单项"))
        itm.Enabled =  dr("开通权限")

 

不知道这是为啥呢

[此贴子已经被作者于2011-5-19 10:48:32编辑过]