Skip to content

Commit a292d83

Browse files
committed
Fixed small issue with slicer fields on pivot tables
1 parent 529e205 commit a292d83

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

src/EPPlus/Drawing/Slicer/ExcelPivotTableSlicerCache.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ internal void Init(ExcelWorkbook wb, string name, ExcelPivotTableField field)
4949
PivotTables.Add(_field.PivotTable);
5050
CreateWorkbookReference(wb, ExtLstUris.WorkbookSlicerPivotTableUri);
5151
SlicerCacheXml.Save(Part.GetStream());
52-
Data.Items.Refresh();
52+
Data.Items.Refresh();
5353
}
5454
/// <summary>
5555
/// Init must be called before accessing any properties as it sets several properties.

src/EPPlus/Table/PivotTable/ExcelPivotTableCacheField.cs

+14-7
Original file line numberDiff line numberDiff line change
@@ -885,16 +885,18 @@ internal void Refresh()
885885
private void UpdateGroupItems()
886886
{
887887
foreach (var pt in _cache._pivotTables)
888-
{
889-
if ((pt.Fields[Index].IsRowField ||
890-
pt.Fields[Index].IsColumnField ||
891-
pt.Fields[Index].IsPageField || pt.Fields[Index].Cache.HasSlicer) )
888+
{
889+
var fld = pt.Fields[Index];
890+
if ((fld.IsRowField ||
891+
fld.IsColumnField ||
892+
fld.IsPageField || fld.Cache.HasSlicer) )
892893
{
893-
pt.Fields[Index].UpdateGroupItems(this, true);
894+
fld.UpdateGroupItems(this, true);
895+
fld.Items.MatchValueToIndex();
894896
}
895897
else
896898
{
897-
pt.Fields[Index].DeleteNode("d:items");
899+
fld.DeleteNode("d:items");
898900
}
899901
}
900902
}
@@ -941,7 +943,12 @@ private void UpdateSharedItems()
941943
{
942944
UpdateSlicers();
943945
}
944-
}
946+
//Match items in pivot tables.
947+
foreach (var pt in _cache._pivotTables)
948+
{
949+
pt.Fields[Index].Items.MatchValueToIndex();
950+
}
951+
}
945952

946953
private void UpdatePivotItemsFromSharedItems(HashSet<object> siHs)
947954
{

src/EPPlus/Table/PivotTable/ExcelPivotTableFieldCollectionBase.cs

-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,6 @@ public void SelectSingleItem(int index)
189189
public void Refresh()
190190
{
191191
_field.Cache.Refresh();
192-
MatchValueToIndex();
193192
_hiddenItemIndex = null;
194193
}
195194

0 commit comments

Comments
 (0)