文本参数条件

当查询依赖于许多参数时,查询将停止,直到解析了其每个参数为止。 有时,参数可能具有连接字符串或执行条件计算的简单查询。 这些查询仍会对执行这些基本操作的服务进行网络调用,该处理会增加参数解析值所需的时间。 结果会导致复杂工作簿的加载时间较长。

使用条件参数时,可以根据先前指定的参数定义一组条件,将对这些参数进行评估以提供动态值。 使用条件参数的主要优点是,条件参数能够解析以前指定的参数的值,并执行简单的条件操作,而无需进行任何网络调用。 以下示例是条件参数用例。

示例

考虑以下条件查询:

Screenshot that shows the conditional query.

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/secBytes Sent/secTotal Bytes ReceivedTotal Bytes Transmitted 时应该为 true。

这可以转换为条件文本参数:

Screenshot that shows the criteria example.

在前面的屏幕截图中,条件将从上到下计算,参数 isNetworkCounter 的值将取计算结果先为 true 的任何条件的值。 可以对除默认条件(“else”条件)以外的所有条件重新排序,以获取所需的结果。

设置条件

  1. 从在编辑模式下至少有一个现有参数的工作簿开始操作。

    1. 选择“添加参数”>“添加参数”。
    2. 在打开的新参数窗格中,输入:
      • 参数名称:rand
      • 参数类型:Text
      • 必需:checked
      • 从以下位置获取数据:Query
      • 在查询编辑器中输入 print rand(0-1)。 此参数将输出一个介于 0 到 1 之间的值。
    3. 选择“保存”以创建参数。

    注意

    工作簿中的第一个参数不会显示“条件”选项卡。

    Screenshot that shows the first parameter.

  2. 在具有 rand 参数的表中,选择“添加参数”。

  3. 在打开的新参数窗格中,输入:

    • 参数名称:randCriteria
    • 参数类型:Text
    • 必需:checked
    • 从以下位置获取数据:Criteria
  4. 此时会显示一个网格。 选择空白文本框旁边的“编辑”打开“条件设置”窗体。 有关每个字段的说明,请参阅“条件设置”窗体

    Screenshot that shows the Criteria Settings form.

  5. 输入以下数据以填充第一个条件,然后选择“确定”:

    • 第一个操作数:rand
    • 运算符>
    • 值来自:Static Value
    • 第二个操作数:0.25
    • 值来自:Static Value
    • 结果为:is over 0.25

    Screenshot that shows the Criteria Settings form filled in.

  6. 选择条件 Click edit to specify a result for the default condition 旁边的“编辑”以编辑默认条件。

    注意

    对于默认条件,应禁用除最后一个 Value from 字段和 Result is 字段以外的所有内容。

  7. 输入以下数据以填充默认条件,然后选择“确定”:

    • 值来自:静态值
    • 结果为:小于或等于 0.25

    Screenshot that shows the Criteria Settings default form filled.

  8. 保存参数。

  9. 刷新工作簿以查看 randCriteria 参数的工作情况。 其值将基于 rand 的值。

“条件设置”窗体

表单域 说明
第一个操作数 此下拉列表包含已创建的参数名称。 该参数的值将在比较的左侧使用。
运算符 用于比较第一个和第二个操作数的运算符。 可以是数字或字符串计算。 运算符 is empty 将禁用 Second operand,因为仅需 First operand
值来源 如果设置为 Parameter,则会显示一个包含已创建参数的下拉列表。 该参数的值将在比较的右侧使用。
如果设置为 Static Value,则会显示一个文本框,你可以在其中输入比较右侧的值。
第二个操作数 将是包含已创建参数的下拉菜单或文本框,具体取决于前面的 Value from 选择。
值来源 如果设置为 Parameter,则会显示一个包含已创建参数的下拉列表。 该参数的值将用于当前参数的返回值。
如果设置为 Static Value
- 将显示一个文本框,你可以在其中输入结果的值。
- 你还可以通过在参数名称周围使用大括号来取消引用其他参数。
- 可以连接多个参数并创建自定义字符串,例如“{paramA}{paramB} 和某些字符串”。

如果设置为 Expression
- 将显示一个文本框,你可以在其中输入将作为结果计算的数学表达式。
- 与 Static Value 情况类似,可以在此文本框中取消对多个参数的引用。
- 如果文本框中引用的参数值不是数字,它将被视为值 0
结果是 将是包含已创建参数的下拉菜单或文本框,具体取决于前面的 Value from 选择。 在文本框中将进行计算,以作为此“条件设置”窗体的最终结果。