语法作用
在矩阵或表格中返回美化后的文本标签。参数说明:
- 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>"
应用示例
以胶囊卡片的样式,返回各产品类别的下属产品,结果如下图所示:

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






