Spotfire中筛选任务时控制均值线与控制线显示的Python脚本需求
实现Spotfire折线图控制线的条件显示(单任务时显示)
嘿,刚上手Python脚本就能折腾Spotfire的自定义交互,已经很厉害了!针对你要实现的「仅选中单个任务时显示均值线、上下控制线,多选/未选时隐藏」的需求,我给你梳理了具体的实现步骤,都是Spotfire里常用的IronPython脚本逻辑:
核心思路
通过监控任务筛选器的选中项数量,用文档属性存储这个数量,再给控制线绑定基于该属性的可见性规则,就能实现动态显示/隐藏的效果。
步骤1:创建存储选中数量的文档属性
- 点击Spotfire顶部菜单栏的「工具」→「文档属性」
- 点击「添加」,创建一个整数类型的属性,命名为
SelectedTaskCount,默认值设为0
步骤2:编写筛选器触发的脚本(更新选中数量)
我们需要让筛选器每次变化时,自动计算选中的任务数量并更新到文档属性里:
- 找到页面上的「任务筛选器」,右键点击筛选器→「编辑筛选器」
- 切换到「高级」标签页,在「筛选器改变时运行脚本」的输入框里粘贴以下代码(记得替换注释里的内容):
from Spotfire.Dxp.Application.Filters import ListFilter # 替换成你实际的任务列名称(筛选器对应的列) target_filter = Application.Document.ActivePageReference.FilterPanel.Filters["任务列名称"] # 计算选中的任务数量 if isinstance(target_filter, ListFilter): # 列表筛选器的选中项数量 selected_count = len(target_filter.SelectedItems) else: # 若为其他类型筛选器(比如单选下拉),可根据实际情况调整 selected_count = 1 if target_filter.SelectedItem is not None else 0 # 更新文档属性 Application.Document.Properties["SelectedTaskCount"] = selected_count
步骤3:给控制线绑定可见性规则
现在要让三条线只在SelectedTaskCount=1时显示:
- 选中折线图,打开右侧的「属性」面板→「线条与曲线」
- 选中均值线(或上/下控制线),找到「可见性」选项,选择「使用表达式」
- 在表达式输入框里填写:
[SelectedTaskCount] = 1 - 对另外两条控制线重复上述操作
小提示
- 如果你的筛选器不是ListFilter(比如是复选框以外的类型),可以根据筛选器的实际类型调整脚本里的判断逻辑
- 测试时可以先选中单个任务,确认线条显示;再多选或清空筛选器,检查线条是否隐藏
内容的提问来源于stack exchange,提问作者BULB
相关产品推荐
相关产品推荐

