Foxtable(狐表)用户栏目专家坐堂 → 录入窗口与权限管理


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

主题:录入窗口与权限管理

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


加好友 发短信
等级:八尾狐 帖子:1838 积分:13006 威望:0 精华:0 注册:2013/6/10 9:23:00
录入窗口与权限管理  发帖心情 Post By:2021/3/29 10:07:00 [只看该作者]

窗口中有一个表, 需要限制编辑, 列很多,只有个别列需要限制, 如果写简短的代码:
窗口中ENTER事件代码如下:
Dim ctl As WinForm.Control = e.Sender
Select Case ctl.BindingField
    Case"产品列表.产品ID","产品列表.销售产品ID","产品列表.类别","产品列表.品牌","产品列表.产品型号","产品列表.产品图号","产品列表.产品名称","产品列表.缺省供应商","产品列表.产品材料","产品列表.产品规格","产品列表.外径","产品列表.内径","产品列表.高度","产品列表.产品规格1","产品列表.单位","产品列表.单位数量","产品列表.库存","产品列表.备注","产品列表.单重KGS","产品列表.参考代号","产品列表.参考价格","产品列表.初始库存","产品列表.入库数量(入库_数量)","产品列表.入库金额(入库_金额)","产品列表.出库数量(出库_数量)","产品列表.出库金额(出库_金额)","产品列表.库存数量(库存_数量)","产品列表.库存单价(库存_单价)","产品列表.库存金额(库存_金额)","产品列表.产品图片","产品列表.外径1","产品列表.内径1","产品列表.高度1","产品列表.产品尺寸","产品列表.产品BH","产品列表.产品编号","产品列表.辅助编号","产品列表.原始图纸","产品列表.产品IDD","产品列表.临时列","产品列表.世源图号",
        If User.Name = "开发者" Then
            ctl.ReadOnly = BooleanEnum.False '允许编辑
        Else
            ctl.ReadOnly = BooleanEnum.True '禁止编辑
        End If
        If User.Name = "yan" Then
            ctl.ReadOnly = BooleanEnum.False '允许编辑
        Else
            ctl.ReadOnly = BooleanEnum.True '禁止编辑
        End If
End Select
提示错误:

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20210329100627错误.png
图片点击可在新窗口打开查看


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


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

需要限制的列再放到Case里

去掉最后一个逗号:,"产品列表.世源图号"

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


加好友 发短信
等级:八尾狐 帖子:1838 积分:13006 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2021/3/29 15:16:00 [只看该作者]

怎么不起作用?是在窗口中放入了一个表,不是控件,代码也这样写吗?

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


加好友 发短信
等级:八尾狐 帖子:1838 积分:13006 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2021/3/29 15:25:00 [只看该作者]

需要限制的列再放到Case里, 这个是什么意思?

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/29 16:04:00 [只看该作者]

是要限制绑定的控件比如文本框的编辑?还是限制窗口表里单元格的编辑?如果是单元格,到PrepareEdit事件处理:http://www.foxtable.com/webhelp/topics/0605.htm

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


加好友 发短信
等级:八尾狐 帖子:1838 积分:13006 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2021/3/29 16:13:00 [只看该作者]

限制窗口表里单元格的编辑:
PrepareEdit事件代码如下:
Select Case User.Name
    Case "wuzhou","js01","seyon01"
        Select Case e.Col.Name
            Case "产品ID","销售产品ID","类别","品牌","产品型号","产品图号","产品名称","缺省供应商","产品材料","产品规格","外径","内径","高度","产品规格1","单位","单位数量","库存","备注","单重KGS","参考代号","参考价格","初始库存","入库数量(入库_数量)","入库金额(入库_金额)","出库数量(出库_数量)","出库金额(出库_金额)","库存数量(库存_数量)","库存单价(库存_单价)","库存金额(库存_金额)","产品图片","外径1","内径1","高度1","产品尺寸","产品BH","产品编号","辅助编号","原始图纸","产品IDD","临时列","世源图号",
                e.Cancel = True
        End Select
End Select
也没起作用

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/29 16:31:00 [只看该作者]

是这3个人,这些列不能编辑?注意要写列名,不能是标题名。

如果是sqltable到窗口表事件处理。如果是要fill,datasource绑定窗口表的,到全局表事件处理

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


加好友 发短信
等级:八尾狐 帖子:1838 积分:13006 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2021/3/29 16:32:00 [只看该作者]

登录系统,如何看出是哪个用户登录的呢?

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/29 16:44:00 [只看该作者]


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


加好友 发短信
等级:八尾狐 帖子:1838 积分:13006 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2021/3/29 16:57:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20210329165437授权.png
图片点击可在新窗口打开查看


授权A为何没成功? 代码和帮助里的相同!

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
    For Each dr As DataRow In DataTables("授权表").Select("用户名 = '" & User.Name & "'" )
        If dr.IsNull("列名") Then
            Tables(dr("表名")).Visible = Not dr("不可见")
            Tables(dr("表名")).AllowEdit = Not dr("不可编辑")
        Else
            Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
            Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑") 
        End If
    Next
End If

[此贴子已经被作者于2021/3/29 17:03:44编辑过]

 回到顶部
总数 15 1 2 下一页