IDEMPIERE-5444 Refactoring of GridTabVO and GridFieldVO (#1519)
This commit is contained in:
parent
4474a0ede2
commit
62bbb83cb2
|
@ -21,7 +21,6 @@ import static org.compiere.model.SystemIDs.REFERENCE_AD_USER;
|
|||
|
||||
import java.io.Serializable;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.ResultSetMetaData;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Comparator;
|
||||
import java.util.Properties;
|
||||
|
@ -88,8 +87,8 @@ public class GridFieldVO implements Serializable, Cloneable
|
|||
* @param AD_Window_ID window
|
||||
* @param AD_Tab_ID tab
|
||||
* @param readOnly r/o
|
||||
* @param rs resultset AD_Field_v
|
||||
* @return MFieldVO
|
||||
* @param rs resultset AD_Field_v/AD_Field_vt
|
||||
* @return GridFieldVO
|
||||
*/
|
||||
public static GridFieldVO create (Properties ctx, int WindowNo, int TabNo,
|
||||
int AD_Window_ID, int AD_Tab_ID, boolean readOnly, ResultSet rs)
|
||||
|
@ -224,165 +223,97 @@ public class GridFieldVO implements Serializable, Cloneable
|
|||
boolean readOnly, ResultSet rs) {
|
||||
GridFieldVO vo = new GridFieldVO (ctx, WindowNo, TabNo,
|
||||
AD_Window_ID, AD_Tab_ID, readOnly);
|
||||
String columnName = "ColumnName";
|
||||
try
|
||||
{
|
||||
vo.ColumnName = rs.getString("ColumnName");
|
||||
if (vo.ColumnName == null)
|
||||
return null;
|
||||
|
||||
CLogger.get().fine(vo.ColumnName);
|
||||
|
||||
ResultSetMetaData rsmd = rs.getMetaData();
|
||||
for (int i = 1; i <= rsmd.getColumnCount(); i++)
|
||||
vo.Header = rs.getString ("Name");
|
||||
vo.displayType = rs.getInt ("AD_Reference_ID");
|
||||
vo.AD_Column_ID = rs.getInt ("AD_Column_ID");
|
||||
vo.AD_Table_ID = rs.getInt ("AD_Table_ID");
|
||||
vo.DisplayLength = rs.getInt ("DisplayLength");
|
||||
vo.IsSameLine = "Y".equals(rs.getString ("IsSameLine"));
|
||||
vo.IsDisplayed = "Y".equals(rs.getString ("IsDisplayed"));
|
||||
vo.IsDisplayedGrid = "Y".equals(rs.getString ("IsDisplayedGrid"));
|
||||
vo.SeqNo = rs.getInt ("SeqNo");
|
||||
vo.SeqNoGrid = rs.getInt ("SeqNoGrid");
|
||||
vo.DisplayLogic = rs.getString ("DisplayLogic");
|
||||
vo.DefaultValue = rs.getString ("DefaultValue");
|
||||
vo.IsMandatory = "Y".equals(rs.getString ("IsMandatory"));
|
||||
vo.IsReadOnly = "Y".equals(rs.getString ("IsReadOnly"));
|
||||
vo.IsUpdateable = "Y".equals(rs.getString ("IsUpdateable"));
|
||||
vo.IsAlwaysUpdateable = "Y".equals(rs.getString ("IsAlwaysUpdateable"));
|
||||
vo.IsHeading = "Y".equals(rs.getString ("IsHeading"));
|
||||
vo.IsFieldOnly = "Y".equals(rs.getString ("IsFieldOnly"));
|
||||
vo.IsEncryptedField = "Y".equals(rs.getString ("IsEncryptedField"));
|
||||
vo.IsEncryptedColumn = "Y".equals(rs.getString ("IsEncryptedColumn"));
|
||||
vo.IsSelectionColumn = "Y".equals(rs.getString ("IsSelectionColumn"));
|
||||
vo.SeqNoSelection = rs.getInt ("SeqNoSelection");
|
||||
vo.SortNo = rs.getInt ("SortNo");
|
||||
vo.FieldLength = rs.getInt ("FieldLength");
|
||||
vo.VFormat = rs.getString ("VFormat");
|
||||
vo.FormatPattern = rs.getString ("FormatPattern");
|
||||
vo.ValueMin = rs.getString ("ValueMin");
|
||||
vo.ValueMax = rs.getString ("ValueMax");
|
||||
vo.FieldGroup = rs.getString ("FieldGroup");
|
||||
vo.FieldGroupType = rs.getString ("FieldGroupType");
|
||||
vo.IsKey = "Y".equals(rs.getString ("IsKey"));
|
||||
vo.IsParent = "Y".equals(rs.getString ("IsParent"));
|
||||
{
|
||||
columnName = rsmd.getColumnName (i);
|
||||
if (columnName.equalsIgnoreCase("Name"))
|
||||
vo.Header = rs.getString (i);
|
||||
else if (columnName.equalsIgnoreCase("AD_Reference_ID"))
|
||||
vo.displayType = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("AD_Column_ID"))
|
||||
vo.AD_Column_ID = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("AD_Table_ID"))
|
||||
vo.AD_Table_ID = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("DisplayLength"))
|
||||
vo.DisplayLength = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("IsSameLine"))
|
||||
vo.IsSameLine = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("IsDisplayed"))
|
||||
vo.IsDisplayed = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("IsDisplayedGrid"))
|
||||
vo.IsDisplayedGrid = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("SeqNo"))
|
||||
vo.SeqNo = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("SeqNoGrid"))
|
||||
vo.SeqNoGrid = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("DisplayLogic"))
|
||||
vo.DisplayLogic = rs.getString (i);
|
||||
else if (columnName.equalsIgnoreCase("DefaultValue"))
|
||||
vo.DefaultValue = rs.getString (i);
|
||||
else if (columnName.equalsIgnoreCase("IsMandatory"))
|
||||
vo.IsMandatory = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("IsReadOnly"))
|
||||
vo.IsReadOnly = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("IsUpdateable"))
|
||||
vo.IsUpdateable = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("IsAlwaysUpdateable"))
|
||||
vo.IsAlwaysUpdateable = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("IsHeading"))
|
||||
vo.IsHeading = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("IsFieldOnly"))
|
||||
vo.IsFieldOnly = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("IsEncryptedField"))
|
||||
vo.IsEncryptedField = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("IsEncryptedColumn"))
|
||||
vo.IsEncryptedColumn = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("IsSelectionColumn"))
|
||||
vo.IsSelectionColumn = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("SeqNoSelection"))
|
||||
vo.SeqNoSelection = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("SortNo"))
|
||||
vo.SortNo = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("FieldLength"))
|
||||
vo.FieldLength = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("VFormat"))
|
||||
vo.VFormat = rs.getString (i);
|
||||
else if (columnName.equalsIgnoreCase("FormatPattern"))
|
||||
vo.FormatPattern = rs.getString (i);
|
||||
else if (columnName.equalsIgnoreCase("ValueMin"))
|
||||
vo.ValueMin = rs.getString (i);
|
||||
else if (columnName.equalsIgnoreCase("ValueMax"))
|
||||
vo.ValueMax = rs.getString (i);
|
||||
else if (columnName.equalsIgnoreCase("FieldGroup"))
|
||||
vo.FieldGroup = rs.getString (i);
|
||||
else if (columnName.equalsIgnoreCase("FieldGroupType"))
|
||||
vo.FieldGroupType = rs.getString (i);
|
||||
else if (columnName.equalsIgnoreCase("IsKey"))
|
||||
vo.IsKey = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("IsParent"))
|
||||
vo.IsParent = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("Description"))
|
||||
{
|
||||
String s = rs.getString (i);
|
||||
vo.Description = s != null ? s.intern() : s;
|
||||
}
|
||||
else if (columnName.equalsIgnoreCase("Help"))
|
||||
{
|
||||
String s = rs.getString (i);
|
||||
vo.Help = s != null ? s.intern() : s;
|
||||
}
|
||||
else if (columnName.equalsIgnoreCase("Callout"))
|
||||
vo.Callout = rs.getString (i);
|
||||
else if (columnName.equalsIgnoreCase("AD_Process_ID"))
|
||||
vo.AD_Process_ID = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("AD_InfoWindow_ID"))
|
||||
vo.AD_InfoWindow_ID = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("ReadOnlyLogic"))
|
||||
vo.ReadOnlyLogic = rs.getString (i);
|
||||
else if (columnName.equalsIgnoreCase("AlwaysUpdatableLogic"))
|
||||
vo.AlwaysUpdatableLogic = rs.getString (i);
|
||||
else if (columnName.equalsIgnoreCase("MandatoryLogic"))
|
||||
vo.MandatoryLogic = rs.getString (i);
|
||||
else if (columnName.equalsIgnoreCase("ObscureType"))
|
||||
vo.ObscureType = rs.getString (i);
|
||||
else if (columnName.equalsIgnoreCase("IsDefaultFocus"))
|
||||
vo.IsDefaultFocus = "Y".equals(rs.getString(i));
|
||||
//
|
||||
else if (columnName.equalsIgnoreCase("AD_Reference_Value_ID"))
|
||||
vo.AD_Reference_Value_ID = rs.getInt(i);
|
||||
else if (columnName.equalsIgnoreCase("ValidationCode"))
|
||||
vo.ValidationCode = rs.getString(i);
|
||||
else if (columnName.equalsIgnoreCase("ValidationCodeLookup"))
|
||||
vo.ValidationCodeLookup = rs.getString(i);
|
||||
else if (columnName.equalsIgnoreCase("IsQuickForm"))
|
||||
vo.IsQuickForm = "Y".equals(rs.getString (i));
|
||||
else if (columnName.equalsIgnoreCase("ColumnSQL")) {
|
||||
vo.ColumnSQL = rs.getString(i);
|
||||
if (vo.ColumnSQL != null && !vo.ColumnSQL.startsWith("@SQL=") && !vo.ColumnSQL.startsWith("@SQLFIND=") && 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"))
|
||||
vo.Included_Tab_ID = rs.getInt(i);
|
||||
// Collapse Default State
|
||||
else if (columnName.equalsIgnoreCase("IsCollapsedByDefault"))
|
||||
vo.IsCollapsedByDefault = "Y".equals(rs.getString(i));
|
||||
// Feature Request FR [ 2003044 ]
|
||||
else if (columnName.equalsIgnoreCase("IsAutocomplete"))
|
||||
vo.IsAutocomplete = "Y".equals(rs.getString(i));
|
||||
else if (columnName.equalsIgnoreCase("IsAllowCopy"))
|
||||
vo.IsAllowCopy = "Y".equals(rs.getString(i));
|
||||
else if (columnName.equalsIgnoreCase("AD_Field_ID"))
|
||||
vo.AD_Field_ID = rs.getInt(i);
|
||||
/*IDEMPIERE-358*/
|
||||
else if (columnName.equalsIgnoreCase("XPosition"))
|
||||
vo.XPosition=rs.getInt(i);
|
||||
else if (columnName.equalsIgnoreCase("ColumnSpan"))
|
||||
vo.ColumnSpan=rs.getInt(i);
|
||||
else if (columnName.equalsIgnoreCase("NumLines"))
|
||||
vo.NumLines=rs.getInt(i);
|
||||
else if (columnName.equalsIgnoreCase("IsToolbarButton"))
|
||||
vo.IsToolbarButton = rs.getString(i);
|
||||
else if (columnName.equalsIgnoreCase("AD_Chart_ID"))
|
||||
vo.AD_Chart_ID = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("AD_LabelStyle_ID"))
|
||||
vo.AD_LabelStyle_ID = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("AD_FieldStyle_ID"))
|
||||
vo.AD_FieldStyle_ID = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("PA_DashboardContent_ID"))
|
||||
vo.PA_DashboardContent_ID = rs.getInt (i);
|
||||
else if (columnName.equalsIgnoreCase("placeholder"))
|
||||
vo.Placeholder = rs.getString(i);
|
||||
else if (columnName.equalsIgnoreCase("IsHtml"))
|
||||
vo.IsHtml = "Y".equals(rs.getString(i));
|
||||
String s = rs.getString ("Description");
|
||||
vo.Description = s != null ? s.intern() : s;
|
||||
}
|
||||
{
|
||||
String s = rs.getString ("Help");
|
||||
vo.Help = s != null ? s.intern() : s;
|
||||
}
|
||||
vo.Callout = rs.getString ("Callout");
|
||||
vo.AD_Process_ID = rs.getInt ("AD_Process_ID");
|
||||
vo.AD_InfoWindow_ID = rs.getInt ("AD_InfoWindow_ID");
|
||||
vo.ReadOnlyLogic = rs.getString ("ReadOnlyLogic");
|
||||
vo.AlwaysUpdatableLogic = rs.getString ("AlwaysUpdatableLogic");
|
||||
vo.MandatoryLogic = rs.getString ("MandatoryLogic");
|
||||
vo.ObscureType = rs.getString ("ObscureType");
|
||||
vo.IsDefaultFocus = "Y".equals(rs.getString("IsDefaultFocus"));
|
||||
vo.AD_Reference_Value_ID = rs.getInt("AD_Reference_Value_ID");
|
||||
vo.ValidationCode = rs.getString("ValidationCode");
|
||||
vo.ValidationCodeLookup = rs.getString("ValidationCodeLookup");
|
||||
vo.IsQuickForm = "Y".equals(rs.getString ("IsQuickForm"));
|
||||
{
|
||||
vo.ColumnSQL = rs.getString("ColumnSQL");
|
||||
if (vo.ColumnSQL != null && !vo.ColumnSQL.startsWith("@SQL=") && !vo.ColumnSQL.startsWith("@SQLFIND=") && 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 ]
|
||||
vo.Included_Tab_ID = rs.getInt("Included_Tab_ID");
|
||||
// Collapse Default State
|
||||
vo.IsCollapsedByDefault = "Y".equals(rs.getString("IsCollapsedByDefault"));
|
||||
// Feature Request FR [ 2003044 ]
|
||||
vo.IsAutocomplete = "Y".equals(rs.getString("IsAutocomplete"));
|
||||
vo.IsAllowCopy = "Y".equals(rs.getString("IsAllowCopy"));
|
||||
vo.AD_Field_ID = rs.getInt("AD_Field_ID");
|
||||
/*IDEMPIERE-358*/
|
||||
vo.XPosition=rs.getInt("XPosition");
|
||||
vo.ColumnSpan=rs.getInt("ColumnSpan");
|
||||
vo.NumLines=rs.getInt("NumLines");
|
||||
vo.IsToolbarButton = rs.getString("IsToolbarButton");
|
||||
vo.AD_Chart_ID = rs.getInt ("AD_Chart_ID");
|
||||
vo.AD_LabelStyle_ID = rs.getInt ("AD_LabelStyle_ID");
|
||||
vo.AD_FieldStyle_ID = rs.getInt ("AD_FieldStyle_ID");
|
||||
vo.PA_DashboardContent_ID = rs.getInt ("PA_DashboardContent_ID");
|
||||
vo.Placeholder = rs.getString("Placeholder");
|
||||
vo.IsHtml = "Y".equals(rs.getString("IsHtml"));
|
||||
|
||||
if (vo.Header == null)
|
||||
vo.Header = vo.ColumnName;
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
CLogger.get().log(Level.SEVERE, "ColumnName=" + columnName, e);
|
||||
CLogger.get().log(Level.SEVERE, e.getMessage(), e);
|
||||
return null;
|
||||
}
|
||||
return vo;
|
||||
|
@ -392,8 +323,11 @@ public class GridFieldVO implements Serializable, Cloneable
|
|||
* Init Field for Process Parameter
|
||||
* @param ctx context
|
||||
* @param WindowNo window
|
||||
* @param ProcessIDOfPanel
|
||||
* @param WindowIDOfPanel
|
||||
* @param InfoWindowIDOfPanel
|
||||
* @param rs result set AD_Process_Para
|
||||
* @return MFieldVO
|
||||
* @return GridFieldVO
|
||||
*/
|
||||
public static GridFieldVO createParameter (Properties ctx, int WindowNo, int ProcessIDOfPanel, int WindowIDOfPanel, int InfoWindowIDOfPanel, ResultSet rs)
|
||||
{
|
||||
|
@ -446,7 +380,6 @@ public class GridFieldVO implements Serializable, Cloneable
|
|||
{
|
||||
CLogger.get().log(Level.SEVERE, "createParameter", e);
|
||||
}
|
||||
//devCoffee - #3858
|
||||
if(vo.IsDisplayed) {
|
||||
MUserDefProcParameter userDef = MUserDefProcParameter.get(ctx, vo.AD_Column_ID, vo.AD_Process_ID_Of_Panel);
|
||||
if(userDef != null) {
|
||||
|
@ -495,7 +428,6 @@ public class GridFieldVO implements Serializable, Cloneable
|
|||
}
|
||||
}
|
||||
}
|
||||
//fim devCoffee - 3858
|
||||
//
|
||||
vo.initFinish();
|
||||
if (vo.DefaultValue2 == null)
|
||||
|
@ -509,7 +441,7 @@ public class GridFieldVO implements Serializable, Cloneable
|
|||
/**
|
||||
* Create range "to" Parameter Field from "from" Parameter Field
|
||||
* @param voF field value object
|
||||
* @return to MFieldVO
|
||||
* @return to GridFieldVO
|
||||
*/
|
||||
public static GridFieldVO createParameter (GridFieldVO voF)
|
||||
{
|
||||
|
@ -557,6 +489,8 @@ public class GridFieldVO implements Serializable, Cloneable
|
|||
* Create parameter for infoWindow
|
||||
* @param ctx ctx
|
||||
* @param WindowNo WindowNo
|
||||
* @param WindowIDOfPanel
|
||||
* @param infoWindowID
|
||||
* @param AD_Column_ID AD_Column_ID
|
||||
* @param ColumnName ColumnName
|
||||
* @param Name Name
|
||||
|
@ -564,7 +498,8 @@ public class GridFieldVO implements Serializable, Cloneable
|
|||
* @param AD_Reference_Value_ID AD_Reference_Value_ID
|
||||
* @param IsMandatory IsMandatory
|
||||
* @param IsEncrypted IsEncrypted
|
||||
* @return GridFieldV0 v0
|
||||
* @param Placeholder
|
||||
* @return GridFieldV0
|
||||
*/
|
||||
public static GridFieldVO createParameter (Properties ctx, int WindowNo, int WindowIDOfPanel, int infoWindowID,
|
||||
int AD_Column_ID, String ColumnName, String Name, int AD_Reference_ID, int AD_Reference_Value_ID,
|
||||
|
@ -601,7 +536,7 @@ public class GridFieldVO implements Serializable, Cloneable
|
|||
* @param tabReadOnly rab is r/o
|
||||
* @param isCreated is Created field
|
||||
* @param isTimestamp is the timestamp (not by)
|
||||
* @return MFieldVO
|
||||
* @return GridFieldVO
|
||||
*/
|
||||
public static GridFieldVO createStdField (Properties ctx, int WindowNo, int TabNo,
|
||||
int AD_Window_ID, int AD_Tab_ID, boolean tabReadOnly,
|
||||
|
@ -940,7 +875,7 @@ public class GridFieldVO implements Serializable, Cloneable
|
|||
*/
|
||||
public String toString ()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder ("MFieldVO[");
|
||||
StringBuilder sb = new StringBuilder ("GridFieldVO[");
|
||||
sb.append(AD_Column_ID).append("-").append(ColumnName)
|
||||
.append ("]");
|
||||
return sb.toString ();
|
||||
|
|
|
@ -394,39 +394,45 @@ public class GridTabVO implements Evaluatee, Serializable
|
|||
MClient client = MClient.get(ctx);
|
||||
String ASPFilter = "";
|
||||
if (client.isUseASP())
|
||||
ASPFilter =
|
||||
" AND ( AD_Tab_ID IN ( "
|
||||
// Just ASP subscribed tabs for client "
|
||||
+ " SELECT t.AD_Tab_ID "
|
||||
+ " FROM ASP_Tab t, ASP_Window w, ASP_Level l, ASP_ClientLevel cl "
|
||||
+ " WHERE w.ASP_Level_ID = l.ASP_Level_ID "
|
||||
+ " AND cl.AD_Client_ID = " + client.getAD_Client_ID()
|
||||
+ " AND cl.ASP_Level_ID = l.ASP_Level_ID "
|
||||
+ " AND t.ASP_Window_ID = w.ASP_Window_ID "
|
||||
+ " AND t.IsActive = 'Y' "
|
||||
+ " AND w.IsActive = 'Y' "
|
||||
+ " AND l.IsActive = 'Y' "
|
||||
+ " AND cl.IsActive = 'Y' "
|
||||
+ " AND t.ASP_Status = 'S') " // Show
|
||||
+ " OR AD_Tab_ID IN ( "
|
||||
// + show ASP exceptions for client
|
||||
+ " SELECT AD_Tab_ID "
|
||||
+ " FROM ASP_ClientException ce "
|
||||
+ " WHERE ce.AD_Client_ID = " + client.getAD_Client_ID()
|
||||
+ " AND ce.IsActive = 'Y' "
|
||||
+ " AND ce.AD_Tab_ID IS NOT NULL "
|
||||
+ " AND ce.AD_Field_ID IS NULL "
|
||||
+ " AND ce.ASP_Status = 'S') " // Show
|
||||
+ " ) "
|
||||
+ " AND AD_Tab_ID NOT IN ( "
|
||||
// minus hide ASP exceptions for client
|
||||
+ " SELECT AD_Tab_ID "
|
||||
+ " FROM ASP_ClientException ce "
|
||||
+ " WHERE ce.AD_Client_ID = " + client.getAD_Client_ID()
|
||||
+ " AND ce.IsActive = 'Y' "
|
||||
+ " AND ce.AD_Tab_ID IS NOT NULL "
|
||||
+ " AND ce.AD_Field_ID IS NULL "
|
||||
+ " AND ce.ASP_Status = 'H')"; // Hide
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder()
|
||||
// Just ASP subscribed tabs for client "
|
||||
.append(" AND ( AD_Tab_ID IN ( ")
|
||||
.append(" SELECT t.AD_Tab_ID ")
|
||||
.append(" FROM ASP_Tab t, ASP_Window w, ASP_Level l, ASP_ClientLevel cl ")
|
||||
.append(" WHERE w.ASP_Level_ID = l.ASP_Level_ID ")
|
||||
.append(" AND cl.AD_Client_ID = ")
|
||||
.append(client.getAD_Client_ID())
|
||||
.append(" AND cl.ASP_Level_ID = l.ASP_Level_ID ")
|
||||
.append(" AND t.ASP_Window_ID = w.ASP_Window_ID ")
|
||||
.append(" AND t.IsActive = 'Y' ")
|
||||
.append(" AND w.IsActive = 'Y' ")
|
||||
.append(" AND l.IsActive = 'Y' ")
|
||||
.append(" AND cl.IsActive = 'Y' ")
|
||||
.append(" AND t.ASP_Status = 'S') ") // Show
|
||||
.append(" OR AD_Tab_ID IN ( ")
|
||||
// + show ASP exceptions for client
|
||||
.append(" SELECT AD_Tab_ID ")
|
||||
.append(" FROM ASP_ClientException ce ")
|
||||
.append(" WHERE ce.AD_Client_ID = ")
|
||||
.append(client.getAD_Client_ID())
|
||||
.append(" AND ce.IsActive = 'Y' ")
|
||||
.append(" AND ce.AD_Tab_ID IS NOT NULL ")
|
||||
.append(" AND ce.AD_Field_ID IS NULL ")
|
||||
.append(" AND ce.ASP_Status = 'S') ") // Show
|
||||
.append(" ) ")
|
||||
.append(" AND AD_Tab_ID NOT IN ( ")
|
||||
// minus hide ASP exceptions for client
|
||||
.append(" SELECT AD_Tab_ID ")
|
||||
.append(" FROM ASP_ClientException ce ")
|
||||
.append(" WHERE ce.AD_Client_ID = ")
|
||||
.append(client.getAD_Client_ID())
|
||||
.append(" AND ce.IsActive = 'Y' ")
|
||||
.append(" AND ce.AD_Tab_ID IS NOT NULL ")
|
||||
.append(" AND ce.AD_Field_ID IS NULL ")
|
||||
.append(" AND ce.ASP_Status = 'H')"); // Hide
|
||||
ASPFilter = stringBuilder.toString();
|
||||
}
|
||||
// View only returns IsActive='Y'
|
||||
MRole role = MRole.getDefault(ctx, false);
|
||||
String advancedFilter=" AND IsAdvancedTab='N' ";
|
||||
|
@ -460,7 +466,7 @@ public class GridTabVO implements Evaluatee, Serializable
|
|||
{
|
||||
ctx = Ctx;
|
||||
WindowNo = windowNo;
|
||||
} // MTabVO
|
||||
}
|
||||
|
||||
/** Context - replicated */
|
||||
public Properties ctx;
|
||||
|
|
Loading…
Reference in New Issue