/// <summary> /// Adds a top 10 filter to the field /// </summary> /// <param name="type">The top-10 filter type</param> /// <param name="dataField">The datafield within the pivot table</param> /// <param name="value">The top or bottom value to relate to </param> /// <param name="isTop">Top or bottom. true is Top, false is Bottom</param> /// <returns></returns> public ExcelPivotTableFilter AddTop10Filter(ePivotTableTop10FilterType type, ExcelPivotTableDataField dataField, double value, bool isTop = true) { var dfIx = _table.DataFields._list.IndexOf(dataField); if (dfIx < 0) { throw new ArgumentException("This data field is not in the pivot tables DataFields collection", "dataField"); } return(AddTop10Filter(type, dfIx, value, isTop)); }
internal void CreateTop10Filter(ePivotTableTop10FilterType type, bool isTop, double value) { _filterColumnNode.InnerXml = "<top10 />"; var tf = new ExcelTop10FilterColumn(NameSpaceManager, _filterColumnNode); tf.Percent = (type == ePivotTableTop10FilterType.Percent); tf.Top = isTop; tf.Value = value; tf.FilterValue = value; _filter = tf; }
/// <summary> /// Adds a top 10 filter to the field /// </summary> /// <param name="type">The top-10 filter type</param> /// <param name="dataFieldIndex">The index to the data field within the pivot tables DataField collection</param> /// <param name="value">The top or bottom value to relate to </param> /// <param name="isTop">Top or bottom. true is Top, false is Bottom</param> /// <returns></returns> public ExcelPivotTableFilter AddTop10Filter(ePivotTableTop10FilterType type, int dataFieldIndex, double value, bool isTop = true) { if (dataFieldIndex < 0 || dataFieldIndex >= _table.DataFields.Count) { throw new ArgumentException("dataFieldIndex must point to an item in the pivot tables DataFields collection", "dataFieldIndex"); } ExcelPivotTableFilter filter = CreateFilter(); filter.Type = (ePivotTableFilterType)type; filter.Value1 = value; filter.MeasureFldIndex = dataFieldIndex; filter.CreateTop10Filter(type, isTop, value); filter.Filter.Save(); _filters.Add(filter); return(filter); }