首页 > 解决方案 > 根据下拉选择列表设置交互式网格值

问题描述

我正在尝试根据在 Item 列中选择的值在交互式网格列中填充成本值。

我的设置是:

一个“项目”表,其中包含项目列表和分配给项目的“成本”。

一个“报价”表,其中包含有关报价的一般信息,即公司名称、创建日期、签名、签名日期等。

一个“Quote_Items”表,它通过 Quote_ID 和 Item_ID 将项目分配给报价。我在 Quote Items 表中添加了一个 Cost 列,以便能够在交互式网格中看到它并对其进行更新。对于报价项目,我创建了一个交互式网格以将项目添加到报价中。

我将交互式网格中的 Item_ID 列设置为一个弹出 LOV,它根据所选项目填充 Item_ID。

为了填充“Quote_Item.Cost”,我在 Item_ID 列中添加了一个动态操作:

事件:更改选择类型:列区域:..项目列表列:Item_ID

操作:设置值 设置类型:SQL 语句 SQL 语句:SELECT I.COST FROM WIP_ITEMS I WHERE I.ITEM_ID = ITEM_ID 要提交的项目:COST

结果是,当我从下拉列表中选择一个项目时,“Items.Cost”表中的所有值都以逗号分隔的值显示在字段中: 报价项目填充一个字段中的所有项目成本

似乎 SQL 查询的“WHERE I.ITEM_ID = ITEM_ID”部分工作不正常?我怎样才能让它只显示与 Item_ID 关联的值?

标签: oracleoracle-apexsetvalueinteractive-grid

解决方案


在 SQL 查询中引用列的语法 > :COLUMN_NAME

所以你的 SQL 查询应该是这样的:

SELECT i.cost
  FROM wip_items i
 WHERE i.item_id = :ITEM_ID 

而且您还需要修改“要提交的项目”参数,因为它必须始终是您在 where 条件中引用的值,因此在您的情况下它应该是:

要提交的项目: ITEM_ID


推荐阅读