diff --git a/org.adempiere.base/src/org/compiere/print/DataEngine.java b/org.adempiere.base/src/org/compiere/print/DataEngine.java index 04c9557b72..a81892f9d8 100644 --- a/org.adempiere.base/src/org/compiere/print/DataEngine.java +++ b/org.adempiere.base/src/org/compiere/print/DataEngine.java @@ -404,7 +404,9 @@ public class DataEngine groupByColumns.add(m_synonym+display); groupByColumns.add(lookupSQL); // - pdc = new PrintDataColumn(AD_Column_ID, ColumnName, AD_Reference_ID, FieldLength, orderName, isPageBreak); + TableReference tr = getTableReference(AD_Reference_Value_ID); + String foreignColumnName = tr.KeyColumn; + pdc = new PrintDataColumn(AD_Column_ID, ColumnName, AD_Reference_ID, FieldLength, orderName, isPageBreak, foreignColumnName); synonymNext(); } @@ -904,7 +906,7 @@ public class DataEngine if (display != null && !rs.wasNull()) { KeyNamePair pp = new KeyNamePair(id, display); - pde = new PrintDataElement(pdc.getColumnName(), pp, pdc.getDisplayType(), pdc.getFormatPattern()); + pde = new PrintDataElement(pdc.getColumnName(), pp, pdc.getDisplayType(), pdc.getFormatPattern(), pdc.getForeignColumnName()); } } else diff --git a/org.adempiere.base/src/org/compiere/print/PrintDataColumn.java b/org.adempiere.base/src/org/compiere/print/PrintDataColumn.java index c3eff06f9a..2323e195e0 100644 --- a/org.adempiere.base/src/org/compiere/print/PrintDataColumn.java +++ b/org.adempiere.base/src/org/compiere/print/PrintDataColumn.java @@ -36,10 +36,9 @@ public class PrintDataColumn * @param columnSize Column Size * @param alias Alias in query or the same as column name or null * @param isPageBreak if true force page break after function + * @param foreignColumnName name foreign */ - public PrintDataColumn (int AD_Column_ID, String columnName, - int displayType, int columnSize, - String alias, boolean isPageBreak) + public PrintDataColumn(int AD_Column_ID, String columnName,int displayType, int columnSize,String alias, boolean isPageBreak, String foreignColumnName) { m_AD_Column_ID = AD_Column_ID; m_columnName = columnName; @@ -51,15 +50,22 @@ public class PrintDataColumn if (m_alias == null) m_alias = columnName; m_pageBreak = isPageBreak; - } // PrintDataColumn + m_foreignColumnName = foreignColumnName; + } + public PrintDataColumn (int AD_Column_ID, String columnName,int displayType, int columnSize,String alias, boolean isPageBreak) + { + this(AD_Column_ID, columnName, displayType, columnSize, alias, isPageBreak, null); + } // PrintDataColumn + private int m_AD_Column_ID; private String m_columnName; + private String m_foreignColumnName; private int m_displayType; private int m_columnSize; private String m_alias; private boolean m_pageBreak; - private String m_FormatPattern; + private String m_FormatPattern; /*************************************************************************/ @@ -81,6 +87,18 @@ public class PrintDataColumn return m_columnName; } // getColumnName + /** + * Get ForeignColumn Name + * @return column foreign name + */ + public String getForeignColumnName() + { + if (m_foreignColumnName == null) + return m_columnName; + else + return m_foreignColumnName; + } // getForeignColumnName + /** * Get Display Type * @return display type diff --git a/org.adempiere.base/src/org/compiere/print/PrintDataElement.java b/org.adempiere.base/src/org/compiere/print/PrintDataElement.java index 62b0a081af..f58d77b4b8 100644 --- a/org.adempiere.base/src/org/compiere/print/PrintDataElement.java +++ b/org.adempiere.base/src/org/compiere/print/PrintDataElement.java @@ -36,10 +36,9 @@ import org.compiere.util.NamePair; public class PrintDataElement implements Serializable { /** - * generated serialize id + * */ - private static final long serialVersionUID = -4823568539698752659L; - + private static final long serialVersionUID = 2177482817458457236L; /** * Print Data Element Constructor @@ -48,8 +47,9 @@ public class PrintDataElement implements Serializable * @param displayType optional displayType * @param isPKey is primary key * @param isPageBreak if true force page break + * @param foreignColumnName name foreign */ - public PrintDataElement (String columnName, Serializable value, int displayType, boolean isPKey, boolean isPageBreak, String format) + public PrintDataElement (String columnName, Serializable value, int displayType, boolean isPKey, boolean isPageBreak, String format, String foreignColumnName) { if (columnName == null) throw new IllegalArgumentException("PrintDataElement - Name cannot be null"); @@ -59,8 +59,14 @@ public class PrintDataElement implements Serializable m_isPKey = isPKey; m_isPageBreak = isPageBreak; m_formatPattern = format; + m_foreignColumnName = foreignColumnName; } // PrintDataElement + public PrintDataElement(String columnName, Serializable value, int displayType, String pattern, String foreignColumnName) + { + this (columnName, value, displayType, false, false, pattern, foreignColumnName); + } // PrintDataElement + /** * Print Data Element Constructor * @param columnName name @@ -70,9 +76,14 @@ public class PrintDataElement implements Serializable */ public PrintDataElement(String columnName, Serializable value, int displayType, String pattern) { - this (columnName, value, displayType, false, false, pattern); + this (columnName, value, displayType, false, false, pattern, null); } // PrintDataElement + public PrintDataElement (String columnName, Serializable value, int displayType, boolean isPKey, boolean isPageBreak, String format) + { + this(columnName, value, displayType, isPKey, isPageBreak, format, null); + } + /** Data Name */ private String m_columnName; /** Data Value */ @@ -85,6 +96,8 @@ public class PrintDataElement implements Serializable private boolean m_isPageBreak; /** Value format pattern */ private String m_formatPattern; + /** Value foreign name */ + private String m_foreignColumnName; /** XML Element Name */ @@ -103,6 +116,18 @@ public class PrintDataElement implements Serializable { return m_columnName; } // getName + + /** + * Get ForeignName + * @return name + */ + public String getForeignColumnName() { + if (m_foreignColumnName == null) + return m_columnName; + else + return m_foreignColumnName; + } + /** * Get Node Value diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/report/HTMLExtension.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/report/HTMLExtension.java index 9dadd664f2..6a49334c0f 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/report/HTMLExtension.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/report/HTMLExtension.java @@ -79,7 +79,7 @@ public class HTMLExtension implements IHTMLExtension { href.setStyle("text-decoration: none; font-size: 11px; vertical-align: middle;"); href.addAttribute("onclick", "parent.drillDown('" + componentId + "', '" - + dataElement.getColumnName() + "', '" + + dataElement.getForeignColumnName() + "', '" + dataElement.getValueAsString() + "')"); report.addElement(href); menu.addElement(report);