重要: 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 产品问题。