2

我正在使用 Oracle Apex 5。在页面上,我填写了两个项目(动态操作会根据这两个项目的值自动刷新交互式报告)。

我还有一个 PRINT 按钮,它应该打开一个新页面并发送这两个项目的值。因为我希望这个新页面在新窗口(选项卡)中打开,所以我通过将按钮的操作重定向到 url 并在 url 中输入这个 Javascript 来做到这一点:

javascript:var myWindow = window.open('f p=800:105:&APP_SESSION.::NO::REP_NAME,PAR1_NAME,PAR1_VAL,PAR2_NAME,PAR2_VAL:NarudzbenicaDobavljacV2,P_ACCOUNT_ID,&P15_SUPLIER_ID.,P_DATE,&P15_DATE.');

这是关键!该函数不获取值。只有在页面提交或刷新 (F5) 后它才会起作用。如何使其工作而不必这样做?

我还尝试将按钮设置为提交页面操作,并使用相同的 javascript 添加提交后分支,但这只会引发 500 错误。

4

2 回答 2

0

如果这个问题仍然存在,试试这个:

javascript:var myWindow = window.open('f?p=800:105:&SESSION.::NO::REP_NAME,PAR1_NAME,PAR1_VAL,PAR2_NAME,PAR2_VAL:NarudzbenicaDobavljacV2,P_ACCOUNT_ID,' + $v("P15_SUPLIER_ID") +',P_DATE,' + $v("P15_DATE"));
于 2016-09-21T19:48:27.817 回答
0

在 javascript 中,您需要使用函数$v()来获取项目值。&PX_ITEM。表示法不是这样工作的,它使用存储在数据库中的会话值(在页面提交时设置或由设置会话状态的 pl/sql 块设置)。您需要像这样设置网址:

javascript:var myWindow = window.open('f?p=800:105:&SESSION.::NO::REP_NAME,PAR1_NAME,PAR1_VAL,PAR2_NAME,PAR2_VAL:NarudzbenicaDobavljacV2,' + $v('P_ACCOUNT_ID') + ',' + $v('P15_SUPLIER_ID') +',' +$v('P_DATE') + ',' + $v('P15_DATE')');
于 2016-09-09T16:13:30.587 回答