Power BI滚屏实战:人员业绩达成滚动播放
2023-02-18 16:27:11 时间
上文分享了在Power BI实现无限滚动循环播放的原理(Power BI 无限滚屏效果(适用于地图、卡片图滚动等)),本文是一个实战应用——人员业绩达成滚动播放,效果如下动画所示:
动画中,人物头像上方加了一个百分比条形图,显示业绩达成状况,条形样式模拟B站风格,且可以设置条件进行颜色区分。实现的方式是度量值嵌入SVG矢量图。
首先准备好人物资料,比如包含人员ID、姓名、头像、业绩状况等。头像可以是网络链接,也可以是本地图像(Power BI 批量导入本地产品、人物照片),示例是本地照片转码BASE64。
接着新建以下度量值,将度量值放入HTML Content视觉对象,即可实现滚屏效果:
SVG滚动百分比条形图-横向 =
VAR Item_Count =
DISTINCTCOUNT ( '表'[ID] )
VAR IndexTable =
ADDCOLUMNS (
SUMMARIZE ( '表', '表'[ID], '表'[头像] ),
"索引", RANKX ( ALLSELECTED ( '表' ), [达成率] )
)
VAR SVG =
CONCATENATEX (
IndexTable, "
<image xlink:href='" & [头像] & "' x='" & 100 * ( [索引] - 1 ) & "' y='15' width='100' height='100'/>
<rect rx='2' x='" & 100 * ( [索引] - 1 ) + 10 & "' y='5' width='80' height='5' fill='Lightgrey'/> <rect rx='2' x='" & 100 * ( [索引] - 1 ) + 10 & "' y='5' width='"
& 80
* IF ( [达成率] < 0, 0, IF ( [达成率] > 1, 1, [达成率] ) ) & "' height='5' fill='"
& IF ( [达成率] >= 0.8, "#4BAAE5", "#EC6F9A" ) & "'/>"
)
RETURN
"<svg xmlns='http://www.w3.org/2000/svg' viewbox='0 0 " & 100 * Item_Count & " " & 115 & " ' >
<defs><g id='wujunmin'>" & SVG & "</g></defs>
<use href='#wujunmin'>
<animate attributeName='x' from='0' by='" & Item_Count * 100 & "' begin='0s' dur='10s' repeatCount='indefinite'/>
</use>
<use href='#wujunmin'>
<animate attributeName='x' from='" & -1 * Item_Count * 100 & "' by='" & Item_Count * 100 & "' begin='0s' dur='10s' repeatCount='indefinite'/>
</use>
</svg> "
DAX粘贴到公众号代码排版有时会丢失
前期讲原理的时候是单张图片的滚屏,这里使用SVG中的g标签对一组图片(头像、条形)进行了打包,将打包后的图形进行统一滚屏。示例中,对业绩达成率达到一定值进行了条形颜色变换,读者实际应用时可自行替换。
代码中的参数可以灵活调整,自由打包图形组合进行滚屏,比如加上姓名:
比如变为竖屏:
相关文章
- ARM嵌入式跟踪缓冲器技术参考手册
- MongoDB(4)- MongoDB与Python的交互
- MongoDB(3)- 数据的导入导出
- MongoDB(2)- MongoDB的基本操作
- MongoDB(1)- MongoDB数据库介绍与安装
- Linux(六):系统运维常用命令
- Linux(五):Linux的文档编辑器Vi
- Linux(四):Linux的打包和压缩详解
- Linux(三):Linux的目录及相关作用
- Linux(二):Linux的灵魂
- Linux(一):Linux操作系统
- Linux环境下安装配置Mysql
- (一)Git——安装与初始化
- (二)Git——基本操作
- (三)Git——分支
- (四)Git——团队协作
- Git——从入门到入云
- Linux嵌入式开发——shell命令
- Linux环境下接口调试利器:cURL
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)