Python 参考过滤器方案';Spotfire的名字

Python 参考过滤器方案';Spotfire的名字,python,filter,ironpython,spotfire,Python,Filter,Ironpython,Spotfire,我想知道如何通过名称引用方案中的单个筛选器,以便清除它。但是我发现的所有演示都使用ActiveFilteringSelectionReference,因此我很难弄清楚如何将此脚本编写到页面上不是活动筛选器的目标筛选器 具体来说,我需要为过滤方案“TeamFilter”重置表“Timesheets”列“Team”上的过滤器。这是我的开始。第五行是一个错误,因为FilteringSchemes不想获取字符串,但我不知道如何为它提供我要引用的筛选器的名称 import Spotfire.Dxp.App

我想知道如何通过名称引用方案中的单个筛选器,以便清除它。但是我发现的所有演示都使用ActiveFilteringSelectionReference,因此我很难弄清楚如何将此脚本编写到页面上不是活动筛选器的目标筛选器

具体来说,我需要为过滤方案“TeamFilter”重置表“Timesheets”列“Team”上的过滤器。这是我的开始。第五行是一个错误,因为FilteringSchemes不想获取字符串,但我不知道如何为它提供我要引用的筛选器的名称

import Spotfire.Dxp.Application.Filters as filters
from Spotfire.Dxp.Data import *
from Spotfire.Dxp.Application.Filters import *

myScheme = Document.FilteringSchemes["TeamFilter"]
myTable = Document.Data.Tables["Timesheets"]

filt=Document.FilteringSchemes[myScheme][myTable][myTable.Columns["Team"]]

filt.Reset()

您可以使用以下代码:

#Reset filters across all filter schemes
from Spotfire.Dxp.Application.Filters import *

#Get the active page and filterPanel
page = Application.Document.ActivePageReference
filterPanel = page.FilterPanel
#Find Filter Scheme
for scheme in Document.FilteringSchemes:  
  if scheme.FilteringSelectionReference.Name == 'Test':
    filterPanel.FilteringSchemeReference = scheme
    print(scheme.FilteringSelectionReference.Name)

#Reset Filter for Specific
filterPanel.InteractiveSearchPattern = "Country" 
for filter in filterPanel.FiltersMatchingSearchPattern:
    if filter.FilterReference.Name == "Country":
        lbFilter = filter.FilterReference.As[ListBoxFilter]() 
    lbFilter.Reset()

我知道下面的代码是有效的,因为它会在过滤方案列表中迭代,直到其中一个方案的名称匹配为止。但我们怎么能只说打印文档。过滤模式['test']?我正在尝试使用交互式搜索模式并设置活动页面过滤器。为什么代码必须假装像人类一样使用界面?对于Document.FilteringSchemes中的方案:if scheme.FilteringSelectionReference.Name=='test':print(scheme.FilteringSelectionReference.Name)不太确定,找不到一个不使用此方法的示例。我不相信你可以引用一个带有字符串的方案,所以循环是设置变量所必需的。除了代码的外观之外,它的功能仍然是一样的。发布的代码确实可以重置过滤器,并且没有使用ActiveFilteringSelectionReference。投票或批准一个答案总是令人感激的