diff --git a/org.adempiere.base/src/org/compiere/model/MLookup.java b/org.adempiere.base/src/org/compiere/model/MLookup.java index 770e9ea245..673ff020dd 100644 --- a/org.adempiere.base/src/org/compiere/model/MLookup.java +++ b/org.adempiere.base/src/org/compiere/model/MLookup.java @@ -668,10 +668,10 @@ public final class MLookup extends Lookup implements Serializable { log.fine(m_info.KeyColumn + ": Loader NOT Validated: " + m_info.ValidationCode); // Bug 1843862 - Lookups not working on Report Viewer window - // globalqss - when called from Viewer window ignore error about unparsabe context variables + // globalqss - when called from Viewer window ignore error about not parseable context variables // there is no context in report viewer windows - //TODO: need different approach that is not client dependent - if (Ini.isClient() == false /*|| !Env.getWindow(m_info.WindowNo).getClass().getName().equals("org.compiere.print.Viewer")*/) { + boolean isReportViewer = Env.getContext(m_info.ctx, m_info.WindowNo, "_WinInfo_IsReportViewer").equals("Y"); + if (!isReportViewer) { m_lookup.clear(); return; } diff --git a/org.adempiere.ui.swing/src/org/compiere/print/Viewer.java b/org.adempiere.ui.swing/src/org/compiere/print/Viewer.java index 3c5fc618f9..9d20a06bc1 100644 --- a/org.adempiere.ui.swing/src/org/compiere/print/Viewer.java +++ b/org.adempiere.ui.swing/src/org/compiere/print/Viewer.java @@ -151,6 +151,7 @@ public class Viewer extends CFrame super(gc); log.info(""); m_WindowNo = AEnv.createWindowNo(this); + Env.setContext(re.getCtx(), m_WindowNo, "_WinInfo_IsReportViewer", "Y"); m_reportEngine = re; m_AD_Table_ID = re.getPrintFormat().getAD_Table_ID(); if (!MRole.getDefault().isCanReport(m_AD_Table_ID)) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java index 5acbfa2228..24c9ed7e1b 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java @@ -39,6 +39,7 @@ import org.adempiere.webui.event.DrillEvent; import org.adempiere.webui.event.ZoomEvent; import org.adempiere.webui.panel.StatusBarPanel; import org.adempiere.webui.report.HTMLExtension; +import org.adempiere.webui.session.SessionManager; import org.compiere.model.GridField; import org.compiere.model.MArchive; import org.compiere.model.MClient; @@ -145,6 +146,8 @@ public class ZkReportViewer extends Window implements EventListener { super(); log.info(""); + m_WindowNo = SessionManager.getAppDesktop().registerWindow(this); + Env.setContext(re.getCtx(), m_WindowNo, "_WinInfo_IsReportViewer", "Y"); m_reportEngine = re; m_AD_Table_ID = re.getPrintFormat().getAD_Table_ID(); if (!MRole.getDefault().isCanReport(m_AD_Table_ID)) @@ -512,7 +515,7 @@ public class ZkReportViewer extends Window implements EventListener { */ public void onClose() { - Env.clearWinContext(m_WindowNo); + SessionManager.getAppDesktop().unregisterWindow(m_WindowNo); m_reportEngine = null; m_ctx = null; super.onClose();