需要IronPython代码在Spotfire中输出过滤方案

时间:2014-02-07 16:53:05

标签: filtering ironpython spotfire

我想打印特定于仪表板每个页面的过滤方案的“名称”。

例如,仪表板的第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

1 个答案:

答案 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)