我正在尝试将apex 5.1中应用程序中的所有弹出页面从普通页面模板更改为非模态对话框页面模板
我将尝试描述完整的用例:
我有一个交互式报告页面,其中每个记录都有链接列,它会打开一个对话框窗口,用户可以在其中编辑记录或与记录进行交互。
该对话框具有“上一个/下一个”按钮,允许用户浏览记录。
在报表上设置过滤器时,对话框窗口应在“下一个/上一个”行为中考虑到这一点。
例如如果报表过滤器仅选择一行,则对话框窗口的“上一个/上一个”按钮将被禁用,因为报表中没有显示更多的行来浏览。
对于此功能,我需要将IR报告ID传递到非模式页面。
现在,IR报告中链接列的href属性应该类似于:
javascript:apex.navigation.dialog('f?p=123:40:12345678:::40:P40_SIGNAL_DEF_ID,P40_IR_REPORT_ID,P40_MODE:42,41982451655076402,E&p_dialog_cs=NwEcqexhNPGD1VziCXol65xHCP8',{title:'SIGNALS_DIGITAL',height:'auto',width:'720',maxWidth:'960',modal:false,dialog:null},'t-Dialog-page--standard '+'',apex.jQuery('#myStaticID'));
我只关注此链接中的两部分。一个是校验和部分(p_dialog_cs=NwEcqexhNPGD1VziCXol65xHCP8)
,另一部分是IR报告ID(41982451655076402)我在SQL查询中使用了apex_util.prepare_url
函数,但这没有返回IR报告ID,例如:
javascript:apex.navigation.dialog('f?p=123:40:12345678:::40:P40_SIGNAL_DEF_ID,P40_IR_REPORT_ID,P40_MODE:42,,E&p_dialog_cs=NwEcqexhNPGD1VziCXol65xHCP8',{title:'SIGNALS_DIGITAL',height:'auto',width:'720',maxWidth:'960',modal:false,dialog:null},'t-Dialog-page--standard '+'',apex.jQuery('#myStaticID'));
我无法在此查询中使用$v("myStaticID_report_id")
尝试在此处获取IR报告ID,但无法正常工作(尽管它在控制台中正常工作)
所以现在我正在用假字符串调用apex_util.prepare_url说'report_ID',我将结果作为参数传递给javascript函数。在javascript函数中,我要提取字符串的url部分(因为我需要校验和值),然后用$v("myStaticID_report_id")
替换伪变量,然后从那里调用apex.navigation.dialog
。
现在它可以正常工作了,但是在我的应用程序中,这需要重复近70页。所以我想知道是否有更好的方法可以做到这一点。
预先感谢