以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 应用窗口问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127318) |
-- 作者:aza520 -- 发布时间:2018/11/11 12:09:00 -- 应用窗口问题 窗口AfterLoad事件设如下代码,应用窗口的时候总显示图一错误。但也可以正常应用,请问老师可能是什么问题? If User.Name = "开发者" Or User.Name = "管理员" Then Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELEC T DISTINCT 项目名称,施工合同段,章节,子目号+ \'|\' +子目名称 as 子目,支付编号+ \'|\' +细目名称 as 细目,桩号 Fro m {中间计量表}" dt = cmd.ExecuteReader() Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildTree(dt,"项目名称|施工合同段|章节|子目|细目|桩号") trv.Nodes.Insert("加载所有数据",0) Else Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELEC T DISTINCT 项目名称,施工合同段,章节,子目号+ \'|\' +子目名称 as 子目,支付编号+ \'|\' +细目名称 as 细目,桩号 Fro m {中间计量表} where 承包人机构 in (\'" & User.Roles.replace(",","\',\'") & "\') or 监理机构 in (\'" & User.Roles.replace(",","\',\'") & "\') or 业主机构 in (\'" & User.Roles.replace(",","\',\'") & "\')" dt = cmd.ExecuteReader() Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildTree(dt,"项目名称|施工合同段|章节|子目|细目|桩号") trv.Nodes.Insert("加载所有数据",0) End If vars("中间计量表filter") = DataTables("中间计量表").LoadFilter 图一: 图二:
|
-- 作者:有点甜 -- 发布时间:2018/11/11 15:02:00 -- 1、执行这句代码后,目录树能否生存?
trv.BuildTree(dt,"项目名称|施工合同段|章节|子目|细目|桩号")
如果目录树没有数据生成,说明你dt没有数据,不能生成目录树。
2、删除这个代码后是否还报错?
trv.Nodes.Insert("加载所有数据",0)
3、如果不是1、2的问题,就是你其它代码有错,你要学会调试定位出错位置啊
http://www.foxtable.com/webhelp/scr/1485.htm
|
-- 作者:aza520 -- 发布时间:2018/11/11 17:53:00 -- 老师用以下代码 运行的时候无法弹出4,应该是第四行代码有问题,我检查不出来,我其它一个类似的表采用此类似的代码没有问题 Dim cmd As New SQLCommand MessageBox.Show(1) Dim dt As DataTable MessageBox.Show(2) cmd.C MessageBox.Show(3) cmd.CommandText = "SELEC T DISTINCT 项目名称,施工合同段,章节,子目号+ \'|\' +子目名称 as 子目,支付编号+ \'|\' +细目名称 as 细目,桩号 Fro m {中间计量表} where 承包人机构 in (\'" & User.Roles.replace(",","\',\'") & "\') or 监理机构 in (\'" & User.Roles.replace(",","\',\'") & "\') or 业主机构 in (\'" & User.Roles.replace(",","\',\'") & "\')" MessageBox.Show(4) dt = cmd.ExecuteReader() MessageBox.Show(5) Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") MessageBox.Show(6) trv.BuildTree(dt,"项目名称|施工合同段|章节|子目|细目|桩号") MessageBox.Show(7) trv.Nodes.Insert("加载所有数据",0) MessageBox.Show(8) |
-- 作者:有点甜 -- 发布时间:2018/11/11 18:29:00 -- 那应该是这个代码有问题:User.Roles.Replace
当你的user没有角色的时候,就会报错。
1、你可以给user设置一个角色;
2、你可以判断一下是不是为空
Dim roles = iif(user.roles = nothing, "", user.roles)
然后直接使用 roles 变量 |