2017-06-19 54 views
1

状态列中的数据库表中已存储状态,如O(OPEN)C(CLOSE)Oracle Forms中的条件触发器

我必须在oracle表单开发人员的前端状态列中显示此状态为OPENCLOSE

  1. 我必须使用哪种触发器?
  2. 该触发器的预期查询条件是什么?
+0

在表中,值存储为O和C? – user75ponic

+0

是的,就像只有......! –

+0

您的区块是基于表格还是视图?如果它是基于一个视图,那么你可以包括案件条件来检查O和C. – user75ponic

回答

2

你可以使用的数据块级的NEW-RECORD-INSTANCE,或在项目层面,无论哪种方式,你可以使用下面,假设你的块名称NEW-ITEM-INSTANCE是A和字段名是状态:

if nvl(:a.status,'C') = 'O' then 
    :a.status := 'Open'; 
else 
    :a.status := 'Closed'; 
end if; 
+0

我只从状态栏中获取O和C查询模式,我需要显示“打开”和“关闭”。 这种形式没有新模式。只有修改和查询模式存在 –

+0

这两个触发器每次在加载或创建块时执行,它们不依赖于您所在的模式。您也可以使用POST-QUERY来执行此操作。 –

+0

这些不是适合此目的的触发器。这些是导航事件。 –

1

你可以使用一个列表项为这个:

Item typeList Item 设置List StylePoplist 中和列表你可以映射属性元素你的价值观:

开放至O

关闭到C

然后,你将有一个下拉列表与值开和关,并自动将使用连接到它的价值数据库。

+0

如何在修改模式下禁用状态栏的修改..? –

+0

只需将数据库属性中允许和允许更新的属性设置为否,或者另一个选项是将该属性启用为否 – nightfox79

0

我会添加块级别后查询触发器并填充非基表的列。保持打开/关闭状态。