Foxtable(狐表)用户栏目专家坐堂 → 应用窗口问题


  共有1884人关注过本帖树形打印复制链接

主题:应用窗口问题

帅哥哟,离线,有人找我吗?
aza520
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
应用窗口问题  发帖心情 Post By: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
图片点击可在新窗口打开查看



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By: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)


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/11 18:29:00 [只看该作者]

那应该是这个代码有问题:User.Roles.Replace

 

当你的user没有角色的时候,就会报错。

 

1、你可以给user设置一个角色;

 

2、你可以判断一下是不是为空

 

Dim roles = iif(user.roles = nothing, "", user.roles)

 

然后直接使用 roles 变量


 回到顶部