【问题标题】:How to create a new record and open a page in APEX 5如何在 APEX 5 中创建新记录并打开页面
【发布时间】:2015-11-06 20:01:06
【问题描述】:

我正在尝试使用动态操作将“执行 PL/SQL 代码”绑定到按钮,然后使用新 ID (execid) 打开页面

begin
insert into SMIG_EXECUTION(EXECNAME, CALL, STEPID, DURATIONMIN)
values('bla bla',REPLACE(:P31_CALLTEMPLATE,'#STEPID#',to_char(:P31_STEPID)), :P31_STEPID, 0)

returning execid into :P31_NEWEXECID ;
end;

PL/SQL 代码正在运行,但我无法动摇将新页面作为动态操作打开并将新值作为 P2_EXECID 传递的链接。

【问题讨论】:

  • 打开新页面的代码/链接在哪里?
  • 谢谢西蒙,你问了我要问的问题。如果我知道它在哪里,我就不需要问了。如何使用动态操作打开页面?
  • 你想以什么方式“打开一个新页面”?只需导航到具有新 ID 的详细信息页面?还是您在谈论模态对话框?
  • 我想在上面的 2 个动态操作之后打开一个页面。我没有看到任何打开页面的动态操作。 EXECUTE 按钮,可以按住{提交页面,重定向到此应用程序中的页面或由动态操作定义} 我的按钮是用后者定义的。但我也想打开一个页面,这导致我不能同时做这两个,因为我没有任何动态操作中的打开页面。
  • 我只是不明白您为什么要在运行 DA 后“打开”一个新页面。使用分支有什么问题?

标签: oracle-apex oracle-apex-5


【解决方案1】:

您可以使用 window.open()(javascript 函数)来完成此操作

open() 方法打开一个新的浏览器窗口。

  • 将 TRUE ACTION 添加到您现有的动态操作中

  • 为您的操作选择执行 JAVASCRIPT 代码

  • 然后粘贴这段代码:

    window.open('f?p='+$v('pFlowId')+':'+$v('pFlowStepId')+':'+$v('pFlowInstance')+'::::<page item here>:<value of the item to be passed>:','_self');
    

注意:
$v('pFlowId') => 应用程序 ID
$v('pFlowStepId') => 页码
$v('pFlowInstance') => 会话 ID

  • 如果需要传递多个项目/值,您可以通过使用逗号作为分隔符列出项目/值来做到这一点

    即'f?p=.....:P2_ITEM1,P2_ITEM2,P2_ITEM3:1,2,3:';

编辑:添加第二个参数

【讨论】:

  • 它似乎不起作用。而且我不想打开一个新窗口,所以我正在尝试寻找另一种选择。
  • 你能在这里发布你在动态操作中所做的事情吗?open 方法的第二个参数让你决定要在哪里打开 url(主页、新标签或新窗口)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-24
  • 2014-11-02
  • 2016-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多