我正在使用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错误。
答案 0 :(得分:0)
在javascript中,您需要使用函数$v()来获取项值。 & PX_ITEM。符号不能像这样工作,它使用存储在数据库中的会话值(在页面提交时设置或由设置session state的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')');
答案 1 :(得分: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"));