Foxtable(狐表)用户栏目专家坐堂 → 帮看看代码怎么修改(已解决)


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

主题:帮看看代码怎么修改(已解决)

帅哥,在线噢!
有点蓝
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:108072 积分:549771 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/7 11:33:00 [只看该作者]

看8楼

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


加好友 发短信
等级:小狐 帖子:337 积分:3225 威望:0 精华:0 注册:2020/2/25 23:12:00
  发帖心情 Post By:2021/5/7 12:39:00 [只看该作者]

 
 
 
都说了列只能整个隐藏和显示。假如同时有下面情况,那么第四列到底是可见还是隐藏?

第二列中包含a的行,如果这些行中的第三列有1个值为true
第二列中包含r的行,如果这些行中的第三列全部都不为true

 

 

 

可以进这个项目的 窗口看看,鼠标点在不同的行上,第四列 有时隐藏 有时显示,想达到这种效果

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


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


加好友 发短信
等级:狐精 帖子:3115 积分:20778 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2021/5/7 12:58:00 [只看该作者]

逻辑就不科学,你隐藏了,选择其他行,隐藏了的又显示出来了,之前隐藏的效果就没达到了

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


加好友 发短信
等级:小狐 帖子:337 积分:3225 威望:0 精华:0 注册:2020/2/25 23:12:00
  发帖心情 Post By:2021/5/7 13:07:00 [只看该作者]

我这个表估计有上百列。

我编辑这几行的时候,把不需要的列隐藏,可能隐藏了20个列,   编辑其他几行的时候,可能又隐藏其他30个列,也可能开始隐藏的又冒出来几个了,这是折中的办法,只是为了 能面对少点的列,


 回到顶部
帅哥,在线噢!
有点蓝
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:108072 积分:549771 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/7 13:32:00 [只看该作者]

那就只能鼠标点在不同的行上进行处理,代码放到currentchanged事件

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


加好友 发短信
等级:小狐 帖子:337 积分:3225 威望:0 精华:0 注册:2020/2/25 23:12:00
  发帖心情 Post By:2021/5/7 14:02:00 [只看该作者]

代码放到currentchanged事件 后,效果果然比较接近了。但还存在点问题。

 

就是以下代码标颜色的部分可能存在点问题,如果按以下代码,用到以上例子,前三行的第三列全为TRUE,才能让第四列显示,期望的效果是,前三行中有1个为true ,第四列就显示。 以下条件代码如何修改下?

 

 

Dim a As String = Tables("表A").Current("第二列") 
If a.contains(".") Then   ' 如果 第二列包含" ."
Dim b As String = left(a,a.IndexOf("."))    '取第一个" ." 左侧的字符
Dim drs As List(Of DataRow) = DataTables("表A").Select("第二列 LIKE '" & b & "%' ")    ' 查找第二列包含 b的行,
For Each dr As DataRow In drs
If dr("第三列") = True Then      ' 如果查找到的行中,的第三列有1个值为true
    Tables("表A").Cols("第四列").Visible = True    ' 设置第四列 当前行的 是否隐藏
Else
    Tables("表A").Cols("第四列").Visible = False
End If
Next
Else
Dim b As String = a    ' 第二列不包含" ." 的话,b取值a
Dim drs1 As List(Of DataRow) = DataTables("表A").Select("第二列 LIKE '" & b & "%' ")  ' 查找第二列包含 b的行,
For Each dr1 As DataRow In drs1
   If dr1("第三列") = True Then     ' 如果查找到的行中,的第三列有1个值为true
   Tables("表A").Cols("第四列").Visible = True    ' 设置第四列 当前行的 是否隐藏
Else
    Tables("表A").Cols("第四列").Visible = False
End If
Next
End If

[此贴子已经被作者于2021/5/7 14:05:23编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:108072 积分:549771 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/7 14:10:00 [只看该作者]

参考9楼的判断方法

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


加好友 发短信
等级:小狐 帖子:337 积分:3225 威望:0 精华:0 注册:2020/2/25 23:12:00
  发帖心情 Post By:2021/5/7 14:19:00 [只看该作者]

实现了,谢谢

 If e.Table.Current IsNot Nothing Then

Dim a As String = Tables("表A").Current("第二列")

Dim b As String 
If a.contains(".") Then   ' 如果 第二列包含" ." 
b = left(a,a.IndexOf("."))    '取第一个" ." 左侧的字符

else

b = a

end if
If e.Table.Compute("count(第二列)","第二列 like '" & b & "%' and 第三列=true") > 0 Then
    Tables("表A").Cols("第四列").Visible = True    ' 设置第四列 当前行的 是否隐藏
Else
    Tables("表A").Cols("第四列").Visible = False
End If

End If

[此贴子已经被作者于2021/5/7 21:19:32编辑过]

 回到顶部
总数 18 上一页 1 2