以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]导航可不可见问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173224)

--  作者:18107532666
--  发布时间:2021/11/19 15:15:00
--  [求助]导航可不可见问题

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

想用导航表生成导航,符合可不可见列的用户组才显示,在启动未将对象引用设置到对象的实例。,问一下老师,我的代码有什么问题吗

\'生成编译函数nav
Dim code As String 
code= " dim name as string = args(0) " & vbcrlf 
code= code & " Select Case name " & vbcrlf 

Dim roles() As String = _userGroup.Split(",") 
For Each role As String In roles 
    Dim drs As List(Of DataRow) = DataTables("导航").Select("可不可见 = \'" & role & "\' or 可不可见 like \'" & role & ",*\' or 可不可见 like \'*," & role & ",*\' Or 可不可见 like \'*," & role & "\'") 
    For Each dr As DataRow In drs 

        If dr("代码")> ""  Then 
            code = code & " case " & """" & dr("名称") & """" & vbcrlf 
            code = code & dr("代码")  & vbcrlf 
        End If
    Next
Next
code= code & "end  Select  " & vbcrlf 
Functions.Remove("nav")
Functions.Add("nav",Code)
Functions.Complie 

[此贴子已经被作者于2021/11/19 15:18:11编辑过]

--  作者:有点蓝
--  发布时间:2021/11/19 15:18:00
--  
这种代码我看不出有什么问题。

测试提示什么错误?测试结果什么地方有问题?

--  作者:18107532666
--  发布时间:2021/11/19 15:19:00
--  
在启动未将对象引用设置到对象的实例。
--  作者:有点蓝
--  发布时间:2021/11/19 15:22:00
--  
……
code= code & "end  Select  " & vbcrlf 
ouput.show(code把拼接的代码放到内部函数里测试,打开命令窗口执行上面代码,把ouput.show的内容发呆一个内部函数里测试、调试

--  作者:18107532666
--  发布时间:2021/11/19 15:23:00
--  
本来是好用的,但是我加了一列可不可见列,然后加了一段判断可不可见的代码,然后启动时就出现了
“未将对象引用设置到对象的实例。”


--  作者:18107532666
--  发布时间:2021/11/19 15:24:00
--  
Dim roles() As String = _userGroup.Split(",") 
For Each role As String In roles 
    Dim drs As List(Of DataRow) = DataTables("导航").Select("可不可见 = \'" & role & "\' or 可不可见 like \'" & role & ",*\' or 可不可见 like \'*," & role & ",*\' Or 可不可见 like \'*," & role & "\'") 
    For Each dr As DataRow In drs

--  作者:18107532666
--  发布时间:2021/11/19 15:25:00
--  
肯定是这段代码出错了  我又不知道如何出的错


--  作者:有点蓝
--  发布时间:2021/11/19 15:52:00
--  
调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错

Dim drs As List(Of DataRow) = DataTables("导航").Select("\',\' +可不可见+\',\' like \'%," & role & ",%\'")