在主键中使用 lov 时会话项不会更改

session item does not change when using lov in primary key

我正在实施交互式网格以在 table 上执行 DML 操作。

合并了两列的主键 一个主键列仅显示并参考主 table 和另一个主键列,我希望有一个 LOV 到 select 值。 LOV 是动态 lov,具有显示和从另一个 table.

中选取的 return 值

插入没问题,但是为一行设置了会话状态项值,并且所有操作都在同一行上执行,而不管 selected.

你可以在这里看到一个例子 https://apex.oracle.com/pls/apex/f?p=128616:2:1964277347439::NO:::

master table name: sample 详细信息 table 姓名:sample_child

示例子项中的主键:ID 和名称 pop lov 在 NAME 中实现 LOV 值选自 table:Sample_uncle LOV显示:ID || '-' ||姓名 LOV return : ID

您可以尝试更新 sample_child table 的 blabla 列以查看问题。

我不确定如何才能让您查看实现。

我能想到的都试过了

这与您的主键有关,细节 table 似乎没有合适的主键,这就是为什么它总是尝试更新第一个条目,我认为这也是为什么每一行都是加载 table.

时标记

主键也会做拒绝为空的烦人事情,你可以看到如果你插入一个新行,中间列(这是一个PK)被填充't1001'。

因为你处理的是简单的 tables(而不是一大堆连接的 tables)我总是认为最好使用 ROWID 作为 PK。因此,将 ROWID 设置为 master table 的 PK,并将 ROWID 设置为 detail table。并让明细 table 有一个大师 table 成为你的大师 table,然后单击明细中的第一列 table 并为其设置主列。而且我个人也总是隐藏链接的列。

我建议您尽可能使用 ROWID,因为它更易于使用,这确实意味着您可能需要设置验证以防止有人为您的实际 PK 添加重复值,但由于 PK 是在基础 table 中,他们无论如何都无法输入(但如果你有验证,错误会更漂亮),而如果列是 PK,APEX 默认会防止重复。

希望对您有所帮助