1

我正在实现一个交互式网格来对表执行 DML 操作。

它结合了两列的主键一个主键列仅显示并引用主表和另一个主键列我想要一个 LOV 来选择值。LOV 是动态 lov,具有从另一个表中选择的显示和返回值。

插入很好,但是为一行设置了会话状态项值,并且所有操作都在同一行上执行,而不管选择了哪一行。

您可以在此处查看示例 https://apex.oracle.com/pls/apex/f?p=128616:2:1964277347439::NO :::

主表名:样本明细表名:sample_child

示例子项中的主键:ID 和名称 pop lov 在 NAME LOV 值中实现,取自表:Sample_uncle LOV 显示:ID || '-' || 姓名 LOV 返回:ID

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

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

我已经尝试了所有我能想到的选项

4

1 回答 1

1

这与您的主键有关,详细表似乎没有正确的主键,这就是为什么它总是试图更新第一个条目,我认为这也是为什么在加载表时每行都被标记的原因。

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

由于您正在处理简单的表(而不是一大堆连接表),因此我始终认为最好使用 ROWID 作为 PK。所以主表设置ROWID为PK,明细表设置ROWID。并让明细表有一个主表作为您的主表,然后单击明细表中的第一列并为其设置主列。而且我个人也总是隐藏链接的列。

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

我希望这有帮助

于 2019-05-28T07:40:42.533 回答