以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教:关于按授权表显示navbar页面和topicbar页面问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=179828) |
||||
-- 作者:xtlwp -- 发布时间:2022/9/13 9:52:00 -- 请教:关于按授权表显示navbar页面和topicbar页面问题 窗口根据授权表设置代码,总提示 .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2022.8.18.1 错误所在事件:窗口,导航测试,AfterLoad 详细错误信息: 未将对象引用设置到对象的实例。 请教代码如何修改?
[此贴子已经被作者于2022/9/13 9:53:18编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2022/9/13 9:53:00 -- 调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错 |
||||
-- 作者:xtlwp -- 发布时间:2022/9/13 10:19:00 --
测试时:For Each page As WinForm.NavPage In nv.NavPages For Each tp As WinForm.TopicBar In page.Children For Each pg As WinForm.TopicPage In e.Form.Controls(tp.Name).Pages For Each tl As WinForm.TopicLink In pg.Links pg.Visible = False tl.Visible = False Dim Filter As String = "用户 like \'%" & User.Name & "%\' " For Each s As String In User.Roles.split(",") Filter = Filter & " or 用户 like \'%" & s & "%\'" Next Filter = "(" & Filter & ")" For Each dr As DataRow In DataTables("导航授权").SQLSelect( Filter) If dr.IsNull("任务栏页面") = False and dr.IsNull("任务栏") = False Then \' msgbox(dr("任务栏")) \' msgbox(dr("任务栏页面")) tp.Pages(dr("任务栏")).Visible = True pg.Links(dr("任务栏页面")).Visible = True Else If dr.IsNull("任务栏") = False Then msgbox(dr("任务栏")) tp.Pages(dr("任务栏")).Visible = True End If End If Next Next Next Next Next 第一次可以显示任务栏名称和任务栏页面名称一次,接着就显示“未设置对象变量或 With 块变量。”不知道怎么修改?
|
||||
-- 作者:有点蓝 -- 发布时间:2022/9/13 10:41:00 -- 这个应该是授权表里维护的任务栏名称和页面名称有误,任务栏控件里不存在这个名称的任务栏或者页面名称。看弹出哪个任务栏和页面名称后出错? |
||||
-- 作者:有点蓝 -- 发布时间:2022/9/13 10:58:00 -- 这个循环处理的逻辑很有问题。 |
||||
-- 作者:xtlwp -- 发布时间:2022/9/13 11:43:00 -- 谢谢大神 |