Oracle表单6i在过程/表单级别触发器中逐个验证主要详细信息表单项

时间:2014-02-04 05:41:55

标签: forms oracle validation plsql

我正在为遗留应用程序开发一个表单,它是一个简单的主要详细信息表单,有三个字段作为关系键

大师

DOC_TYPE,DOC_NUM,DOC_DATE,NOTES,FLAG_1

详细

DOC_TYPE,DOC_NUM,DOC_DATE,DESC_LINE_NUM,DESC_LINE,group_ID,FLAG_2,FLAG_3

表格背景:

-->master block
user will enter DOC_TYPE(FROM LOV),DOC_DATE (current sysdate) ,DOC_NUM (serial)

然后转移到

detail block:
here DOC_TYPE,DOC_NUM,DOC_DATE are hidden only line_num,desc line,Group_id,flag_2,flag_3 are visible.

现在,我想对它进行一些限制,如下面的

当用户选择DOC_TYPE ='X1'时       他应该只能将(1,3,9,10)放入group_id,
      并在flag_2或flag_3字段之一中输入任何值

当用户选择DOC_TYPE ='B7'时       他应该只能把(2,3,4,9,20)放在group_id中,       并在flag_2或flag_3字段之一中输入任何值

....还有一些像上面那样的检查

我想到了drop_down组合,但List会根据日期周期不断变化

我的问题我正在寻找一种方法来验证我提交之前在字段中输入的数据。 主块验证和细节验证阻止所有行。

提前

谢谢

1 个答案:

答案 0 :(得分:0)

要限制group_id中的输入值,可以使用包含所需值的记录组,或使用LOV。我可以建议一些方法:

  • 1 - 将group_id设为list_item;
  • 1.1 - 选择DOC_TYPE值时,您可以使用所需的值重新填充组。搜索有关POPULATE_GROUP的内容 和POPULATE_LIST内置。
  • 2 - 将group_id设为display_item 按钮来调用将填充它的LOV。
  • 2.1 - 创建两个LOV并在字段上更改属性LOV_NAME,如果您可以在查询中执行此操作,则只更改一个LOV。

要允许用户仅输入flag_2或flag_3,您可以在输入另一个属性值时更改其ENABLED或UPDATE_ALLOWED属性。我相信你可以使用WHEN-VALIDATE-ITEM或POST-TEXT-ITEM来做到这一点。不确定您是否也需要此限制,但如果您需要,这是我的提示。