【问题标题】:Field goes null when button press oracle forms?当按钮按下oracle表单时字段变为空?
【发布时间】:2018-08-27 07:58:43
【问题描述】:

我正在为 oracle 表单 10g 中的搜索数据创建表单

当用户从非数据库字段中选择 LOV 并按下搜索按钮时,非数据库字段变为空。按下按钮时我希望字段不为空

【问题讨论】:

    标签: oracle oracle10g oracleforms


    【解决方案1】:

    截图会有所帮助;目前尚不清楚该非数据库字段放置在哪里。如果它是一个表格布局论坛,它是否放置在所有其他字段中?还是它在控制、非数据库块中的某个地方?

    无论如何:这就是我的做法。

    首先,如果可能,请避免发明您自己的搜索算法。 Forms非常擅长自己做这些事情。很快:

    • 进入查询模式
    • 输入搜索条件(从值列表中选择;为什么不呢?)
    • 执行查询
    • 绝对不需要额外的编程(除了 LoV)

    如果出于某种原因,您必须“按自己的方式”做:

    • 将非数据库LoV字段放入单独的控制块中
    • WHEN-BUTTON-PRESSED应该
      • 使用 SET_BLOCK_PROPERTY 并将数据库块的 DEFAULT_WHERE(或者,甚至更好,ONETIME_WHERE)设置为选定的 LoV 值
      • 导航到数据库块 (GO_BLOCK)
      • EXECUTE_QUERY
    • 或者,WHEN-BUTTON-PRESSED 只会EXECUTE_QUERY,但您可以在设置搜索条件的数据库块上使用PRE-QUERY 触发器,例如:database_block.name := :control_block.lov_field;

    至于你的问题:

    • Lo​​V 字段似乎是数据库块的一部分,一旦执行查询,它就会被清除。看看你是否可以使用POST-QUERY trigger 重新填充它
    • 或者,如果不是,请检查 WHEN-BUTTON-PRESSED 触发器在做什么 - 也许它会清除它

    看看我写的有帮助。如果没有,请编辑问题(您的初始消息)并提供有助于我们帮助您的其他信息。

    【讨论】:

      猜你喜欢
      • 2019-09-06
      • 2021-05-11
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多