以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]多条件判断  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=145241)

--  作者:ntqhj
--  发布时间:2020/1/13 16:04:00
--  [求助]多条件判断
多条件判断,请帮实现。谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:条件判断问题.table


--  作者:有点蓝
--  发布时间:2020/1/13 16:11:00
--  
1、发货状态=发货完成:收款状态的值=未收
2、收款标识<>空:收款状态的值=对账中
3、发票号码<>空:收款状态的值=收款中
4、收款日期<>空:收款状态的值=已完成
5、“已完成”该行锁定,不可修改

哪个优先级高?同时符合1~4的条件,填哪个?

--  作者:ntqhj
--  发布时间:2020/1/13 18:30:00
--  
1、单元格为“发货完成“,是自动填写的,此时收款状态为“未收”
2、收款标识填写后,此时收款状态为“对账中”
3、发票号码填写后,此时收款状态为“收款中”
4、收款日期填写后,此时收款状态为“已完成”

“收款状态”同一单元格上体现四种状态

5、当“已完成”该行锁定,不可修改。

--  作者:ntqhj
--  发布时间:2020/1/13 18:39:00
--  
同时满足,就是都不为空,就填写已完成


--  作者:有点蓝
--  发布时间:2020/1/13 20:21:00
--  
假设

1、单元格不是“发货完成“
2、收款标识也没有填写
3、但是发票号码填写

此时收款状态为“收款中”?



--  作者:ntqhj
--  发布时间:2020/1/13 22:30:00
--  
重新上传附件不知问题是否描述清楚
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:条件判断问题.table


--  作者:有点蓝
--  发布时间:2020/1/13 22:54:00
--  
datacolchanged事件

Select Case e.DataCol.Name
    Case "发货状态","发票号码","收款标识","收款日期"
        If e.DataRow.IsNull("收款日期") = False Then
            e.DataRow("收款状态") = "已完成"
        ElseIf e.DataRow.IsNull("发票号码") = False Then
            e.DataRow("收款状态") = "收款中"
        ElseIf e.DataRow.IsNull("收款标识") = False Then
            e.DataRow("收款状态") = "对账中"
        ElseIf e.DataRow("发货状态") = "发货完成" Then
            e.DataRow("收款状态") = "未收"
        Else
            e.DataRow("收款状态") = Nothing
        End If
    Case "收款状态"
        e.DataRow.Locked = e.DataRow("收款状态") = "已完成"
End Select

--  作者:ntqhj
--  发布时间:2020/1/13 22:56:00
--  
刚刚想到,希望实现:不可以越级填写。首先填写单元格的内容不填写,其它单元格不可填写
--  作者:有点蓝
--  发布时间:2020/1/13 22:59:00
--  
以下是引用ntqhj在2020/1/13 22:56:00的发言:
刚刚想到,希望实现:不可以越级填写。首先填写单元格的内容不填写,其它单元格不可填写

这个导datacolchanging事件处理即可:http://www.foxtable.com/webhelp/topics/0624.htm
--  作者:ntqhj
--  发布时间:2020/1/18 9:56:00
--  
关于不可以越级填写,老师帮忙写下代码可以吗?没有编程基础呢。谢!