Ważne
W programach Excel dla Microsoft 365 i Excel 2021 program Power View zostanie usunięty 12 października 2021 r. Alternatywnie możesz użyć interaktywnego środowiska wizualnego udostępnionego przez program Power BI Desktop, który możesz pobrać bezpłatnie. Możesz również łatwo zaimportować skoroszyty programu Excel do programu Power BI Desktop.
Objawy
Załóżmy, że używasz programu Power View w programie Microsoft SharePoint 2013, a wersja programu SQL Server to program SQL Server 2012 z dodatkiem Service Pack 2 (SP2) lub SQL Server 2014. Podczas próby dodania wielu filtrów do raportu programu Power View jest wyświetlany następujący komunikat o błędzie:
Uwaga
System.ArgumentException: nazwa "<Nazwa >filtru" została określona dwa razy, w indeksie 0 i indeksie 1. Zduplikowane nazwy są niedozwolone.
Nazwa parametru: klucze[1]
at Microsoft.Data.Common.CommandTrees.ExpressionBuilder.Internal.EnumerableValidator'3.Validate(IEnumerable'1 argument, String argumentName, Int32 expectedElementCount, Boolean allowEmpty, Func'3 map, Func'2 collect, Func'3 deriveName)
w Microsoft.Data.Common.CommandTrees.ExpressionBuilder.Internal.EnumerableValidator'3.Validate()
at Microsoft.Data.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation.ValidateGroupBy(DbGroupExpressionBinding input, klucze IEnumerable'1, agregacje IEnumerable'1, DbExpressionList& validKeys, ReadOnlyCollection'1& validAggregates)
at Microsoft.Reporting.QueryDesign.ExpressionTrees.ExpressionBuilder.Internal.QueryExpressionBuilder.GroupBy(QueryGroupExpressionBinding input, IEnumerable'1 groupItems, IEnumerable'1 aggregates)
at Microsoft.Reporting.QueryDesign.QueryDefinitionModel.Internal.QdmExpressionBuilder.QdmGroupBy(IEnumerable'1 wyrażeń)
at Microsoft.Reporting.QueryDesign.QueryDefinitionModel.Internal.QdmExpressionBuilder.QdmFilter(IGrouping'2 predykaty)
at System.Linq.Enumerable.WhereSelectEnumerableIterator'2.MoveNext()
at System.Linq.Buffer'1..ctor(IEnumerable'1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable'1 source)
w Microsoft.Reporting.QueryDesign.QueryDefinitionModel.Internal.QdmExpressionBuilder.QdmFilters(IEnumerable'1 filterConditions)
w Microsoft.Reporting.QueryDesign.QueryDefinitionModel.Internal.FilterQueryFactory.AddRowCount(QueryBuilder, queryBuilder, Group group, EntitySet entitySet, IEnumerable'1 rowCountFilterContext)
w Microsoft.Reporting.QueryDesign.QueryDefinitionModel.Internal.FilterQueryFactory.CreateValueWithCountQuery(QueryBuilder, queryBuilder, kolumny listy'1, fieldInstance IEdmFieldInstance, FilterCondition availableValueFilter, FilterCondition activeValueRetentionFilter, GroupReference& groupRef)
at Microsoft.Reporting.QueryDesign.QueryDefinitionModel.Internal.FilterQueryFactory.CreateValueListQuery(EntityDataModel model, IEdmFieldInstance fieldInstance, Int32 topCount, FilterCondition availableValueFilter, FilterCondition activeValueRetentionFilter, IEnumerable'1 exclusionPathSegments, ValueListQuerySchema& schema)
at Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.FilterValueQueryFactory.CreateFilterValuesQuery[TFilterMode](TFilterMode filterMode, Int32 maxRowCount, FormulaFilterCondition availableValueFilter, FormulaFilterCondition activeValueRetentionFilter, ValueListQuerySchema& schema)
w Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.ListFilterMode.ListDataLoader.<LoadDataImpl>d__15.MoveNext()
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.MoveNextChecked()
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.ResumeIterator(Boolean synchronous)
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.BeginExecuteCore(IEnumerator'1 asyncMethod)
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorImpl.BeginExecute(Func'2 asyncMethod)
at Microsoft.Reporting.AsyncEnumerator.BeginExecute(Func'2 asyncMethod, AsyncCallback userCallback, Object userState, AsyncEnumeratorSettings settings)
w Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.FilterMode.DataLoader'1.BeginLoadData(AsyncCallback userCallback, Object userState)
w Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.FilterMode.DataLoader'1.LoadDataAsync()
w Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.FieldFilter.LoadDataAsyncCore()
w Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.FilterManager.OnEditCompleted()
w Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.PageFilterManager.OnEditCompleted()
at Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.FilterManager.OnEditCompleted(EventArgs args)
w Microsoft.Practices.Prism.Events.EventSubscription'1.InvokeAction(akcja Action'1, argument TPayload)
w Microsoft.Practices.Prism.Events.EventSubscription'1.<>c__DisplayClass2.<GetExecutionStrategy>b__0(Object[] argumenty)
at Microsoft.Practices.Prism.Events.EventBase.InternalPublish(Object[] arguments)
at Microsoft.Practices.Prism.Events.CompositePresentationEvent'1.Publish(TPayload payload)
w Microsoft.Reporting.AdHoc.DataStructureManagement.Internal.TransactionManager.EditEventAggregator.Exit()
at Microsoft.Reporting.AdHoc.DataStructureManagement.Internal.TransactionManager.EditEventAggregator.SelectionManager_SelectionResumed(Object sender, EventArgs e)
at Microsoft.Reporting.Util.RaiseEvent(EventHandler, eventHandler, Object sender, EventArgs, eventArgs)
w Microsoft.Reporting.AdHoc.Shell.Regions.Canvas.Internal.SelectionManager.ResumeSelectionChanges()
w Microsoft.Reporting.AdHoc.Shell.Regions.Canvas.Internal.SelectionManager.<. ctor>b__3(Object s, EventArgs e)
at Microsoft.Reporting.Util.RaiseEvent(EventHandler, eventHandler, Object sender, EventArgs, eventArgs)
at Microsoft.Reporting.AdHoc.DataManagement.Internal.DataManager.set_HandleRdmChanges(wartość logiczna)
at Microsoft.Reporting.AdHoc.DataManagement.Internal.DataManager.UndoManager_SuspendRdmHandlingChanged(Object sender, StateChangedEventArgs'1 args)
at Microsoft.Reporting.Util.RaiseEvent[TEventArgs](EventHandler'1 eventHandler, Object sender, TEventArgs eventArgs)
w Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoManager.<. ctor>b__0(Object sender, StateChangedEventArgs'1 args)
at Microsoft.Reporting.Util.RaiseEvent[TEventArgs](EventHandler'1 eventHandler, Object sender, TEventArgs eventArgs)
at Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoManagerApiProperties.set_SuspendDataManagerRdmHandling(wartość logiczna)
at Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoManagerHasOpenUndoGroupStateImpl.OnUndoGroupCommitting(UndoGroup undoGroup)
at Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoManagerHasOpenUndoGroupStateImpl.HandleUndoGroupStateChanged(Object sender, EventArgs args)
at Microsoft.Reporting.Util.RaiseEvent(EventHandler, eventHandler, Object sender, EventArgs, eventArgs)
at Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoGroup.HandleStateEnteredEvent(Object sender, EventArgs args)
at Microsoft.Reporting.Util.RaiseEvent(EventHandler, eventHandler, Object sender, EventArgs, eventArgs)
w Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoGroupCommittingStateImpl.EnterState()
w Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoGroup.SetState(UndoGroupStateImpl nextState)
w Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoGroupOpenStateImpl.Commit()
w Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoGroup.Commit()
at Microsoft.Reporting.AdHoc.DataStructureManagement.Internal.TransactionManager.CompleteTransaction(Transaction transaction, Boolean completedSuccessfully)
at Microsoft.Reporting.AdHoc.DataStructureManagement.Internal.TransactionManager.Transaction.Dispose()
w Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.ListFilterMode.SelectOnly(ListFilterRow row)
at Microsoft.Reporting.AdHoc.Shell.Regions.Canvas.Internal.FilterCheckBoxList.FieldValueSelectorButton_Click(Object sender, RoutedEventArgs e)
w System.Windows.Controls.Primitives.ButtonBase.OnClick()
w System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
w MS. Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName, UInt32 flags)
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w następującej aktualizacji zbiorczej programu SQL Server.
Aktualizacja skumulowana 1 dla SQL Server 2014 z dodatkiem Service Pack 1 /pl-pl/help/3067839
Zbiorcza aktualizacja 6 dla systemu SQL Server 2014 /pl-pl/pomoc/3031047
Aktualizacja zbiorcza 4 dla dodatku SP2 SQL Server 2012 /en-us/help/3007556
Informacje o aktualizacjach zbiorczych dla programu SQL Server
Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:
- Najnowsza aktualizacja zbiorcza dla programu SQL Server 2014 z dodatkiem SP1
- Najnowsza aktualizacja zbiorcza dla programu SQL Server 2014
- Najnowsza aktualizacja zbiorcza dla programu SQL Server 2012 z dodatkiem SP2
Stan
Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.