From 0f04122f5b34e344eb0e4582d7cda96f33598204 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Mon, 22 Jul 2013 16:02:37 +0800 Subject: [PATCH] IDEMPIERE-1168 Master-detail issue with context variables (problem paying multiple invoices). Implement ~ prefix for current tab variable. --- .../src/org/compiere/model/GridField.java | 10 +++++++++- .../src/org/compiere/util/Evaluator.java | 6 ++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/org.adempiere.base/src/org/compiere/model/GridField.java b/org.adempiere.base/src/org/compiere/model/GridField.java index 9813702c9c..c32dd2f082 100644 --- a/org.adempiere.base/src/org/compiere/model/GridField.java +++ b/org.adempiere.base/src/org/compiere/model/GridField.java @@ -884,7 +884,15 @@ public class GridField if( m_vo.TabNo == 0) return Env.getContext (ctx, m_vo.WindowNo, variableName, true); else - return Env.getContext (ctx, m_vo.WindowNo, m_vo.TabNo, variableName, false, true); + { + boolean tabOnly = false; + if (variableName.startsWith("~")) + { + variableName = variableName.substring(1); + tabOnly = true; + } + return Env.getContext (ctx, m_vo.WindowNo, m_vo.TabNo, variableName, tabOnly, true); + } } // get_ValueAsString diff --git a/org.adempiere.base/src/org/compiere/util/Evaluator.java b/org.adempiere.base/src/org/compiere/util/Evaluator.java index 648f484145..bd12448b06 100644 --- a/org.adempiere.base/src/org/compiere/util/Evaluator.java +++ b/org.adempiere.base/src/org/compiere/util/Evaluator.java @@ -171,6 +171,10 @@ public class Evaluator firstEval = defaultValue; } } + //NPE sanity check + if (firstEval == null) + firstEval = ""; + firstEval = firstEval.replace('\'', ' ').replace('"', ' ').trim(); // strip ' and " // Comperator @@ -283,6 +287,8 @@ public class Evaluator String variable = s.substring(0, pos); s = s.substring(pos+1); // log.fine( variable); + if (variable.startsWith("~")) + variable = variable.substring(1); list.add(variable); } } // parseDepends