diff --git a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java index 8b4d1c7ffe..4290fae55b 100644 --- a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java +++ b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java @@ -597,15 +597,21 @@ public class MLookupFactory retValue.DisplayColumn = lookupDisplayColumn; retValue.InfoWindowId = infoWindowId; retValue.QueryDirect = MRole.getDefault().addAccessSQL(directQuery, TableName, true, false); - List lookupDisplayColumns = new ArrayList(); - if (isValueDisplayed) - lookupDisplayColumns.add("Value"); - lookupDisplayColumns.add(lookupDisplayColumn != null ? lookupDisplayColumn : DisplayColumn); - s_cacheRefTable.put(key.toString(), retValue.cloneIt()); - retValue.lookupDisplayColumns = lookupDisplayColumns; - return retValue; - } // getLookup_Table - + List lookupDisplayColumns = new ArrayList(); + if (isValueDisplayed) + lookupDisplayColumns.add("Value"); + lookupDisplayColumns.add(lookupDisplayColumn != null ? lookupDisplayColumn : DisplayColumn); + retValue.lookupDisplayColumns = lookupDisplayColumns; + if(list != null) { + retValue.lookupDisplayColumnNames = new ArrayList<>(); + for (LookupDisplayColumn ldc : list) { + retValue.lookupDisplayColumnNames.add(ldc.ColumnName); + } + } + s_cacheRefTable.put(key.toString(), retValue.cloneIt()); + return retValue; + } // getLookup_Table + /** * Get Embedded Lookup SQL for Table Lookup * @param language report language diff --git a/org.adempiere.base/src/org/compiere/model/MLookupInfo.java b/org.adempiere.base/src/org/compiere/model/MLookupInfo.java index d2c08f27ec..94fac2742e 100644 --- a/org.adempiere.base/src/org/compiere/model/MLookupInfo.java +++ b/org.adempiere.base/src/org/compiere/model/MLookupInfo.java @@ -17,12 +17,12 @@ package org.compiere.model; import java.io.Serializable; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; +import java.util.Properties; +import java.util.logging.Level; import org.compiere.util.CLogger; import org.compiere.util.DB; @@ -209,11 +209,13 @@ public class MLookupInfo implements Serializable, Cloneable public String DisplayColumn; public int InfoWindowId; - - public List lookupDisplayColumns = null; - - /** - * String representation + + public List lookupDisplayColumns = null; + + public List lookupDisplayColumnNames = null; + + /** + * String representation * @return info */ public String toString() diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/InfoListSubModel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/InfoListSubModel.java index 7980da0796..9b2fdd6758 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/InfoListSubModel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/InfoListSubModel.java @@ -98,7 +98,7 @@ public class InfoListSubModel implements ListSubModel { .append(nRows); if (lookup instanceof MLookup) { MLookup mlookup = (MLookup) lookup; - List displayColumns = mlookup.getLookupInfo().lookupDisplayColumns; + List displayColumns = mlookup.getLookupInfo().lookupDisplayColumnNames; if (displayColumns != null && displayColumns.size() > 0) { queryBuilder.append(",") .append("searchcolumn:")