以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  表达式中不能嵌套表达式吗?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=122667)

--  作者:ts9277
--  发布时间:2018/7/30 21:43:00
--  表达式中不能嵌套表达式吗?

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


这个表达式中不能再加一个空值的判断吗?如果不能添加,如果简单的实现如果第一列是空值,则不会自动输入内容
IIF([第一列] is not null and [第一列] in (\'嘉利\',\'卡莱德\'), \'恒道\', \'英豪\'),

--  作者:有点蓝
--  发布时间:2018/7/30 21:52:00
--  

[此贴子已经被作者于2018/7/31 20:50:49编辑过]

--  作者:ts9277
--  发布时间:2018/7/31 20:44:00
--  
IIF( [第一列] in (\'嘉利\',\'卡莱德\'), \'恒道\', \'英豪\') 这种表达式可以实现判断的,但空值的就自动填了英豪,我才想在表达式中加入空值的判断
--  作者:有点蓝
--  发布时间:2018/7/31 20:52:00
--  
IIF([第一列] is null,\'\',IIF( [第一列] in (\'嘉利\',\'卡莱德\'), \'恒道\', \'英豪\'))
--  作者:ts9277
--  发布时间:2018/8/1 17:02:00
--  
好的,谢谢
如果是跨表  我在DataColChanged 的事情件写如下 代码( 提示错误“应为结束语句”  是什么情况)  如何改,请老师帮忙看下
If e.DataCol.name="模具名称" Then
    Dim dr As DataRow
    Dim filter As String
    filter="产品名称=\'" & e.DataRow("模具名称") & "\'"
    dr=DataTables("产品信息").find(filter)
    If dr IsNot Nothing Then  \'如果找到
        If dr("客户") In ("嘉利","温州嘉利","卡莱德") Then \'如果客户是 嘉利,温州嘉利,卡莱德 其中的一个
            e.DataRow("供应商")="恒道"
        Else
            e.DataRow("供应商")="英豪"
        End If
    End If
End If


--  作者:有点甜
--  发布时间:2018/8/1 17:11:00
--  

 

If dr("客户") = "嘉利" OrElse dr("客户") = "温州嘉利" OrElse dr("客户") = "卡莱德" Then

 

[此贴子已经被作者于2018/8/1 17:12:01编辑过]

--  作者:ts9277
--  发布时间:2018/8/2 8:08:00
--  
这个语句无法使用IN 函数吗?  如果需要判别的内容比较多,那这个IF 语句要很长了
--  作者:有点甜
--  发布时间:2018/8/2 8:52:00
--  

改成

 

Dim ary() = {"嘉利","温州嘉利","卡莱德"}

If array.indexof(ary, dr("客户")) >= 0 Then