【发布时间】:2018-12-02 14:59:26
【问题描述】:
【问题讨论】:
-
你试过
WHEN-MOUSE-DOUBLECLICK触发器吗?
标签: oracle oracle11g oracle10g oracleforms
【问题讨论】:
WHEN-MOUSE-DOUBLECLICK触发器吗?
标签: oracle oracle11g oracle10g oracleforms
据我所知,
你已经创建了一个主从关系的表格,当你双击主部分的记录之一(下面有SCHOOL DATA标题),想在上面看到结果(带有 SCHOOL 标题)用于匹配 school_id 列。顺便说一句,我假设school_id 列对每条记录都有唯一的值。
所以,
从Data Blocks节点选择blk_school(其项目位于框架SCHOOL内的块),并将WHERE属性(在Property Palette的Database Node中)设置为
school_id = :blk_school_data.school_id
其中blk_school_data 是其项目位于框架SCHOOL DATA 内的块。然后,使用代码为块blk_school_data 创建一个WHEN-MOUSE-DOUBLECLICK 触发器:
go_block('blk_school');
clear_block(no_validate);
execute_query;
每当双击下块中的任何项目时都会带来数据。
【讨论】:
SCHOOL)还是下框(标题为SCHOOL DATA)?两个框架是否都依赖于同一张表..?
这种布局没有任何意义。表格和表单块都完全显示相同的数据(ID、姓名和地址),那么 - 这有什么意义呢?
此外,如果这是一个主从数据(至少看起来是这样),那么你就错了 - 为了显示详细数据,主数据必须存在。如果没有它们的主记录,您将无法获取详细记录,那么 - 您打算如何双击不存在的东西?我并不是说这是不可能,而是需要额外的编程(即修改块属性),我不确定这是否是你想要的。
也许您应该考虑创建一个包含您感兴趣的所有列的单个表格块,这样您就可以在一个表单中查询您想要的所有内容。它的源将是一个视图(创建为主表和详细表的连接)或 FROM 子句(它与视图具有相同的连接)。请注意 - 如果您需要启用更新 - 您可能需要创建 INSTEAD OF(数据库)触发器,创建其他表单触发器(例如 ON-UPDATE、PRE-UPDATE 等),所有这些都会使事情变得比他们应该的更复杂。
所以,如果您能解释您要解决的真正问题(而不是您所附的屏幕截图中显示的虚构问题),它会更容易提供帮助。
【讨论】: