Foxtable(狐表)用户栏目专家坐堂 → 请教老师一个比较拗口的代码怎么写,关于隐藏和混淆重要内容的


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

主题:请教老师一个比较拗口的代码怎么写,关于隐藏和混淆重要内容的

帅哥哟,离线,有人找我吗?
初心不改再说未来
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:496 积分:3899 威望:0 精华:0 注册:2017/7/19 10:58:00
请教老师一个比较拗口的代码怎么写,关于隐藏和混淆重要内容的  发帖心情 Post By:2018/9/18 23:33:00 [只看该作者]

某列中有4个自定义项目ABCD(新增数据一律默认为A)   如何写代码控制 当某条数据状态从A被调整为BCD后,再也无法调整回A了?

然后,当前登录用户如果累计有10条数据状态为B时,则暂时不可以再调整其他数据状态了,这个代码怎么写啊......
[此贴子已经被作者于2018/9/18 23:58:11编辑过]

 回到顶部
帅哥,在线噢!
y2287958
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4627 积分:33767 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2018/9/19 8:10:00 [只看该作者]

思路:
1、增加一个辅助列,用于记住A状态,然后判断
2、计算B状态的记录数,然后判断

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/19 8:57:00 [只看该作者]

1、datacolchanging事件

 

If e.datacol.name = "第一列" andalso e.oldvalue <> Nothing Then

    If ( e.oldvalue = "B"  orelse e.oldvalue = "C" orelse e.oldvalue = "D" ) AndAlso e.newvalue = "A" Then

        msgbox(123)

        e.cancel = true

    End If

End If

 

2、datacolchanging事件,compute统计一下为B的个数 http://www.foxtable.com/webhelp/scr/0548.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
初心不改再说未来
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:496 积分:3899 威望:0 精华:0 注册:2017/7/19 10:58:00
  发帖心情 Post By:2018/9/19 10:28:00 [只看该作者]

If e.DataCol.name = "状态" AndAlso e.oldvalue <> Nothing Then
    If ( e.oldvalue = "沟通中"  OrElse e.oldvalue = "飞单" OrElse e.oldvalue = "已成交" ) AndAlso e.newvalue = "未认领" Then
        msgbox("已认领成功!不可以退回未认领状态!")
        e.cancel = True
    End If
    Dim Sum As Double
    Sum = Tables("工单表").Compute("Sum(数量)", "状态 = '沟通中' or 状态 = '飞单' or 状态 = '已成交' ")
    If sum > 3 Then
        msgbox("旧工单未处理完成前不得处理新工单")
        e.cancel = True
    End If
End If

这么写对不对啊?调试了一下好像没起作用······

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/19 10:49:00 [只看该作者]

1、代码

 

If e.DataCol.name = "状态" AndAlso e.oldvalue <> Nothing Then
    If ( e.oldvalue = "沟通中"  OrElse e.oldvalue = "飞单" OrElse e.oldvalue = "已成交" ) AndAlso e.newvalue = "未认领" Then
        msgbox("已认领成功!不可以退回未认领状态!")
        e.cancel = True
    ElseIf e.newvalue = "沟通中"  OrElse e.newvalue = "飞单" OrElse e.newvalue = "已成交" Then
        Dim Sum = e.DataTable.Compute("count(状态)", "状态 = '沟通中' or 状态 = '飞单' or 状态 = '已成交' ")
        If sum > 3 Then
            msgbox("旧工单未处理完成前不得处理新工单")
            e.cancel = True
        End If
    End If
End If

 

2、如果有问题,具体项目发上来测试


 回到顶部