IDEMPIERE-5275 Tabular Report Re-Run button/close parameter window (#1962)
* IDEMPIERE-5275 Tabular Report Re-Run button/close parameter window - Fix process info log & error not shown - Fix re-run missing context variable from menu * IDEMPIERE-5275 Tabular Report Re-Run button/close parameter window - turn off auto close after zoom
This commit is contained in:
parent
3791149ddc
commit
66b7b20619
|
@ -2855,4 +2855,20 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
||||||
element.setStyle(styleBuilder.toString());
|
element.setStyle(styleBuilder.toString());
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ProcessInfo m_pi = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param pi
|
||||||
|
*/
|
||||||
|
public void setProcessInfo(ProcessInfo pi) {
|
||||||
|
m_pi = pi;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return ProcessInfo
|
||||||
|
*/
|
||||||
|
public ProcessInfo getProcessInfo() {
|
||||||
|
return m_pi;
|
||||||
|
}
|
||||||
} // ReportEngine
|
} // ReportEngine
|
||||||
|
|
|
@ -93,6 +93,8 @@ import com.lowagie.text.pdf.PdfWriter;
|
||||||
*/
|
*/
|
||||||
public class ProcessDialog extends AbstractProcessDialog implements EventListener<Event>, IHelpContext, ITabOnCloseHandler
|
public class ProcessDialog extends AbstractProcessDialog implements EventListener<Event>, IHelpContext, ITabOnCloseHandler
|
||||||
{
|
{
|
||||||
|
public static final String SAVED_PREDEFINED_CONTEXT_VARIABLES = "__PredefinedContextVariables__";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* generated serial id
|
* generated serial id
|
||||||
*/
|
*/
|
||||||
|
@ -152,6 +154,11 @@ public class ProcessDialog extends AbstractProcessDialog implements EventListene
|
||||||
m_WindowNo = SessionManager.getAppDesktop().registerWindow(this);
|
m_WindowNo = SessionManager.getAppDesktop().registerWindow(this);
|
||||||
this.setAttribute(IDesktop.WINDOWNO_ATTRIBUTE, m_WindowNo);
|
this.setAttribute(IDesktop.WINDOWNO_ATTRIBUTE, m_WindowNo);
|
||||||
Env.setContext(Env.getCtx(), m_WindowNo, "IsSOTrx", isSOTrx ? "Y" : "N");
|
Env.setContext(Env.getCtx(), m_WindowNo, "IsSOTrx", isSOTrx ? "Y" : "N");
|
||||||
|
//save for rerun of report
|
||||||
|
if (predefinedContextVariables != null && MProcess.get(AD_Process_ID).isReport())
|
||||||
|
{
|
||||||
|
Env.setContext(Env.getCtx(), m_WindowNo, SAVED_PREDEFINED_CONTEXT_VARIABLES, predefinedContextVariables);
|
||||||
|
}
|
||||||
Env.setPredefinedVariables(Env.getCtx(), m_WindowNo, predefinedContextVariables);
|
Env.setPredefinedVariables(Env.getCtx(), m_WindowNo, predefinedContextVariables);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
@ -44,6 +44,7 @@ import org.adempiere.webui.Extensions;
|
||||||
import org.adempiere.webui.LayoutUtils;
|
import org.adempiere.webui.LayoutUtils;
|
||||||
import org.adempiere.webui.apps.AEnv;
|
import org.adempiere.webui.apps.AEnv;
|
||||||
import org.adempiere.webui.apps.BusyDialog;
|
import org.adempiere.webui.apps.BusyDialog;
|
||||||
|
import org.adempiere.webui.apps.ProcessDialog;
|
||||||
import org.adempiere.webui.apps.ProcessModalDialog;
|
import org.adempiere.webui.apps.ProcessModalDialog;
|
||||||
import org.adempiere.webui.apps.WReport;
|
import org.adempiere.webui.apps.WReport;
|
||||||
import org.adempiere.webui.apps.form.WReportCustomization;
|
import org.adempiere.webui.apps.form.WReportCustomization;
|
||||||
|
@ -52,6 +53,7 @@ import org.adempiere.webui.component.Label;
|
||||||
import org.adempiere.webui.component.ListItem;
|
import org.adempiere.webui.component.ListItem;
|
||||||
import org.adempiere.webui.component.Listbox;
|
import org.adempiere.webui.component.Listbox;
|
||||||
import org.adempiere.webui.component.Mask;
|
import org.adempiere.webui.component.Mask;
|
||||||
|
import org.adempiere.webui.component.ProcessInfoDialog;
|
||||||
import org.adempiere.webui.component.Tabpanel;
|
import org.adempiere.webui.component.Tabpanel;
|
||||||
import org.adempiere.webui.component.ToolBarButton;
|
import org.adempiere.webui.component.ToolBarButton;
|
||||||
import org.adempiere.webui.component.Window;
|
import org.adempiere.webui.component.Window;
|
||||||
|
@ -92,6 +94,7 @@ import org.compiere.print.ArchiveEngine;
|
||||||
import org.compiere.print.MPrintFormat;
|
import org.compiere.print.MPrintFormat;
|
||||||
import org.compiere.print.ReportEngine;
|
import org.compiere.print.ReportEngine;
|
||||||
import org.compiere.process.ProcessInfo;
|
import org.compiere.process.ProcessInfo;
|
||||||
|
import org.compiere.process.ProcessInfoUtil;
|
||||||
import org.compiere.tools.FileUtil;
|
import org.compiere.tools.FileUtil;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
|
@ -1038,8 +1041,25 @@ public class ZkReportViewer extends Window implements EventListener<Event>, IRep
|
||||||
fillComboReport(m_reportEngine.getPrintFormat().get_ID());
|
fillComboReport(m_reportEngine.getPrintFormat().get_ID());
|
||||||
|
|
||||||
revalidate();
|
revalidate();
|
||||||
|
|
||||||
|
if (Window.REPLACE.equals(getAttribute(Window.INSERT_POSITION_KEY))) {
|
||||||
|
if (m_reportEngine != null && m_reportEngine.getProcessInfo() != null) {
|
||||||
|
ProcessInfo pi = m_reportEngine.getProcessInfo();
|
||||||
|
checkProcessInfo(pi);
|
||||||
|
}
|
||||||
|
}
|
||||||
} // dynInit
|
} // dynInit
|
||||||
|
|
||||||
|
private void checkProcessInfo(ProcessInfo pi) {
|
||||||
|
ProcessInfoUtil.setLogFromDB(pi);
|
||||||
|
if (pi.isError() || (pi.getLogs() != null && pi.getLogs().length > 0)) {
|
||||||
|
ProcessInfoDialog dialog = new ProcessInfoDialog(pi, false);
|
||||||
|
dialog.setAutoCloseAfterZoom(false);
|
||||||
|
dialog.setPage(this.getPage());
|
||||||
|
dialog.doHighlighted();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fill ComboBox comboReport (report options)
|
* Fill ComboBox comboReport (report options)
|
||||||
* @param AD_PrintFormat_ID item to be selected
|
* @param AD_PrintFormat_ID item to be selected
|
||||||
|
@ -1189,6 +1209,9 @@ public class ZkReportViewer extends Window implements EventListener<Event>, IRep
|
||||||
if (getDesktop() != null)
|
if (getDesktop() != null)
|
||||||
clearTabOnCloseHandler();
|
clearTabOnCloseHandler();
|
||||||
}
|
}
|
||||||
|
ProcessInfo pi = dialog.getProcessInfo();
|
||||||
|
if (pi != null)
|
||||||
|
checkProcessInfo(pi);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(IDesktop.ON_CLOSE_WINDOW_SHORTCUT_EVENT.equals(event.getName())) {
|
else if(IDesktop.ON_CLOSE_WINDOW_SHORTCUT_EVENT.equals(event.getName())) {
|
||||||
|
@ -1572,6 +1595,14 @@ public class ZkReportViewer extends Window implements EventListener<Event>, IRep
|
||||||
if(!Util.isEmpty(showHelp))
|
if(!Util.isEmpty(showHelp))
|
||||||
pi.setShowHelp(showHelp);
|
pi.setShowHelp(showHelp);
|
||||||
setTabOnCloseHandler();
|
setTabOnCloseHandler();
|
||||||
|
String predefined = (String) getAttribute(ProcessDialog.SAVED_PREDEFINED_CONTEXT_VARIABLES);
|
||||||
|
if (!Util.isEmpty(predefined, true)) {
|
||||||
|
Env.setContext(Env.getCtx(), m_WindowNo, ProcessDialog.SAVED_PREDEFINED_CONTEXT_VARIABLES, predefined);
|
||||||
|
Env.setPredefinedVariables(Env.getCtx(), m_WindowNo, predefined);
|
||||||
|
}
|
||||||
|
if (getAttribute("IsSOTrx") != null) {
|
||||||
|
Env.setContext(Env.getCtx(), m_WindowNo, "IsSOTrx", getAttribute("IsSOTrx").toString());
|
||||||
|
}
|
||||||
ProcessModalDialog processModalDialog = new ProcessModalDialog(this, m_WindowNo, pi);
|
ProcessModalDialog processModalDialog = new ProcessModalDialog(this, m_WindowNo, pi);
|
||||||
ZKUpdateUtil.setWindowWidthX(processModalDialog, 850);
|
ZKUpdateUtil.setWindowWidthX(processModalDialog, 850);
|
||||||
this.getParent().appendChild(processModalDialog);
|
this.getParent().appendChild(processModalDialog);
|
||||||
|
@ -1782,6 +1813,7 @@ public class ZkReportViewer extends Window implements EventListener<Event>, IRep
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean ToolBarMenuRestictionLoaded = false;
|
private boolean ToolBarMenuRestictionLoaded = false;
|
||||||
|
|
||||||
public void updateToolbarAccess(int AD_Window_ID, int AD_Process_ID) {
|
public void updateToolbarAccess(int AD_Window_ID, int AD_Process_ID) {
|
||||||
if (ToolBarMenuRestictionLoaded)
|
if (ToolBarMenuRestictionLoaded)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -17,11 +17,14 @@
|
||||||
package org.adempiere.webui.window;
|
package org.adempiere.webui.window;
|
||||||
|
|
||||||
import org.adempiere.webui.apps.AEnv;
|
import org.adempiere.webui.apps.AEnv;
|
||||||
|
import org.adempiere.webui.apps.ProcessDialog;
|
||||||
import org.adempiere.webui.component.Window;
|
import org.adempiere.webui.component.Window;
|
||||||
import org.adempiere.webui.part.WindowContainer;
|
import org.adempiere.webui.part.WindowContainer;
|
||||||
import org.adempiere.webui.session.SessionManager;
|
import org.adempiere.webui.session.SessionManager;
|
||||||
import org.compiere.print.ReportEngine;
|
import org.compiere.print.ReportEngine;
|
||||||
import org.compiere.print.ReportViewerProvider;
|
import org.compiere.print.ReportViewerProvider;
|
||||||
|
import org.compiere.util.Env;
|
||||||
|
import org.compiere.util.Util;
|
||||||
import org.zkoss.zk.ui.Executions;
|
import org.zkoss.zk.ui.Executions;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,6 +58,11 @@ public class ZkReportViewerProvider implements ReportViewerProvider {
|
||||||
if(report.isReplaceTabContent()) {
|
if(report.isReplaceTabContent()) {
|
||||||
viewer.setAttribute(Window.INSERT_POSITION_KEY, Window.REPLACE);
|
viewer.setAttribute(Window.INSERT_POSITION_KEY, Window.REPLACE);
|
||||||
viewer.setAttribute(WindowContainer.REPLACE_WINDOW_NO, report.getWindowNo());
|
viewer.setAttribute(WindowContainer.REPLACE_WINDOW_NO, report.getWindowNo());
|
||||||
|
String predefined = Env.getContext(Env.getCtx(), report.getWindowNo(), ProcessDialog.SAVED_PREDEFINED_CONTEXT_VARIABLES);
|
||||||
|
if (!Util.isEmpty(predefined, true)) {
|
||||||
|
viewer.setAttribute(ProcessDialog.SAVED_PREDEFINED_CONTEXT_VARIABLES, predefined);
|
||||||
|
}
|
||||||
|
viewer.setAttribute("IsSOTrx", Env.getContext(Env.getCtx(), report.getWindowNo(), "IsSOTrx"));
|
||||||
}
|
}
|
||||||
viewer.setAttribute(WindowContainer.DEFER_SET_SELECTED_TAB, Boolean.TRUE);
|
viewer.setAttribute(WindowContainer.DEFER_SET_SELECTED_TAB, Boolean.TRUE);
|
||||||
SessionManager.getAppDesktop().showWindow(viewer);
|
SessionManager.getAppDesktop().showWindow(viewer);
|
||||||
|
|
|
@ -312,6 +312,7 @@ public class ReportCtl
|
||||||
}
|
}
|
||||||
re.setLanguageID(pi.getLanguageID());
|
re.setLanguageID(pi.getLanguageID());
|
||||||
re.setIsReplaceTabContent(pi.isReplaceTabContent());
|
re.setIsReplaceTabContent(pi.isReplaceTabContent());
|
||||||
|
re.setProcessInfo(pi);
|
||||||
createOutput(re, pi.isPrintPreview(), null);
|
createOutput(re, pi.isPrintPreview(), null);
|
||||||
return true;
|
return true;
|
||||||
} // startStandardReport
|
} // startStandardReport
|
||||||
|
|
Loading…
Reference in New Issue