/// <summary> /// Последующие элементы фильтра /// </summary> /// <param name="parent"></param> public PgTableViewFilterM(PgTableViewFiltersM parent, bool isFixed) { _parent = parent; _source = parent.Source; Field = _source.Fields[0]; _useOwnValue = isFixed; }
/// <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); }
/// <summary> /// Последующие элементы фильтра /// </summary> /// <param name="source"></param> public PgTableViewFilterM(PgTV_VM.PgTableViewFilterVM source) { _source = source; Field = _source.Fields[0]; _useOwnValue = true; }
/// <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); }