예제 #1
0
 private static string GetFormatedText(SmartTag4Member target, string [] textField, string textFormatString)
 {
     for (int i = 0; i < textField.Length; i++)
     {
         PropertyInfo pi = target.GetType().GetProperty(textField[i]);
         textFormatString = textFormatString.Replace("{" + i.ToString() + "}", pi != null ? pi.GetValue(target, null).ToString() : string.Empty);
     }
     return(textFormatString);
 }
예제 #2
0
        /// <summary>
        /// Only support the ComboBox control from WinForm/Visual WebGUI
        /// </summary>
        /// <param name="ddList">the ComboBox control from WinForm/Visual WebGUI</param>
        /// <param name="TextField">e.g. new string[]{"FieldName1", "FieldName2", ...}</param>
        /// <param name="TextFormatString">e.g. "{0} - {1}"</param>
        /// <param name="SwitchLocale">Can be localized, if the FieldName has locale suffix, e.g. '_chs'</param>
        /// <param name="BlankLine">add blank label text to ComboBox or not</param>
        /// <param name="BlankLineText">the blank label text</param>
        /// <param name="ParentFilter">e.g. "ForeignFieldName = 'value'"</param>
        /// <param name="WhereClause">Where Clause for SQL Statement. e.g. "FieldName = 'SomeCondition'"</param>
        /// <param name="OrderBy">Sorting order, string array, e.g. {"FieldName1", "FiledName2"}</param>
        public static void LoadCombo(ref ComboBox ddList, string [] TextField, string TextFormatString, bool SwitchLocale, bool BlankLine, string BlankLineText, string ParentFilter, string WhereClause, string[] OrderBy)
        {
            if (SwitchLocale)
            {
                TextField = GetSwitchLocale(TextField);
            }
            ddList.Items.Clear();

            SmartTag4MemberCollection source;

            if (OrderBy == null || OrderBy.Length == 0)
            {
                OrderBy = TextField;
            }

            if (WhereClause.Length > 0)
            {
                source = SmartTag4Member.LoadCollection(WhereClause, OrderBy, true);
            }
            else
            {
                source = SmartTag4Member.LoadCollection(OrderBy, true);
            }

            Common.ComboList sourceList = new Common.ComboList();

            if (BlankLine)
            {
                sourceList.Add(new Common.ComboItem(BlankLineText, Guid.Empty));
            }

            foreach (SmartTag4Member item in source)
            {
                bool filter = false;
                if (ParentFilter.Trim() != String.Empty)
                {
                    filter = IgnorThis(item, ParentFilter);
                }
                if (!(filter))
                {
                    string code = GetFormatedText(item, TextField, TextFormatString);
                    sourceList.Add(new Common.ComboItem(code, item.TagId));
                }
            }

            ddList.DataSource    = sourceList;
            ddList.DisplayMember = "Code";
            ddList.ValueMember   = "Id";

            if (ddList.Items.Count > 0)
            {
                ddList.SelectedIndex = 0;
            }
        }
예제 #3
0
        /// <summary>
        /// Loads a collection of SmartTag4Member objects from the database.
        /// </summary>
        /// <returns>A collection containing all of the SmartTag4Member objects in the database.</returns>
        public static SmartTag4MemberCollection LoadCollection(string spName, SqlParameter[] parms)
        {
            SmartTag4MemberCollection result = new SmartTag4MemberCollection();

            using (SqlDataReader reader = SqlHelper.Default.ExecuteReader(spName, parms))
            {
                while (reader.Read())
                {
                    SmartTag4Member tmp = new SmartTag4Member();
                    tmp.LoadFromReader(reader);
                    result.Add(tmp);
                }
            }
            return(result);
        }
예제 #4
0
 /// <summary>
 /// Loads a SmartTag4Member object from the database using the given where clause
 /// </summary>
 /// <param name="whereClause">The filter expression for the query</param>
 /// <returns>A SmartTag4Member object</returns>
 public static SmartTag4Member LoadWhere(string whereClause)
 {
     SqlParameter[] parameterValues = new SqlParameter[] { new SqlParameter("@WhereClause", whereClause) };
     using (SqlDataReader reader = SqlHelper.Default.ExecuteReader("spSmartTag4Member_SelAll", parameterValues))
     {
         if (reader.Read())
         {
             SmartTag4Member result = new SmartTag4Member();
             result.LoadFromReader(reader);
             return(result);
         }
         else
         {
             return(null);
         }
     }
 }
예제 #5
0
 /// <summary>
 /// Loads a SmartTag4Member object from the database using the given TagId
 /// </summary>
 /// <param name="tagId">The primary key value</param>
 /// <returns>A SmartTag4Member object</returns>
 public static SmartTag4Member Load(Guid tagId)
 {
     SqlParameter[] parameterValues = new SqlParameter[] { new SqlParameter("@TagId", tagId) };
     using (SqlDataReader reader = SqlHelper.Default.ExecuteReader("spSmartTag4Member_SelRec", parameterValues))
     {
         if (reader.Read())
         {
             SmartTag4Member result = new SmartTag4Member();
             result.LoadFromReader(reader);
             return(result);
         }
         else
         {
             return(null);
         }
     }
 }
예제 #6
0
        private static bool IgnorThis(SmartTag4Member target, string parentFilter)
        {
            bool result = true;

            parentFilter = parentFilter.Replace(" ", "");                       // remove spaces
            parentFilter = parentFilter.Replace("'", "");                       // remove '
            string [] parsed = parentFilter.Split('=');                         // parse

            PropertyInfo pi          = target.GetType().GetProperty(parsed[0]);
            string       filterField = (string)pi.GetValue(target, null);

            if (filterField.ToLower() == parsed[1].ToLower())
            {
                result = false;
            }
            return(result);
        }