以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教老师一个比较拗口的代码怎么写,关于隐藏和混淆重要内容的 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=125052) |
-- 作者:初心不改再说未来 -- 发布时间:2018/9/18 23:33:00 -- 请教老师一个比较拗口的代码怎么写,关于隐藏和混淆重要内容的 某列中有4个自定义项目ABCD(新增数据一律默认为A) 如何写代码控制 当某条数据状态从A被调整为BCD后,再也无法调整回A了? 然后,当前登录用户如果累计有10条数据状态为B时,则暂时不可以再调整其他数据状态了,这个代码怎么写啊......
[此贴子已经被作者于2018/9/18 23:58:11编辑过]
|
-- 作者:y2287958 -- 发布时间:2018/9/19 8:10:00 -- 思路: 1、增加一个辅助列,用于记住A状态,然后判断
2、计算B状态的记录数,然后判断 |
-- 作者:有点甜 -- 发布时间: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
|
-- 作者:初心不改再说未来 -- 发布时间: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 这么写对不对啊?调试了一下好像没起作用······
|
-- 作者:有点甜 -- 发布时间:2018/9/19 10:49:00 -- 1、代码
If e.DataCol.name = "状态" AndAlso e.oldvalue <> Nothing Then
2、如果有问题,具体项目发上来测试 |