IDEMPIERE-2640:Performance: Html/Tabular reports size could be reduced

fix: let html export is same as html in viewer
This commit is contained in:
hieplq 2015-07-13 02:57:44 +07:00
parent 8ac242da5b
commit fdf07190b9
2 changed files with 22 additions and 7 deletions

View File

@ -590,14 +590,27 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
} }
/** /**
* Write HTML to writer * Write HTML to writer with isExport = false
* @param writer writer * @param writer writer
* @param onlyTable if false create complete HTML document * @param onlyTable if false create complete HTML document
* @param language optional language - if null numbers/dates are not formatted * @param language optional language - if null numbers/dates are not formatted
* @param extension optional extension for html output * @param extension optional extension for html output
* @return true if success * @return true if success
*/ */
public boolean createHTML (Writer writer, boolean onlyTable, Language language, IHTMLExtension extension) public boolean createHTML (Writer writer, boolean onlyTable, Language language, IHTMLExtension extension){
return createHTML (writer, onlyTable, language, extension, false);
}
/**
* Write HTML to writer
* @param writer writer
* @param onlyTable if false create complete HTML document
* @param language optional language - if null numbers/dates are not formatted
* @param extension optional extension for html output
* @param isExport when isExport = true will don't embed resource dependent zk framework
* @return true if success
*/
public boolean createHTML (Writer writer, boolean onlyTable, Language language, IHTMLExtension extension, boolean isExport)
{ {
try try
{ {
@ -622,7 +635,7 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
if (row != -1) if (row != -1)
{ {
m_printData.setRowIndex(row); m_printData.setRowIndex(row);
if (extension != null) if (extension != null && !isExport)
{ {
extension.extendRowElement(tr, m_printData); extension.extendRowElement(tr, m_printData);
} }
@ -672,7 +685,7 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
{ {
PrintDataElement pde = (PrintDataElement) obj; PrintDataElement pde = (PrintDataElement) obj;
String value = pde.getValueDisplay(language); // formatted String value = pde.getValueDisplay(language); // formatted
if (pde.getColumnName().endsWith("_ID") && extension != null) if (pde.getColumnName().endsWith("_ID") && extension != null && !isExport)
{ {
boolean isZoom = false; boolean isZoom = false;
if (item.getColumnName().equals("Record_ID")) { if (item.getColumnName().equals("Record_ID")) {
@ -776,7 +789,7 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
appendInlineCss (doc, styleBuild); appendInlineCss (doc, styleBuild);
} }
if (extension != null && extension.getScriptURL() != null) if (extension != null && extension.getScriptURL() != null && !isExport)
{ {
script jslink = new script(); script jslink = new script();
jslink.setLanguage("javascript"); jslink.setLanguage("javascript");
@ -785,7 +798,7 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
} }
appendInlineCss (doc); appendInlineCss (doc);
if (extension != null){ if (extension != null && !isExport){
extension.setWebAttribute(doc.getBody()); extension.setWebAttribute(doc.getBody());
} }

View File

@ -1042,7 +1042,9 @@ public class ZkReportViewer extends Window implements EventListener<Event>, ITab
else if (ext.equals("html") || ext.equals("htm")) else if (ext.equals("html") || ext.equals("htm"))
{ {
StringWriter sw = new StringWriter(); StringWriter sw = new StringWriter();
m_reportEngine.createHTML(sw, false, m_reportEngine.getPrintFormat().getLanguage()); String contextPath = Executions.getCurrent().getContextPath();
String contextFullPath = Executions.getCurrent().getDesktop().getWebApp().getRealPath("/");
m_reportEngine.createHTML(sw, false, m_reportEngine.getPrintFormat().getLanguage(), new HTMLExtension(contextFullPath, contextPath, "rp", this.getUuid()), true);
data = sw.getBuffer().toString().getBytes(); data = sw.getBuffer().toString().getBytes();
} }
else if (ext.equals("xls")) else if (ext.equals("xls"))