如何在sql中以oracle apex形式计算字段

时间:2012-07-12 16:35:09

标签: sql oracle oracle-xe

我使用Oracle XE 11g以及IR报告和标准格式。 到目前为止,我在报告区域管理了以下内容, 数量 - 已售出IN_STOCK 这适用于报告,但我在报名表中没有结果。 尝试在IN_STOCK的源字段中使用相同的SQL但不起作用。 还尝试将计算字段写入表中,但没有运气,我发现的例子不起作用。 任何想法都会赞赏。 感谢

3 个答案:

答案 0 :(得分:0)

您在交互式报告上创建的计算仅适用于报告本身。如果您需要此字段作为条目表单中的值或在报表外部使用,则可能需要在数据库表级别定义此派生列。

此引用可能对virtual columns有帮助: http://docs.oracle.com/cd/E11882_01/server.112/e17118/statements_7002.htm

在此文档中搜索“虚拟列”。虚拟列的工作方式类似于IR计算字段,但在数据库级别可以识别。如果您在设置虚拟列时遇到任何问题,请参阅有关限制的部分。

现在,使用虚拟列,当您在数据库中查询要在表单或查询结果中显示的计算值时,它将根据您在其定义中指定的两列动态显示它。

答案 1 :(得分:0)

您需要动态操作

这是一个例子:

:当 事件:改变 选择类型:项目 Items(s):页面中以逗号分隔的字段,参与计算

示例:P5_CORRELATIVO_DESDE,P5_NO_CAJAS,P5_DOCUMENTOS_X_CAJA

真实行动 行动:设定价值 Action do Set Value

设置 设置类型:PL / SQL函数体 PL / SQL代码:

DECLARE   ln_value NUMBER(12):= 0; 开始   IF:P5_CORRELATIVO_DESDE!= 0 AND:P5_NO_CAJAS!= 0 AND:P5_DOCUMENTOS_X_CAJA!= 0   然后      ln_value:=((:P5_CORRELATIVO_DESDE - 1)+(:P5_NO_CAJAS *:P5_DOCUMENTOS_X_CAJA));   结束如果;

RETURN ln_value; END;

要提交的页面项目:页面中的字段以逗号分隔,参与计算

示例:P5_CORRELATIVO_DESDE,P5_NO_CAJAS,P5_DOCUMENTOS_X_CAJA

取消更改事件:是

受影响的元素 选择类型:项目 项目:计算值命运的页面项目 示例:P5_CORRELATIVO_HASTA

Settings

顶部

答案 2 :(得分:0)

准备一个函数,根据制造商计算第二次拍摄日期 建议间隔天数

SHOT DATE 27 DAYS