根据下拉选择列表设置交互式网格值

时间:2021-06-06 11:52:07

标签: oracle oracle-apex setvalue interactive-grid

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

我的设置是:

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

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

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

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

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

事件:改变 选择类型:列 地区:..物品清单 列:Item_ID

操作:设置值 集合类型:SQL 语句 SQL 语句:SELECT I.COST 来自 WIP_ITEMS I WHERE I.ITEM_ID = ITEM_ID 提交项目:成本

结果是,当我从下拉列表中选择一个项目时,“Items.Cost”表中的所有值都以逗号分隔的值显示在字段中: Quote Item populating all item costs in one field

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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

要提交的项目: ITEM_ID