
Power BI字段参数可玩性很高,一转眼本月已经写了7篇相关内容,这是第8篇。本文的效果是:当指标未达标时动画边框异常展示,下图业绩达成率和销售折扣异常:

实现以上效果需要DAX与SVG矢量图结合(Power BI SVG制图入门知识2025版),但不需要了解任何SVG代码知识。
首先,在建模选项卡下新建字段参数,如果没有看到该选项,需要把desktop版本升级到2025年7月及以后。

勾选需要展示的指标:

自动生成了字段参数表:

字段参数表的指标列放入按钮切片器视觉对象:

目前仅展示了指标名称,添加指标切换度量值:
M.多指标切换 =
SWITCH(VALUES('指标'[指标]),
"销售业绩",FORMAT([M.销售业绩],"#,#"),
"业绩达成率",FORMAT([M.业绩达成率],"0%"),
"销售折扣",[M.销售折扣],
"销量",FORMAT([M.销量],"#,#"))
放入按钮切片器的标签:

如果是新卡片图视觉对象,没有添加指标切换度量值这个步骤,直接可以实现以上效果,但是卡片图没有筛选环境,不能切换其他图表,不能充分发挥字段参数的价值。
最后是添加边框。打开我的主页,选择SVG边框生成器:

https://junminwu.github.io/
左侧是格式设置区域和边框预览,右侧是自动生成的SVG代码:

用户可以调整图像宽高比、边框颜色、粗细、圆角幅度、是否渐变,可以选择边框类型(目前有四种:实线、虚线、点线、手绘),可以选择动画(目前有流动、闪烁、呼吸、霓虹灯)。

调整完后可以看到右侧对应的代码,分别设计一个带有动画和不带动画的效果,点击复制代码按钮:

把代码粘贴到SVG度量值:
SVG.旋转实边 =
VAR DefStroke = "复制的静态边框代码"
VAR AltStroke = "复制的动画边框代码"
RETURN
SWITCH (
VALUES ( '指标'[指标] ),
"销售业绩", DefStroke,
"销量", DefStroke,
"销售折扣", IF ( [M.销售折扣] < 0.8, AltStroke, DefStroke ),
"业绩达成率", IF ( [M.业绩达成率] < 1, AltStroke, DefStroke )
)
以上度量值的含义是,没有目标的指标使用默认边框,有目标的指标进行边框切换。SVG度量值放入按钮切片器的图像:

设为背景打开:

完工。