以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教老师一个比较拗口的代码怎么写,关于隐藏和混淆重要内容的  (http://foxtable.net/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
    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、如果有问题,具体项目发上来测试