我正在尝试创建基于多项目数据库的表单。 当我打开它时,它总是只由一条记录填充。 我想要其中的功能,它将填充新创建的记录的所有字段,与第一个(从数据库中选择的)记录中的字段相同。只需从第一条记录中复制它们即可。
我正在尝试使用 WHEN-NEW-ITEM-INSTANCE 触发器和“:system.record_status IN ('NEW','INSERT')”条件,但我不知道如何告诉表单我需要我的第一张唱片的值(value)。 我的意思是,
IF :system.record_status IN ('NEW','INSERT')
THEN
:block.item := <<here goes pointer to my first record of that item>>
END IF;
那么,我如何从特定项目实例中获取值(value)?
提前致谢。
最佳答案
创建一个虚拟 block ,该 block 对用户来说是不可见的。使用默认记录填充它,作为 WHEN-NEW-FORM-INSTANCE 触发器的一部分。
然后在实际数据 block 中,您可以引用虚拟 block 中的项目来预填充项目。我可能会选择使用更高级别的触发器,例如 WHEN-CREATE-RECORD,而不是使用大量 WHEN-NEW-ITEM-INSTANCE 触发器,但这取决于设计的其余部分如何组合在一起。
<小时/>"Thats a crude solution"
抱歉,我没有意识到您正在向用户显示默认记录。但是,据我所知,Forms 没有任何机制来引用除当前记录之外的记录(完全披露:我已经有一段时间没有实际使用 Forms 了,而且我无权测试这是否仍然是案件)。
你可以做的是:
First_Record;
Duplicate_Record;
这也有一个缺点,因为用户可能会发现导航跳转令人困惑。
关于oracle - 我如何从特定项目实例中获取值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6043559/