以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 可视授权如何实现列为多字段? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=148340) |
||||
-- 作者:lgz518 -- 发布时间:2020/4/5 23:03:00 -- 可视授权如何实现列为多字段? 可视授权如何实现列为多字段?
|
||||
-- 作者:程兴刚 -- 发布时间:2020/4/5 23:11:00 -- 看看我刚发这个帖子的表里面候选值这个单元格,看看这个值多不多,仅供参考! |
||||
-- 作者:有点蓝 -- 发布时间:2020/4/6 10:02:00 -- 建议还是使用多行的方式授权。这样控制非常麻烦 |
||||
-- 作者:lgz518 -- 发布时间:2020/4/6 14:11:00 -- 程老师,没找到您贴子,请发网址或上传实例。谢谢 |
||||
-- 作者:lgz518 -- 发布时间:2020/4/6 14:23:00 -- 建议还是使用多行的方式授权。这样控制非常麻烦 蓝老师, 其实使用多行的方式授权,更麻烦: 原因1:一般正常在1-3字段或列,一个还好,2个以下,2列就2行,3列就3行,一个表可能几个人几种设计,也就是非常勉励接受。 原因2:在3字段或列以上,或10列,再加上一个表可能几个人几种设计,那会晕? 存在问题: 1.不直接,界面不友好;2.造成数据多余,数据库加大负担。 所以需求,要列就可以实现多个字段,还可视相对灵活和简单,适合由客户来设定,如何实现,请老师,指教,谢谢 |
||||
-- 作者:有点蓝 -- 发布时间:2020/4/6 14:45:00 -- 多值字段判断 方法1、使用like模糊查询2、遍历每一行,把多值字段的值取出来,使用字符串拆分方法拆分后逐一判断:http://www.foxtable.com/webhelp/topics/0245.htm
|
||||
-- 作者:lgz518 -- 发布时间:2020/4/6 15:46:00 -- For Each t As Table In Tables \'显示所有表和列 t.Visible = True t.AllowEdit = True For Each c As Col In t.Cols c.Visible = True c.AllowEdit = True Next Next Tables("授权表").Visible = (User.Type <> UserTypeEnum.User ) If User.Type <> UserTypeEnum.User Then Return End If For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\'" ) If dr.IsNull("列名") Then For Each t As Table In Tables If t.DataTable.Name = dr("表名") Then t.Visible = Not dr("不可见") t.AllowEdit = Not dr("不可编辑") End If Next Else For Each t As Table In Tables If t.DataTable.Name = dr("表名") Then For Each c As Col In t.Cols If c.Name = dr("列名") Then c.Visible = Not dr("不可见") c.AllowEdit = Not dr("不可编辑") End If Next End If Next End If Next Dim Value As String = "foxtable|access/foxpro|excel/egrid" Dim sps() As Char = {"|","/"} Dim Names() As String = Value.Split(sps) For Each c As String In t.Cols c.Visible = Not dr("不可见") c.AllowEdit = Not dr("不可编辑") Next Dim s As String = e.Sender.Text \'With DataTables("表A") \'.LoadFilter = "列名 Like \'%" & s & "%\'" \'.Load() \'End With |
||||
-- 作者:lgz518 -- 发布时间:2020/4/6 15:47:00 -- 老师,写不出,请您在上传实例改写,谢谢 |
||||
-- 作者:有点蓝 -- 发布时间:2020/4/6 16:24:00 -- For Each t As Table In Tables If t.DataTable.Name = dr("表名") Then dim ar() as string = dr("列名").split("|") For Each c As Col In t.Cols If array.indexof(ar,c.Name) > -1 Then c.Visible = Not dr("不可见") c.AllowEdit = Not dr("不可编辑") End If Next End If Next
|