示例#1
0
        /// <summary>
        /// Get Button Text
        /// </summary>
        /// <param name="tableName"></param>
        /// <param name="columnName"></param>
        /// <param name="selectSQL"></param>
        /// <returns>Text on button</returns>
        public String GetButtonText(String tableName, String columnName, String selectSQL)
        {
            //  SELECT (<embedded>) FROM tableName avd WHERE avd.<selectSQL>
            StringBuilder sql      = new StringBuilder("SELECT (");
            Language      language = Env.GetLanguage(_ctx);

            sql.Append(VLookUpFactory.GetLookup_TableDirEmbed(language, columnName, "avd"))
            .Append(") FROM ").Append(tableName).Append(" avd WHERE avd.").Append(selectSQL);
            String      retValue = "<" + selectSQL + ">";
            IDataReader idr      = null;

            try
            {
                idr = DataBase.DB.ExecuteReader(sql.ToString(), null, null);
                if (idr.Read())
                {
                    retValue = Utility.Util.GetValueOfString(idr[0]);
                }
                idr.Close();
            }
            catch (Exception e)
            {
                log.Log(Level.SEVERE, sql.ToString(), e);
            }
            return(retValue);
        }
        /// <summary>
        /// Get Lookup
        /// </summary>
        /// <param name="index"></param>
        /// <returns></returns>
        public Lookup GetColumnLookup(int index)
        {
            if (!IsColumnLookup(index))
            {
                return(null);
            }
            //
            int WindowNo = 0;
            //  List, Table, TableDir
            Lookup lookup = null;

            try
            {
                lookup = VLookUpFactory.Get(m_ctx, WindowNo, m_columns[index].AD_Column_ID,
                                            m_columns[index].DisplayType,
                                            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
        /// <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;
                }
            }
        }
示例#4
0
 public static Lookup GetLookup(Ctx ctx, int windowNo, int Column_ID, int AD_Reference_ID,
                                String columnName, int AD_Reference_Value_ID,
                                bool IsParent, String ValidationCode)
 {
     return(VLookUpFactory.Get(ctx, windowNo, Column_ID, AD_Reference_ID, columnName, AD_Reference_Value_ID, IsParent, ValidationCode));
 }
示例#5
0
        /// <summary>
        /// Create Report Column
        /// </summary>
        /// <param name="ctx">context </param>
        /// <param name="columnName">column name</param>
        /// <param name="displayType">display type</param>
        /// <param name="sql">sql (if null then columnName is used). </param>
        /// <param name="AD_Reference_Value_ID">List/Table Reference</param>
        /// <param name="refColumnName">UserReference column name
        /// Will be overwritten if TableDir or Search</param>
        public RColumn(Ctx ctx, String columnName, int displayType,
                       String sql, int AD_Reference_Value_ID, String refColumnName)
        {
            _colHeader = Msg.Translate(ctx, columnName);
            if (refColumnName != null)
            {
                _colHeader = Msg.Translate(ctx, refColumnName);
            }
            _displayType = displayType;
            _colSQL      = sql;
            if (_colSQL == null || _colSQL.Length == 0)
            {
                _colSQL = columnName;
            }

            //  Strings
            if (DisplayType.IsText(displayType))
            {
                _colClass = typeof(String);// String.class;  //  default size=30
            }
            //  Amounts
            else if (displayType == DisplayType.Amount)
            {
                _colClass = typeof(Decimal);// BigDecimal.class;
                _colSize  = 70;
            }
            //  Boolean
            else if (displayType == DisplayType.YesNo)
            {
                _colClass = typeof(Boolean);// Boolean.class;
            }
            //  Date
            else if (DisplayType.IsDate(displayType))
            {
                _colClass = typeof(DateTime);// Timestamp.class;
            }
            //  Number
            else if (displayType == DisplayType.Quantity ||
                     displayType == DisplayType.Number ||
                     displayType == DisplayType.CostPrice)
            {
                _colClass = typeof(Double);// Double.class;
                _colSize  = 70;
            }
            //  Integer
            else if (displayType == DisplayType.Integer)
            {
                _colClass = typeof(int);//  Integer.class;
            }
            //  List
            else if (displayType == DisplayType.List)
            {
                Language language = Language.GetLanguage(Env.GetAD_Language(ctx));
                _colSQL = "(" + VLookUpFactory.GetLookup_ListEmbed(
                    language, AD_Reference_Value_ID, columnName) + ")";
                _colClass = typeof(String);// String.class;
                _isIDcol  = false;
            }

            /**  Table
             * else if (displayType == DisplayType.Table)
             * {
             *  Language language = Language.getLanguage(Env.getAD_Language(ctx));
             *  _colSQL += ",(" + MLookupFactory.getLookup_TableEmbed(
             *      language, columnName, RModel.TABLE_ALIAS, AD_Reference_Value_ID) + ")";
             *  _colClass = String.class;
             *  _isIDcol = false;
             * }	**/
            //  TableDir, Search,...
            else
            {
                _colClass = typeof(String);// String.class;
                Language language = Language.GetLanguage(Env.GetAD_Language(ctx));
                if (columnName.Equals("Account_ID") ||
                    columnName.Equals("User1_ID") || columnName.Equals("User2_ID"))
                {
                    _colSQL += ",(" + VLookUpFactory.GetLookup_TableDirEmbed(
                        language, "C_ElementValue_ID", RModel.TABLE_ALIAS, columnName) + ")";
                    _isIDcol = true;
                }
                else if (columnName.StartsWith("UserElement") && refColumnName != null)
                {
                    _colSQL += ",(" + VLookUpFactory.GetLookup_TableDirEmbed(
                        language, refColumnName, RModel.TABLE_ALIAS, columnName) + ")";
                    _isIDcol = true;
                }
                else if (columnName.Equals("C_LocFrom_ID") || columnName.Equals("C_LocTo_ID"))
                {
                    _colSQL += ",(" + VLookUpFactory.GetLookup_TableDirEmbed(
                        language, "C_Location_ID", RModel.TABLE_ALIAS, columnName) + ")";
                    _isIDcol = true;
                }
                else if (columnName.Equals("AD_OrgTrx_ID"))
                {
                    _colSQL += ",(" + VLookUpFactory.GetLookup_TableDirEmbed(
                        language, "AD_Org_ID", RModel.TABLE_ALIAS, columnName) + ")";
                    _isIDcol = true;
                }
                else if (displayType == DisplayType.TableDir)
                {
                    _colSQL += ",(" + VLookUpFactory.GetLookup_TableDirEmbed(
                        language, columnName, RModel.TABLE_ALIAS) + ")";
                    _isIDcol = true;
                }
            }
        }
        /// <summary>
        /// function will accept columnName and Ids selected. Will Fetch information from Default tree hierarchy and get child records accordingly.
        /// </summary>
        /// <param name="_ctx"></param>
        /// <param name="columnName"></param>
        /// <param name="value"></param>
        /// <param name="result"></param>
        /// <returns>Name of orgs separated bY commas, and IDS in Reference Object</returns>
        private static string GetRecursiveParameterValue(Ctx _ctx, string columnName, string value, ref string result, bool ShowChildOfSelected)
        {
            string tableName = columnName.Substring(0, columnName.Length - 3);

            string[]      values           = value.Split(',');
            String        eSql             = "";
            string        result1          = "";
            StringBuilder finalResult      = new StringBuilder();
            StringBuilder nonSummaryResult = new StringBuilder();

            if (values.Length > 0)
            {
                // Get Default Heirarchy
                string sqla = @"SELECT PA_HIERARCHY_id FROM PA_Hierarchy WHERE ISACTIVE ='Y' 
                       ORDER BY ISDEFAULT DESC ,PA_HIERARCHY_id ASC";
                sqla = MRole.GetDefault(_ctx).AddAccessSQL(sqla, "PA_Hierarchy", true, true);
                object ID = DB.ExecuteScalar(sqla);
                int    _PA_Hierarchy_ID = 0;
                if (ID != null && ID != DBNull.Value)
                {
                    _PA_Hierarchy_ID = Util.GetValueOfInt(ID);
                }
                Language _language = Language.GetLanguage(_ctx.GetAD_Language());

                //Get Query to fetch identifier value from table based on column selected. it will be used to display identifires on for parameter in report.
                eSql = VLookUpFactory.GetLookup_TableDirEmbed(_language, columnName, columnName.Substring(0, columnName.Length - 3));

                for (int i = 0; i < values.Length; i++)
                {
                    if (!string.IsNullOrEmpty(values[i]))
                    {
                        //try
                        //{
                        string sqlCheckSummary = "SELECT IsSummary FROM " + tableName + " WHERE " + columnName + "=" + values[i];
                        object val             = DB.ExecuteScalar(sqlCheckSummary);
                        if (val != null && val != DBNull.Value)
                        {
                            if (val.ToString().Equals("N"))     // If non-summary is selected then add it string and continue to next ID
                            {
                                if (nonSummaryResult.Length > 0)
                                {
                                    nonSummaryResult.Append("," + values[i]);
                                }
                                else
                                {
                                    nonSummaryResult.Append(values[i]);
                                }
                                continue;
                            }
                        }
                        //}
                        //catch
                        //{
                        //    result = "";
                        //    continue;
                        //}

                        // Fetch child records from tree hierarchy based on ID selected.
                        if (columnName.Equals("AD_Org_ID", StringComparison.OrdinalIgnoreCase))
                        {
                            result1 = MReportTree.GetWhereClause(_ctx, _PA_Hierarchy_ID, MAcctSchemaElement.ELEMENTTYPE_Organization, Convert.ToInt32(values[i]));
                        }
                        else if (columnName.Equals("C_BPartner_ID", StringComparison.OrdinalIgnoreCase))
                        {
                            result1 = MReportTree.GetWhereClause(_ctx, _PA_Hierarchy_ID, MAcctSchemaElement.ELEMENTTYPE_BPartner, Convert.ToInt32(values[i]));
                        }
                        else if (columnName.Equals("M_Product_ID", StringComparison.OrdinalIgnoreCase))
                        {
                            result1 = MReportTree.GetWhereClause(_ctx, _PA_Hierarchy_ID, MAcctSchemaElement.ELEMENTTYPE_Product, Convert.ToInt32(values[i]));
                        }
                        else if (columnName.Equals("C_Project_ID", StringComparison.OrdinalIgnoreCase))
                        {
                            result1 = MReportTree.GetWhereClause(_ctx, _PA_Hierarchy_ID, MAcctSchemaElement.ELEMENTTYPE_Project, Convert.ToInt32(values[i]));
                        }
                        else if (columnName.Equals("AD_OrgTrx_ID", StringComparison.OrdinalIgnoreCase))
                        {
                            result1 = MReportTree.GetWhereClause(_ctx, _PA_Hierarchy_ID, MAcctSchemaElement.ELEMENTTYPE_OrgTrx, Convert.ToInt32(values[i]));
                        }
                        else if (columnName.Equals("Account_ID", StringComparison.OrdinalIgnoreCase))
                        {
                            result1 = MReportTree.GetWhereClause(_ctx, _PA_Hierarchy_ID, MAcctSchemaElement.ELEMENTTYPE_Account, Convert.ToInt32(values[i]));
                        }
                        else if (columnName.Equals("C_Campaign_ID", StringComparison.OrdinalIgnoreCase))
                        {
                            result1 = MReportTree.GetWhereClause(_ctx, _PA_Hierarchy_ID, MAcctSchemaElement.ELEMENTTYPE_Campaign, Convert.ToInt32(values[i]));
                        }


                        if (result1.IndexOf("(") > -1)
                        {
                            result1 = result1.Substring(result1.IndexOf("(") + 1);
                            result1 = result1.Substring(0, result1.IndexOf(")"));
                        }
                        else
                        {
                            result1 = result1.Substring(result1.IndexOf("=") + 1);
                        }

                        //create list of sleected IDs in stringbuilder
                        if (result1 != values[i] && result1.Length > 0)
                        {
                            if (finalResult.Length > 0)
                            {
                                finalResult.Append("," + result1);
                            }
                            else
                            {
                                finalResult.Append(result1);
                            }
                        }
                    }
                }
            }



            StringBuilder identifiedsName = new StringBuilder();

            if (finalResult.Length > 0)
            {
                if (finalResult.ToString().IndexOf(",") > -1)
                {
                    eSql = eSql + " AND " + columnName + " IN (" + finalResult.ToString() + ")";
                }
                else
                {
                    eSql = eSql + " AND " + columnName + " = " + finalResult.ToString();
                }
                //eSql = eSql + " AND " + result1;


                //if (!string.IsNullOrEmpty(finalResult.ToString()))
                //{
                //    result = result + "," + finalResult.ToString();
                //}

                DataSet dsIdeintifiers = DB.ExecuteDataset(eSql);



                if (ShowChildOfSelected && (dsIdeintifiers != null && dsIdeintifiers.Tables[0].Rows.Count > 0))
                {
                    for (int s = 0; s < dsIdeintifiers.Tables[0].Rows.Count; s++)
                    {
                        if (identifiedsName.Length > 0)
                        {
                            identifiedsName.Append(",");
                        }
                        identifiedsName.Append(dsIdeintifiers.Tables[0].Rows[s][0]);
                    }
                }
            }
            if (nonSummaryResult.Length > 0 || finalResult.Length > 0)
            {
                if (nonSummaryResult.Length > 0)
                {
                    result = nonSummaryResult.ToString();
                }

                if (finalResult.Length > 0)
                {
                    if (result.Length > 0)
                    {
                        result += ",";
                    }
                    result += finalResult.ToString();
                }
            }



            if (identifiedsName != null)
            {
                return(identifiedsName.ToString());
            }

            return("");
        }
        }   //  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());
        }