1

是否可以使用 plsql 获取默认项目值?我有一个验证,如果它失败,我想将项目重置为其默认值。我尝试使用apex_util.set_session_state('P_ITEM_NAME', null),但没有任何明显的效果。

如何检索默认项目或重置项目本身?

4

3 回答 3

2

在创建页面进程时,有一个叫做“显示内联验证错误”的条件,也许这会有所帮助?在此过程中,您可以将项目重置为空,然后当页面加载时,项目值将恢复为默认值。

升级版:

创建过程:

  • 处理点:在标头前加载

  • 条件:显示内联验证错误

  • 工艺来源:

    begin
      for i in (
       select t.ITEM_DEFAULT, t.item_name
        from apex_application_page_items t
        where t.application_id = :APP_ID
          and t.page_id = :APP_PAGE_ID
      ) loop
        apex_util.set_session_state(i.item_name, i.item_default);
      end loop;
    end;
    

这会将所有页面项目恢复为其默认值。这个解决方案有些难看,但我不知道这个问题的另一种解决方案。

于 2013-04-24T06:52:43.623 回答
0

:P_ITEM_NAME := null;

这里的区别是项目前面的“:”。像这样使用它可以访问该项目。我相信不需要使用撇号。

如果这不适用于您的版本,请尝试不使用 ;。

所以你可以使用:

:P_ITEM_NAME

获得价值。

于 2013-04-23T15:00:20.357 回答
0

我找不到任何可以使用项目返回默认值的函数。但是我可以使用默认项目设置来模仿这一点。当页面出现验证错误时,页面进程不会运行,因此我添加了条件页面进程,它执行与我的验证相同的检查,当这些检查表明验证失败时,它只会清除项目状态。

这很丑陋,因为它需要重复检查,并且似乎有必要在需要这种重置机制的所有页面中复制几乎相同的页面控件。

于 2013-04-23T18:52:27.820 回答