我想打印特定于仪表板每个页面的过滤方案的“名称”。
例如,仪表板的第1页可能具有名为“过滤方案1”的过滤方案,而第2页具有“过滤方案2”。我有代码输出所有过滤方案,但我无法弄清楚如何将特定方案与它所在的页面相关联。
for pg in Document.Pages:
print pg.Title # the page name
myPanel = pg.FilterPanel
print myPanel.Title # output is the word: Filters
# THIS IS WHERE I WOULD WANT THE FILTERING SCHEME NAME TO APPEAR
print myPanel.Visible # output: True
print myPanel.Context # output: Spotfire.Dxp.Application.Filters.FilterPanel
print myPanel.TypeId # TypeIdentifier:Spotfire.FilterPanel
print myPanel.FilteringSchemeReference
for i in range(myPanel.TableGroups.Count):
for gcObj in myPanel.TableGroups[i].FilterCollectionReference:
myFilter= myPanel.TableGroups[i].GetFilter(gcObj.Name)
if myFilter.Visible:
szCanSee = ' <Visible>'
else:
szCanSee = ' <Hidden>'
print myFilter.FilterReference.ToString() + szCanSee
答案 0 :(得分:1)
您正在寻找可以在api中找到的DataFilteringSelection类:http://stn.spotfire.com/dxp/html/AllMembers_T_Spotfire_Dxp_Data_DataFilteringSelection.htm
我已将您的代码缩减到所询问的部分,因为您可能需要稍微修改其余的部分,因为我的面板是&#39; myPanel&#39;将不再是FilterPanel。
for pg in Document.Pages:
print pg.Title # the page name
myPanel = pg.ActiveFilteringSelectionReference
print myPanel.Name # output is the filter name
为了测试这个,我创建了一个包含4页的文件:简介,解决方案1,解决方案2和页面;和2个过滤器:过滤方案(1)和过滤方案(2)。除了使用过滤方案(2)的解决方案2之外,一切都使用了过滤方案(1)。
这是我的输出:
> Introduction
> Filtering scheme (1)
> Solution 1
> Filtering scheme (1)
> Solution 2
> Filtering scheme (2)
> Page
> Filtering scheme (1)