以文本方式查看主题

-  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


图一:

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

图二:

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



--  作者:有点甜
--  发布时间: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 变量