【问题标题】:How to calculate fields in an oracle apex form in sql如何在sql中计算oracle apex表单中的字段
【发布时间】:2012-07-12 11:27:26
【问题描述】:

我正在使用带有 IR 报告和标准表格的 Oracle XE 11g。 到目前为止,我在报告区域中管理了以下内容, 数量 - 已售出_库存 这在报告中有效,但我在输入表中没有得到任何结果。 在 IN_STOCK 的源字段中尝试了相同的 SQL 但不起作用。 还尝试将计算字段写入表中,但没有运气,我发现的示例不起作用。 任何想法将不胜感激。 谢谢

【问题讨论】:

  • 如果您可以在 apex.oracle.com 上重新创建它并向所有人展示问题,您可能会得到一个很好的解决方案。

标签: sql oracle oracle-xe


【解决方案1】:

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

此参考资料可能对virtual columns 有所帮助: http://docs.oracle.com/cd/E11882_01/server.112/e17118/statements_7002.htm

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

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

【讨论】:

    【解决方案2】:

    您需要动态操作

    这是一个例子:

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

    示例:P5_CORRELATIVO_DESDE,P5_NO_CAJAS,P5_DOCUMENTOS_X_CAJA

    真正的行动 行动:设定值 Action do Set Value

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

    声明 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)); 如果结束;

    返回 ln_value; 结束;

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

    示例:P5_CORRELATIVO_DESDE,P5_NO_CAJAS,P5_DOCUMENTOS_X_CAJA

    抑制更改事件:是

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

    Settings

    顶部

    【讨论】:

      【解决方案3】:

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

      SHOT DATE 27 DAYS
      

      【讨论】:

        猜你喜欢
        • 2012-02-20
        • 1970-01-01
        • 2020-01-17
        • 1970-01-01
        • 2013-01-05
        • 1970-01-01
        • 1970-01-01
        • 2016-03-12
        • 1970-01-01
        相关资源
        最近更新 更多