我试图弄清楚如何允许用户从属性控件中选择多个值,并将这些值传递给过滤器。
过滤需要对两个不同的相关表有条件,因此我必须使用绑定到属性控件的列表框,并使用脚本处理过滤。
我有一个当前工作版本,只允许一个选择,但我需要能够选择多个。
我用来一次过滤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)
答案 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)