重要: Power View 将于 2021 年 10 月 12 日从 Microsoft 365 专属 Excel 和 Excel 2021 中删除。 作为替代方法,你可以使用 Power BI Desktop 提供的交互式视觉体验,可以免费下载。 你还可以轻松地将 Excel 导入到 Power BI Desktop。
症状
假设在 Microsoft SharePoint Power View 2013 Power View,SQL Server 版本为 SQL Server 2012 service pack 2 (SP2) 或 SQL Server 2014。 尝试向报表添加多个筛选器Power View,将收到以下错误消息:
System.ArgumentException:名称"<Filter Name>" 在索引 0 和索引 1 中指定两次。 不允许重复的名称。
参数名称:keys[1]
位于 Microsoft.Data.Common.CommandTrees.ExpressionBuilder.Internal.EnumerableValidator'3.Validate (IEnumerable'1 参数、String argumentName、Int32 expectedElementCount、布尔 allowEmpty、Func'3 map、Func'2 collect、Func'3 deriveName)
位于 Microsoft.Data.Common.CommandTrees.ExpressionBuilder.Internal.EnumerableValidator'3.Validate ()
在 Microsoft.Data.Common.CommandTrees.ExpressionBuilder.Internal.ArgumentValidation.ValidateGroupBy (DbGroupExpressionBinding 输入、IEnumerable'1 键、IEnumerable'1 聚合、DbExpressionList& validKeys、ReadOnlyCollection'1& validAggregates)
在 Microsoft.Reporting.QueryDesign.ExpressionTrees.ExpressionBuilder.Internal.QueryExpressionBuilder.GroupBy (QueryGroupExpressionBinding 输入,IEnumerable'1 groupItems,IEnumerable'1 聚合
)
在 Microsoft.Reporting.QueryDesign.QueryDefinitionModel.Internal.QdmExpressionBuilder.QdmGroupBy (IEnumerable'1 表达式
)
位于 Microsoft.Reporting.QueryDesign.QueryDefinitionModel.Internal.QdmExpressionBuilder.QdmFilter (IGrouping'2 谓词
)
位于 System.Linq.Enumerable.WhereSelectEnumerableIterator'2.MoveNext ()
位于 System.Linq.Buffer'1..ctor (IEnumerable'1 源)
位于 System.Linq.Enumerable.ToArray[TSource] (IEnumerable'1 source)
位于 Microsoft.Reporting.QueryDesign.QueryDefinitionModel.Internal.QdmExpressionBuilder.QdmFilters (IEnumerable'1 filterConditions)
位于 Microsoft.Reporting.QueryDesign.QueryDefinitionModel.Internal.FilterQueryFactory.AddRowCount (QueryBuilder queryBuilder, Group group, EntitySet 实体, IEnumerable'1 rowCountFilterContext)
at Microsoft.Reporting.QueryDesign.QueryDefinitionModel.Internal.FilterQueryFactory.CreateValueWithCountQuery (QueryBuilder queryBuilder, List'1 columns, IEdmFieldInstance fieldInstance, FilterCondition availableValueFilter, FilterCondition activeValueRetentionFilter, GroupReference& groupRef)
位于 Microsoft.Reporting.QueryDesign.QueryDefinitionModel.Internal.FilterQueryFactory.CreateValueListQuery (EntityDataModel 模型、IEdmFieldInstance 字段Instance、Int32 topCount、FilterCondition availableValueFilter、FilterCondition activeValueRetentionFilter、IEnumerable'1 exclusionPathSegments、ValueListQuerySchema& 架构)
at Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.FilterValueQueryFactory.CreateFilterValuesQuery[TFilterMode] (TFilterMode filterMode, Int32 maxRowCount, FormulaFilterCondition availableValueFilter, FormulaFilterCondition activeValueRetentionFilter, ValueListQuerySchemas& schema)
位于 Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.ListFilterMode.ListDataLoader.<LoadDataImpl>d__15.MoveNext ()
位于 Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.MoveNextChecked ()
位于 Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.ResumeIterator (布尔)
位于 Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.BeginExecuteCore (IEnumerator'1 asyncMethod)
位于 Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorImpl.BeginExecute (Func'2 asyncMethod)
at Microsoft.Reporting.AsyncEnumerator.BeginExecute (Func'2 asyncMethod, AsyncCallback userCallback, Object userState, AsyncEnumeratorSettings settings)
位于 Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.FilterMode.DataLoader'1.BeginLoadData (AsyncCallback userCallback, Object userState)
位于 Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.FilterMode.DataLoader'1.LoadDataAsync ()
位于 Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.FieldFilter.LoadDataAsyncCore ()
位于 Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.FilterManager.OnEditCompleted ()
位于 Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.PageFilterManager.OnEditCompleted ()
位于 Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.FilterManager.OnEditCompleted (EventArgs args)
在 Microsoft.Practices.Prism.Events.EventSubscription'1.InvokeAction (Action'1 action 中,TPayload 参数
)
在 Microsoft.Practices.Prism.Events.EventSubscription'1.<>c__DisplayClass2.<GetExecutionStrategy) 0 b__0 (Object[] 参数
)
在 Microsoft.Practices.Prism.Events.EventBase.InternalPublish (Object[] 参数)
在 Microsoft.Practices.Prism.Events.CompositePresentationEvent'1.Publish (TPayload payload)
位于 Microsoft.Reporting.AdHoc.DataStructureManagement.Internal.TransactionManager.EditEventAggregator.Exit ()
在Microsoft.Reporting.AdHoc.DataStructureManagement.Internal.TransactionManager.EditEventAggregator.SelectionManager_SelectionResumed (对象发送方,EventArgs e)
在 Microsoft.Reporting.Util.RaiseEvent (EventHandler eventHandler,对象发送方,EventArgs eventArgs
)
位于 Microsoft.Reporting.AdHoc.Shell.Regions.Canvas.Internal.SelectionManager.ResumeSelectionChanges ()
位于 Microsoft.Reporting.AdHoc.Shell.Regions.Canvas.Internal.SelectionManager.<.ctor) 2 b__3 (Object s,EventArgs e)
在 Microsoft.Reporting.Util.RaiseEvent (EventHandler eventHandler,对象发送方,EventArgs eventArgs
)
在 Microsoft.Reporting.AdHoc.DataManagement.Internal.DataManager.set_HandleRdmChanges (布尔值)
在Microsoft.Reporting.AdHoc.DataManagement.Internal.DataManager.UndoManager_SuspendRdmHandlingChanged (对象发送方,StateChangedEventArgs'1 参数)
在 Microsoft.Reporting.Util.RaiseEvent[TEventArgs] (EventHandler'1 eventHandler,对象发送方,TEventArgs eventArgs
)
在 Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoManager.<.ctor) 4 b__0 (对象发送方,StateChangedEventArgs'1 args)
在 Microsoft.Reporting.Util.RaiseEvent[TEventArgs] (EventHandler'1 eventHandler, Object sender, TEventArgs eventArgs
)
在 Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoManagerApiProperties.set_SuspendDataManagerRdmHandling (布尔值)
位于 Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoManagerHasOpenUndoGroupStateImpl.OnUndoGroupCommitting (UndoGroup undoGroup)
在 Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoManagerHasOpenUndoGroupStateImpl.HandleUndoGroupStateChanged (Object 发送方,EventArgs args
)
在 Microsoft.Reporting.Util.RaiseEvent (EventHandler eventHandler,对象发送方,EventArgs eventArgs
)
在 Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoGroup.HandleStateEnteredEvent (对象发送方,EventArgs 参数
)
位于 Microsoft.Reporting.Util.RaiseEvent (EventHandler eventHandler,对象发送方,EventArgs eventArgs)
位于 Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoGroupCommittingStateImpl.EnterState ()
位于 Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoGroup.SetState (UndoGroupStateImpl nextState)
位于 Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoGroupOpenStateImpl.Commit ()
位于 Microsoft.Reporting.AdHoc.Shell.Services.UndoManagement.Internal.UndoGroup.Commit ()
在 Microsoft.Reporting.AdHoc.DataStructureManagement.Internal.TransactionManager.CompleteTransaction (Transaction transaction 上,布尔 completedSuccessfully
)
位于 Microsoft.Reporting.AdHoc.DataStructureManagement.Internal.TransactionManager.Transaction.Dispose ()
位于 Microsoft.Reporting.AdHoc.DataStructureManagement.Filtering.Internal.ListFilterMode.SelectOnly (ListFilterRow 行
)
在 Microsoft.Reporting.AdHoc.Shell.Regions.Canvas.Internal.FilterCheckBoxList.FieldValueSelectorButton_Click (对象发送方,RoutedEventArgs e)
。Windows。Controls.Primitives.ButtonBase.OnClick ()
。Windows。Controls.Button.OnClick ()
。Windows。Controls.Primitives.ButtonBase.OnMouseLeftButtonUp (MouseButtonEventArgs e)
。Windows。Control.Control.OnMouseLeftButtonUp (Control ctrl、EventArgs e)
。Internal.JoltHelper.FireEvent (IntPtr unmanagedObj、IntPtr unmanagedObjArgs、Int32 argsTypeIndex、Int32 actualArgsTypeIndex、String eventName、UInt32 flags)
解决方法
此问题首次在以下累积更新中修复SQL Server。
2014 SP1 SQL Server累积更新 1 /help/3067839
2014 年 SQL Server 累积更新 6 /help/3031047
2012 SP2 的累积更新 4 SQL Server /help/3007556
每个新的累积更新SQL Server包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看最新累积更新,了解SQL Server:
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。