Spotfire使用脚本

时间:2016-09-13 19:23:49

标签: ironpython spotfire

我试图弄清楚如何允许用户从属性控件中选择多个值,并将这些值传递给过滤器。

过滤需要对两个不同的相关表有条件,因此我必须使用绑定到属性控件的列表框,并使用脚本处理过滤。

我有一个当前工作版本,只允许一个选择,但我需要能够选择多个。

选中了所有选项后筛选的两个表 enter image description here

使用选择的1个程序筛选两个表 enter image description here

我用来一次过滤1个选项的脚本是:

 from Spotfire.Dxp.Application import Filters from
 Spotfire.Dxp.Application.Filters import CheckBoxFilter

 Filter1=Document.FilteringSchemes[0].Item[myDataTable].Item[myDataTable.Columns.Item["Program_Name"]].As[CheckBoxFilter]()
 Filter2=Document.FilteringSchemes[0].Item[myDataTable2].Item[myDataTable2.Columns.Item["Program_Name"]].As[CheckBoxFilter]()

 program=Document.Properties["SelectedProgram"]

 Filter1.IncludeEmpty = False  for value in Filter1.Values:  
 Filter1.Uncheck(value)

 Filter2.IncludeEmpty = False for value in Filter2.Values:  
 Filter2.Uncheck(value)

 if program == "All":   Filter1.Check(program)  Filter2.IncludeEmpty =
 False  for value in Filter2.Values:        Filter2.Check(value) if program
 <> "All":  Filter1.Check(program)  Filter2.Check(program)

1 个答案:

答案 0 :(得分:0)

问题是程序中有多个值。添加另一个for循环以解析每个选定的值

for programvalue in program:
   if programvalue == "All":   
     Filter1.Check(programvalue)  
     Filter2.IncludeEmpty = False  
     for value in Filter2.Values:        
       Filter2.Check(value) 
   if programvalue <> "All":  
     Filter1.Check(programvalue)  
     Filter2.Check(programvalue)