IDEMPIERE-970 Role with the can Export option deselected would actually be able to export / jasper
This commit is contained in:
parent
dbeebf529f
commit
3a0d154c52
|
@ -0,0 +1,8 @@
|
||||||
|
-- May 29, 2013 12:13:00 PM COT
|
||||||
|
-- IDEMPIERE-970 Role with the "can Export" option deselected would actually be able to export
|
||||||
|
INSERT INTO AD_SysConfig (AD_SysConfig_ID,ConfigurationLevel,Value,Description,AD_SysConfig_UU,Created,Updated,AD_Org_ID,CreatedBy,IsActive,UpdatedBy,Name,AD_Client_ID,EntityType) VALUES (200030,'S','HTML','Sets default jasper output type','7dbe0a07-d566-419e-9f81-003cf0be6b52',TO_DATE('2013-05-29 12:13:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2013-05-29 12:13:00','YYYY-MM-DD HH24:MI:SS'),0,100,'Y',100,'ZK_REPORT_JASPER_OUTPUT_TYPE',0,'D')
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('20130529121300_IDEMPIERE-970.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
-- May 29, 2013 12:13:00 PM COT
|
||||||
|
-- IDEMPIERE-970 Role with the "can Export" option deselected would actually be able to export
|
||||||
|
INSERT INTO AD_SysConfig (AD_SysConfig_ID,ConfigurationLevel,Value,Description,AD_SysConfig_UU,Created,Updated,AD_Org_ID,CreatedBy,IsActive,UpdatedBy,Name,AD_Client_ID,EntityType) VALUES (200030,'S','HTML','Sets default jasper output type','7dbe0a07-d566-419e-9f81-003cf0be6b52',TO_TIMESTAMP('2013-05-29 12:13:00','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2013-05-29 12:13:00','YYYY-MM-DD HH24:MI:SS'),0,100,'Y',100,'ZK_REPORT_JASPER_OUTPUT_TYPE',0,'D')
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('20130529121300_IDEMPIERE-970.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
||||||
|
|
|
@ -117,6 +117,8 @@ public class MSysConfig extends X_AD_SysConfig
|
||||||
public static final String DOCACTIONBUTTON_SHOWACTIONNAME = "DOCACTIONBUTTON_SHOWACTIONNAME";
|
public static final String DOCACTIONBUTTON_SHOWACTIONNAME = "DOCACTIONBUTTON_SHOWACTIONNAME";
|
||||||
public static final String ZK_MAX_UPLOAD_SIZE = "ZK_MAX_UPLOAD_SIZE";
|
public static final String ZK_MAX_UPLOAD_SIZE = "ZK_MAX_UPLOAD_SIZE";
|
||||||
public static final String CALENDAR_ALTERNATE_TIMEZONE = "CALENDAR_ALTERNATE_TIMEZONE";
|
public static final String CALENDAR_ALTERNATE_TIMEZONE = "CALENDAR_ALTERNATE_TIMEZONE";
|
||||||
|
public static final String ZK_REPORT_JASPER_OUTPUT_TYPE="ZK_REPORT_JASPER_OUTPUT_TYPE";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard Constructor
|
* Standard Constructor
|
||||||
|
|
|
@ -18,13 +18,18 @@ import net.sf.jasperreports.engine.export.JRXlsExporter;
|
||||||
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
|
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
|
||||||
import net.sf.jasperreports.engine.util.LocalJasperReportsContext;
|
import net.sf.jasperreports.engine.util.LocalJasperReportsContext;
|
||||||
|
|
||||||
|
import ognl.DefaultTypeConverter;
|
||||||
|
|
||||||
import org.adempiere.exceptions.AdempiereException;
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.webui.component.Listbox;
|
import org.adempiere.webui.component.Listbox;
|
||||||
import org.adempiere.webui.component.Tabpanel;
|
import org.adempiere.webui.component.Tabpanel;
|
||||||
import org.adempiere.webui.component.Window;
|
import org.adempiere.webui.component.Window;
|
||||||
import org.adempiere.webui.panel.ITabOnCloseHandler;
|
import org.adempiere.webui.panel.ITabOnCloseHandler;
|
||||||
import org.adempiere.webui.session.SessionManager;
|
import org.adempiere.webui.session.SessionManager;
|
||||||
|
import org.compiere.model.MRole;
|
||||||
|
import org.compiere.model.MSysConfig;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
|
import org.compiere.util.Env;
|
||||||
import org.zkoss.util.media.AMedia;
|
import org.zkoss.util.media.AMedia;
|
||||||
import org.zkoss.zk.ui.Component;
|
import org.zkoss.zk.ui.Component;
|
||||||
import org.zkoss.zk.ui.Executions;
|
import org.zkoss.zk.ui.Executions;
|
||||||
|
@ -49,6 +54,7 @@ public class ZkJRViewer extends Window implements EventListener<Event>, ITabOnCl
|
||||||
private Listbox previewType = new Listbox();
|
private Listbox previewType = new Listbox();
|
||||||
private Iframe iframe;
|
private Iframe iframe;
|
||||||
private AMedia media;
|
private AMedia media;
|
||||||
|
private String defaultType;
|
||||||
/** Logger */
|
/** Logger */
|
||||||
private static CLogger log = CLogger.getCLogger(ZkJRViewer.class);
|
private static CLogger log = CLogger.getCLogger(ZkJRViewer.class);
|
||||||
|
|
||||||
|
@ -64,6 +70,9 @@ public class ZkJRViewer extends Window implements EventListener<Event>, ITabOnCl
|
||||||
}
|
}
|
||||||
|
|
||||||
private void init() {
|
private void init() {
|
||||||
|
final boolean isCanExport=MRole.getDefault().isCanExport();
|
||||||
|
defaultType=MSysConfig.getValue(MSysConfig.ZK_REPORT_JASPER_OUTPUT_TYPE);//It gets default Jasper output type
|
||||||
|
|
||||||
Borderlayout layout = new Borderlayout();
|
Borderlayout layout = new Borderlayout();
|
||||||
layout.setStyle("position: absolute; height: 99%; width: 99%");
|
layout.setStyle("position: absolute; height: 99%; width: 99%");
|
||||||
this.appendChild(layout);
|
this.appendChild(layout);
|
||||||
|
@ -71,12 +80,36 @@ public class ZkJRViewer extends Window implements EventListener<Event>, ITabOnCl
|
||||||
|
|
||||||
Toolbar toolbar = new Toolbar();
|
Toolbar toolbar = new Toolbar();
|
||||||
toolbar.setHeight("26px");
|
toolbar.setHeight("26px");
|
||||||
|
|
||||||
previewType.setMold("select");
|
previewType.setMold("select");
|
||||||
previewType.appendItem("PDF", "PDF");
|
if( isCanExport ){
|
||||||
previewType.appendItem("HTML", "HTML");
|
previewType.appendItem("HTML", "HTML");
|
||||||
previewType.appendItem("Excel", "XLS");
|
previewType.appendItem("PDF", "PDF");
|
||||||
previewType.appendItem("CSV", "CSV");
|
previewType.appendItem("Excel", "XLS");
|
||||||
|
previewType.appendItem("CSV", "CSV");
|
||||||
|
if( "HTML".equals(defaultType) ){
|
||||||
|
previewType.setSelectedIndex(0);
|
||||||
|
} else if( "PDF".equals(defaultType) ){
|
||||||
|
previewType.setSelectedIndex(1);
|
||||||
|
} else if( "XLS".equals(defaultType) ){
|
||||||
|
previewType.setSelectedIndex(2);
|
||||||
|
} else if( "CSV".equals(defaultType) ){
|
||||||
|
previewType.setSelectedIndex(3);
|
||||||
|
} else {
|
||||||
|
previewType.setSelectedIndex(1);
|
||||||
|
log.info("Format not Valid: "+defaultType);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
previewType.appendItem("HTML", "HTML");
|
||||||
|
previewType.appendItem("PDF", "PDF");
|
||||||
|
if( "XLS".equals(defaultType) || "CSV".equals(defaultType) ){
|
||||||
|
defaultType="PDF";
|
||||||
|
}else if("HTML".equals(defaultType) || "PDF".equals(defaultType)){}
|
||||||
|
else log.info("Format not Valid: "+defaultType);
|
||||||
|
|
||||||
|
previewType.setSelectedIndex(1);
|
||||||
|
}
|
||||||
|
|
||||||
toolbar.appendChild(previewType);
|
toolbar.appendChild(previewType);
|
||||||
previewType.addEventListener(Events.ON_SELECT, this);
|
previewType.addEventListener(Events.ON_SELECT, this);
|
||||||
|
|
||||||
|
@ -112,7 +145,7 @@ public class ZkJRViewer extends Window implements EventListener<Event>, ITabOnCl
|
||||||
prefix.append(ch);
|
prefix.append(ch);
|
||||||
} else {
|
} else {
|
||||||
prefix.append("_");
|
prefix.append("_");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return prefix.toString();
|
return prefix.toString();
|
||||||
}
|
}
|
||||||
|
@ -129,7 +162,7 @@ public class ZkJRViewer extends Window implements EventListener<Event>, ITabOnCl
|
||||||
|
|
||||||
private void cmd_render() {
|
private void cmd_render() {
|
||||||
try {
|
try {
|
||||||
renderReport();
|
renderReport();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new AdempiereException("Failed to render report", e);
|
throw new AdempiereException("Failed to render report", e);
|
||||||
}
|
}
|
||||||
|
@ -141,11 +174,14 @@ public class ZkJRViewer extends Window implements EventListener<Event>, ITabOnCl
|
||||||
}
|
}
|
||||||
|
|
||||||
private void renderReport() throws Exception {
|
private void renderReport() throws Exception {
|
||||||
|
String reportType;
|
||||||
ClassLoader cl = Thread.currentThread().getContextClassLoader();
|
ClassLoader cl = Thread.currentThread().getContextClassLoader();
|
||||||
try {
|
try {
|
||||||
Thread.currentThread().setContextClassLoader(JasperReport.class.getClassLoader());
|
Thread.currentThread().setContextClassLoader(JasperReport.class.getClassLoader());
|
||||||
Listitem selected = previewType.getSelectedItem();
|
Listitem selected = previewType.getSelectedItem();
|
||||||
if (selected == null || "PDF".equals(selected.getValue())) {
|
reportType=selected.getValue();
|
||||||
|
if ( "PDF".equals( reportType ) )
|
||||||
|
{
|
||||||
String path = System.getProperty("java.io.tmpdir");
|
String path = System.getProperty("java.io.tmpdir");
|
||||||
String prefix = makePrefix(jasperPrint.getName());
|
String prefix = makePrefix(jasperPrint.getName());
|
||||||
if (log.isLoggable(Level.FINE))
|
if (log.isLoggable(Level.FINE))
|
||||||
|
@ -162,7 +198,7 @@ public class ZkJRViewer extends Window implements EventListener<Event>, ITabOnCl
|
||||||
media = new AMedia(getTitle(), "pdf", "application/pdf", file, true);
|
media = new AMedia(getTitle(), "pdf", "application/pdf", file, true);
|
||||||
|
|
||||||
|
|
||||||
} else if ("HTML".equals(previewType.getSelectedItem().getValue())) {
|
} else if ("HTML".equals(reportType)) {
|
||||||
String path = System.getProperty("java.io.tmpdir");
|
String path = System.getProperty("java.io.tmpdir");
|
||||||
String prefix = makePrefix(jasperPrint.getName());
|
String prefix = makePrefix(jasperPrint.getName());
|
||||||
if (log.isLoggable(Level.FINE))
|
if (log.isLoggable(Level.FINE))
|
||||||
|
@ -181,7 +217,7 @@ public class ZkJRViewer extends Window implements EventListener<Event>, ITabOnCl
|
||||||
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, request.getContextPath()+"/images/report/");
|
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, request.getContextPath()+"/images/report/");
|
||||||
exporter.exportReport();
|
exporter.exportReport();
|
||||||
media = new AMedia(getTitle(), "html", "text/html", file, false);
|
media = new AMedia(getTitle(), "html", "text/html", file, false);
|
||||||
} else if ("XLS".equals(previewType.getSelectedItem().getValue())) {
|
} else if ("XLS".equals(reportType)) {
|
||||||
String path = System.getProperty("java.io.tmpdir");
|
String path = System.getProperty("java.io.tmpdir");
|
||||||
String prefix = makePrefix(jasperPrint.getName());
|
String prefix = makePrefix(jasperPrint.getName());
|
||||||
if (log.isLoggable(Level.FINE))
|
if (log.isLoggable(Level.FINE))
|
||||||
|
@ -199,7 +235,7 @@ public class ZkJRViewer extends Window implements EventListener<Event>, ITabOnCl
|
||||||
exporterXLS.exportReport();
|
exporterXLS.exportReport();
|
||||||
media = new AMedia(getTitle(), "xls", "application/vnd.ms-excel", file, true);
|
media = new AMedia(getTitle(), "xls", "application/vnd.ms-excel", file, true);
|
||||||
|
|
||||||
}else if ("CSV".equals(previewType.getSelectedItem().getValue())) {
|
}else if ("CSV".equals(reportType)) {
|
||||||
String path = System.getProperty("java.io.tmpdir");
|
String path = System.getProperty("java.io.tmpdir");
|
||||||
String prefix = makePrefix(jasperPrint.getName());
|
String prefix = makePrefix(jasperPrint.getName());
|
||||||
if (log.isLoggable(Level.FINE))
|
if (log.isLoggable(Level.FINE))
|
||||||
|
|
Loading…
Reference in New Issue