IDEMPIERE-308 Performance: Replace use of StringBuffer and String concatenation with StringBuilder
This commit is contained in:
parent
430cc0331b
commit
d6bb8020f3
|
@ -30,7 +30,7 @@ import org.compiere.util.CLogger;
|
||||||
* @author Mario Calderon / Carlos Ruiz
|
* @author Mario Calderon / Carlos Ruiz
|
||||||
*/
|
*/
|
||||||
public final class MCity extends X_C_City
|
public final class MCity extends X_C_City
|
||||||
implements Comparator, Serializable
|
implements Comparator<Object>, Serializable
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -41,7 +41,7 @@ import org.compiere.util.Language;
|
||||||
* <li>BF [ 2695078 ] Country is not translated on invoice
|
* <li>BF [ 2695078 ] Country is not translated on invoice
|
||||||
*/
|
*/
|
||||||
public final class MCountry extends X_C_Country
|
public final class MCountry extends X_C_Country
|
||||||
implements Comparator, Serializable, SystemIDs
|
implements Comparator<Object>, Serializable, SystemIDs
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -44,7 +44,7 @@ import org.compiere.util.Util;
|
||||||
* <li>BF [ 3002736 ] MLocation.get cache all MLocations
|
* <li>BF [ 3002736 ] MLocation.get cache all MLocations
|
||||||
* https://sourceforge.net/tracker/?func=detail&aid=3002736&group_id=176962&atid=879332
|
* https://sourceforge.net/tracker/?func=detail&aid=3002736&group_id=176962&atid=879332
|
||||||
*/
|
*/
|
||||||
public class MLocation extends X_C_Location implements Comparator
|
public class MLocation extends X_C_Location implements Comparator<Object>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -97,7 +97,7 @@ public class MMeasureCalc extends X_PA_MeasureCalc
|
||||||
public String getSqlPI (MGoalRestriction[] restrictions,
|
public String getSqlPI (MGoalRestriction[] restrictions,
|
||||||
String MeasureScope, String MeasureDataType, Timestamp reportDate, MRole role)
|
String MeasureScope, String MeasureDataType, Timestamp reportDate, MRole role)
|
||||||
{
|
{
|
||||||
StringBuffer sb = new StringBuffer(getSelectClause())
|
StringBuilder sb = new StringBuilder(getSelectClause())
|
||||||
.append(" ")
|
.append(" ")
|
||||||
.append(getWhereClause());
|
.append(getWhereClause());
|
||||||
// Date Restriction
|
// Date Restriction
|
||||||
|
@ -141,7 +141,7 @@ public class MMeasureCalc extends X_PA_MeasureCalc
|
||||||
public String getSqlBarChart (MGoalRestriction[] restrictions,
|
public String getSqlBarChart (MGoalRestriction[] restrictions,
|
||||||
String MeasureDisplay, Timestamp startDate, MRole role)
|
String MeasureDisplay, Timestamp startDate, MRole role)
|
||||||
{
|
{
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuilder sb = new StringBuilder();
|
||||||
String dateCol = null;
|
String dateCol = null;
|
||||||
String groupBy = null;
|
String groupBy = null;
|
||||||
if (getDateColumn() != null
|
if (getDateColumn() != null
|
||||||
|
@ -208,7 +208,7 @@ public class MMeasureCalc extends X_PA_MeasureCalc
|
||||||
{
|
{
|
||||||
MQuery query = new MQuery(getAD_Table_ID());
|
MQuery query = new MQuery(getAD_Table_ID());
|
||||||
//
|
//
|
||||||
StringBuffer sql = new StringBuffer("SELECT ").append(getKeyColumn()).append(" ");
|
StringBuilder sql = new StringBuilder("SELECT ").append(getKeyColumn()).append(" ");
|
||||||
String from = getSelectClause();
|
String from = getSelectClause();
|
||||||
int index = from.indexOf("FROM ");
|
int index = from.indexOf("FROM ");
|
||||||
if (index == -1)
|
if (index == -1)
|
||||||
|
@ -235,7 +235,7 @@ public class MMeasureCalc extends X_PA_MeasureCalc
|
||||||
}
|
}
|
||||||
String finalSQL = addRestrictions(sql.toString(), restrictions, role);
|
String finalSQL = addRestrictions(sql.toString(), restrictions, role);
|
||||||
// Execute
|
// Execute
|
||||||
StringBuffer where = new StringBuffer();
|
StringBuilder where = new StringBuilder();
|
||||||
PreparedStatement pstmt = null;
|
PreparedStatement pstmt = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -269,7 +269,7 @@ public class MMeasureCalc extends X_PA_MeasureCalc
|
||||||
if (where.length() == 0)
|
if (where.length() == 0)
|
||||||
return MQuery.getNoRecordQuery(query.getTableName(), false);
|
return MQuery.getNoRecordQuery(query.getTableName(), false);
|
||||||
//
|
//
|
||||||
StringBuffer whereClause = new StringBuffer (getKeyColumn())
|
StringBuilder whereClause = new StringBuilder (getKeyColumn())
|
||||||
.append(" IN (").append(where).append(")");
|
.append(" IN (").append(where).append(")");
|
||||||
query.addRestriction(whereClause.toString());
|
query.addRestriction(whereClause.toString());
|
||||||
query.setRecordCount(1);
|
query.setRecordCount(1);
|
||||||
|
@ -307,7 +307,7 @@ public class MMeasureCalc extends X_PA_MeasureCalc
|
||||||
MGoalRestriction[] restrictions, MRole role,
|
MGoalRestriction[] restrictions, MRole role,
|
||||||
String tableName, String orgColumn, String bpColumn, String pColumn)
|
String tableName, String orgColumn, String bpColumn, String pColumn)
|
||||||
{
|
{
|
||||||
StringBuffer sb = new StringBuffer(sql);
|
StringBuilder sb = new StringBuilder(sql);
|
||||||
// Org Restrictions
|
// Org Restrictions
|
||||||
if (orgColumn != null)
|
if (orgColumn != null)
|
||||||
{
|
{
|
||||||
|
@ -459,7 +459,7 @@ public class MMeasureCalc extends X_PA_MeasureCalc
|
||||||
*/
|
*/
|
||||||
public String toString ()
|
public String toString ()
|
||||||
{
|
{
|
||||||
StringBuffer sb = new StringBuffer ("MMeasureCalc[");
|
StringBuilder sb = new StringBuilder ("MMeasureCalc[");
|
||||||
sb.append (get_ID()).append ("-").append (getName()).append ("]");
|
sb.append (get_ID()).append ("-").append (getName()).append ("]");
|
||||||
return sb.toString ();
|
return sb.toString ();
|
||||||
} // toString
|
} // toString
|
||||||
|
|
|
@ -621,7 +621,7 @@ public class MQuery implements Serializable
|
||||||
if (qualified && (m_TableName == null || m_TableName.length() == 0))
|
if (qualified && (m_TableName == null || m_TableName.length() == 0))
|
||||||
qualified = false;
|
qualified = false;
|
||||||
//
|
//
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuilder sb = new StringBuilder();
|
||||||
if (! isActive())
|
if (! isActive())
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
|
|
||||||
|
@ -661,7 +661,7 @@ public class MQuery implements Serializable
|
||||||
*/
|
*/
|
||||||
public String getInfo ()
|
public String getInfo ()
|
||||||
{
|
{
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuilder sb = new StringBuilder();
|
||||||
int currentDepth = 0;
|
int currentDepth = 0;
|
||||||
if (m_TableName != null)
|
if (m_TableName != null)
|
||||||
sb.append(m_TableName).append(": ");
|
sb.append(m_TableName).append(": ");
|
||||||
|
@ -701,7 +701,7 @@ public class MQuery implements Serializable
|
||||||
*/
|
*/
|
||||||
public String getWhereClause (int index)
|
public String getWhereClause (int index)
|
||||||
{
|
{
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuilder sb = new StringBuilder();
|
||||||
if (index >= 0 && index < m_list.size())
|
if (index >= 0 && index < m_list.size())
|
||||||
{
|
{
|
||||||
Restriction r = (Restriction)m_list.get(index);
|
Restriction r = (Restriction)m_list.get(index);
|
||||||
|
@ -1090,7 +1090,7 @@ class Restriction implements Serializable
|
||||||
if (DirectWhereClause != null)
|
if (DirectWhereClause != null)
|
||||||
return DirectWhereClause;
|
return DirectWhereClause;
|
||||||
//
|
//
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuilder sb = new StringBuilder();
|
||||||
if (tableName != null && tableName.length() > 0)
|
if (tableName != null && tableName.length() > 0)
|
||||||
{
|
{
|
||||||
// Assumes - REPLACE(INITCAP(variable),'s','X') or UPPER(variable)
|
// Assumes - REPLACE(INITCAP(variable),'s','X') or UPPER(variable)
|
||||||
|
@ -1184,7 +1184,7 @@ class Restriction implements Serializable
|
||||||
{
|
{
|
||||||
if (InfoDisplay_to == null)
|
if (InfoDisplay_to == null)
|
||||||
return InfoDisplay;
|
return InfoDisplay;
|
||||||
StringBuffer sb = new StringBuffer(InfoDisplay);
|
StringBuilder sb = new StringBuilder(InfoDisplay);
|
||||||
sb.append(" - ").append(InfoDisplay_to);
|
sb.append(" - ").append(InfoDisplay_to);
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
} // getInfoDisplay
|
} // getInfoDisplay
|
||||||
|
|
|
@ -40,7 +40,7 @@ import org.compiere.util.Env;
|
||||||
* @version $Id: MRegion.java,v 1.3 2006/07/30 00:58:36 jjanke Exp $
|
* @version $Id: MRegion.java,v 1.3 2006/07/30 00:58:36 jjanke Exp $
|
||||||
*/
|
*/
|
||||||
public final class MRegion extends X_C_Region
|
public final class MRegion extends X_C_Region
|
||||||
implements Comparator, Serializable, SystemIDs
|
implements Comparator<Object>, Serializable, SystemIDs
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -29,7 +29,7 @@ import org.compiere.util.Env;
|
||||||
* @author Jorg Janke
|
* @author Jorg Janke
|
||||||
* @version $Id: MRfQResponseLineQty.java,v 1.3 2006/07/30 00:51:03 jjanke Exp $
|
* @version $Id: MRfQResponseLineQty.java,v 1.3 2006/07/30 00:51:03 jjanke Exp $
|
||||||
*/
|
*/
|
||||||
public class MRfQResponseLineQty extends X_C_RfQResponseLineQty implements Comparator
|
public class MRfQResponseLineQty extends X_C_RfQResponseLineQty implements Comparator<Object>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -404,7 +404,7 @@ public class MTable extends X_AD_Table
|
||||||
PO po = null;
|
PO po = null;
|
||||||
POInfo info = POInfo.getPOInfo(getCtx(), getAD_Table_ID(), trxName);
|
POInfo info = POInfo.getPOInfo(getCtx(), getAD_Table_ID(), trxName);
|
||||||
if (info == null) return null;
|
if (info == null) return null;
|
||||||
StringBuffer sqlBuffer = info.buildSelect();
|
StringBuilder sqlBuffer = info.buildSelect();
|
||||||
sqlBuffer.append(" WHERE ").append(whereClause);
|
sqlBuffer.append(" WHERE ").append(whereClause);
|
||||||
String sql = sqlBuffer.toString();
|
String sql = sqlBuffer.toString();
|
||||||
PreparedStatement pstmt = null;
|
PreparedStatement pstmt = null;
|
||||||
|
|
|
@ -352,7 +352,7 @@ public class Query
|
||||||
throw new DBException("Table "+table+" has 0 or more than 1 key columns");
|
throw new DBException("Table "+table+" has 0 or more than 1 key columns");
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuffer selectClause = new StringBuffer("SELECT ");
|
StringBuilder selectClause = new StringBuilder("SELECT ");
|
||||||
selectClause.append(keys[0]);
|
selectClause.append(keys[0]);
|
||||||
selectClause.append(" FROM ").append(table.getTableName());
|
selectClause.append(" FROM ").append(table.getTableName());
|
||||||
String sql = buildSQL(selectClause, true);
|
String sql = buildSQL(selectClause, true);
|
||||||
|
@ -437,7 +437,7 @@ public class Query
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuffer sqlSelect = new StringBuffer("SELECT ").append(sqlFunction).append("(")
|
StringBuilder sqlSelect = new StringBuilder("SELECT ").append(sqlFunction).append("(")
|
||||||
.append(sqlExpression).append(")")
|
.append(sqlExpression).append(")")
|
||||||
.append(" FROM ").append(table.getTableName());
|
.append(" FROM ").append(table.getTableName());
|
||||||
|
|
||||||
|
@ -530,7 +530,7 @@ public class Query
|
||||||
*/
|
*/
|
||||||
public boolean match() throws DBException
|
public boolean match() throws DBException
|
||||||
{
|
{
|
||||||
String sql = buildSQL(new StringBuffer("SELECT 1 FROM ").append(table.getTableName()), false);
|
String sql = buildSQL(new StringBuilder("SELECT 1 FROM ").append(table.getTableName()), false);
|
||||||
PreparedStatement pstmt = null;
|
PreparedStatement pstmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
try {
|
try {
|
||||||
|
@ -558,7 +558,7 @@ public class Query
|
||||||
public <T extends PO> Iterator<T> iterate() throws DBException
|
public <T extends PO> Iterator<T> iterate() throws DBException
|
||||||
{
|
{
|
||||||
String[] keys = table.getKeyColumns();
|
String[] keys = table.getKeyColumns();
|
||||||
StringBuffer sqlBuffer = new StringBuffer(" SELECT ");
|
StringBuilder sqlBuffer = new StringBuilder(" SELECT ");
|
||||||
for (int i = 0; i < keys.length; i++) {
|
for (int i = 0; i < keys.length; i++) {
|
||||||
if (i > 0)
|
if (i > 0)
|
||||||
sqlBuffer.append(", ");
|
sqlBuffer.append(", ");
|
||||||
|
@ -634,7 +634,7 @@ public class Query
|
||||||
* @param selectClause optional; if null the select clause will be build according to POInfo
|
* @param selectClause optional; if null the select clause will be build according to POInfo
|
||||||
* @return final SQL
|
* @return final SQL
|
||||||
*/
|
*/
|
||||||
private final String buildSQL(StringBuffer selectClause, boolean useOrderByClause)
|
private final String buildSQL(StringBuilder selectClause, boolean useOrderByClause)
|
||||||
{
|
{
|
||||||
if (selectClause == null)
|
if (selectClause == null)
|
||||||
{
|
{
|
||||||
|
@ -646,7 +646,7 @@ public class Query
|
||||||
selectClause = info.buildSelect();
|
selectClause = info.buildSelect();
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuffer whereBuffer = new StringBuffer();
|
StringBuilder whereBuffer = new StringBuilder();
|
||||||
if (!Util.isEmpty(this.whereClause, true))
|
if (!Util.isEmpty(this.whereClause, true))
|
||||||
{
|
{
|
||||||
if (whereBuffer.length() > 0)
|
if (whereBuffer.length() > 0)
|
||||||
|
@ -679,7 +679,7 @@ public class Query
|
||||||
+" AND s.T_Selection_ID="+table.getTableName()+"."+keys[0]+")");
|
+" AND s.T_Selection_ID="+table.getTableName()+"."+keys[0]+")");
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuffer sqlBuffer = new StringBuffer(selectClause);
|
StringBuilder sqlBuffer = new StringBuilder(selectClause);
|
||||||
if (whereBuffer.length() > 0)
|
if (whereBuffer.length() > 0)
|
||||||
{
|
{
|
||||||
sqlBuffer.append(" WHERE ").append(whereBuffer);
|
sqlBuffer.append(" WHERE ").append(whereBuffer);
|
||||||
|
@ -706,17 +706,20 @@ public class Query
|
||||||
if (this.onlyActiveRecords)
|
if (this.onlyActiveRecords)
|
||||||
{
|
{
|
||||||
DB.setParameter(pstmt, i++, true);
|
DB.setParameter(pstmt, i++, true);
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Parameter IsActive = Y");
|
log.finest("Parameter IsActive = Y");
|
||||||
}
|
}
|
||||||
if (this.onlyClient_ID)
|
if (this.onlyClient_ID)
|
||||||
{
|
{
|
||||||
int AD_Client_ID = Env.getAD_Client_ID(ctx);
|
int AD_Client_ID = Env.getAD_Client_ID(ctx);
|
||||||
DB.setParameter(pstmt, i++, AD_Client_ID);
|
DB.setParameter(pstmt, i++, AD_Client_ID);
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Parameter AD_Client_ID = "+AD_Client_ID);
|
log.finest("Parameter AD_Client_ID = "+AD_Client_ID);
|
||||||
}
|
}
|
||||||
if (this.onlySelection_ID > 0)
|
if (this.onlySelection_ID > 0)
|
||||||
{
|
{
|
||||||
DB.setParameter(pstmt, i++, this.onlySelection_ID);
|
DB.setParameter(pstmt, i++, this.onlySelection_ID);
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Parameter Selection AD_PInstance_ID = "+this.onlySelection_ID);
|
log.finest("Parameter Selection AD_PInstance_ID = "+this.onlySelection_ID);
|
||||||
}
|
}
|
||||||
return pstmt.executeQuery();
|
return pstmt.executeQuery();
|
||||||
|
@ -734,7 +737,7 @@ public class Query
|
||||||
throw new DBException("Table "+table+" has 0 or more than 1 key columns");
|
throw new DBException("Table "+table+" has 0 or more than 1 key columns");
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuffer selectClause = new StringBuffer("SELECT ");
|
StringBuilder selectClause = new StringBuilder("SELECT ");
|
||||||
selectClause.append(keys[0]);
|
selectClause.append(keys[0]);
|
||||||
selectClause.append(" FROM ").append(table.getTableName());
|
selectClause.append(" FROM ").append(table.getTableName());
|
||||||
String sql = buildSQL(selectClause, true);
|
String sql = buildSQL(selectClause, true);
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
package org.compiere.print;
|
package org.compiere.print;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
import java.sql.Clob;
|
import java.sql.Clob;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
|
@ -146,15 +147,15 @@ public class DataEngine
|
||||||
//
|
//
|
||||||
if (format.getAD_ReportView_ID() != 0)
|
if (format.getAD_ReportView_ID() != 0)
|
||||||
{
|
{
|
||||||
String sql = "SELECT t.AD_Table_ID, t.TableName, rv.Name, rv.WhereClause "
|
StringBuilder sql = new StringBuilder("SELECT t.AD_Table_ID, t.TableName, rv.Name, rv.WhereClause ")
|
||||||
+ "FROM AD_Table t"
|
.append("FROM AD_Table t")
|
||||||
+ " INNER JOIN AD_ReportView rv ON (t.AD_Table_ID=rv.AD_Table_ID) "
|
.append(" INNER JOIN AD_ReportView rv ON (t.AD_Table_ID=rv.AD_Table_ID) ")
|
||||||
+ "WHERE rv.AD_ReportView_ID=?"; // 1
|
.append("WHERE rv.AD_ReportView_ID=?"); // 1
|
||||||
PreparedStatement pstmt = null;
|
PreparedStatement pstmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
pstmt = DB.prepareStatement(sql, m_trxName);
|
pstmt = DB.prepareStatement(sql.toString(), m_trxName);
|
||||||
pstmt.setInt(1, format.getAD_ReportView_ID());
|
pstmt.setInt(1, format.getAD_ReportView_ID());
|
||||||
rs = pstmt.executeQuery();
|
rs = pstmt.executeQuery();
|
||||||
if (rs.next())
|
if (rs.next())
|
||||||
|
@ -169,7 +170,7 @@ public class DataEngine
|
||||||
}
|
}
|
||||||
catch (SQLException e)
|
catch (SQLException e)
|
||||||
{
|
{
|
||||||
log.log(Level.SEVERE, sql, e);
|
log.log(Level.SEVERE, sql.toString(), e);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
@ -214,8 +215,11 @@ public class DataEngine
|
||||||
{
|
{
|
||||||
m_startTime = System.currentTimeMillis();
|
m_startTime = System.currentTimeMillis();
|
||||||
log.info(reportName + " - " + m_language.getAD_Language());
|
log.info(reportName + " - " + m_language.getAD_Language());
|
||||||
|
if (log.isLoggable(Level.FINE))
|
||||||
|
{
|
||||||
log.fine("TableName=" + tableName + ", Query=" + query);
|
log.fine("TableName=" + tableName + ", Query=" + query);
|
||||||
log.fine("Format=" + format);
|
log.fine("Format=" + format);
|
||||||
|
}
|
||||||
ArrayList<PrintDataColumn> columns = new ArrayList<PrintDataColumn>();
|
ArrayList<PrintDataColumn> columns = new ArrayList<PrintDataColumn>();
|
||||||
m_group = new PrintDataGroup();
|
m_group = new PrintDataGroup();
|
||||||
|
|
||||||
|
@ -224,49 +228,50 @@ public class DataEngine
|
||||||
ArrayList<String> orderColumns = new ArrayList<String>(orderAD_Column_IDs.length);
|
ArrayList<String> orderColumns = new ArrayList<String>(orderAD_Column_IDs.length);
|
||||||
for (int i = 0; i < orderAD_Column_IDs.length; i++)
|
for (int i = 0; i < orderAD_Column_IDs.length; i++)
|
||||||
{
|
{
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Order AD_Column_ID=" + orderAD_Column_IDs[i]);
|
log.finest("Order AD_Column_ID=" + orderAD_Column_IDs[i]);
|
||||||
orderColumns.add(""); // initial value overwritten with fully qualified name
|
orderColumns.add(""); // initial value overwritten with fully qualified name
|
||||||
}
|
}
|
||||||
|
|
||||||
// Direct SQL w/o Reference Info
|
// Direct SQL w/o Reference Info
|
||||||
StringBuffer sqlSELECT = new StringBuffer("SELECT ");
|
StringBuilder sqlSELECT = new StringBuilder("SELECT ");
|
||||||
StringBuffer sqlFROM = new StringBuffer(" FROM ").append(tableName);
|
StringBuilder sqlFROM = new StringBuilder(" FROM ").append(tableName);
|
||||||
ArrayList<String> groupByColumns = new ArrayList<String>();
|
ArrayList<String> groupByColumns = new ArrayList<String>();
|
||||||
//
|
//
|
||||||
boolean IsGroupedBy = false;
|
boolean IsGroupedBy = false;
|
||||||
//
|
//
|
||||||
String sql = "SELECT c.AD_Column_ID,c.ColumnName," // 1..2
|
StringBuilder sql = new StringBuilder("SELECT c.AD_Column_ID,c.ColumnName,") // 1..2
|
||||||
+ "c.AD_Reference_ID,c.AD_Reference_Value_ID," // 3..4
|
.append("c.AD_Reference_ID,c.AD_Reference_Value_ID,") // 3..4
|
||||||
+ "c.FieldLength,c.IsMandatory,c.IsKey,c.IsParent," // 5..8
|
.append("c.FieldLength,c.IsMandatory,c.IsKey,c.IsParent,") // 5..8
|
||||||
+ "COALESCE(rvc.IsGroupFunction,'N'),rvc.FunctionColumn," // 9..10
|
.append("COALESCE(rvc.IsGroupFunction,'N'),rvc.FunctionColumn,") // 9..10
|
||||||
+ "pfi.IsGroupBy,pfi.IsSummarized,pfi.IsAveraged,pfi.IsCounted, " // 11..14
|
.append("pfi.IsGroupBy,pfi.IsSummarized,pfi.IsAveraged,pfi.IsCounted, ") // 11..14
|
||||||
+ "pfi.IsPrinted,pfi.SortNo,pfi.IsPageBreak, " // 15..17
|
.append("pfi.IsPrinted,pfi.SortNo,pfi.IsPageBreak, ") // 15..17
|
||||||
+ "pfi.IsMinCalc,pfi.IsMaxCalc, " // 18..19
|
.append("pfi.IsMinCalc,pfi.IsMaxCalc, ") // 18..19
|
||||||
+ "pfi.isRunningTotal,pfi.RunningTotalLines, " // 20..21
|
.append("pfi.isRunningTotal,pfi.RunningTotalLines, ") // 20..21
|
||||||
+ "pfi.IsVarianceCalc, pfi.IsDeviationCalc, " // 22..23
|
.append("pfi.IsVarianceCalc, pfi.IsDeviationCalc, ") // 22..23
|
||||||
+ "c.ColumnSQL, COALESCE(pfi.FormatPattern, c.FormatPattern) " // 24, 25
|
.append("c.ColumnSQL, COALESCE(pfi.FormatPattern, c.FormatPattern) ") // 24, 25
|
||||||
//BEGIN http://jira.idempiere.com/browse/IDEMPIERE-153
|
//BEGIN http://jira.idempiere.com/browse/IDEMPIERE-153
|
||||||
+ " , pfi.isDesc " //26
|
.append(" , pfi.isDesc ") //26
|
||||||
//END
|
//END
|
||||||
+ "FROM AD_PrintFormat pf"
|
.append("FROM AD_PrintFormat pf")
|
||||||
+ " INNER JOIN AD_PrintFormatItem pfi ON (pf.AD_PrintFormat_ID=pfi.AD_PrintFormat_ID)"
|
.append(" INNER JOIN AD_PrintFormatItem pfi ON (pf.AD_PrintFormat_ID=pfi.AD_PrintFormat_ID)")
|
||||||
+ " INNER JOIN AD_Column c ON (pfi.AD_Column_ID=c.AD_Column_ID)"
|
.append(" INNER JOIN AD_Column c ON (pfi.AD_Column_ID=c.AD_Column_ID)")
|
||||||
+ " LEFT OUTER JOIN AD_ReportView_Col rvc ON (pf.AD_ReportView_ID=rvc.AD_ReportView_ID AND c.AD_Column_ID=rvc.AD_Column_ID) "
|
.append(" LEFT OUTER JOIN AD_ReportView_Col rvc ON (pf.AD_ReportView_ID=rvc.AD_ReportView_ID AND c.AD_Column_ID=rvc.AD_Column_ID) ")
|
||||||
+ "WHERE pf.AD_PrintFormat_ID=?" // #1
|
.append("WHERE pf.AD_PrintFormat_ID=?") // #1
|
||||||
+ " AND pfi.IsActive='Y' AND (pfi.IsPrinted='Y' OR c.IsKey='Y' OR pfi.SortNo > 0) "
|
.append(" AND pfi.IsActive='Y' AND (pfi.IsPrinted='Y' OR c.IsKey='Y' OR pfi.SortNo > 0) ")
|
||||||
+ " AND pfi.PrintFormatType IN ('"
|
.append(" AND pfi.PrintFormatType IN ('"
|
||||||
+ MPrintFormatItem.PRINTFORMATTYPE_Field
|
+ MPrintFormatItem.PRINTFORMATTYPE_Field
|
||||||
+ "','"
|
+ "','"
|
||||||
+ MPrintFormatItem.PRINTFORMATTYPE_Image
|
+ MPrintFormatItem.PRINTFORMATTYPE_Image
|
||||||
+ "','"
|
+ "','"
|
||||||
+ MPrintFormatItem.PRINTFORMATTYPE_PrintFormat
|
+ MPrintFormatItem.PRINTFORMATTYPE_PrintFormat
|
||||||
+ "') "
|
+ "') ")
|
||||||
+ "ORDER BY pfi.IsPrinted DESC, pfi.SeqNo"; // Functions are put in first column
|
.append("ORDER BY pfi.IsPrinted DESC, pfi.SeqNo"); // Functions are put in first column
|
||||||
PreparedStatement pstmt = null;
|
PreparedStatement pstmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
pstmt = DB.prepareStatement(sql, m_trxName);
|
pstmt = DB.prepareStatement(sql.toString(), m_trxName);
|
||||||
pstmt.setInt(1, format.get_ID());
|
pstmt.setInt(1, format.get_ID());
|
||||||
rs = pstmt.executeQuery();
|
rs = pstmt.executeQuery();
|
||||||
|
|
||||||
|
@ -556,7 +561,7 @@ public class DataEngine
|
||||||
else if (index == -1)
|
else if (index == -1)
|
||||||
{
|
{
|
||||||
// => Table.Column,
|
// => Table.Column,
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append(tableName).append(".").append(ColumnName);
|
sb.append(tableName).append(".").append(ColumnName);
|
||||||
sqlSELECT.append(sb).append(",");
|
sqlSELECT.append(sb).append(",");
|
||||||
if (!IsGroupFunction)
|
if (!IsGroupFunction)
|
||||||
|
@ -565,7 +570,7 @@ public class DataEngine
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// => Function(Table.Column) AS Column -- function has @ where column name goes
|
// => Function(Table.Column) AS Column -- function has @ where column name goes
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append(FunctionColumn.substring(0, index))
|
sb.append(FunctionColumn.substring(0, index))
|
||||||
.append(tableName).append(".").append(ColumnName)
|
.append(tableName).append(".").append(ColumnName)
|
||||||
.append(FunctionColumn.substring(index+1));
|
.append(FunctionColumn.substring(index+1));
|
||||||
|
@ -621,6 +626,7 @@ public class DataEngine
|
||||||
if (columns.size() == 0)
|
if (columns.size() == 0)
|
||||||
{
|
{
|
||||||
log.log(Level.SEVERE, "No Colums - Delete Report Format " + reportName + " and start again");
|
log.log(Level.SEVERE, "No Colums - Delete Report Format " + reportName + " and start again");
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("No Colums - SQL=" + sql + " - ID=" + format.get_ID());
|
log.finest("No Colums - SQL=" + sql + " - ID=" + format.get_ID());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -636,7 +642,7 @@ public class DataEngine
|
||||||
/**
|
/**
|
||||||
* Assemble final SQL - delete last SELECT ','
|
* Assemble final SQL - delete last SELECT ','
|
||||||
*/
|
*/
|
||||||
StringBuffer finalSQL = new StringBuffer();
|
StringBuilder finalSQL = new StringBuilder();
|
||||||
finalSQL.append(sqlSELECT.substring(0, sqlSELECT.length()-1))
|
finalSQL.append(sqlSELECT.substring(0, sqlSELECT.length()-1))
|
||||||
.append(sqlFROM);
|
.append(sqlFROM);
|
||||||
|
|
||||||
|
@ -666,7 +672,7 @@ public class DataEngine
|
||||||
if (role.getAD_Role_ID() == 0 && !Ini.isClient())
|
if (role.getAD_Role_ID() == 0 && !Ini.isClient())
|
||||||
; // System Access
|
; // System Access
|
||||||
else
|
else
|
||||||
finalSQL = new StringBuffer (role.addAccessSQL (finalSQL.toString (),
|
finalSQL = new StringBuilder (role.addAccessSQL (finalSQL.toString (),
|
||||||
tableName, MRole.SQL_FULLYQUALIFIED, MRole.SQL_RO));
|
tableName, MRole.SQL_FULLYQUALIFIED, MRole.SQL_RO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -709,8 +715,11 @@ public class DataEngine
|
||||||
pd.setSQL(finalSQL.toString());
|
pd.setSQL(finalSQL.toString());
|
||||||
pd.setHasLevelNo(hasLevelNo);
|
pd.setHasLevelNo(hasLevelNo);
|
||||||
|
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
|
{
|
||||||
log.finest (finalSQL.toString ());
|
log.finest (finalSQL.toString ());
|
||||||
log.finest ("Group=" + m_group);
|
log.finest ("Group=" + m_group);
|
||||||
|
}
|
||||||
return pd;
|
return pd;
|
||||||
} // getPrintDataInfo
|
} // getPrintDataInfo
|
||||||
|
|
||||||
|
@ -751,19 +760,19 @@ public class DataEngine
|
||||||
//
|
//
|
||||||
TableReference tr = new TableReference();
|
TableReference tr = new TableReference();
|
||||||
//
|
//
|
||||||
String SQL = "SELECT t.TableName, ck.ColumnName AS KeyColumn," // 1..2
|
StringBuilder SQL = new StringBuilder("SELECT t.TableName, ck.ColumnName AS KeyColumn,") // 1..2
|
||||||
+ " cd.ColumnName AS DisplayColumn, rt.IsValueDisplayed, cd.IsTranslated "
|
.append(" cd.ColumnName AS DisplayColumn, rt.IsValueDisplayed, cd.IsTranslated ")
|
||||||
+ "FROM AD_Ref_Table rt"
|
.append("FROM AD_Ref_Table rt")
|
||||||
+ " INNER JOIN AD_Table t ON (rt.AD_Table_ID = t.AD_Table_ID)"
|
.append(" INNER JOIN AD_Table t ON (rt.AD_Table_ID = t.AD_Table_ID)")
|
||||||
+ " INNER JOIN AD_Column ck ON (rt.AD_Key = ck.AD_Column_ID)"
|
.append(" INNER JOIN AD_Column ck ON (rt.AD_Key = ck.AD_Column_ID)")
|
||||||
+ " INNER JOIN AD_Column cd ON (rt.AD_Display = cd.AD_Column_ID) "
|
.append(" INNER JOIN AD_Column cd ON (rt.AD_Display = cd.AD_Column_ID) ")
|
||||||
+ "WHERE rt.AD_Reference_ID=?" // 1
|
.append("WHERE rt.AD_Reference_ID=?") // 1
|
||||||
+ " AND rt.IsActive = 'Y' AND t.IsActive = 'Y'";
|
.append(" AND rt.IsActive = 'Y' AND t.IsActive = 'Y'");
|
||||||
PreparedStatement pstmt = null;
|
PreparedStatement pstmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
pstmt = DB.prepareStatement(SQL, null);
|
pstmt = DB.prepareStatement(SQL.toString(), null);
|
||||||
pstmt.setInt (1, AD_Reference_Value_ID);
|
pstmt.setInt (1, AD_Reference_Value_ID);
|
||||||
rs = pstmt.executeQuery();
|
rs = pstmt.executeQuery();
|
||||||
if (rs.next())
|
if (rs.next())
|
||||||
|
@ -777,7 +786,7 @@ public class DataEngine
|
||||||
}
|
}
|
||||||
catch (SQLException ex)
|
catch (SQLException ex)
|
||||||
{
|
{
|
||||||
log.log(Level.SEVERE, SQL, ex);
|
log.log(Level.SEVERE, SQL.toString(), ex);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
@ -993,7 +1002,7 @@ public class DataEngine
|
||||||
pde = new PrintDataElement(pdc.getColumnName(), s, pdc.getDisplayType(), pdc.getFormatPattern());
|
pde = new PrintDataElement(pdc.getColumnName(), s, pdc.getDisplayType(), pdc.getFormatPattern());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
pde = new PrintDataElement(pdc.getColumnName(), obj, pdc.getDisplayType(), pdc.getFormatPattern());
|
pde = new PrintDataElement(pdc.getColumnName(), (Serializable)obj, pdc.getDisplayType(), pdc.getFormatPattern());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // Value only
|
} // Value only
|
||||||
|
@ -1120,11 +1129,13 @@ public class DataEngine
|
||||||
{
|
{
|
||||||
if (m_runningTotalLines < 1) // -1 = none
|
if (m_runningTotalLines < 1) // -1 = none
|
||||||
return;
|
return;
|
||||||
|
if (log.isLoggable(Level.FINE))
|
||||||
log.fine("(" + m_runningTotalLines + ") - Row=" + rowNo
|
log.fine("(" + m_runningTotalLines + ") - Row=" + rowNo
|
||||||
+ ", mod=" + rowNo % m_runningTotalLines);
|
+ ", mod=" + rowNo % m_runningTotalLines);
|
||||||
if (rowNo % m_runningTotalLines != 0)
|
if (rowNo % m_runningTotalLines != 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (log.isLoggable(Level.FINE))
|
||||||
log.fine("Row=" + rowNo);
|
log.fine("Row=" + rowNo);
|
||||||
PrintDataColumn pdc = null;
|
PrintDataColumn pdc = null;
|
||||||
int start = 0;
|
int start = 0;
|
||||||
|
|
|
@ -431,6 +431,7 @@ PrintEvent on Win32 Printer : \\MAIN\HP LaserJet 5L
|
||||||
PrintServiceAttributeSet - length=1
|
PrintServiceAttributeSet - length=1
|
||||||
queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
||||||
**/
|
**/
|
||||||
|
if (log.isLoggable(Level.FINE))
|
||||||
log.fine("attributeUpdate - " + psae);
|
log.fine("attributeUpdate - " + psae);
|
||||||
// PrintUtil.dump (psae.getAttributes());
|
// PrintUtil.dump (psae.getAttributes());
|
||||||
} // attributeUpdate
|
} // attributeUpdate
|
||||||
|
@ -978,6 +979,7 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (log.isLoggable(Level.FINE))
|
||||||
log.fine(uri.toString());
|
log.fine(uri.toString());
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -1111,20 +1113,20 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
||||||
int Client_ID = -1;
|
int Client_ID = -1;
|
||||||
|
|
||||||
// Get AD_Table_ID and TableName
|
// Get AD_Table_ID and TableName
|
||||||
String sql = "SELECT rv.AD_ReportView_ID,rv.WhereClause,"
|
StringBuilder sql = new StringBuilder("SELECT rv.AD_ReportView_ID,rv.WhereClause,")
|
||||||
+ " t.AD_Table_ID,t.TableName, pf.AD_PrintFormat_ID, pf.IsForm, pf.AD_Client_ID "
|
.append(" t.AD_Table_ID,t.TableName, pf.AD_PrintFormat_ID, pf.IsForm, pf.AD_Client_ID ")
|
||||||
+ "FROM AD_PInstance pi"
|
.append("FROM AD_PInstance pi")
|
||||||
+ " INNER JOIN AD_Process p ON (pi.AD_Process_ID=p.AD_Process_ID)"
|
.append(" INNER JOIN AD_Process p ON (pi.AD_Process_ID=p.AD_Process_ID)")
|
||||||
+ " INNER JOIN AD_ReportView rv ON (p.AD_ReportView_ID=rv.AD_ReportView_ID)"
|
.append(" INNER JOIN AD_ReportView rv ON (p.AD_ReportView_ID=rv.AD_ReportView_ID)")
|
||||||
+ " INNER JOIN AD_Table t ON (rv.AD_Table_ID=t.AD_Table_ID)"
|
.append(" INNER JOIN AD_Table t ON (rv.AD_Table_ID=t.AD_Table_ID)")
|
||||||
+ " LEFT OUTER JOIN AD_PrintFormat pf ON (p.AD_ReportView_ID=pf.AD_ReportView_ID AND pf.AD_Client_ID IN (0,?) AND pf.IsActive='Y') "
|
.append(" LEFT OUTER JOIN AD_PrintFormat pf ON (p.AD_ReportView_ID=pf.AD_ReportView_ID AND pf.AD_Client_ID IN (0,?) AND pf.IsActive='Y') ")
|
||||||
+ "WHERE pi.AD_PInstance_ID=? " // #2
|
.append("WHERE pi.AD_PInstance_ID=? ") // #2
|
||||||
+ "ORDER BY pf.AD_Client_ID DESC, pf.IsDefault DESC"; // own first
|
.append("ORDER BY pf.AD_Client_ID DESC, pf.IsDefault DESC"); // own first
|
||||||
PreparedStatement pstmt = null;
|
PreparedStatement pstmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
pstmt = DB.prepareStatement(sql, null);
|
pstmt = DB.prepareStatement(sql.toString(), null);
|
||||||
pstmt.setInt(1, AD_Client_ID);
|
pstmt.setInt(1, AD_Client_ID);
|
||||||
pstmt.setInt(2, pi.getAD_PInstance_ID());
|
pstmt.setInt(2, pi.getAD_PInstance_ID());
|
||||||
rs = pstmt.executeQuery();
|
rs = pstmt.executeQuery();
|
||||||
|
@ -1155,15 +1157,15 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
||||||
if (AD_ReportView_ID == 0)
|
if (AD_ReportView_ID == 0)
|
||||||
{
|
{
|
||||||
// Check Print format in Report Directly
|
// Check Print format in Report Directly
|
||||||
sql = "SELECT t.AD_Table_ID,t.TableName, pf.AD_PrintFormat_ID, pf.IsForm "
|
sql = new StringBuilder("SELECT t.AD_Table_ID,t.TableName, pf.AD_PrintFormat_ID, pf.IsForm ")
|
||||||
+ "FROM AD_PInstance pi"
|
.append("FROM AD_PInstance pi")
|
||||||
+ " INNER JOIN AD_Process p ON (pi.AD_Process_ID=p.AD_Process_ID)"
|
.append(" INNER JOIN AD_Process p ON (pi.AD_Process_ID=p.AD_Process_ID)")
|
||||||
+ " INNER JOIN AD_PrintFormat pf ON (p.AD_PrintFormat_ID=pf.AD_PrintFormat_ID)"
|
.append(" INNER JOIN AD_PrintFormat pf ON (p.AD_PrintFormat_ID=pf.AD_PrintFormat_ID)")
|
||||||
+ " INNER JOIN AD_Table t ON (pf.AD_Table_ID=t.AD_Table_ID) "
|
.append(" INNER JOIN AD_Table t ON (pf.AD_Table_ID=t.AD_Table_ID) ")
|
||||||
+ "WHERE pi.AD_PInstance_ID=?";
|
.append("WHERE pi.AD_PInstance_ID=?");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
pstmt = DB.prepareStatement(sql, null);
|
pstmt = DB.prepareStatement(sql.toString(), null);
|
||||||
pstmt.setInt(1, pi.getAD_PInstance_ID());
|
pstmt.setInt(1, pi.getAD_PInstance_ID());
|
||||||
rs = pstmt.executeQuery();
|
rs = pstmt.executeQuery();
|
||||||
if (rs.next())
|
if (rs.next())
|
||||||
|
@ -1332,115 +1334,115 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
||||||
MClient client = MClient.get(ctx);
|
MClient client = MClient.get(ctx);
|
||||||
Language language = client.getLanguage();
|
Language language = client.getLanguage();
|
||||||
// Get Document Info
|
// Get Document Info
|
||||||
String sql = null;
|
StringBuilder sql = null;
|
||||||
if (type == CHECK)
|
if (type == CHECK)
|
||||||
sql = "SELECT bad.Check_PrintFormat_ID," // 1
|
sql = new StringBuilder("SELECT bad.Check_PrintFormat_ID,") // 1
|
||||||
+ " c.IsMultiLingualDocument,bp.AD_Language,bp.C_BPartner_ID,d.DocumentNo " // 2..5
|
.append(" c.IsMultiLingualDocument,bp.AD_Language,bp.C_BPartner_ID,d.DocumentNo ") // 2..5
|
||||||
+ "FROM C_PaySelectionCheck d"
|
.append("FROM C_PaySelectionCheck d")
|
||||||
+ " INNER JOIN C_PaySelection ps ON (d.C_PaySelection_ID=ps.C_PaySelection_ID)"
|
.append(" INNER JOIN C_PaySelection ps ON (d.C_PaySelection_ID=ps.C_PaySelection_ID)")
|
||||||
+ " INNER JOIN C_BankAccountDoc bad ON (ps.C_BankAccount_ID=bad.C_BankAccount_ID AND d.PaymentRule=bad.PaymentRule)"
|
.append(" INNER JOIN C_BankAccountDoc bad ON (ps.C_BankAccount_ID=bad.C_BankAccount_ID AND d.PaymentRule=bad.PaymentRule)")
|
||||||
+ " INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)"
|
.append(" INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)")
|
||||||
+ " INNER JOIN C_BPartner bp ON (d.C_BPartner_ID=bp.C_BPartner_ID) "
|
.append(" INNER JOIN C_BPartner bp ON (d.C_BPartner_ID=bp.C_BPartner_ID) ")
|
||||||
+ "WHERE d.C_PaySelectionCheck_ID=?"; // info from BankAccount
|
.append("WHERE d.C_PaySelectionCheck_ID=?"); // info from BankAccount
|
||||||
else if (type == DUNNING)
|
else if (type == DUNNING)
|
||||||
sql = "SELECT dl.Dunning_PrintFormat_ID,"
|
sql = new StringBuilder("SELECT dl.Dunning_PrintFormat_ID,")
|
||||||
+ " c.IsMultiLingualDocument,bp.AD_Language,bp.C_BPartner_ID,dr.DunningDate "
|
.append(" c.IsMultiLingualDocument,bp.AD_Language,bp.C_BPartner_ID,dr.DunningDate ")
|
||||||
+ "FROM C_DunningRunEntry d"
|
.append("FROM C_DunningRunEntry d")
|
||||||
+ " INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)"
|
.append(" INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)")
|
||||||
+ " INNER JOIN C_BPartner bp ON (d.C_BPartner_ID=bp.C_BPartner_ID)"
|
.append(" INNER JOIN C_BPartner bp ON (d.C_BPartner_ID=bp.C_BPartner_ID)")
|
||||||
+ " INNER JOIN C_DunningRun dr ON (d.C_DunningRun_ID=dr.C_DunningRun_ID)"
|
.append(" INNER JOIN C_DunningRun dr ON (d.C_DunningRun_ID=dr.C_DunningRun_ID)")
|
||||||
+ " INNER JOIN C_DunningLevel dl ON (dl.C_DunningLevel_ID=d.C_DunningLevel_ID) "
|
.append(" INNER JOIN C_DunningLevel dl ON (dl.C_DunningLevel_ID=d.C_DunningLevel_ID) ")
|
||||||
+ "WHERE d.C_DunningRunEntry_ID=?"; // info from Dunning
|
.append("WHERE d.C_DunningRunEntry_ID=?"); // info from Dunning
|
||||||
else if (type == REMITTANCE)
|
else if (type == REMITTANCE)
|
||||||
sql = "SELECT pf.Remittance_PrintFormat_ID,"
|
sql = new StringBuilder("SELECT pf.Remittance_PrintFormat_ID,")
|
||||||
+ " c.IsMultiLingualDocument,bp.AD_Language,bp.C_BPartner_ID,d.DocumentNo "
|
.append(" c.IsMultiLingualDocument,bp.AD_Language,bp.C_BPartner_ID,d.DocumentNo ")
|
||||||
+ "FROM C_PaySelectionCheck d"
|
.append("FROM C_PaySelectionCheck d")
|
||||||
+ " INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)"
|
.append(" INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)")
|
||||||
+ " INNER JOIN AD_PrintForm pf ON (c.AD_Client_ID=pf.AD_Client_ID)"
|
.append(" INNER JOIN AD_PrintForm pf ON (c.AD_Client_ID=pf.AD_Client_ID)")
|
||||||
+ " INNER JOIN C_BPartner bp ON (d.C_BPartner_ID=bp.C_BPartner_ID) "
|
.append(" INNER JOIN C_BPartner bp ON (d.C_BPartner_ID=bp.C_BPartner_ID) ")
|
||||||
+ "WHERE d.C_PaySelectionCheck_ID=?" // info from PrintForm
|
.append("WHERE d.C_PaySelectionCheck_ID=?") // info from PrintForm
|
||||||
+ " AND pf.AD_Org_ID IN (0,d.AD_Org_ID) ORDER BY pf.AD_Org_ID DESC";
|
.append(" AND pf.AD_Org_ID IN (0,d.AD_Org_ID) ORDER BY pf.AD_Org_ID DESC");
|
||||||
else if (type == PROJECT)
|
else if (type == PROJECT)
|
||||||
sql = "SELECT pf.Project_PrintFormat_ID,"
|
sql = new StringBuilder("SELECT pf.Project_PrintFormat_ID,")
|
||||||
+ " c.IsMultiLingualDocument,bp.AD_Language,bp.C_BPartner_ID,d.Value "
|
.append(" c.IsMultiLingualDocument,bp.AD_Language,bp.C_BPartner_ID,d.Value ")
|
||||||
+ "FROM C_Project d"
|
.append("FROM C_Project d")
|
||||||
+ " INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)"
|
.append(" INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)")
|
||||||
+ " INNER JOIN AD_PrintForm pf ON (c.AD_Client_ID=pf.AD_Client_ID)"
|
.append(" INNER JOIN AD_PrintForm pf ON (c.AD_Client_ID=pf.AD_Client_ID)")
|
||||||
+ " LEFT OUTER JOIN C_BPartner bp ON (d.C_BPartner_ID=bp.C_BPartner_ID) "
|
.append(" LEFT OUTER JOIN C_BPartner bp ON (d.C_BPartner_ID=bp.C_BPartner_ID) ")
|
||||||
+ "WHERE d.C_Project_ID=?" // info from PrintForm
|
.append("WHERE d.C_Project_ID=?") // info from PrintForm
|
||||||
+ " AND pf.AD_Org_ID IN (0,d.AD_Org_ID) ORDER BY pf.AD_Org_ID DESC";
|
.append(" AND pf.AD_Org_ID IN (0,d.AD_Org_ID) ORDER BY pf.AD_Org_ID DESC");
|
||||||
else if (type == MANUFACTURING_ORDER)
|
else if (type == MANUFACTURING_ORDER)
|
||||||
sql = "SELECT pf.Manuf_Order_PrintFormat_ID,"
|
sql = new StringBuilder("SELECT pf.Manuf_Order_PrintFormat_ID,")
|
||||||
+ " c.IsMultiLingualDocument,bp.AD_Language, 0 , d.DocumentNo "
|
.append(" c.IsMultiLingualDocument,bp.AD_Language, 0 , d.DocumentNo ")
|
||||||
+ "FROM PP_Order d"
|
.append("FROM PP_Order d")
|
||||||
+ " INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)"
|
.append(" INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)")
|
||||||
+ " LEFT OUTER JOIN AD_User u ON (u.AD_User_ID=d.Planner_ID)"
|
.append(" LEFT OUTER JOIN AD_User u ON (u.AD_User_ID=d.Planner_ID)")
|
||||||
+ " LEFT OUTER JOIN C_BPartner bp ON (u.C_BPartner_ID=bp.C_BPartner_ID) "
|
.append(" LEFT OUTER JOIN C_BPartner bp ON (u.C_BPartner_ID=bp.C_BPartner_ID) ")
|
||||||
+ " INNER JOIN AD_PrintForm pf ON (c.AD_Client_ID=pf.AD_Client_ID)"
|
.append(" INNER JOIN AD_PrintForm pf ON (c.AD_Client_ID=pf.AD_Client_ID)")
|
||||||
+ "WHERE d.PP_Order_ID=?" // info from PrintForm
|
.append("WHERE d.PP_Order_ID=?") // info from PrintForm
|
||||||
+ " AND pf.AD_Org_ID IN (0,d.AD_Org_ID) ORDER BY pf.AD_Org_ID DESC";
|
.append(" AND pf.AD_Org_ID IN (0,d.AD_Org_ID) ORDER BY pf.AD_Org_ID DESC");
|
||||||
else if (type == DISTRIBUTION_ORDER)
|
else if (type == DISTRIBUTION_ORDER)
|
||||||
sql = "SELECT pf.Distrib_Order_PrintFormat_ID,"
|
sql = new StringBuilder("SELECT pf.Distrib_Order_PrintFormat_ID,")
|
||||||
+ " c.IsMultiLingualDocument,bp.AD_Language, bp.C_BPartner_ID , d.DocumentNo "
|
.append(" c.IsMultiLingualDocument,bp.AD_Language, bp.C_BPartner_ID , d.DocumentNo ")
|
||||||
+ "FROM DD_Order d"
|
.append("FROM DD_Order d")
|
||||||
+ " INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)"
|
.append(" INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)")
|
||||||
+ " INNER JOIN AD_PrintForm pf ON (c.AD_Client_ID=pf.AD_Client_ID)"
|
.append(" INNER JOIN AD_PrintForm pf ON (c.AD_Client_ID=pf.AD_Client_ID)")
|
||||||
+ " LEFT OUTER JOIN C_BPartner bp ON (d.C_BPartner_ID=bp.C_BPartner_ID) "
|
.append(" LEFT OUTER JOIN C_BPartner bp ON (d.C_BPartner_ID=bp.C_BPartner_ID) ")
|
||||||
+ "WHERE d.DD_Order_ID=?" // info from PrintForm
|
.append("WHERE d.DD_Order_ID=?") // info from PrintForm
|
||||||
+ " AND pf.AD_Org_ID IN (0,d.AD_Org_ID) ORDER BY pf.AD_Org_ID DESC";
|
.append(" AND pf.AD_Org_ID IN (0,d.AD_Org_ID) ORDER BY pf.AD_Org_ID DESC");
|
||||||
else if (type == RFQ)
|
else if (type == RFQ)
|
||||||
sql = "SELECT COALESCE(t.AD_PrintFormat_ID, pf.AD_PrintFormat_ID),"
|
sql = new StringBuilder("SELECT COALESCE(t.AD_PrintFormat_ID, pf.AD_PrintFormat_ID),")
|
||||||
+ " c.IsMultiLingualDocument,bp.AD_Language,bp.C_BPartner_ID,rr.Name "
|
.append(" c.IsMultiLingualDocument,bp.AD_Language,bp.C_BPartner_ID,rr.Name ")
|
||||||
+ "FROM C_RfQResponse rr"
|
.append("FROM C_RfQResponse rr")
|
||||||
+ " INNER JOIN C_RfQ r ON (rr.C_RfQ_ID=r.C_RfQ_ID)"
|
.append(" INNER JOIN C_RfQ r ON (rr.C_RfQ_ID=r.C_RfQ_ID)")
|
||||||
+ " INNER JOIN C_RfQ_Topic t ON (r.C_RfQ_Topic_ID=t.C_RfQ_Topic_ID)"
|
.append(" INNER JOIN C_RfQ_Topic t ON (r.C_RfQ_Topic_ID=t.C_RfQ_Topic_ID)")
|
||||||
+ " INNER JOIN AD_Client c ON (rr.AD_Client_ID=c.AD_Client_ID)"
|
.append(" INNER JOIN AD_Client c ON (rr.AD_Client_ID=c.AD_Client_ID)")
|
||||||
+ " INNER JOIN C_BPartner bp ON (rr.C_BPartner_ID=bp.C_BPartner_ID),"
|
.append(" INNER JOIN C_BPartner bp ON (rr.C_BPartner_ID=bp.C_BPartner_ID),")
|
||||||
+ " AD_PrintFormat pf "
|
.append(" AD_PrintFormat pf ")
|
||||||
+ "WHERE pf.AD_Client_ID IN (0,rr.AD_Client_ID)"
|
.append("WHERE pf.AD_Client_ID IN (0,rr.AD_Client_ID)")
|
||||||
+ " AND pf.AD_Table_ID=725 AND pf.IsTableBased='N'" // from RfQ PrintFormat
|
.append(" AND pf.AD_Table_ID=725 AND pf.IsTableBased='N'") // from RfQ PrintFormat
|
||||||
+ " AND rr.C_RfQResponse_ID=? " // Info from RfQTopic
|
.append(" AND rr.C_RfQResponse_ID=? ") // Info from RfQTopic
|
||||||
+ "ORDER BY t.AD_PrintFormat_ID, pf.AD_Client_ID DESC, pf.AD_Org_ID DESC";
|
.append("ORDER BY t.AD_PrintFormat_ID, pf.AD_Client_ID DESC, pf.AD_Org_ID DESC");
|
||||||
// Fix [2574162] Priority to choose invoice print format not working
|
// Fix [2574162] Priority to choose invoice print format not working
|
||||||
else if (type == ORDER || type == INVOICE)
|
else if (type == ORDER || type == INVOICE)
|
||||||
sql = "SELECT pf.Order_PrintFormat_ID,pf.Shipment_PrintFormat_ID," // 1..2
|
sql = new StringBuilder("SELECT pf.Order_PrintFormat_ID,pf.Shipment_PrintFormat_ID,") // 1..2
|
||||||
// Prio: 1. BPartner 2. DocType, 3. PrintFormat (Org) // see InvoicePrint
|
// Prio: 1. BPartner 2. DocType, 3. PrintFormat (Org) // see InvoicePrint
|
||||||
+ " COALESCE (bp.Invoice_PrintFormat_ID,dt.AD_PrintFormat_ID,pf.Invoice_PrintFormat_ID)," // 3
|
.append(" COALESCE (bp.Invoice_PrintFormat_ID,dt.AD_PrintFormat_ID,pf.Invoice_PrintFormat_ID),") // 3
|
||||||
+ " pf.Project_PrintFormat_ID, pf.Remittance_PrintFormat_ID," // 4..5
|
.append(" pf.Project_PrintFormat_ID, pf.Remittance_PrintFormat_ID,") // 4..5
|
||||||
+ " c.IsMultiLingualDocument, bp.AD_Language," // 6..7
|
.append(" c.IsMultiLingualDocument, bp.AD_Language,") // 6..7
|
||||||
+ " COALESCE(dt.DocumentCopies,0)+COALESCE(bp.DocumentCopies,1), " // 8
|
.append(" COALESCE(dt.DocumentCopies,0)+COALESCE(bp.DocumentCopies,1), ") // 8
|
||||||
+ " dt.AD_PrintFormat_ID,bp.C_BPartner_ID,d.DocumentNo " // 9..11
|
.append(" dt.AD_PrintFormat_ID,bp.C_BPartner_ID,d.DocumentNo ") // 9..11
|
||||||
+ "FROM " + DOC_BASETABLES[type] + " d"
|
.append("FROM " + DOC_BASETABLES[type] + " d")
|
||||||
+ " INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)"
|
.append(" INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)")
|
||||||
+ " INNER JOIN AD_PrintForm pf ON (c.AD_Client_ID=pf.AD_Client_ID)"
|
.append(" INNER JOIN AD_PrintForm pf ON (c.AD_Client_ID=pf.AD_Client_ID)")
|
||||||
+ " INNER JOIN C_BPartner bp ON (d.C_BPartner_ID=bp.C_BPartner_ID)"
|
.append(" INNER JOIN C_BPartner bp ON (d.C_BPartner_ID=bp.C_BPartner_ID)")
|
||||||
+ " LEFT OUTER JOIN C_DocType dt ON ((d.C_DocType_ID>0 AND d.C_DocType_ID=dt.C_DocType_ID) OR (d.C_DocType_ID=0 AND d.C_DocTypeTarget_ID=dt.C_DocType_ID)) "
|
.append(" LEFT OUTER JOIN C_DocType dt ON ((d.C_DocType_ID>0 AND d.C_DocType_ID=dt.C_DocType_ID) OR (d.C_DocType_ID=0 AND d.C_DocTypeTarget_ID=dt.C_DocType_ID)) ")
|
||||||
+ "WHERE d." + DOC_IDS[type] + "=?" // info from PrintForm
|
.append("WHERE d." + DOC_IDS[type] + "=?") // info from PrintForm
|
||||||
+ " AND pf.AD_Org_ID IN (0,d.AD_Org_ID) "
|
.append(" AND pf.AD_Org_ID IN (0,d.AD_Org_ID) ")
|
||||||
+ "ORDER BY pf.AD_Org_ID DESC";
|
.append("ORDER BY pf.AD_Org_ID DESC");
|
||||||
else // Get PrintFormat from Org or 0 of document client
|
else // Get PrintFormat from Org or 0 of document client
|
||||||
sql = "SELECT pf.Order_PrintFormat_ID,pf.Shipment_PrintFormat_ID," // 1..2
|
sql = new StringBuilder("SELECT pf.Order_PrintFormat_ID,pf.Shipment_PrintFormat_ID,") // 1..2
|
||||||
// Prio: 1. BPartner 2. DocType, 3. PrintFormat (Org) // see InvoicePrint
|
// Prio: 1. BPartner 2. DocType, 3. PrintFormat (Org) // see InvoicePrint
|
||||||
+ " COALESCE (bp.Invoice_PrintFormat_ID,dt.AD_PrintFormat_ID,pf.Invoice_PrintFormat_ID)," // 3
|
.append(" COALESCE (bp.Invoice_PrintFormat_ID,dt.AD_PrintFormat_ID,pf.Invoice_PrintFormat_ID),") // 3
|
||||||
+ " pf.Project_PrintFormat_ID, pf.Remittance_PrintFormat_ID," // 4..5
|
.append(" pf.Project_PrintFormat_ID, pf.Remittance_PrintFormat_ID,") // 4..5
|
||||||
+ " c.IsMultiLingualDocument, bp.AD_Language," // 6..7
|
.append(" c.IsMultiLingualDocument, bp.AD_Language,") // 6..7
|
||||||
+ " COALESCE(dt.DocumentCopies,0)+COALESCE(bp.DocumentCopies,1), " // 8
|
.append(" COALESCE(dt.DocumentCopies,0)+COALESCE(bp.DocumentCopies,1), ") // 8
|
||||||
+ " dt.AD_PrintFormat_ID,bp.C_BPartner_ID,d.DocumentNo, " // 9..11
|
.append(" dt.AD_PrintFormat_ID,bp.C_BPartner_ID,d.DocumentNo, ") // 9..11
|
||||||
+ " pf.Manuf_Order_PrintFormat_ID, pf.Distrib_Order_PrintFormat_ID " // 12..13
|
.append(" pf.Manuf_Order_PrintFormat_ID, pf.Distrib_Order_PrintFormat_ID ") // 12..13
|
||||||
+ "FROM " + DOC_BASETABLES[type] + " d"
|
.append("FROM " + DOC_BASETABLES[type] + " d")
|
||||||
+ " INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)"
|
.append(" INNER JOIN AD_Client c ON (d.AD_Client_ID=c.AD_Client_ID)")
|
||||||
+ " INNER JOIN AD_PrintForm pf ON (c.AD_Client_ID=pf.AD_Client_ID)"
|
.append(" INNER JOIN AD_PrintForm pf ON (c.AD_Client_ID=pf.AD_Client_ID)")
|
||||||
+ " INNER JOIN C_BPartner bp ON (d.C_BPartner_ID=bp.C_BPartner_ID)"
|
.append(" INNER JOIN C_BPartner bp ON (d.C_BPartner_ID=bp.C_BPartner_ID)")
|
||||||
+ " LEFT OUTER JOIN C_DocType dt ON (d.C_DocType_ID=dt.C_DocType_ID) "
|
.append(" LEFT OUTER JOIN C_DocType dt ON (d.C_DocType_ID=dt.C_DocType_ID) ")
|
||||||
+ "WHERE d." + DOC_IDS[type] + "=?" // info from PrintForm
|
.append("WHERE d." + DOC_IDS[type] + "=?") // info from PrintForm
|
||||||
+ " AND pf.AD_Org_ID IN (0,d.AD_Org_ID) "
|
.append(" AND pf.AD_Org_ID IN (0,d.AD_Org_ID) ")
|
||||||
+ "ORDER BY pf.AD_Org_ID DESC";
|
.append("ORDER BY pf.AD_Org_ID DESC");
|
||||||
//
|
//
|
||||||
PreparedStatement pstmt = null;
|
PreparedStatement pstmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
pstmt = DB.prepareStatement(sql, trxName);
|
pstmt = DB.prepareStatement(sql.toString(), trxName);
|
||||||
pstmt.setInt(1, Record_ID);
|
pstmt.setInt(1, Record_ID);
|
||||||
rs = pstmt.executeQuery();
|
rs = pstmt.executeQuery();
|
||||||
if (rs.next()) // first record only
|
if (rs.next()) // first record only
|
||||||
|
@ -1530,16 +1532,16 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
||||||
what[0] = ORDER;
|
what[0] = ORDER;
|
||||||
what[1] = C_Order_ID;
|
what[1] = C_Order_ID;
|
||||||
//
|
//
|
||||||
String sql = "SELECT dt.DocSubTypeSO "
|
StringBuilder sql = new StringBuilder("SELECT dt.DocSubTypeSO ")
|
||||||
+ "FROM C_DocType dt, C_Order o "
|
.append("FROM C_DocType dt, C_Order o ")
|
||||||
+ "WHERE o.C_DocType_ID=dt.C_DocType_ID"
|
.append("WHERE o.C_DocType_ID=dt.C_DocType_ID")
|
||||||
+ " AND o.C_Order_ID=?";
|
.append(" AND o.C_Order_ID=?");
|
||||||
String DocSubTypeSO = null;
|
String DocSubTypeSO = null;
|
||||||
PreparedStatement pstmt = null;
|
PreparedStatement pstmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
pstmt = DB.prepareStatement(sql, null);
|
pstmt = DB.prepareStatement(sql.toString(), null);
|
||||||
pstmt.setInt(1, C_Order_ID);
|
pstmt.setInt(1, C_Order_ID);
|
||||||
rs = pstmt.executeQuery();
|
rs = pstmt.executeQuery();
|
||||||
if (rs.next())
|
if (rs.next())
|
||||||
|
@ -1548,11 +1550,11 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
||||||
// @Trifon - Order is not completed(C_DoctType_ID=0) then try with C_DocTypeTarget_ID
|
// @Trifon - Order is not completed(C_DoctType_ID=0) then try with C_DocTypeTarget_ID
|
||||||
// [ 2819637 ] Wrong print format on non completed order - https://sourceforge.net/tracker/?func=detail&aid=2819637&group_id=176962&atid=879332
|
// [ 2819637 ] Wrong print format on non completed order - https://sourceforge.net/tracker/?func=detail&aid=2819637&group_id=176962&atid=879332
|
||||||
if (DocSubTypeSO == null || "".equals(DocSubTypeSO)) {
|
if (DocSubTypeSO == null || "".equals(DocSubTypeSO)) {
|
||||||
sql = "SELECT dt.DocSubTypeSO "
|
sql = new StringBuilder("SELECT dt.DocSubTypeSO ")
|
||||||
+ "FROM C_DocType dt, C_Order o "
|
.append("FROM C_DocType dt, C_Order o ")
|
||||||
+ "WHERE o.C_DocTypeTarget_ID=dt.C_DocType_ID"
|
.append("WHERE o.C_DocTypeTarget_ID=dt.C_DocType_ID")
|
||||||
+ " AND o.C_Order_ID=?";
|
.append(" AND o.C_Order_ID=?");
|
||||||
pstmt = DB.prepareStatement(sql, null);
|
pstmt = DB.prepareStatement(sql.toString(), null);
|
||||||
pstmt.setInt(1, C_Order_ID);
|
pstmt.setInt(1, C_Order_ID);
|
||||||
rs = pstmt.executeQuery();
|
rs = pstmt.executeQuery();
|
||||||
if (rs.next()) {
|
if (rs.next()) {
|
||||||
|
@ -1583,14 +1585,14 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
||||||
|
|
||||||
// Get Record_ID of Invoice/Receipt
|
// Get Record_ID of Invoice/Receipt
|
||||||
if (what[0] == INVOICE)
|
if (what[0] == INVOICE)
|
||||||
sql = "SELECT C_Invoice_ID REC FROM C_Invoice WHERE C_Order_ID=?" // 1
|
sql = new StringBuilder("SELECT C_Invoice_ID REC FROM C_Invoice WHERE C_Order_ID=?") // 1
|
||||||
+ " ORDER BY C_Invoice_ID DESC";
|
.append(" ORDER BY C_Invoice_ID DESC");
|
||||||
else
|
else
|
||||||
sql = "SELECT M_InOut_ID REC FROM M_InOut WHERE C_Order_ID=?" // 1
|
sql = new StringBuilder("SELECT M_InOut_ID REC FROM M_InOut WHERE C_Order_ID=?") // 1
|
||||||
+ " ORDER BY M_InOut_ID DESC";
|
.append(" ORDER BY M_InOut_ID DESC");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
pstmt = DB.prepareStatement(sql, null);
|
pstmt = DB.prepareStatement(sql.toString(), null);
|
||||||
pstmt.setInt(1, C_Order_ID);
|
pstmt.setInt(1, C_Order_ID);
|
||||||
rs = pstmt.executeQuery();
|
rs = pstmt.executeQuery();
|
||||||
if (rs.next())
|
if (rs.next())
|
||||||
|
@ -1610,6 +1612,7 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
||||||
DB.close(rs, pstmt);
|
DB.close(rs, pstmt);
|
||||||
rs = null; pstmt = null;
|
rs = null; pstmt = null;
|
||||||
}
|
}
|
||||||
|
if (log.isLoggable(Level.FINE))
|
||||||
log.fine("Order => " + what[0] + " ID=" + what[1]);
|
log.fine("Order => " + what[0] + " ID=" + what[1]);
|
||||||
return what;
|
return what;
|
||||||
} // getDocumentWhat
|
} // getDocumentWhat
|
||||||
|
|
|
@ -318,6 +318,7 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
if (!paperChange)
|
if (!paperChange)
|
||||||
paperChange = !paper.equals(m_paper);
|
paperChange = !paper.equals(m_paper);
|
||||||
//
|
//
|
||||||
|
if (log.isLoggable(Level.FINE))
|
||||||
log.fine(paper + " - Header=" + headerHeight + ", Footer=" + footerHeight);
|
log.fine(paper + " - Header=" + headerHeight + ", Footer=" + footerHeight);
|
||||||
m_paper = paper;
|
m_paper = paper;
|
||||||
m_headerHeight = headerHeight;
|
m_headerHeight = headerHeight;
|
||||||
|
@ -405,8 +406,11 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
height = m_footerHeight;
|
height = m_footerHeight;
|
||||||
m_footer.setBounds (x, y, w, height);
|
m_footer.setBounds (x, y, w, height);
|
||||||
|
|
||||||
|
if (log.isLoggable(Level.FINE))
|
||||||
|
{
|
||||||
log.fine("Paper=" + m_paper + ",HeaderHeight=" + m_headerHeight + ",FooterHeight=" + m_footerHeight
|
log.fine("Paper=" + m_paper + ",HeaderHeight=" + m_headerHeight + ",FooterHeight=" + m_footerHeight
|
||||||
+ " => Header=" + m_header + ",Contents=" + m_content + ",Footer=" + m_footer);
|
+ " => Header=" + m_header + ",Contents=" + m_content + ",Footer=" + m_footer);
|
||||||
|
}
|
||||||
} // calculatePageSize
|
} // calculatePageSize
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -582,6 +586,7 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
&& m_position[AREA_CONTENT].getX() == m_content.x
|
&& m_position[AREA_CONTENT].getX() == m_content.x
|
||||||
&& m_position[AREA_CONTENT].getY() == m_content.y)
|
&& m_position[AREA_CONTENT].getY() == m_content.y)
|
||||||
{
|
{
|
||||||
|
if (log.isLoggable(Level.FINE))
|
||||||
log.fine("skipped");
|
log.fine("skipped");
|
||||||
return m_pageNo;
|
return m_pageNo;
|
||||||
}
|
}
|
||||||
|
@ -597,6 +602,7 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
m_position[AREA_CONTENT].setLocation(m_content.x, m_content.y);
|
m_position[AREA_CONTENT].setLocation(m_content.x, m_content.y);
|
||||||
m_position[AREA_FOOTER].setLocation(m_footer.x, m_footer.y);
|
m_position[AREA_FOOTER].setLocation(m_footer.x, m_footer.y);
|
||||||
m_maxHeightSinceNewLine = new float[] {0f, 0f, 0f};
|
m_maxHeightSinceNewLine = new float[] {0f, 0f, 0f};
|
||||||
|
if (log.isLoggable(Level.FINE))
|
||||||
log.finer("Page=" + m_pageNo);
|
log.finer("Page=" + m_pageNo);
|
||||||
return m_pageNo;
|
return m_pageNo;
|
||||||
} // newPage
|
} // newPage
|
||||||
|
@ -620,6 +626,7 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
if (isYspaceFor(m_maxHeightSinceNewLine[m_area]))
|
if (isYspaceFor(m_maxHeightSinceNewLine[m_area]))
|
||||||
{
|
{
|
||||||
m_position[m_area].setLocation(xPos, m_position[m_area].y + m_maxHeightSinceNewLine[m_area]);
|
m_position[m_area].setLocation(xPos, m_position[m_area].y + m_maxHeightSinceNewLine[m_area]);
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
||||||
}
|
}
|
||||||
else if (m_area == AREA_CONTENT)
|
else if (m_area == AREA_CONTENT)
|
||||||
|
@ -627,6 +634,7 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
log.finest("Not enough Y space "
|
log.finest("Not enough Y space "
|
||||||
+ m_lastHeight[m_area] + " - remaining " + getYspace() + " - Area=" + m_area);
|
+ m_lastHeight[m_area] + " - remaining " + getYspace() + " - Area=" + m_area);
|
||||||
newPage(true, false);
|
newPage(true, false);
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
||||||
}
|
}
|
||||||
else // footer/header
|
else // footer/header
|
||||||
|
@ -766,6 +774,7 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
else if (m_area == AREA_FOOTER)
|
else if (m_area == AREA_FOOTER)
|
||||||
part = m_footer;
|
part = m_footer;
|
||||||
m_position[m_area].setLocation(part.x + p.getX(), part.y + p.getY());
|
m_position[m_area].setLocation(part.x + p.getX(), part.y + p.getY());
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
||||||
} // setPosition
|
} // setPosition
|
||||||
|
|
||||||
|
@ -795,6 +804,7 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
protected void setX (float x)
|
protected void setX (float x)
|
||||||
{
|
{
|
||||||
m_position[m_area].x = x;
|
m_position[m_area].x = x;
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
||||||
} // setX
|
} // setX
|
||||||
|
|
||||||
|
@ -807,6 +817,7 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
if (xOffset == 0f)
|
if (xOffset == 0f)
|
||||||
return;
|
return;
|
||||||
m_position[m_area].x += xOffset;
|
m_position[m_area].x += xOffset;
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
||||||
} // addX
|
} // addX
|
||||||
|
|
||||||
|
@ -826,6 +837,7 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
protected void setY (int y)
|
protected void setY (int y)
|
||||||
{
|
{
|
||||||
m_position[m_area].y = y;
|
m_position[m_area].y = y;
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
||||||
} // setY
|
} // setY
|
||||||
|
|
||||||
|
@ -840,6 +852,7 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
if (isYspaceFor(yOffset))
|
if (isYspaceFor(yOffset))
|
||||||
{
|
{
|
||||||
m_position[m_area].y += yOffset;
|
m_position[m_area].y += yOffset;
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
||||||
}
|
}
|
||||||
else if (m_area == AREA_CONTENT)
|
else if (m_area == AREA_CONTENT)
|
||||||
|
@ -847,6 +860,7 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
log.finest("Not enough Y space "
|
log.finest("Not enough Y space "
|
||||||
+ m_lastHeight[m_area] + " - remaining " + getYspace() + " - Area=" + m_area);
|
+ m_lastHeight[m_area] + " - remaining " + getYspace() + " - Area=" + m_area);
|
||||||
newPage(true, true);
|
newPage(true, true);
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
log.finest("Page=" + m_pageNo + " [" + m_area + "] " + m_position[m_area].x + "/" + m_position[m_area].y);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1147,12 +1161,14 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
{
|
{
|
||||||
if (!isXspaceFor(m_lastWidth[m_area]))
|
if (!isXspaceFor(m_lastWidth[m_area]))
|
||||||
{
|
{
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Not enough X space for "
|
log.finest("Not enough X space for "
|
||||||
+ m_lastWidth[m_area] + " - remaining " + getXspace() + " - Area=" + m_area);
|
+ m_lastWidth[m_area] + " - remaining " + getXspace() + " - Area=" + m_area);
|
||||||
newLine ();
|
newLine ();
|
||||||
}
|
}
|
||||||
if (m_area == AREA_CONTENT && !isYspaceFor(m_lastHeight[m_area]))
|
if (m_area == AREA_CONTENT && !isYspaceFor(m_lastHeight[m_area]))
|
||||||
{
|
{
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Not enough Y space "
|
log.finest("Not enough Y space "
|
||||||
+ m_lastHeight[m_area] + " - remaining " + getYspace() + " - Area=" + m_area);
|
+ m_lastHeight[m_area] + " - remaining " + getYspace() + " - Area=" + m_area);
|
||||||
newPage (true, true);
|
newPage (true, true);
|
||||||
|
@ -1235,12 +1251,14 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
MQuery query = new MQuery (format.getAD_Table_ID());
|
MQuery query = new MQuery (format.getAD_Table_ID());
|
||||||
query.addRestriction(item.getColumnName(), MQuery.EQUAL, new Integer(Record_ID));
|
query.addRestriction(item.getColumnName(), MQuery.EQUAL, new Integer(Record_ID));
|
||||||
format.setTranslationViewQuery(query);
|
format.setTranslationViewQuery(query);
|
||||||
|
if (log.isLoggable(Level.FINE))
|
||||||
log.fine(query.toString());
|
log.fine(query.toString());
|
||||||
//
|
//
|
||||||
DataEngine de = new DataEngine(format.getLanguage(),m_TrxName);
|
DataEngine de = new DataEngine(format.getLanguage(),m_TrxName);
|
||||||
PrintData includedData = de.getPrintData(data.getCtx(), format, query);
|
PrintData includedData = de.getPrintData(data.getCtx(), format, query);
|
||||||
if (includedData == null)
|
if (includedData == null)
|
||||||
return null;
|
return null;
|
||||||
|
if (log.isLoggable(Level.FINE))
|
||||||
log.fine(includedData.toString());
|
log.fine(includedData.toString());
|
||||||
//
|
//
|
||||||
element = layoutTable (format, includedData, item.getXSpace());
|
element = layoutTable (format, includedData, item.getXSpace());
|
||||||
|
@ -1263,12 +1281,14 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
|
|
||||||
if (!isXspaceFor(m_lastWidth[m_area]))
|
if (!isXspaceFor(m_lastWidth[m_area]))
|
||||||
{
|
{
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Not enough X space for "
|
log.finest("Not enough X space for "
|
||||||
+ m_lastWidth[m_area] + " - remaining " + getXspace() + " - Area=" + m_area);
|
+ m_lastWidth[m_area] + " - remaining " + getXspace() + " - Area=" + m_area);
|
||||||
newLine ();
|
newLine ();
|
||||||
}
|
}
|
||||||
if (m_area == AREA_CONTENT && !isYspaceFor(m_lastHeight[m_area]))
|
if (m_area == AREA_CONTENT && !isYspaceFor(m_lastHeight[m_area]))
|
||||||
{
|
{
|
||||||
|
if (log.isLoggable(Level.FINEST))
|
||||||
log.finest("Not enough Y space "
|
log.finest("Not enough Y space "
|
||||||
+ m_lastHeight[m_area] + " - remaining " + getYspace() + " - Area=" + m_area);
|
+ m_lastHeight[m_area] + " - remaining " + getYspace() + " - Area=" + m_area);
|
||||||
newPage (true, false);
|
newPage (true, false);
|
||||||
|
@ -1353,6 +1373,7 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
// Convert AmtInWords Content to alpha
|
// Convert AmtInWords Content to alpha
|
||||||
if (item.getColumnName().equals("AmtInWords"))
|
if (item.getColumnName().equals("AmtInWords"))
|
||||||
{
|
{
|
||||||
|
if (log.isLoggable(Level.FINE))
|
||||||
log.fine("AmtInWords: " + stringContent);
|
log.fine("AmtInWords: " + stringContent);
|
||||||
stringContent = Msg.getAmtInWords (m_format.getLanguage(), stringContent);
|
stringContent = Msg.getAmtInWords (m_format.getLanguage(), stringContent);
|
||||||
content = stringContent;
|
content = stringContent;
|
||||||
|
@ -1647,6 +1668,7 @@ public class LayoutEngine implements Pageable, Printable, Doc
|
||||||
if (printData.isPageBreak())
|
if (printData.isPageBreak())
|
||||||
{
|
{
|
||||||
pageBreak.add(new Integer(row));
|
pageBreak.add(new Integer(row));
|
||||||
|
if (log.isLoggable(Level.FINER))
|
||||||
log.finer("PageBreak row=" + row);
|
log.finer("PageBreak row=" + row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,7 +141,7 @@ public class DashboardController implements EventListener<MaximizeEvent> {
|
||||||
String htmlContent = dp.getHTML();
|
String htmlContent = dp.getHTML();
|
||||||
if(htmlContent != null)
|
if(htmlContent != null)
|
||||||
{
|
{
|
||||||
StringBuffer result = new StringBuffer("<html><head>");
|
StringBuilder result = new StringBuilder("<html><head>");
|
||||||
|
|
||||||
URL url = getClass().getClassLoader().getResource("org/compiere/images/PAPanel.css");
|
URL url = getClass().getClassLoader().getResource("org/compiere/images/PAPanel.css");
|
||||||
InputStreamReader ins;
|
InputStreamReader ins;
|
||||||
|
|
Loading…
Reference in New Issue