IDEMPIERE-3104:default report engine is not good for big report
for html
This commit is contained in:
parent
ed1e05b0bb
commit
ab552fb5a1
|
@ -631,8 +631,47 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
||||||
table.setNeedClosingTag(false);
|
table.setNeedClosingTag(false);
|
||||||
PrintWriter w = new PrintWriter(writer);
|
PrintWriter w = new PrintWriter(writer);
|
||||||
|
|
||||||
|
if (onlyTable)
|
||||||
|
table.output(w);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
XhtmlDocument doc = new XhtmlDocument();
|
||||||
|
doc.getHtml().setNeedClosingTag(false);
|
||||||
|
doc.getBody().setNeedClosingTag(false);
|
||||||
|
doc.appendHead("<meta charset=\"UTF-8\" />");
|
||||||
|
doc.appendBody(table);
|
||||||
|
appendInlineCss (doc);
|
||||||
|
if (extension != null && extension.getStyleURL() != null)
|
||||||
|
{
|
||||||
|
// maybe cache style content with key is path
|
||||||
|
String pathStyleFile = extension.getFullPathStyle(); // creates a temp file - delete below
|
||||||
|
Path path = Paths.get(pathStyleFile);
|
||||||
|
List<String> styleLines = Files.readAllLines(path, Ini.getCharset());
|
||||||
|
Files.delete(path); // delete temp file
|
||||||
|
StringBuilder styleBuild = new StringBuilder();
|
||||||
|
for (String styleLine : styleLines){
|
||||||
|
styleBuild.append(styleLine); //.append("\n");
|
||||||
|
}
|
||||||
|
appendInlineCss (doc, styleBuild);
|
||||||
|
}
|
||||||
|
if (extension != null && extension.getScriptURL() != null && !isExport)
|
||||||
|
{
|
||||||
|
script jslink = new script();
|
||||||
|
jslink.setLanguage("javascript");
|
||||||
|
jslink.setSrc(extension.getScriptURL());
|
||||||
|
doc.appendHead(jslink);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (extension != null && !isExport){
|
||||||
|
extension.setWebAttribute(doc.getBody());
|
||||||
|
}
|
||||||
|
|
||||||
|
doc.output(w);
|
||||||
|
}
|
||||||
|
|
||||||
thead thead = new thead();
|
thead thead = new thead();
|
||||||
tbody tbody = new tbody();
|
tbody tbody = new tbody();
|
||||||
|
tbody.setNeedClosingTag(false);
|
||||||
|
|
||||||
Boolean [] colSuppressRepeats = m_layout == null || m_layout.colSuppressRepeats == null? LayoutEngine.getColSuppressRepeats(m_printFormat):m_layout.colSuppressRepeats;
|
Boolean [] colSuppressRepeats = m_layout == null || m_layout.colSuppressRepeats == null? LayoutEngine.getColSuppressRepeats(m_printFormat):m_layout.colSuppressRepeats;
|
||||||
Object [] preValues = new Object [colSuppressRepeats.length];
|
Object [] preValues = new Object [colSuppressRepeats.length];
|
||||||
|
@ -654,7 +693,7 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
||||||
tr.setClass(cssPrefix + "-lastgrouprow");
|
tr.setClass(cssPrefix + "-lastgrouprow");
|
||||||
}
|
}
|
||||||
// add row to table body
|
// add row to table body
|
||||||
tbody.addElement(tr);
|
//tbody.addElement(tr);
|
||||||
} else {
|
} else {
|
||||||
// add row to table header
|
// add row to table header
|
||||||
thead.addElement(tr);
|
thead.addElement(tr);
|
||||||
|
@ -792,50 +831,21 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
||||||
}
|
}
|
||||||
} // printed
|
} // printed
|
||||||
} // for all columns
|
} // for all columns
|
||||||
|
|
||||||
|
/* output table header */
|
||||||
|
if (row == -1){
|
||||||
|
thead.output(w);
|
||||||
|
// output open of tbody
|
||||||
|
tbody.output(w);
|
||||||
|
}else{
|
||||||
|
// output row by row
|
||||||
|
tr.output(w);
|
||||||
|
}
|
||||||
|
|
||||||
} // for all rows
|
} // for all rows
|
||||||
|
|
||||||
if (onlyTable)
|
|
||||||
table.output(w);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
XhtmlDocument doc = new XhtmlDocument();
|
|
||||||
doc.getHtml().setNeedClosingTag(false);
|
|
||||||
doc.getBody().setNeedClosingTag(false);
|
|
||||||
doc.appendHead("<meta charset=\"UTF-8\" />");
|
|
||||||
doc.appendBody(table);
|
|
||||||
appendInlineCss (doc);
|
|
||||||
if (extension != null && extension.getStyleURL() != null)
|
|
||||||
{
|
|
||||||
// maybe cache style content with key is path
|
|
||||||
String pathStyleFile = extension.getFullPathStyle(); // creates a temp file - delete below
|
|
||||||
Path path = Paths.get(pathStyleFile);
|
|
||||||
List<String> styleLines = Files.readAllLines(path, Ini.getCharset());
|
|
||||||
Files.delete(path); // delete temp file
|
|
||||||
StringBuilder styleBuild = new StringBuilder();
|
|
||||||
for (String styleLine : styleLines){
|
|
||||||
styleBuild.append(styleLine); //.append("\n");
|
|
||||||
}
|
|
||||||
appendInlineCss (doc, styleBuild);
|
|
||||||
}
|
|
||||||
if (extension != null && extension.getScriptURL() != null && !isExport)
|
|
||||||
{
|
|
||||||
script jslink = new script();
|
|
||||||
jslink.setLanguage("javascript");
|
|
||||||
jslink.setSrc(extension.getScriptURL());
|
|
||||||
doc.appendHead(jslink);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (extension != null && !isExport){
|
|
||||||
extension.setWebAttribute(doc.getBody());
|
|
||||||
}
|
|
||||||
|
|
||||||
doc.output(w);
|
|
||||||
}
|
|
||||||
|
|
||||||
thead.output(w);
|
|
||||||
tbody.output(w);
|
|
||||||
|
|
||||||
w.println();
|
w.println();
|
||||||
|
w.println("</tbody>");
|
||||||
w.println("</table>");
|
w.println("</table>");
|
||||||
if (!onlyTable)
|
if (!onlyTable)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue