人生没有彩排
每一天都是现场直播

XF.SvgChart.TextLabels

语法作用

在矩阵或表格中返回美化后的文本标签。参数说明:

  • textContent参数:用分隔符连接的文本标签
  • delimiter参数:分隔符
  • textSize参数:文本大小(建议10-14)
  • textColor参数:文本颜色

将按分隔符拆分textContent参数,得到各个标签,然后以胶囊卡片的形式进行美化,可使用在矩阵或表格的值字段中。

使用前提:将矩阵或表格的图形尺寸设置为:高20,宽512,并将对应度量值的分类设置为图形URL。

XF.SvgChart.TextLabels(textContent:string,delimiter:string,textSize:int64,textColor:string)

函数代码

该函数的实现代码如下:

/// 在矩阵或表格中返回美化后的文本标签。textContent参数:用分隔符连接的文本标签,delimiter参数:分隔符,textSize参数:文本大小(建议10-14),textColor参数:文本颜色。将按分隔符拆分textContent参数,得到各个标签,然后以胶囊卡片的形式进行美化,可使用在矩阵或表格的值字段中。使用前提:将矩阵或表格的图形尺寸设置为:高20,宽512,并将对应度量值的分类设置为图形URL
FUNCTION XF.SvgChart.TextLabels = (textContent:string,delimiter:string,textSize:int64,textColor:string) => 
    VAR CurText = SUBSTITUTE(SUBSTITUTE(textContent,delimiter,"|"),"&","&")
    VAR Space = 15
    VAR Width_Factor = 7
    VAR TextWeight = "Bold"
    VAR FillColor = Textcolor
    VAR FillColorOpacity = 0.1
    VAR TextList_AddIndex = 
        SELECTCOLUMNS(
            GENERATESERIES(1,PATHLENGTH(CurText)),
            "Text",PATHITEM(CurText,[Value]),
            "Index",[Value]
        )
    VAR TextList_AddCumLen = 
        ADDCOLUMNS(
            TextList_AddIndex,
            "CumLen",
                VAR CurIndex = [Index]
                RETURN
                SUMX(
                    FILTER(TextList_AddIndex,[Index]<=CurIndex),
                    LEN([Text])
                )
        )
    VAR TagChart = 
        ADDCOLUMNS(
            TextList_AddCumLen,
            "Tag",
                VAR CurIndex = [Index]
                VAR CurText = [Text]
                VAR CurCumLen = [CumLen]
                RETURN
                "<rect x='"&Width_Factor*(CurCumLen-LEN(CurText))+Space*(3*CurIndex-2)&"' y='0' rx='10' ry='10' width='"&Width_Factor*LEN(CurText)+Space*2&"' height='20' 
                    fill='"&FillColor&"' fill-opacity='"&FillColorOpacity&"'/>
                <text x='"&Width_Factor*(CurCumLen-LEN(CurText))+Space*(3*CurIndex-2)+(Width_Factor*LEN(CurText)+Space*2)/2&"' y='15' font-size='"&textSize&"' fill='"&textColor&"' font-weight='"&TextWeight&"' text-anchor='middle' >"&(CurText)&"</text>"
        )
    RETURN
    "data:image/svg+xml;utf8,
    <svg class='xifeng' xmlns='http://www.w3.org/2000/svg' version='1.1' height='20' width='512'>"&
        IF(CurText<>BLANK(),CONCATENATEX(TagChart,[Tag],""))
    &"</svg>"

应用示例

以胶囊卡片的样式,返回各产品类别的下属产品,结果如下图所示:

也可以对矩阵或表格中的某一列进行美化,如下图所示:

赞(0) 打赏
版权声明:本文为夕枫的原创文章,著作权归作者所有,未经允许不得转载
文章名称:《PowerBI DAX自定义函数-XF.SvgChart.TextLabels》
文章链接:https://www.ximaple.com/posts/1603.html
订阅评论
提醒
guest
0 评论
最新
最久 最赞
内联反馈
查看所有评论

觉得文章有用的话就支持一下吧~

感谢您的打赏支持,我将持续输出有价值的内容!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册

Operation don't support