是否有相当于 VBScript 的
IN
语句?
我希望为列可见性创建一个
If
语句,该语句检查是否在参数中选择了特定值。该值是多值的,因此我需要测试它是否存在于值列表中。
我有一个查找表,它为 4 种不同的调用类型分配一个值:
SELECT 1 as CALL_ORDER,'Welcome Call' AS [TEXT], '1' AS [VALUE]
UNION
SELECT 2 as CALL_ORDER,'Month One Call' AS [TEXT], '2' AS [VALUE]
UNION
SELECT 3 as CALL_ORDER,'Month Two Call' AS [TEXT], '3' AS [VALUE]
UNION
SELECT 4 as CALL_ORDER,'Month Six Call' AS [TEXT], '4' AS [VALUE]
视觉工作室:
用户可以选择多个这些选项,我需要测试运行时列表中是否存在特定值。
例如:
If 1 IN(PARAMETERS!CALL_TYPE.VALUE) Then ...
不确定如何在 VBScript 中执行此操作。
VBScript 没有
In
或 Contains
语句/运算符。
我认为在 VBScript 中进行
In
或 Contains
检查的最常见方法是使用可能的值构建一个 dictionary 并根据该字典检查实际值:
Set ref = CreateObject("Scripting.Dictionary")
ref.Add "foo", True
ref.Add "bar", True
var = "foo"
If ref.Exists(var) Then 'value exists
'...
End If
var = "baz"
If ref.Exists(var) Then 'value doesn't exist
'...
Else
'...
End If
另一种常见方法是使用 2 的倍数作为整数值中的标志:
Const FOO = 1
Const BAR = 2
Const BAZ = 4
var = 5
If (var And FOO) = FOO Then 'value exists
'...
End If
If (var And BAR) = BAR Then 'value doesn't exist
'...
Else
'...
End If
Select Case
声明:
Select Case var
Case "foo": 'do some
Case "bar": 'do other
Case Else: 'everything else
End Select
我会简单地使用 InStr 函数。例如。我想解决这样的问题: a = 2 ....其中 a 在 (12,23,45)
然后我会用 a = Cstr(2) ...如果 Instr("12,23,45",a)>0 那么...