コード例 #1
0
 /// <summary>
 /// Последующие элементы фильтра
 /// </summary>
 /// <param name="parent"></param>
 public PgTableViewFilterM(PgTableViewFiltersM parent, bool isFixed)
 {
     _parent      = parent;
     _source      = parent.Source;
     Field        = _source.Fields[0];
     _useOwnValue = isFixed;
 }
コード例 #2
0
 /// <summary>
 /// Первый элемент фильтра
 /// </summary>
 /// <param name="source"></param>
 /// <param name="setDefault">Если true - во внутренней коллекции по умолчанию сразу создается фильтр</param>
 public PgTableViewFiltersM(PgTV_VM.PgTableViewFilterVM source, bool setDefault = true)
 {
     _source = source;
     if (setDefault)
     {
         Container.Add(new PgTableViewFilterM(this, false));
     }
     PropertyChanged += new PropertyChangedEventHandler(PgTableViewFiltersM_PropertyChanged);
 }
コード例 #3
0
 /// <summary>
 /// Последующие элементы фильтра
 /// </summary>
 /// <param name="source"></param>
 public PgTableViewFilterM(PgTV_VM.PgTableViewFilterVM source)
 {
     _source      = source;
     Field        = _source.Fields[0];
     _useOwnValue = true;
 }
コード例 #4
0
        /// <summary>
        /// Загружает данные с БД
        /// </summary>
        /// <param name="page">Указывает страницу для загрузки или загружать все</param>
        /// <param name="tableRows"></param>
        /// <param name="tablePages"></param>
        /// <param name="pageShowRows"></param>
        /// <returns></returns>
        private DataView GetData(DataView data, int?page, out int tableRows, out int tablePages, out int pageShowRows, FilterRelationModel filterPattern = null)
        {
            tableRows    = GetCountRows();
            pageShowRows = 0;
            if (page != null)
            {
                tablePages = tableRows / __pageMaxRows;
                if (tableRows % __pageMaxRows > 0)
                {
                    tablePages++;
                }
            }
            else
            {
                tablePages = 1;
            }
            if (tableRows != 0)
            {
                using (SqlWork sqlCmd = new SqlWork(_connect, _isDebug))
                {
                    List <IParams> listParams   = new List <IParams>();
                    string         whereDynamic = PgTableViewFilterVM.GetWhere(FilterVM.DynamicFilter, listParams);
                    string         whereFixed   = PgTableViewFilterVM.GetWhere(FilterVM.FixedFilter, listParams);
                    string         whereUpdated = "1 = 1";
                    if (filterPattern != null)
                    {
                        PgTVM.PgTableViewFilterM filterUpdated = new PgTableViewFilterM(FilterVM);
                        FilterVM.SetFilterFromPattern(filterUpdated, filterPattern);
                        whereUpdated = PgTableViewFilterVM.GetWhere(filterUpdated, listParams);
                    }
                    sqlCmd.sql =
                        string.Format(
                            @"
                                    SELECT *
                                    FROM (
                                        SELECT *
                                        FROM (
                                            {0}
                                            ) as gg 
                                        WHERE {1} AND {2} 
                                        ORDER BY {3}
                                        {4}
                                    ) s
                                    WHERE {5}",
                            sqlSelect,
                            whereFixed,
                            whereDynamic,
                            GetSQLOrderBy(data),
                            (page == null) ? "" : string.Format("LIMIT {0} OFFSET {1}", __pageMaxRows, ((int)page - 1) * __pageMaxRows),
                            whereUpdated);

                    data = sqlCmd.ExecuteGetTable(data, listParams);
                }
            }
            if (data != null)
            {
                pageShowRows = data.Table.Rows.Count;
                if (data.Sort == "")
                {
                    data.Sort = _table.PrimaryKey;
                }
            }
            return(data);
        }