コード例 #1
0
        /// <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;
                }
            }
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        }   //  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());
        }