");
- String paraWrapId = null;
- if (parameterTable != null) {
- paraWrapId = cssPrefix + "-para-table-wrap";
- w.print("
");
- w.print(""+Msg.getMsg(getCtx(), "Parameter")+"
");
- w.print(compress(parameterTable.toString(), minify));
-
- tr tr = new tr();
- tr.setClass("tr-parameter");
-
- MQuery query = m_query;
- if (m_query.getReportProcessQuery() != null)
- query = m_query.getReportProcessQuery();
- for (int r = 0; r < query.getRestrictionCount(); r++)
- {
- if (r > 0) {
- tr = new tr();
- tr.setClass("tr-parameter");
- }
-
- td td = new td();
- tr.addElement(td);
- td.addElement(query.getInfoName(r));
-
- td = new td();
- tr.addElement(td);
- td.addElement(query.getInfoOperator(r));
-
- td = new td();
- tr.addElement(td);
- td.addElement(query.getInfoDisplayAll(r));
-
- w.print(compress(tr.toString(), minify));
- }
-
- w.print("");
- w.print(" ");
- }
-
- StringBuilder tableWrapDiv = new StringBuilder();
- tableWrapDiv.append("
{if (this.scrollTop > 0) ")
- .append(" if(").append(paraWrapGet).append(".open) ")
- .append(paraWrapGet).append(".open=false;}, 100)'");
- }
- tableWrapDiv.append(" >");
-
- w.print(compress(tableWrapDiv.toString(), minify));
- w.print(compress(table.toString(), minify));
- }
-
- thead thead = new thead();
- tbody tbody = new tbody();
- tbody.setNeedClosingTag(false);
-
- Boolean [] colSuppressRepeats = m_layout == null || m_layout.colSuppressRepeats == null? LayoutEngine.getColSuppressRepeats(m_printFormat):m_layout.colSuppressRepeats;
- Object [] preValues = null;
- if (colSuppressRepeats != null){
- preValues = new Object [colSuppressRepeats.length];
- }
-
- int printColIndex = -1;
- HashMap suppressMap = new HashMap<>();
-
- // for all rows (-1 = header row)
- for (int row = -1; row < m_printData.getRowCount(); row++)
- {
- tr tr = new tr();
- if (row != -1)
- {
- m_printData.setRowIndex(row);
- if (extension != null && !isExport)
- {
- extension.extendRowElement(tr, m_printData);
- }
- if (m_printData.isFunctionRow()) {
- tr.setClass(cssPrefix + "-functionrow");
- } else if ( row < m_printData.getRowCount() && m_printData.isFunctionRow(row+1)) {
- tr.setClass(cssPrefix + "-lastgrouprow");
- }
- // add row to table body
- //tbody.addElement(tr);
- } else {
- // add row to table header
- thead.addElement(tr);
- }
-
- printColIndex = -1;
- // for all columns
- for (int col = 0; col < columns.size(); col++)
- {
- Object colObj = columns.get(col);
- MPrintFormatItem item = null;
- InstanceAttributeColumn instanceAttributeColumn = null;
- if (colObj instanceof MPrintFormatItem)
- {
- item = (MPrintFormatItem) colObj;
- }
- else if (colObj instanceof InstanceAttributeColumn)
- {
- instanceAttributeColumn = (InstanceAttributeColumn) colObj;
- item = instanceAttributeColumn.getPrintFormatItem();
- }
- if (item != null)
- {
- printColIndex++;
- // header row
- if (row == -1)
- {
- th th = new th();
- tr.addElement(th);
- String columnHeader = instanceAttributeColumn != null ? instanceAttributeColumn.getName() : item.getPrintName(language);
- th.addElement(Util.maskHTML(columnHeader));
- if (cssPrefix != null && instanceAttributeColumn == null)
- {
- MColumn column = MColumn.get(getCtx(), item.getAD_Column_ID());
- if (column != null && column.getAD_Column_ID() > 0)
- {
- if (DisplayType.isNumeric(column.getAD_Reference_ID()))
- {
- th.setClass(cssPrefix + "-number");
- }
- }
- }
- if (item.isSuppressNull())
- {
- suppressMap.put(printColIndex, th);
- th.setID("report-th-"+printColIndex);
- }
- }
- else
- {
- td td = new td();
- tr.addElement(td);
- MStyle style = item.getAD_FieldStyle_ID() > 0 ? MStyle.get(Env.getCtx(), item.getAD_FieldStyle_ID()) : null;
- Object obj = instanceAttributeColumn != null ? instanceAttributeColumn.getPrintDataElement(row)
- : m_printData.getNodeByPrintFormatItemId(item.getAD_PrintFormatItem_ID());
- if (obj == null || !isDisplayPFItem(item)){
- td.addElement(" ");
- if (colSuppressRepeats != null && colSuppressRepeats[printColIndex]){
- preValues[printColIndex] = null;
- }
- if (item.isSuppressNull() && obj != null && suppressMap.containsKey(printColIndex))
- suppressMap.remove(printColIndex);
- }
- else if (obj instanceof PrintDataElement)
- {
- PrintDataElement pde = (PrintDataElement) obj;
- String value = pde.getValueDisplay(language); // formatted
-
- if (colSuppressRepeats != null && colSuppressRepeats[printColIndex]){
- if (value.equals(preValues[printColIndex])){
- td.addElement(" ");
- continue;
- }else{
- preValues[printColIndex] = value;
- }
- }
-
- if (item.isSuppressNull() && obj != null && suppressMap.containsKey(printColIndex))
- suppressMap.remove(printColIndex);
-
- if (pde.getColumnName().endsWith("_ID") && extension != null && !isExport)
- {
- boolean isZoom = false;
- if (item.getColumnName().equals("Record_ID")) {
- Object tablePDE = m_printData.getNode("AD_Table_ID");
- if (tablePDE != null && tablePDE instanceof PrintDataElement) {
- int tableID = -1;
- try {
- tableID = Integer.parseInt(((PrintDataElement)tablePDE).getValueAsString());
- } catch (Exception e) {
- tableID = -1;
- }
- if (tableID > 0) {
- MTable mTable = MTable.get(getCtx(), tableID);
- String tableName = mTable.getTableName();
-
- value = getIdentifier(mTable, tableName, Integer.parseInt(value));
-
- String foreignColumnName = tableName + "_ID";
- pde.setForeignColumnName(foreignColumnName);
- isZoom = true;
- }
- }
- } else {
- isZoom = true;
- }
- if (isZoom) {
- // check permission on the zoomed window
- MTable mTable = MTable.get(getCtx(), pde.getForeignColumnName().substring(0, pde.getForeignColumnName().length()-3));
- int Record_ID = -1;
- try {
- Record_ID = Integer.parseInt(pde.getValueAsString());
- } catch (Exception e) {
- Record_ID = -1;
- }
- Boolean canAccess = null;
- if (Record_ID >= 0 && mTable != null) {
- int AD_Window_ID = Env.getZoomWindowID(mTable.get_ID(), Record_ID);
- canAccess = MRole.getDefault().getWindowAccess(AD_Window_ID);
- }
- if (canAccess == null) {
- isZoom = false;
- }
- }
- if (isZoom) {
- //link for column
- a href = new a("javascript:void(0)");
- href.setID(pde.getColumnName() + "_" + row + "_a");
- td.addElement(href);
- href.addElement(Util.maskHTML(value));
- if (cssPrefix != null)
- href.setClass(cssPrefix + "-href");
- // Set Style
- if(style != null && style.isWrapWithSpan())
- setStyle(href, style);
- else
- setStyle(td, style);
- extension.extendIDColumn(row, td, href, pde);
- } else {
- // Set Style
- if(style != null && style.isWrapWithSpan()) {
- span span = new span();
- setStyle(span, style);
- span.addElement(Util.maskHTML(value));
- td.addElement(span);
- }
- else {
- setStyle(td, style);
- td.addElement(Util.maskHTML(value));
- }
- }
-
- }
- else
- {
- // Set Style
- if(style != null && style.isWrapWithSpan()) {
- span span = new span();
- setStyle(span, style);
- span.addElement(Util.maskHTML(value));
- td.addElement(span);
- }
- else {
- setStyle(td, style);
- td.addElement(Util.maskHTML(value));
- }
- }
- if (cssPrefix != null)
- {
- if (DisplayType.isNumeric(pde.getDisplayType()))
- td.setClass(cssPrefix + "-number");
- else if (DisplayType.isDate(pde.getDisplayType()))
- td.setClass(cssPrefix + "-date");
- else
- td.setClass(cssPrefix + "-text");
- }
- }
- else if (obj instanceof PrintData)
- {
- // ignore contained Data
- }
- else
- log.log(Level.SEVERE, "Element not PrintData(Element) " + obj.getClass());
- }
- } // printed
- } // for all columns
-
- /* output table header */
- if (row == -1){
- w.print(compress(thead.toString(), minify));
- // output open of tbody
- w.print(compress(tbody.toString(), minify));
- }else{
- // output row by row
- w.print(compress(tr.toString(), minify));
- }
-
- } // for all rows
-
- w.print("");
- w.print("");
- if (suppressMap.size() > 0)
- {
- StringBuilder st = new StringBuilder();
- for(th t : suppressMap.values())
- {
- if (st.length() > 0)
- st.append(",");
- st.append("#").append(t.getAttribute("id"));
- }
- st.append(" {\n\t\tdisplay:none;\n\t}");
- style styleTag = new style();
- styleTag.addElement(st.toString());
- w.print(compress(styleTag.toString(), minify));
- }
- if (!onlyTable)
- {
- w.print("
");
- w.print("
");
- w.print("