/// <summary> ///Validate Fields and create LookupInfo if required /// </summary> public void InitFinish() { // Not null fields if (DisplayLogic == null) { DisplayLogic = ""; } if (DefaultValue == null) { DefaultValue = ""; } if (FieldGroup == null) { FieldGroup = ""; } if (Description == null) { Description = ""; } if (Help == null) { Help = ""; } if (Callout == null) { Callout = ""; } if (ReadOnlyLogic == null) { ReadOnlyLogic = ""; } // Create Lookup, if not ID if (ctx.SkipLookup) //No need if call from Visual editor { return; } if (DisplayType.IsLookup(displayType)) { try { lookupInfo = VLookUpFactory.GetLookUpInfo(ctx, windowNo, displayType, AD_Column_ID, Env.GetLanguage(ctx), ColumnName, AD_Reference_Value_ID, IsParent, ValidationCode); } catch (Exception e) // Cannot create Lookup { VLogger.Get().Log(Level.SEVERE, "No LookupInfo for " + ColumnName, e); displayType = DisplayType.ID; } } }
/// <summary> /// Get lookup Info /// </summary> /// <param name="index">index of column</param> /// <returns>Lookup info</returns> /// <remarks> /// Used for MMailTemplate for fetch text against Id Column /// </remarks> public VLookUpInfo GetColumnLookupInfo(int index) { if (!IsColumnLookup(index)) { return(null); } // int WindowNo = 0; // List, Table, TableDir VLookUpInfo lookup = null; try { lookup = VLookUpFactory.GetLookUpInfo(m_ctx, WindowNo, m_columns[index].DisplayType, m_columns[index].AD_Column_ID, Env.GetLanguage(m_ctx), m_columns[index].ColumnName, m_columns[index].AD_Reference_Value_ID, m_columns[index].IsParent, m_columns[index].ValidationCode); } catch { lookup = null; // cannot create Lookup } return(lookup); }
} // getPOInfo /// <summary> /// Get SQL Query for table /// </summary> /// <returns>SQL Query (String)</returns> public string GetSQLQuery() { StringBuilder _querySQL = new StringBuilder(""); if (m_columns.Length > 0) { _querySQL.Append("SELECT "); MTable tbl = new MTable(m_ctx, _AD_Table_ID, null); // append all columns from table and get comma separated string _querySQL.Append(tbl.GetSelectColumns()); foreach (var column in m_columns) { // check if column name length is less than 26, then only add this column in selection column // else only ID will be displayed // as limitation in oracle to restrict column name to 30 characters if ((column.ColumnName.Length + 4) < 30) { // for Lookup type of columns if (DisplayType.IsLookup(column.DisplayType)) { VLookUpInfo lookupInfo = VLookUpFactory.GetLookUpInfo(m_ctx, 0, column.DisplayType, column.AD_Column_ID, Env.GetLanguage(m_ctx), column.ColumnName, column.AD_Reference_Value_ID, column.IsParent, column.ValidationCode); if (lookupInfo != null && lookupInfo.displayColSubQ != null && lookupInfo.displayColSubQ.Trim() != "") { if (lookupInfo.queryDirect.Length > 0) { // create columnname as columnname_TXT for lookup type of columns lookupInfo.displayColSubQ = " (SELECT MAX(" + lookupInfo.displayColSubQ + ") " + lookupInfo.queryDirect.Substring(lookupInfo.queryDirect.LastIndexOf(" FROM " + lookupInfo.tableName + " "), lookupInfo.queryDirect.Length - (lookupInfo.queryDirect.LastIndexOf(" FROM " + lookupInfo.tableName + " "))) + ") AS " + column.ColumnName + "_TXT"; lookupInfo.displayColSubQ = lookupInfo.displayColSubQ.Replace("@key", tbl.GetTableName() + "." + column.ColumnName); } _querySQL.Append(", " + lookupInfo.displayColSubQ); } } // case for Location type of columns else if (column.DisplayType == DisplayType.Location) { _querySQL.Append(", " + column.ColumnName + " AS " + column.ColumnName + "_LOC"); } // case for Locator type of columns else if (column.DisplayType == DisplayType.Locator) { _querySQL.Append(", " + column.ColumnName + " AS " + column.ColumnName + "_LTR"); } // case for Attribute Set Instance & General Attribute columns else if (column.DisplayType == DisplayType.PAttribute || column.DisplayType == DisplayType.GAttribute) { _querySQL.Append(", " + column.ColumnName + " AS " + column.ColumnName + "_ASI"); } // case for Account type of columns else if (column.DisplayType == DisplayType.Account) { _querySQL.Append(", " + column.ColumnName + " AS " + column.ColumnName + "_ACT"); } } } // Append FROM table name to query _querySQL.Append(" FROM " + tbl.GetTableName()); } return(_querySQL.ToString()); }