diff --git a/migration/i3.1/oracle/201605061800_Ticket_1006003.sql b/migration/i3.1/oracle/201605061800_Ticket_1006003.sql
index ca8a5989ba..7afcbcf546 100644
--- a/migration/i3.1/oracle/201605061800_Ticket_1006003.sql
+++ b/migration/i3.1/oracle/201605061800_Ticket_1006003.sql
@@ -157,9 +157,9 @@ value := strings or numbers
logic operators := AND or OR with the previous result from left to right
operand := eq{=}, gt{>}, le{<}, not{~^!}
Examples:
-@AD_Table_ID@=14 | @Language@!GERGER
-@PriceLimit@>10 | @PriceList@>@PriceActual@
-@Name@>J
+'||chr(64)||'AD_Table_ID@=14 | @Language@!GERGER
+'||chr(64)||'PriceLimit@>10 | @PriceList@>@PriceActual@
+'||chr(64)||'Name@>J
Strings may be in single quotes (optional)','Display Logic','Y','Y',100,100,'N','N',0,0,TO_DATE('2016-05-05 17:22:49','YYYY-MM-DD HH24:MI:SS'),'D','N','N',283,14,200208)
;
@@ -303,9 +303,9 @@ value := strings or numbers
logic operators := AND or OR with the previous result from left to right
operand := eq{=}, gt{>}, le{<}, not{~^!}
Examples:
-@AD_Table_ID@=14 | @Language@!GERGER
-@PriceLimit@>10 | @PriceList@>@PriceActual@
-@Name@>J
+'||chr(64)||'AD_Table_ID@=14 | @Language@!GERGER
+'||chr(64)||'PriceLimit@>10 | @PriceList@>@PriceActual@
+'||chr(64)||'Name@>J
Strings may be in single quotes (optional)',0,TO_DATE('2016-05-05 17:50:50','YYYY-MM-DD HH24:MI:SS'),'If the Field is displayed, the result determines if the field is actually displayed','Display Logic','7deca1bb-f53f-4585-ad4c-92ed64a9f73e','Y','N',100,100,'Y',0,TO_DATE('2016-05-05 17:50:50','YYYY-MM-DD HH24:MI:SS'),5,3,212749,'D',200214)
;
diff --git a/migration/i3.1/oracle/20160523170239_IDEMPIERE-3073.sql b/migration/i3.1/oracle/20160523170239_IDEMPIERE-3073.sql
new file mode 100644
index 0000000000..eae1f0f1c2
--- /dev/null
+++ b/migration/i3.1/oracle/20160523170239_IDEMPIERE-3073.sql
@@ -0,0 +1,11 @@
+SET SQLBLANKLINES ON
+SET DEFINE OFF
+
+-- IDEMPIERE-3073 improve set of max text lenght on grid panel
+-- May 23, 2016 5:02:39 PM CEST
+INSERT INTO AD_SysConfig (AD_SysConfig_ID,AD_Client_ID,AD_Org_ID,Created,Updated,CreatedBy,UpdatedBy,IsActive,Name,Value,Description,EntityType,ConfigurationLevel,AD_SysConfig_UU) VALUES (200077,0,0,TO_DATE('2016-05-23 17:02:39','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2016-05-23 17:02:39','YYYY-MM-DD HH24:MI:SS'),100,100,'Y','MAX_TEXT_LENGTH_ON_GRID_VIEW','60','Max length of a text in grid view after wihich it is cut off (IDEMPIERE-3073)','D','C','092aeedc-22d9-4a70-9c90-d27aa68d47e7')
+;
+
+SELECT register_migration_script('20160523170239_IDEMPIERE-3073.sql') FROM dual
+;
+
diff --git a/migration/i3.1/postgresql/20160523170239_IDEMPIERE-3073.sql b/migration/i3.1/postgresql/20160523170239_IDEMPIERE-3073.sql
new file mode 100644
index 0000000000..795cde4c0c
--- /dev/null
+++ b/migration/i3.1/postgresql/20160523170239_IDEMPIERE-3073.sql
@@ -0,0 +1,8 @@
+-- IDEMPIERE-3073 improve set of max text lenght on grid panel
+-- May 23, 2016 5:02:39 PM CEST
+INSERT INTO AD_SysConfig (AD_SysConfig_ID,AD_Client_ID,AD_Org_ID,Created,Updated,CreatedBy,UpdatedBy,IsActive,Name,Value,Description,EntityType,ConfigurationLevel,AD_SysConfig_UU) VALUES (200077,0,0,TO_TIMESTAMP('2016-05-23 17:02:39','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2016-05-23 17:02:39','YYYY-MM-DD HH24:MI:SS'),100,100,'Y','MAX_TEXT_LENGTH_ON_GRID_VIEW','60','Max length of a text in grid view after wihich it is cut off (IDEMPIERE-3073)','D','C','092aeedc-22d9-4a70-9c90-d27aa68d47e7')
+;
+
+SELECT register_migration_script('20160523170239_IDEMPIERE-3073.sql') FROM dual
+;
+
diff --git a/org.adempiere.base.process/src/org/compiere/process/RequestEMailProcessor.java b/org.adempiere.base.process/src/org/compiere/process/RequestEMailProcessor.java
index 58d5066125..bcafcf39b9 100644
--- a/org.adempiere.base.process/src/org/compiere/process/RequestEMailProcessor.java
+++ b/org.adempiere.base.process/src/org/compiere/process/RequestEMailProcessor.java
@@ -143,6 +143,8 @@ public class RequestEMailProcessor extends SvrProcess implements ProcessEmailHan
*/
protected String doIt() throws Exception
{
+ parseParameter();
+
EmailSrv emailSrv = new EmailSrv(p_IMAPHost, p_IMAPUser, p_IMAPPwd, p_IMAPPort);
checkInputParameter (emailSrv);
@@ -155,7 +157,7 @@ public class RequestEMailProcessor extends SvrProcess implements ProcessEmailHan
return msgreturn.toString();
} // doIt
- protected void checkInputParameter (EmailSrv emailSrv) throws MessagingException, Exception {
+ protected void parseParameter() {
// === check input parameter ===
int portStartIndex = p_IMAPHost.lastIndexOf(":");
if (portStartIndex > 0){
@@ -169,6 +171,9 @@ public class RequestEMailProcessor extends SvrProcess implements ProcessEmailHan
}else if (p_IMAPHost.startsWith("imap.gmail.com")){
p_IMAPPort = 993;
}
+ }
+
+ protected void checkInputParameter (EmailSrv emailSrv) throws MessagingException, Exception {
if (log.isLoggable(Level.INFO)) log.info("doIt - IMAPHost=" + p_IMAPHost +
" IMAPPort=" + p_IMAPPort +
" IMAPUser=" + p_IMAPUser +
diff --git a/org.adempiere.base/src/org/compiere/model/MInOut.java b/org.adempiere.base/src/org/compiere/model/MInOut.java
index c1bc584936..ab20a57dfd 100644
--- a/org.adempiere.base/src/org/compiere/model/MInOut.java
+++ b/org.adempiere.base/src/org/compiere/model/MInOut.java
@@ -1851,11 +1851,8 @@ public class MInOut extends X_M_InOut implements DocAction
for(MInOutLineMA sMA : shipmentMAS){
BigDecimal lineMAQty = qtyToReturn;
- BigDecimal qtyReturnable = (BigDecimal)sMA.get_Value(MInOutLineMA.COLUMNNAME_ReturnedQty);
- if (qtyReturnable == null)
- qtyReturnable = Env.ZERO;
- if(lineMAQty.compareTo(qtyReturnable)>0){
- lineMAQty = qtyReturnable;
+ if(lineMAQty.compareTo(Env.ZERO)>0){
+ lineMAQty = Env.ZERO;
}
MInOutLineMA ma = MInOutLineMA.addOrCreate(line, sMA.getM_AttributeSetInstance_ID(), lineMAQty, sMA.getDateMaterialPolicy(),true);
diff --git a/org.adempiere.base/src/org/compiere/model/MInOutLineMA.java b/org.adempiere.base/src/org/compiere/model/MInOutLineMA.java
index 71f879543c..8aa3526801 100644
--- a/org.adempiere.base/src/org/compiere/model/MInOutLineMA.java
+++ b/org.adempiere.base/src/org/compiere/model/MInOutLineMA.java
@@ -43,12 +43,11 @@ public class MInOutLineMA extends X_M_InOutLineMA
/**
*
*/
- private static final long serialVersionUID = -4131812777103744727L;
-
+ private static final long serialVersionUID = -2610075295914545809L;
+
/** Log */
private static CLogger s_log = CLogger.getCLogger (MInOutLineMA.class);
- public static String COLUMNNAME_ReturnedQty ="returnedQty";
-
+
/**
* Get Material Allocations for Line
* @param ctx context
@@ -237,7 +236,6 @@ public class MInOutLineMA extends X_M_InOutLineMA
while (rs.next())
{
MInOutLineMA lineMA = new MInOutLineMA(ctx, rs, trxName);
- lineMA.set_Value(COLUMNNAME_ReturnedQty, rs.getBigDecimal(COLUMNNAME_ReturnedQty));
list.add(lineMA);
}
diff --git a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java
index e922b9f2da..be79425bae 100644
--- a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java
+++ b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java
@@ -629,7 +629,7 @@ public class MLookupFactory
String BaseColumn, String BaseTable, int AD_Reference_Value_ID)
{
String sql = "SELECT t.TableName,ck.ColumnName AS KeyColumn,"
- + "cd.ColumnName AS DisplayColumn,rt.isValueDisplayed,cd.IsTranslated "
+ + "cd.ColumnName AS DisplayColumn,rt.isValueDisplayed,cd.IsTranslated, cd.AD_Column_ID AS columnDisplay_ID "
+ "FROM AD_Ref_Table rt"
+ " 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)"
@@ -639,6 +639,7 @@ public class MLookupFactory
//
String KeyColumn, DisplayColumn, TableName, TableNameAlias;
boolean IsTranslated, isValueDisplayed;
+ Integer columnDisplay_ID = 0;
PreparedStatement pstmt = null;
ResultSet rs = null;
@@ -659,6 +660,7 @@ public class MLookupFactory
DisplayColumn = rs.getString(3);
isValueDisplayed = rs.getString(4).equals("Y");
IsTranslated = rs.getString(5).equals("Y");
+ columnDisplay_ID = rs.getInt(6);
}
catch (SQLException e)
@@ -682,15 +684,26 @@ public class MLookupFactory
}
StringBuilder embedSQL = new StringBuilder("SELECT ");
+
+ if (isValueDisplayed)
+ embedSQL.append(TableNameAlias).append(".Value||'-'||");
+
+ MColumn columnDisplay = new MColumn(Env.getCtx(), columnDisplay_ID, null);
+
boolean translated = false;
// Translated
if (IsTranslated && !Env.isBaseLanguage(language, TableName))
{
translated = true;
- if (isValueDisplayed)
- embedSQL.append(TableNameAlias).append(".Value||'-'||");
+
+ if (columnDisplay.isVirtualColumn())
+ {
+ s_log.warning("Column SQL should not be Translated");
+ return null;
+ }
+ else
embedSQL.append(TableName).append("_Trl.").append(DisplayColumn);
- //
+
embedSQL.append(" FROM ").append(TableName).append(" ").append(TableNameAlias)
.append(" INNER JOIN ").append(TableName).append("_TRL ON (")
.append(TableNameAlias).append(".").append(KeyColumn)
@@ -701,10 +714,11 @@ public class MLookupFactory
// Not Translated
else
{
- if (isValueDisplayed)
- embedSQL.append(TableNameAlias).append(".Value||'-'||");
+ if (columnDisplay.isVirtualColumn())
+ embedSQL.append(columnDisplay.getColumnSQL()).append(" AS ").append(KeyColumn);
+ else
embedSQL.append(TableNameAlias).append(".").append(DisplayColumn);
- //
+
embedSQL.append(" FROM ").append(TableName).append(" ").append(TableNameAlias);
}
diff --git a/org.adempiere.base/src/org/compiere/model/MProduction.java b/org.adempiere.base/src/org/compiere/model/MProduction.java
index 31df16dc80..a4abcb63e0 100644
--- a/org.adempiere.base/src/org/compiere/model/MProduction.java
+++ b/org.adempiere.base/src/org/compiere/model/MProduction.java
@@ -102,7 +102,13 @@ public class MProduction extends X_M_Production implements DocAction {
StringBuilder errors = new StringBuilder();
int processed = 0;
-
+
+ //IDEMPIERE-3107 Check if End Product in Production Lines exist
+ if(!isHaveEndProduct(getLines())) {
+ m_processMsg = "Production does not contain End Product";
+ return DocAction.STATUS_Invalid;
+ }
+
if (!isUseProductionPlan()) {
MProductionLine[] lines = getLines();
errors.append(processLines(lines));
@@ -142,6 +148,15 @@ public class MProduction extends X_M_Production implements DocAction {
return DocAction.STATUS_Completed;
}
+ private boolean isHaveEndProduct(MProductionLine[] lines) {
+
+ for(MProductionLine line : lines) {
+ if(line.isEndProduct())
+ return true;
+ }
+ return false;
+ }
+
private Object processLines(MProductionLine[] lines) {
StringBuilder errors = new StringBuilder();
for ( int i = 0; i
-
+
diff --git a/org.adempiere.server-feature/utils.unix/unix/DebianInstaller/etc/init.d/idempiere b/org.adempiere.server-feature/utils.unix/unix/DebianInstaller/etc/init.d/idempiere
index 0f1188ef3d..eeb90d5fa6 100755
--- a/org.adempiere.server-feature/utils.unix/unix/DebianInstaller/etc/init.d/idempiere
+++ b/org.adempiere.server-feature/utils.unix/unix/DebianInstaller/etc/init.d/idempiere
@@ -618,23 +618,30 @@ stop () {
fi
echo -n "Stopping iDempiere ERP: "
cd $IDEMPIERE_HOME/utils
- log_warning_msg "Trying direct kill with signal -15"
- # try direct kill with signal 15, then signal 9
- kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
- sleep 5
+ # try shutdown from OSGi console, then direct kill with signal 15, then signal 9
+ log_warning_msg "Trying shutdown from OSGi console"
+ ( echo exit; echo y; sleep 5 ) | telnet localhost 12612 > /dev/null 2>&1
getidempierestatus
if [ $IDEMPIERESTATUS -ne 0 ] ; then
- log_success_msg "Service stopped with kill -15"
+ log_success_msg "Service stopped with OSGi shutdown"
else
- echo "Trying direct kill with signal -9"
- kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
- sleep 5
- getidempierestatus
- if [ $IDEMPIERESTATUS -ne 0 ] ; then
- log_success_msg "Service stopped with kill -9"
- else
- log_warning_msg "Service hasn't stopped"
- fi
+ log_warning_msg "Trying direct kill with signal -15"
+ kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
+ sleep 5
+ getidempierestatus
+ if [ $IDEMPIERESTATUS -ne 0 ] ; then
+ log_success_msg "Service stopped with kill -15"
+ else
+ echo "Trying direct kill with signal -9"
+ kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
+ sleep 5
+ getidempierestatus
+ if [ $IDEMPIERESTATUS -ne 0 ] ; then
+ log_success_msg "Service stopped with kill -9"
+ else
+ log_warning_msg "Service hasn't stopped"
+ fi
+ fi
fi
return $RETVAL
}
diff --git a/org.adempiere.server-feature/utils.unix/unix/idempiere_Debian.sh b/org.adempiere.server-feature/utils.unix/unix/idempiere_Debian.sh
index 431a703d7b..fe77f58b75 100644
--- a/org.adempiere.server-feature/utils.unix/unix/idempiere_Debian.sh
+++ b/org.adempiere.server-feature/utils.unix/unix/idempiere_Debian.sh
@@ -87,24 +87,31 @@ stop () {
fi
echo -n "Stopping iDempiere ERP: "
cd $IDEMPIERE_HOME/utils
- . $ENVFILE
- log_warning_msg "Trying direct kill with signal -15"
- # try direct kill with signal 15, then signal 9
- kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
- sleep 5
+ . $ENVFILE
+ # try shutdown from OSGi console, then direct kill with signal 15, then signal 9
+ log_warning_msg "Trying shutdown from OSGi console"
+ ( echo exit; echo y; sleep 5 ) | telnet localhost 12612 > /dev/null 2>&1
getidempierestatus
if [ $IDEMPIERESTATUS -ne 0 ] ; then
- log_success_msg "Service stopped with kill -15"
+ log_success_msg "Service stopped with OSGi shutdown"
else
- echo "Trying direct kill with signal -9"
- kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
- sleep 5
- getidempierestatus
- if [ $IDEMPIERESTATUS -ne 0 ] ; then
- log_success_msg "Service stopped with kill -9"
- else
- log_warning_msg "Service hasn't stopped"
- fi
+ log_warning_msg "Trying direct kill with signal -15"
+ kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
+ sleep 5
+ getidempierestatus
+ if [ $IDEMPIERESTATUS -ne 0 ] ; then
+ log_success_msg "Service stopped with kill -15"
+ else
+ echo "Trying direct kill with signal -9"
+ kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
+ sleep 5
+ getidempierestatus
+ if [ $IDEMPIERESTATUS -ne 0 ] ; then
+ log_success_msg "Service stopped with kill -9"
+ else
+ log_warning_msg "Service hasn't stopped"
+ fi
+ fi
fi
return $RETVAL
}
diff --git a/org.adempiere.server-feature/utils.unix/unix/idempiere_RedHat.sh b/org.adempiere.server-feature/utils.unix/unix/idempiere_RedHat.sh
index 7d193968ae..1cc8d34e76 100644
--- a/org.adempiere.server-feature/utils.unix/unix/idempiere_RedHat.sh
+++ b/org.adempiere.server-feature/utils.unix/unix/idempiere_RedHat.sh
@@ -83,24 +83,31 @@ stop () {
fi
echo -n "Stopping iDempiere ERP: "
cd $IDEMPIERE_HOME/utils
- source $ENVFILE
- echo "Trying direct kill with signal -15"
- # iDempiere didn't finish - try direct kill with signal 15, then signal 9
- kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
- sleep 5
+ source $ENVFILE
+ # try shutdown from OSGi console, then direct kill with signal 15, then signal 9
+ log_warning_msg "Trying shutdown from OSGi console"
+ ( echo exit; echo y; sleep 5 ) | telnet localhost 12612 > /dev/null 2>&1
getidempierestatus
if [ $IDEMPIERESTATUS -ne 0 ] ; then
- echo_success
+ echo_success
else
- echo "Trying direct kill with signal -9"
- kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
- sleep 5
- getidempierestatus
- if [ $IDEMPIERESTATUS -ne 0 ] ; then
- echo_success
- else
- echo_warning
- fi
+ log_warning_msg "Trying direct kill with signal -15"
+ kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
+ sleep 5
+ getidempierestatus
+ if [ $IDEMPIERESTATUS -ne 0 ] ; then
+ echo_success
+ else
+ echo "Trying direct kill with signal -9"
+ kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
+ sleep 5
+ getidempierestatus
+ if [ $IDEMPIERESTATUS -ne 0 ] ; then
+ echo_success
+ else
+ echo_warning
+ fi
+ fi
fi
RETVAL=$?
return $RETVAL
diff --git a/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh b/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh
index 14b63b532f..ed5ca0a404 100644
--- a/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh
+++ b/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh
@@ -114,25 +114,32 @@ stop () {
fi
echo -n "Stopping iDempiere ERP: "
cd $IDEMPIERE_HOME/utils
- . $ENVFILE
- echo "Trying direct kill with signal -15"
- # try direct kill with signal 15, then signal 9
- kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
- sleep 5
+ . $ENVFILE
+ # try shutdown from OSGi console, then direct kill with signal 15, then signal 9
+ log_warning_msg "Trying shutdown from OSGi console"
+ ( echo exit; echo y; sleep 5 ) | telnet localhost 12612 > /dev/null 2>&1
getidempierestatus
if [ $IDEMPIERESTATUS -ne 0 ] ; then
- echo "Service stopped with kill -15"
+ echo "Service stopped with OSGi shutdown"
else
- echo "Trying direct kill with signal -9"
- kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
- sleep 5
- getidempierestatus
- if [ $IDEMPIERESTATUS -ne 0 ] ; then
- echo "Service stopped with kill -9"
- else
- echo "Service hasn't stopped"
- rc_failed 1
- fi
+ echo "Trying direct kill with signal -15"
+ kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
+ sleep 5
+ getidempierestatus
+ if [ $IDEMPIERESTATUS -ne 0 ] ; then
+ echo "Service stopped with kill -15"
+ else
+ echo "Trying direct kill with signal -9"
+ kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
+ sleep 5
+ getidempierestatus
+ if [ $IDEMPIERESTATUS -ne 0 ] ; then
+ echo "Service stopped with kill -9"
+ else
+ echo "Service hasn't stopped"
+ rc_failed 1
+ fi
+ fi
fi
rc_status -v
}
diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java
index 1f12252b4c..b3c582f6f3 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java
+++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java
@@ -43,6 +43,7 @@ import org.adempiere.webui.util.ZKUpdateUtil;
import org.compiere.model.GridField;
import org.compiere.model.GridTab;
import org.compiere.model.MStyle;
+import org.compiere.model.MSysConfig;
import org.compiere.model.X_AD_StyleLine;
import org.compiere.util.DisplayType;
import org.compiere.util.Env;
@@ -83,7 +84,7 @@ public class GridTabRowRenderer implements RowRenderer