我将以下脚本与软件配合使用,该软件使用OMR读取CheckBox并将数据输出到XML文件。
有没有一种方法可以更改它,即如果已选中多个框,则数据输出应该是列表中的第一个复选框?
希望这很有道理。
任何帮助将不胜感激。
Dim installer
q_a1= Metadata.Values("OMR_FRED_P2")
q_a2= Metadata.Values("OMR_JON_P2")
q_a3= Metadata.Values("OMR_MATT_P2")
q_a4= Metadata.Values("OMR_STEVE_P2")
If q_a1 = "Filled" Then
installer = "Fred"
End If
If q_a2 = "Filled" then
installer = "Jon"
End If
If q_a3 = "Filled" then
installer = "Matt"
End If
If q_a4 = "Filled" then
installer = "Steve"
End If
call Metadata.SetValues("CompleteBy",installer)
答案 0 :(得分:0)
您可以执行以下操作:
Dim a1Checked, a2Checked, a3Checked, a4Checked
Dim numberOfChecked
a1Checked = (q_a1 = "Filled")
a2Checked = (q_a2 = "Filled")
a3Checked = (q_a3 = "Filled")
a4Checked = (q_a4 = "Filled")
numberOfChecked = Abs(a1Checked + a2Checked + a3Checked + a4Checked)
If a1Checked Or numberOfChecked > 1 Then
installer = "Fred"
ElseIf a2Checked Then
installer = "Jon"
ElseIf a3Checked Then
installer = "Matt"
ElseIf a4Checked Then
installer = "Steve"
Else
' Decide what you want to do if none is checked.
End If
Call Metadata.SetValues("CompleteBy", installer)
在VBScript中,“布尔真”值的数字值为-1
,而假值则为0
。
上面的代码只是将值加在一起。如果满足两个条件,则总和为-2
,然后我们使用Abs
函数来获取抽象值(即返回2而不是-2)。之后,您可以使用numberofChecked > 1
轻松检查是否满足两个或多个条件。