以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于隐藏列 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=111184) |
-- 作者:裴保民 -- 发布时间:2017/12/16 23:48:00 -- 关于隐藏列 Dim t As Table = e.form.Controls("Table1").Table Dim lieming As WinForm.CheckedListBox = e.Form.Controls("lieCheckedListBox") Dim s As String Dim tzlsx As WinForm.RadioButton = e.Form.Controls("tiaozhengliedeshunxuRadioButton") If sjdcxzb="客户资料表" Then t.DataSource =DataTables("客户资料") t.Filter = forms("客户资料入库窗体").Controls("Table1").Table.Filter t.SetColVisibleWidth(forms("客户资料入库窗体").Controls("Table1").Table.GetColVisibleWidth()) s = "" For Each c As Col In t.cols If c.name = "身份证号" OrElse c.name = "客户主手机号" OrElse c.name = "第二手机号" OrElse c.name = "第三手机号" OrElse c.name = "备注" OrElse c.name = "身份证照片" Then If _UserGroup = "系统管理员" Then s=s &"|"& c.Name End If ElseIf c.name = "身份证号掩码显示" OrElse c.name = "客户主手机号掩码显示" OrElse c.name = "第二手机号掩码显示" OrElse c.name = "第三手机号掩码显示" OrElse c.name = "备注" OrElse c.name = "身份证照片" Then If _UserGroup = "数据操作员" Then s=s &"|"& c.Name End If Else s=s &"|"& c.Name End If Next For Each c As Col In t.cols If c.name = "身份证号" OrElse c.name = "客户主手机号" OrElse c.name = "第二手机号" OrElse c.name = "第三手机号" OrElse c.name = "备注" OrElse c.name = "身份证照片" Then If _UserGroup = "系统管理员" Then c.visible = True Else c.visible = False End If ElseIf c.name = "身份证号掩码显示" OrElse c.name = "客户主手机号掩码显示" OrElse c.name = "第二手机号掩码显示" OrElse c.name = "第三手机号掩码显示" OrElse c.name = "备注" OrElse c.name = "身份证照片" Then If _UserGroup = "数据操作员" Then c.visible = True Else c.visible = False End If Else c.visible = True End If Next lieming.ComboList=s End If 老师这句代码哪有问题?为什么当登录程序角色为“数据操作员”时运行正常,可是一旦登录程序角色为“系统管理员”时“备注”和“身份证照片”列不隐藏呢? 如果将角色互换一下,“系统管理员”时运行正常,“数据操作员”列不隐藏,应该是循环语句的第二句代码不执行。麻烦看看是哪的原因呢? [此贴子已经被作者于2017/12/17 9:02:20编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/12/17 20:28:00 -- For Each c As Col In t.cols c.visible = True [此贴子已经被作者于2017/12/17 20:28:49编辑过]
|
-- 作者:裴保民 -- 发布时间:2017/12/17 21:31:00 -- If sjdcxzb="客户资料表" Then t.DataSource =DataTables("客户资料") t.Filter = forms("客户资料入库窗体").Controls("Table1").Table.Filter t.SetColVisibleWidth(forms("客户资料入库窗体").Controls("Table1").Table.GetColVisibleWidth()) s = "" For Each c As Col In t.cols c.visible = True If c.name = "身份证号" OrElse c.name = "客户主手机号" OrElse c.name = "第二手机号" OrElse c.name = "第三手机号" OrElse c.name = "身份证照片" Then If _UserGroup = "数据操作员" Then s=s &"|"& c.Name End If If c.name = "身份证号掩码显示" OrElse c.name = "客户主手机号掩码显示" OrElse c.name = "第二手机号掩码显示" OrElse c.name = "第三手机号掩码显示" OrElse c.name = "身份证照片" Then If _UserGroup = "系统管理员" Then s=s &"|"& c.Name End If Else s=s &"|"& c.Name End If End If Next For Each c As Col In t.cols c.visible = True If c.name = "身份证号" OrElse c.name = "客户主手机号" OrElse c.name = "第二手机号" OrElse c.name = "第三手机号" OrElse c.name = "备注" OrElse c.name = "身份证照片" Then If _UserGroup = "数据操作员" Then c.visible = True Else c.visible = False End If End If If c.name = "身份证号掩码显示" OrElse c.name = "客户主手机号掩码显示" OrElse c.name = "第二手机号掩码显示" OrElse c.name = "第三手机号掩码显示" OrElse c.name = "备注" OrElse c.name = "身份证照片" Then If _UserGroup = "系统管理员" Then c.visible = True Else c.visible = False End If End If Next lieming.ComboList=s [此贴子已经被作者于2017/12/17 23:07:45编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/12/17 23:40:00 -- For Each c As Col In t.cols c.visible = True If c.name = "身份证号" OrElse c.name = "客户主手机号" OrElse c.name = "第二手机号" OrElse c.name = "第三手机号" OrElse c.name = "备注" OrElse c.name = "身份证照片" Then If _UserGroup = "系统管理员" Then c.visible = True Else c.visible = False End If End If If c.name = "身份证号掩码显示" OrElse c.name = "客户主手机号掩码显示" OrElse c.name = "第二手机号掩码显示" OrElse c.name = "第三手机号掩码显示" OrElse c.name = "备注" OrElse c.name = "身份证照片" Then If _UserGroup = "数据操作员" Then c.visible = True Else c.visible = False End If End If If c.name = "备注" OrElse c.name = "身份证照片" Then If _UserGroup = "系统管理员" OrElse _UserGroup = "数据操作员" Then c.visible = True Else c.visible = False end if End If Next |
-- 作者:裴保民 -- 发布时间:2017/12/17 23:45:00 -- 我的是两段代码呢?一段是表加载列,一段是组合列表框加载列,您这只是其中一段呀,表加载列也得改呀 我想实现,一加载窗体就实现 (1)如果角色是“系统管理员”:除了“客户主手机号掩码显示”、"第二手机号掩码显示" 、 "第三手机号掩码显示" 、 "备注" 、"身份证照片" 列以外所有列都分别加载到窗体的表和组合列表框中 (1)如果角色是“数据操作员”:除了“客户主手机号”、"第二手机号" 、 "第三手机号" 、 "备注" 、"身份证照片" 列以外所有列都分别加载到窗体的表和组合列表框中 怎么老是只执行前一段代码,后一段代码不执行呢?
[此贴子已经被作者于2017/12/17 23:53:12编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/12/17 23:49:00 -- Dim t,_Usergroup,s For Each c As Col In t.cols c.visible = True If c.name = "身份证号" OrElse c.name = "客户主手机号" OrElse c.name = "第二手机号" OrElse c.name = "第三手机号" OrElse c.name = "备注" OrElse c.name = "身份证照片" Then If _UserGroup = "系统管理员" Then c.visible = True Else c.visible = False End If End If If c.name = "身份证号掩码显示" OrElse c.name = "客户主手机号掩码显示" OrElse c.name = "第二手机号掩码显示" OrElse c.name = "第三手机号掩码显示" OrElse c.name = "备注" OrElse c.name = "身份证照片" Then If _UserGroup = "数据操作员" Then c.visible = True Else c.visible = False End If End If If c.name = "备注" OrElse c.name = "身份证照片" Then If _UserGroup = "系统管理员" OrElse _UserGroup = "数据操作员" Then c.visible = True Else c.visible = False End If End If Next s = "" For Each c As Col In t.cols If c.visible Then s = s & "|" & c.name End If Next |
-- 作者:裴保民 -- 发布时间:2017/12/17 23:54:00 -- 我想实现,一加载窗体就实现 (1)如果角色是“系统管理员”:除了“客户主手机号掩码显示”、"第二手机号掩码显示" 、 "第三手机号掩码显示" 、 "备注" 、"身份证照片" 列以外所有列都分别加载到窗体的表和组合列表框中 (1)如果角色是“数据操作员”:除了“客户主手机号”、"第二手机号" 、 "第三手机号" 、 "备注" 、"身份证照片" 列以外所有列都分别加载到窗体的表和组合列表框中 怎么老是只执行前一段代码,后一段代码不执行呢? 把代码改为您的代码执行后备注和照片列都不隐藏 两个角色备注和照片列都不隐藏 Dim t As Table =
e.form.Controls("Table1").Table Dim lieming As WinForm.CheckedListBox =
e.Form.Controls("lieCheckedListBox") Dim s As String Dim tzlsx As WinForm.RadioButton =
e.Form.Controls("tiaozhengliedeshunxuRadioButton") If
sjdcxzb="客户资料表" Then
t.DataSource =DataTables("客户资料")
t.Filter = forms("客户资料入库窗体").Controls("Table1").Table.Filter
t.SetColVisibleWidth(forms("客户资料入库窗体").Controls("Table1").Table.GetColVisibleWidth())
s = ""
Else
lieming.ComboList=s [此贴子已经被作者于2017/12/18 0:57:27编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/12/18 9:00:00 -- For Each c As Col In t.cols |
-- 作者:裴保民 -- 发布时间:2017/12/18 9:40:00 -- 怎样设置表和组合列表框都绑不上数据表 |
-- 作者:有点蓝 -- 发布时间:2017/12/18 10:01:00 -- 上传示例说明 |