diff --git a/org.adempiere.base/src/org/compiere/model/GridFieldVO.java b/org.adempiere.base/src/org/compiere/model/GridFieldVO.java index d051465393..f57479af59 100644 --- a/org.adempiere.base/src/org/compiere/model/GridFieldVO.java +++ b/org.adempiere.base/src/org/compiere/model/GridFieldVO.java @@ -200,10 +200,14 @@ public class GridFieldVO implements Serializable vo.AD_Reference_Value_ID = rs.getInt(i); else if (columnName.equalsIgnoreCase("ValidationCode")) vo.ValidationCode = rs.getString(i); - else if (columnName.equalsIgnoreCase("ColumnSQL")) + else if (columnName.equalsIgnoreCase("ColumnSQL")) { vo.ColumnSQL = rs.getString(i); + if (vo.ColumnSQL != null && vo.ColumnSQL.contains("@")) { + // NOTE: cannot use window context because this is set globally on the query, not per record + vo.ColumnSQL = Env.parseContext(ctx, -1, vo.ColumnSQL, false, true); + } //Feature Request FR [ 1757088 ] - else if (columnName.equalsIgnoreCase("Included_Tab_ID")) + } else if (columnName.equalsIgnoreCase("Included_Tab_ID")) vo.Included_Tab_ID = rs.getInt(i); // Collapse Default State else if (columnName.equalsIgnoreCase("IsCollapsedByDefault")) diff --git a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java index 59f6e7b4a1..9a8cd9f388 100644 --- a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java +++ b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java @@ -417,6 +417,8 @@ public class MLookupFactory ZoomWindowPO = rs.getInt(9); //AD_Table_ID = rs.getInt(10); displayColumnSQL = rs.getString(11); + if (displayColumnSQL != null && displayColumnSQL.contains("@")) + displayColumnSQL = Env.parseContext(Env.getCtx(), -1, displayColumnSQL, false, true); overrideZoomWindow = rs.getInt(12); infoWindowId = rs.getInt(13); loaded = true; diff --git a/org.adempiere.base/src/org/compiere/model/MQuery.java b/org.adempiere.base/src/org/compiere/model/MQuery.java index 552f6a4a1f..8af8461b80 100644 --- a/org.adempiere.base/src/org/compiere/model/MQuery.java +++ b/org.adempiere.base/src/org/compiere/model/MQuery.java @@ -1114,7 +1114,10 @@ class Restriction implements Serializable MTable table = MTable.get(Env.getCtx(), tableName); if (table != null) { for (MColumn col : table.getColumns(false)) { - if (ColumnName.equals(col.getColumnSQL())) { + String colSQL = col.getColumnSQL(); + if (colSQL != null && colSQL.contains("@")) + colSQL = Env.parseContext(Env.getCtx(), -1, colSQL, false, true); + if (ColumnName.equals(colSQL)) { virtualColumn = true; break; } diff --git a/org.adempiere.base/src/org/compiere/model/POInfo.java b/org.adempiere.base/src/org/compiere/model/POInfo.java index 0c98d45130..9e04422c9a 100644 --- a/org.adempiere.base/src/org/compiere/model/POInfo.java +++ b/org.adempiere.base/src/org/compiere/model/POInfo.java @@ -198,6 +198,8 @@ public class POInfo implements Serializable // m_AccessLevel = rs.getString(18); String ColumnSQL = rs.getString(19); + if (ColumnSQL != null && ColumnSQL.contains("@")) + ColumnSQL = Env.parseContext(Env.getCtx(), -1, ColumnSQL, false, true); boolean IsEncrypted = "Y".equals(rs.getString(20)); boolean IsAllowLogging = "Y".equals(rs.getString(21)); boolean IsAllowCopy = "Y".equals(rs.getString(22)); diff --git a/org.adempiere.base/src/org/compiere/print/DataEngine.java b/org.adempiere.base/src/org/compiere/print/DataEngine.java index e0e229e6a7..e8c8e2c11d 100644 --- a/org.adempiere.base/src/org/compiere/print/DataEngine.java +++ b/org.adempiere.base/src/org/compiere/print/DataEngine.java @@ -299,6 +299,8 @@ public class DataEngine int AD_Column_ID = rs.getInt(1); String ColumnName = rs.getString(2); String ColumnSQL = rs.getString(24); + if (ColumnSQL != null && ColumnSQL.contains("@")) + ColumnSQL = Env.parseContext(Env.getCtx(), -1, ColumnSQL, false, true); if (ColumnSQL == null) ColumnSQL = ""; int AD_Reference_ID = rs.getInt(3); diff --git a/org.adempiere.ui.swing/src/org/compiere/apps/search/InfoGeneral.java b/org.adempiere.ui.swing/src/org/compiere/apps/search/InfoGeneral.java index 45a5462226..0465d310c1 100644 --- a/org.adempiere.ui.swing/src/org/compiere/apps/search/InfoGeneral.java +++ b/org.adempiere.ui.swing/src/org/compiere/apps/search/InfoGeneral.java @@ -256,6 +256,8 @@ public class InfoGeneral extends Info { m_queryColumns.add(rs.getString(1)); String columnSql = rs.getString(4); + if (columnSql != null && columnSql.contains("@")) + columnSql = Env.parseContext(Env.getCtx(), -1, columnSql, false, true); if (columnSql != null && columnSql.length() > 0) m_queryColumnsSql.add(columnSql); else @@ -325,6 +327,8 @@ public class InfoGeneral extends Info int AD_Reference_Value_ID = rs.getInt(5); // teo_sarca String columnSql = rs.getString(6); + if (columnSql != null && columnSql.contains("@")) + columnSql = Env.parseContext(Env.getCtx(), -1, columnSql, false, true); if (columnSql == null || columnSql.length() == 0) columnSql = columnName; // Default diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoGeneralPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoGeneralPanel.java index 77de93f2a0..ac4ba38e7b 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoGeneralPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoGeneralPanel.java @@ -301,7 +301,8 @@ public class InfoGeneralPanel extends InfoPanel implements EventListener { m_queryColumns.add(rs.getString(1)); String columnSql = rs.getString(4); - + if (columnSql != null && columnSql.contains("@")) + columnSql = Env.parseContext(Env.getCtx(), -1, columnSql, false, true); if (columnSql != null && columnSql.length() > 0) m_queryColumnsSql.add(columnSql); else @@ -378,7 +379,8 @@ public class InfoGeneralPanel extends InfoPanel implements EventListener boolean isDisplayed = rs.getString(4).equals("Y"); int AD_Reference_Value_ID = rs.getInt(5); String columnSql = rs.getString(6); - + if (columnSql != null && columnSql.contains("@")) + columnSql = Env.parseContext(Env.getCtx(), -1, columnSql, false, true); if (columnSql == null || columnSql.length() == 0) columnSql = columnName;