gpt4 book ai didi

database - 在 Oracle Form 中选择文本项的 LOV 后自动填充文本项

转载 作者:搜寻专家 更新时间:2023-10-30 20:24:33 25 4
gpt4 key购买 nike

考虑一个具有 3 个文本项的 Oracle 表单。第一个是'PO Number' 字段,用户通过调用文本项旁边的按钮的 LOV 输入该字段。第二个是“供应商代码”文本项,对应于所选的 PO 编号,第三个是“供应商名称” 对应于该供应商代码的文本项。

实际的 _PO_Number_ 和 _Supplier_Code_ 存在于数据库中的同一个表中,但 _Supplier_Name_ 位于不同的表中。我想要的只是当我从 LOV 中选择一个 PO 编号 时,剩余的 2 个字段应该相应地自动填充。

我应该使用什么触发器?我应该在哪里使用它以及我应该考虑哪些其他事项?请帮助我,因为我是 Oracle Forms 的菜鸟。

最佳答案

你有几种可能产生的后果

  1. 在用户选择 _PO_Number_ 后,直接在 WHEN-BUTTON-PRESSED 触发器中设置 _Supplier_Code_ 和 _Supplier_Name_

后果 - 当用户按下标准 KEY-LISTVAL 时,代码将不会运行,Supplier*_ items 保持为空

  1. 像这样在 _PO_Number_ 上写 WHEN-VALIDATE-ITEM

    declare
    cursor c is select _Supplier_Code_, _Supplier_Name_
    from suppliers_table
    where _PO_Number_ = :your_block._PO_Number_;
    begin
    open c;
    fetch c into :your_block._Supplier_Code_, :your_block._Supplier_Name_;
    close c;
    end;

后果 - 当 _PO_Number_ 项发生变化时,此代码始终运行。如果 _Supplier_Code_ 是数据库项,它可能会在从数据库查询记录后将其状态更改为 UPDATE。

  1. 直接在 LOV 中选择 _Supplier_Code_ 和 _Supplier_Name_ 项目。将您的选择写为两个表的连接。将所有三个项目设置为返回项目。如果您不想在 LOV 中向用户显示 _Supplier_Code_ 和 _Supplier_Name_,只需将它们的宽度设置为 0

我更喜欢解决方案 3。

关于database - 在 Oracle Form 中选择文本项的 LOV 后自动填充文本项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42596459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com