Сложность этой svg заключается в генерации остатка серых прямоугольников. Мне красиво, но пока не оптимально скорее всего.
P. S. : Наверное, это как-то можно запихнуть в REPT(), но я не могу сморщить мозг так, чтобы избежать цикла.
1000. SVG KPI Sales =
VAR __Measure = INT([% Выполнения]*100)
VAR __Color =
SWITCH(
TRUE(),
__Measure<=50, "#FF6B6B",
__Measure<=70, "#FFB000",
"#00B097"
)
VAR __FirstSVG = "data:image/svg+xml,<svg width='340' height='20' viewBox='0 0 230 20' fill='none' xmlns='http://www.w3.org/2000/svg'>"
VAR __10 = "<rect width='14' height='20' rx='4' fill='"&__Color&"'/>"
VAR __20 = "<rect x='24' width='14' height='20' rx='4' fill='"&__Color&"'/>"
VAR __30 = "<rect x='48' width='14' height='20' rx='4' fill='"&__Color&"'/>"
VAR __40 = "<rect x='72' width='14' height='20' rx='4' fill='"&__Color&"'/>"
VAR __50 = "<rect x='96' width='14' height='20' rx='4' fill='"&__Color&"'/>"
VAR __60 = "<rect x='120' width='14' height='20' rx='4' fill='"&__Color&"'/>"
VAR __70 = "<rect x='144' width='14' height='20' rx='4' fill='"&__Color&"'/>"
VAR __80 = "<rect x='168' width='14' height='20' rx='4' fill='"&__Color&"'/>"
VAR __90 = "<rect x='192' width='14' height='20' rx='4' fill='"&__Color&"'/>"
VAR __100 = "<rect x='216' width='14' height='20' rx='4' fill='"&__Color&"'/>"
VAR _10 = "<rect width='14' height='20' rx='4' fill='#D9D9D9'/>"
VAR _20 = "<rect x='24' width='14' height='20' rx='4' fill='#D9D9D9'/>"
VAR _30 = "<rect x='48' width='14' height='20' rx='4' fill='#D9D9D9'/>"
VAR _40 = "<rect x='72' width='14' height='20' rx='4' fill='#D9D9D9'/>"
VAR _50 = "<rect x='96' width='14' height='20' rx='4' fill='#D9D9D9'/>"
VAR _60 = "<rect x='120' width='14' height='20' rx='4' fill='#D9D9D9'/>"
VAR _70 = "<rect x='144' width='14' height='20' rx='4' fill='#D9D9D9'/>"
VAR _80 = "<rect x='168' width='14' height='20' rx='4' fill='#D9D9D9'/>"
VAR _90 = "<rect x='192' width='14' height='20' rx='4' fill='#D9D9D9'/>"
VAR _100 = "<rect x='216' width='14' height='20' rx='4' fill='#D9D9D9'/>"
VAR _Text =
"<text x='280' y='15' font-size='15' text-anchor='end' fill='black' font-family='sans-serif' >" & __Measure &"%" & "</text>"
VAR __EndSVG = "</svg>"
VAR __SwitchPart=
SWITCH(
TRUE(),
__Measure<10, _10&_20&_30&_40&_50&_60&_70&_80&_90&_100,
__Measure<20, __10&_20&_30&_40&_50&_60&_70&_80&_90&_100,
__Measure<30, __10&__20&_30&_40&_50&_60&_70&_80&_90&_100,
__Measure<40, __10&__20&__30&_40&_50&_60&_70&_80&_90&_100,
__Measure<50, __10&__20&__30&__40&_50&_60&_70&_80&_90&_100,
__Measure<60, __10&__20&__30&__40&__50&_60&_70&_80&_90&_100,
__Measure<70, __10&__20&__30&__40&__50&__60&_70&_80&_90&_100,
__Measure<80, __10&__20&__30&__40&__50&__60&__70&_80&_90&_100,
__Measure<90, __10&__20&__30&__40&__50&__60&__70&__80&_90&_100,
__Measure<100, __10&__20&__30&__40&__50&__60&__70&__80&__90&_100,
__10&__20&__30&__40&__50&__60&__70&__80&__90&__100
)
RETURN __FirstSVG & __SwitchPart &_Text& __EndSVG
P. S. : Наверное, это как-то можно запихнуть в REPT(), но я не могу сморщить мозг так, чтобы избежать цикла.
👍28❤19🔥11