From d54fb7cd8510b5721f67055be04e5a5001531a2e Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Tue, 4 Aug 2009 06:18:22 +0000 Subject: [PATCH] https://sourceforge.net/tracker/index.php?func=detail&aid=2804027&group_id=176962&atid=955896# - Fixed problem where report name sometime is not a valid file prefix --- .../webui/window/ZkReportViewer.java | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/zkwebui/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java b/zkwebui/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java index e0be247e21..b4131963ac 100644 --- a/zkwebui/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java +++ b/zkwebui/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java @@ -333,11 +333,23 @@ public class ZkReportViewer extends Window implements EventListener { if (selected == null || "PDF".equals(selected.getValue())) { media = new AMedia(getTitle(), "pdf", "application/pdf", m_reportEngine.createPDFData()); } else if ("HTML".equals(previewType.getSelectedItem().getValue())) { - File file = File.createTempFile(m_reportEngine.getName(), ".html"); + String path = System.getProperty("java.io.tmpdir"); + String prefix = makePrefix(m_reportEngine.getName()); + if (log.isLoggable(Level.FINE)) + { + log.log(Level.FINE, "Path="+path + " Prefix="+prefix); + } + File file = File.createTempFile(prefix, ".html", new File(path)); m_reportEngine.createHTML(file, false, AEnv.getLanguage(Env.getCtx()), new HTMLExtension(Executions.getCurrent().getContextPath(), "rp", this.getUuid())); media = new AMedia(getTitle(), "html", "text/html", file, false); } else if ("XLS".equals(previewType.getSelectedItem().getValue())) { - File file = File.createTempFile(m_reportEngine.getName(), ".html"); + String path = System.getProperty("java.io.tmpdir"); + String prefix = makePrefix(m_reportEngine.getName()); + if (log.isLoggable(Level.FINE)) + { + log.log(Level.FINE, "Path="+path + " Prefix="+prefix); + } + File file = File.createTempFile(prefix, ".html", new File(path)); m_reportEngine.createXLS(file, AEnv.getLanguage(Env.getCtx())); media = new AMedia(getTitle(), "xls", "application/vnd.ms-excel", file, true); } @@ -345,6 +357,19 @@ public class ZkReportViewer extends Window implements EventListener { iframe.setContent(media); } + private String makePrefix(String name) { + StringBuffer prefix = new StringBuffer(); + char[] nameArray = name.toCharArray(); + for (char ch : nameArray) { + if (Character.isLetterOrDigit(ch)) { + prefix.append(ch); + } else { + prefix.append("_"); + } + } + return prefix.toString(); + } + /** * Dynamic Init */