Plsql Oracle表单中的条件触发器

Plsql Oracle表单中的条件触发器,plsql,oracleforms,Plsql,Oracleforms,在数据库表的“状态”列中,状态已存储为O(打开)或C(关闭) 我必须在oracle forms developer的前端状态列中将此状态显示为OPEN和CLOSE 我必须使用哪种触发器 该触发器的预期查询条件是什么 您可以在数据块级别上使用NEW-RECORD-INSTANCE,也可以在项目级别上使用NEW-ITEM-INSTANCE,假设您的块名为,字段名为STATUS,则您可以使用以下两种方式: if nvl(:a.status,'C') = 'O' then :a.status :=

在数据库表的“状态”列中,状态已存储为
O(打开)
C(关闭)

我必须在oracle forms developer的前端状态列中将此状态显示为
OPEN
CLOSE

  • 我必须使用哪种触发器
  • 该触发器的预期查询条件是什么

  • 您可以在数据块级别上使用NEW-RECORD-INSTANCE,也可以在项目级别上使用NEW-ITEM-INSTANCE,假设您的块名为,字段名为STATUS,则您可以使用以下两种方式:

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

    您可以为此使用列表项:

    项目类型
    放入
    列表项目
    列表样式设置为
    Poplist
    在属性元素列表中,您可以映射您的值:

    开放给

    接近C


    然后,您将有一个下拉列表,其中的值是打开和关闭的,它将自动使用数据库中附加的值。

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

    在表中,值存储为O和C?是,仅此而已。。。!块是基于表还是基于视图?如果它基于一个视图,那么您可以包括用于检查O和C的案例条件。在这种情况下,您可以使用ElieI提供的方法。在查询模式下,我只从状态列中获取O和C,我需要显示“打开”和“关闭”。这种形式没有新的模式。只有“修改”和“查询”模式,这两个触发器在每次加载或创建块时都会执行,它们不依赖于您所处的模式。您也可以使用POST-QUERY来执行此操作。这些不是用于此目的的适当触发器。这些是航行事件。@JeffreyKemp我不是有意伤害你的感情的,对不起。如果您有更好的答案,它们就可以工作。请发布。如何在修改模式下禁用对状态列的修改..?只需将数据库属性中的属性insert allowed和update allowed设置为“否”,或者另一个选项是将属性enabled设置为“否”