我想在 Invantive 控制中使用参数。
例如,我想只检索给定数据参数中的精确在线项目管理的小时数。
常用的方法有以下三种:
要在模型编辑器中使用参数,您可以在模型编辑器中定义它们:
唯一代码通常都是大写的,格式P_...
为 ,但只要它是合法的标识符,任何东西都可以工作。
要在一个或多个块查询或触发器中使用它们:
$P{CODE}
为 Excel 输入 SQL 或触发器。可以使用参数按钮(控制功能区中的绿色漏斗)输入值:
请注意,参数始终绑定为参数,而不是按字典顺序替换,因此您不能说:select * from $P{TABLE_NAME}
。
请注意,参数可以相互依赖,因此在查询参数时可以使用另一个参数。比如首先选择一个项目所在的国家,然后显示该国家的项目列表。但要明智,避免递归和其他过于复杂的场景;用户不会轻易理解它。
要使用 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 中输入新行,然后它们会同步上传它们以提供参数。在复杂风险模型的情况下特别方便。