Foxtable(狐表)用户栏目专家坐堂 → 求助,要怎么隐藏标签名称


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

主题:求助,要怎么隐藏标签名称

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


加好友 发短信
等级:二尾狐 帖子:515 积分:5051 威望:0 精华:0 注册:2017/9/1 23:28:00
求助,要怎么隐藏标签名称  发帖心情 Post By:2020/4/14 21:10:00 [只看该作者]

我下面的代码要实现的功能是:取表中单号的值赋予标签,如果单号存在则显示标签,如果单号不存在则把标签隐藏(不显示),但是怎么都无法隐藏标签。求指点
For a As Integer = 0 To 5
    If  Tables("table1").rows(a)("单号") Is Nothing       ’如果返回的单号为不存在,感觉错误就在这句?
        e.Form.Controls("a" & a +1).Visible = False      '隐藏标签
    Else
     e.Form.Controls("a" & a +1).text = Tables("table1").rows(a)("单号")   ’否则直接把标签名称赋值为单号显示。
    End If
Next


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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/14 21:17:00 [只看该作者]

    If  Tables("table1").rows(a).isnull("单号")       ’如果返回的单号为不存在,感觉错误就在这句?
        e.Form.Controls("a" & a +1).Visible = False      '隐藏标签

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


加好友 发短信
等级:二尾狐 帖子:515 积分:5051 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2020/4/14 23:07:00 [只看该作者]

蓝老师您好,这样写的代码还是有问题?
原本没有用您的代码,没有单号(单号不存在)的时候,标签呈现的结果是A1,A2,A3,A4,A5,改成您的代码后,变成了“单号,单号,单号,单号,单号”
但是为不理解的地方就是,按道理代码没错啊?整个控件都隐藏了,没道理再显示“单号”两个字啊?百思不得其解?
我尝试使用在控件属性里面调整成“不可见”,结果倒是对的,就不显示了。就是代码控制不了。


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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/14 23:16:00 [只看该作者]

上传实例测试

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


加好友 发短信
等级:二尾狐 帖子:515 积分:5051 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2020/4/14 23:52:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目7.rar

 
蓝老师您好,项目上传了,其中A6对应的单号不存在,显示的就是“单号”两个字。

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/15 9:06:00 [只看该作者]

表格只有5行数据,循环却有6个索引【For a As Integer = 0 To 5】,应该改为【For a As Integer = 0 To 4】

超出行数的索引取到的是标题行。所以就显示标题文字。

比较合理的用法应该是

For a As Integer = 0 To Tables("test").rows.Count - 1
    If  Tables("test").rows(a).Isnull("单号")
        e.Form.Controls("a" & a +1).Visible = False
    Else
        e.Form.Controls("a" & a +1).text = Tables("test").rows(a)("单号")
    End If
Next
[此贴子已经被作者于2020/4/15 9:06:33编辑过]

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


加好友 发短信
等级:二尾狐 帖子:515 积分:5051 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2020/4/15 18:29:00 [只看该作者]

蓝老师您好,您的代码仍然是有问题的。您的代码由于循环次数只有表的行数,导致后面的标签仍然不能隐藏,显示成“a3,a4,a5”
但是您的代码启发了我的思维,关键性的一句是“0 To Tables(“test").Rows.count -1”,后面我吧思路颠倒过来,我先把标签设置为不可见,然后代码改为
For a As Integer = 0 To Tables("test").Rows.count -1
      e.Form.Controls("a" & a +1).Visible = True
     e.Form.Controls("a" & a +1).text = Tables("test").rows(a)("单号")
next
成功的达到了我要的效果!谢谢您的指点!

 回到顶部