Invantive Control 中用于控制查询结果的参数的替代方法
Alternative approach to parameters in Invantive Control to control query outcome
我想在 Invantive 控制中使用参数。
例如,我只想检索在给定数据参数中的 Exact 在线项目管理的小时数。
常用的方法有以下三种:
- 在模型编辑器中使用参数。
- 使用 Excel 个值。
- 使用相关数据库中的数据。
模型参数
要在模型编辑器中使用参数,请在模型编辑器中定义它们:
- Select 唯一代码。
- 可能提供一个默认值(总是字符串,使用 to_... 或强制转换在查询中更改它)。
- 定义值列表以提供快速选择。
唯一代码通常全部为大写,格式为 P_...
,但只要它是合法标识符,任何东西都应该有效。
要在一个或多个块查询或触发器中使用它们:
- 使用积木按钮。
- 或在 SQL 中键入
$P{CODE}
或触发 Excel。
可以使用参数按钮(控制功能区中的绿色漏斗)输入值:
请注意,参数始终作为参数绑定,而不是按字典顺序替换,因此您不能说:select * from $P{TABLE_NAME}
。
请注意参数可以相互依赖,因此在查询参数时可以使用另一个参数。比如先选择一个项目所在的国家,然后显示那个国家的项目列表。但要明智,避免递归和其他过于复杂的场景;用户不会轻易理解它。
Excel 值
要使用 Excel 值,您可以按如下方式定义它们:
- 在 Excel 中的某处输入一个值。
- 可选择定义命名范围,以便更轻松地更改位置。
您当然可以在 Excel 中像往常一样分配列表作为弹出窗口或其他验证。单元格锁定也可以正常工作。
要在 Invantive Control 的查询或触发器中使用实际值,您可以使用查询编辑器中的构建块或使用 select * from table where code = $X{projectcode}
或 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 实际上不可行,因为创建您自己的表 and/or 字段的可能性很小。
在 Oracle 等其他平台上,您可能希望在 Excel 中的 Invantive Control 中输入新行,然后它们同步上传以提供参数。在复杂风险模型的情况下特别方便。
我想在 Invantive 控制中使用参数。
例如,我只想检索在给定数据参数中的 Exact 在线项目管理的小时数。
常用的方法有以下三种:
- 在模型编辑器中使用参数。
- 使用 Excel 个值。
- 使用相关数据库中的数据。
模型参数
要在模型编辑器中使用参数,请在模型编辑器中定义它们:
- Select 唯一代码。
- 可能提供一个默认值(总是字符串,使用 to_... 或强制转换在查询中更改它)。
- 定义值列表以提供快速选择。
唯一代码通常全部为大写,格式为 P_...
,但只要它是合法标识符,任何东西都应该有效。
要在一个或多个块查询或触发器中使用它们:
- 使用积木按钮。
- 或在 SQL 中键入
$P{CODE}
或触发 Excel。
可以使用参数按钮(控制功能区中的绿色漏斗)输入值:
请注意,参数始终作为参数绑定,而不是按字典顺序替换,因此您不能说:select * from $P{TABLE_NAME}
。
请注意参数可以相互依赖,因此在查询参数时可以使用另一个参数。比如先选择一个项目所在的国家,然后显示那个国家的项目列表。但要明智,避免递归和其他过于复杂的场景;用户不会轻易理解它。
Excel 值
要使用 Excel 值,您可以按如下方式定义它们:
- 在 Excel 中的某处输入一个值。
- 可选择定义命名范围,以便更轻松地更改位置。
您当然可以在 Excel 中像往常一样分配列表作为弹出窗口或其他验证。单元格锁定也可以正常工作。
要在 Invantive Control 的查询或触发器中使用实际值,您可以使用查询编辑器中的构建块或使用 select * from table where code = $X{projectcode}
或 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 实际上不可行,因为创建您自己的表 and/or 字段的可能性很小。
在 Oracle 等其他平台上,您可能希望在 Excel 中的 Invantive Control 中输入新行,然后它们同步上传以提供参数。在复杂风险模型的情况下特别方便。