文本参数条件
当查询依赖于许多参数时,查询将停止,直到解析了其每个参数为止。 有时,参数可能具有连接字符串或执行条件计算的简单查询。 这些查询仍会对执行这些基本操作的服务进行网络调用,该处理会增加参数解析值所需的时间。 结果会导致复杂工作簿的加载时间较长。
使用条件参数时,可以根据先前指定的参数定义一组条件,将对这些参数进行评估以提供动态值。 使用条件参数的主要优点是,条件参数能够解析以前指定的参数的值,并执行简单的条件操作,而无需进行任何网络调用。 以下示例是条件参数用例。
示例
考虑以下条件查询:
let metric = dynamic({Counter});
print tostring((metric.object == 'Network Adapter' and (metric.counter == 'Bytes Received/sec' or metric.counter == 'Bytes Sent/sec')) or (metric.object == 'Network' and (metric.counter == 'Total Bytes Received' or metric.counter == 'Total Bytes Transmitted')))
如果你关注的是 metric.counter
对象,那么参数 isNetworkCounter
的值在参数 Counter
包含 Bytes Received/sec
、Bytes Sent/sec
、Total Bytes Received
或 Total Bytes Transmitted
时应该为 true。
这可以转换为条件文本参数:
在前面的屏幕截图中,条件将从上到下计算,参数 isNetworkCounter
的值将取计算结果先为 true 的任何条件的值。 可以对除默认条件(“else”条件)以外的所有条件重新排序,以获取所需的结果。
设置条件
从在编辑模式下至少有一个现有参数的工作簿开始操作。
- 选择“添加参数”>“添加参数”。
- 在打开的新参数窗格中,输入:
- 参数名称:
rand
- 参数类型:
Text
- 必需:
checked
- 从以下位置获取数据:
Query
- 在查询编辑器中输入
print rand(0-1)
。 此参数将输出一个介于 0 到 1 之间的值。
- 参数名称:
- 选择“保存”以创建参数。
注意
工作簿中的第一个参数不会显示“条件”选项卡。
在具有
rand
参数的表中,选择“添加参数”。在打开的新参数窗格中,输入:
- 参数名称:
randCriteria
- 参数类型:
Text
- 必需:
checked
- 从以下位置获取数据:
Criteria
- 参数名称:
此时会显示一个网格。 选择空白文本框旁边的“编辑”打开“条件设置”窗体。 有关每个字段的说明,请参阅“条件设置”窗体。
输入以下数据以填充第一个条件,然后选择“确定”:
- 第一个操作数:
rand
- 运算符:
>
- 值来自:
Static Value
- 第二个操作数:
0.25
- 值来自:
Static Value
- 结果为:
is over 0.25
- 第一个操作数:
选择条件
Click edit to specify a result for the default condition
旁边的“编辑”以编辑默认条件。注意
对于默认条件,应禁用除最后一个
Value from
字段和Result is
字段以外的所有内容。输入以下数据以填充默认条件,然后选择“确定”:
- 值来自:静态值
- 结果为:小于或等于 0.25
保存参数。
刷新工作簿以查看
randCriteria
参数的工作情况。 其值将基于rand
的值。
“条件设置”窗体
表单域 | 说明 |
---|---|
第一个操作数 | 此下拉列表包含已创建的参数名称。 该参数的值将在比较的左侧使用。 |
运算符 | 用于比较第一个和第二个操作数的运算符。 可以是数字或字符串计算。 运算符 is empty 将禁用 Second operand ,因为仅需 First operand 。 |
值来源 | 如果设置为 Parameter ,则会显示一个包含已创建参数的下拉列表。 该参数的值将在比较的右侧使用。如果设置为 Static Value ,则会显示一个文本框,你可以在其中输入比较右侧的值。 |
第二个操作数 | 将是包含已创建参数的下拉菜单或文本框,具体取决于前面的 Value from 选择。 |
值来源 | 如果设置为 Parameter ,则会显示一个包含已创建参数的下拉列表。 该参数的值将用于当前参数的返回值。如果设置为 Static Value :- 将显示一个文本框,你可以在其中输入结果的值。 - 你还可以通过在参数名称周围使用大括号来取消引用其他参数。 - 可以连接多个参数并创建自定义字符串,例如“ {paramA} 、{paramB} 和某些字符串”。如果设置为 Expression :- 将显示一个文本框,你可以在其中输入将作为结果计算的数学表达式。 - 与 Static Value 情况类似,可以在此文本框中取消对多个参数的引用。- 如果文本框中引用的参数值不是数字,它将被视为值 0 。 |
结果是 | 将是包含已创建参数的下拉菜单或文本框,具体取决于前面的 Value from 选择。 在文本框中将进行计算,以作为此“条件设置”窗体的最终结果。 |