Foxtable(狐表)用户栏目专家坐堂 → [求助]关于代码里面内容的修改问题


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

主题:[求助]关于代码里面内容的修改问题

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


加好友 发短信
等级:三尾狐 帖子:629 积分:4915 威望:0 精华:0 注册:2014/2/25 15:50:00
[求助]关于代码里面内容的修改问题  发帖心情 Post By:2016/7/23 15:05:00 [只看该作者]

3.17.9 给用户授予输入值许可范围

我们之前的例子,都是在编辑之前,执行PrepareEdit事件,判断用户是否有编辑此列、此行或此单元格的权限。
权限管理不会总是如此简单,有时不需要在编辑前进行判断,而是在编辑后,判断用户输入的值是否超出授权范围。
例如给订单打折,不同等级的用户,不同的订购数量,能打折的程度是不同的。
此时我们不能使用PrepareEdit事件,因为这个是在编辑前执行,要在编辑后判断输入值是否超出授权范围,通常用ValidateEdit或者DataColChanging事件。

假定订单表中有个折扣列,普通业务员给出的折扣不能超过5%,张经理则不能超过10%,对于订购数量达到1000的订单,张经理有权给出15%的折扣。
为此可将此表的ValidateEdit代码设置为:

If e.Col.Name = "折扣" Then '如果修改的是折扣列
    Dim v As Double = e.Text '取得新输入的折扣
    If User.Name = "张经理" Then '如果用户是张经理
        If v > 0.15 Then '且折扣大于0.15
            e.Cancel = True '取消此次输入
        ElseIf v> 0.1 AndAlso e.Row("数量") < 1000 Then '如果折扣大于0.1,但数量少于1000
            e.Cancel = True '取消此次输入
        End If
    ElseIf v > 0.05 Then '如果是普通用户,且折扣大于0.05
        e.Cancel = True '取消此次输入
    End If
    If e.Cancel Then '如果本次输入被取消,则提示用户原因
        Messagebox.show("你输入的折扣超出授权范围!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End If
End If

我们在介绍ValidateEditDataColChanging事件的时候,也提供了很多验证输入值的例子,大家可以复习一下。






提问:带背景色部分的内容如何在表格里面就可以修改呢

[此贴子已经被作者于2016/7/23 15:05:46编辑过]

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/7/23 15:22:00 [只看该作者]

本来就是可以修改的呀。如果是权限控制的,就去改权限的逻辑

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/24 10:20:00 [只看该作者]

 查表得到值,即可。

 

http://www.foxtable.com/webhelp/scr/0396.htm

 


 回到顶部