0

我想在 Invantive 控制中使用参数。

例如,我想只检索给定数据参数中的精确在线项目管理的小时数。

4

1 回答 1

0

常用的方法有以下三种:

  1. 在模型编辑器中使用参数。
  2. 使用 Excel 值。
  3. 使用来自相关数据库的数据。

模型参数

要在模型编辑器中使用参数,您可以在模型编辑器中定义它们:

定义模型参数的步骤

  • 选择一个唯一的代码。
  • 可能提供默认值(始终为字符串,使用 to_... 或强制转换以在查询中更改它)。
  • 定义提供快速选择的值列表。

唯一代码通常都是大写的,格式P_...为 ,但只要它是合法的标识符,任何东西都可以工作。

要在一个或多个块查询或触发器中使用它们:

  • 使用积木按钮。
  • 或者$P{CODE}为 Excel 输入 SQL 或触发器。

可以使用参数按钮(控制功能区中的绿色漏斗)输入值:

参数输入

请注意,参数始终绑定为参数,而不是按字典顺序替换,因此您不能说:select * from $P{TABLE_NAME}

请注意,参数可以相互依赖,因此在查询参数时可以使用另一个参数。比如首先选择一个项目所在的国家,然后显示该国家的项目列表。但要明智,避免递归和其他过于复杂的场景;用户不会轻易理解它。

Excel 值

要使用 Excel 值,您可以按如下方式定义它们:

定义 Excel 参数

  • 在 Excel 中的某处输入一个值。
  • 可以选择定义一个命名范围,以便更轻松地更改位置。

您当然可以在 Excel 中正常分配列表作为弹出窗口或其他验证。单元锁定也可以正常工作。

要在 Invantive Control 的查询或触发器中使用实际值,您可以使用查询编辑器中的构建块或使用类似的东西select * from table where code = $X{projectcode}or select * from table where code = $X{B2&C2&D2}。最后一个显示您还可以使用其他类型的 Excel 表达式。

请注意,Excel 参数也作为参数绑定到查询,但它们也是typed,因此根据 Excel 单元格的一般格式,以下查询可能会有所不同:

select *
from   table
where  code like $X{CELL}

当单元格是文本时,在这种情况下,数据库或 Exact Online 将检索:

select *
from   table
where  code like :ex0

带有ex0诸如“8%”之类的文本。但是当单元格是百分比时,内容可能仍会在 Excel 中显示为“8%”,但实际查询将与以下结果相同:

select *
from   table
where  code like 0.08

让我有些头疼,但打字通常是一个有用的功能,尤其是日期。

使用数据库数据的参数

选项 3 在 Exact Online 中实际上是不可行的,因为它们几乎不可能创建您自己的表和/或字段。

在 Oracle 等其他平台上,您可能希望在 Excel 中的 Invantive Control 中输入新行,然后它们会同步上传它们以提供参数。在复杂风险模型的情况下特别方便。

于 2017-05-01T20:15:27.393 回答