Стартовая страница › Форумы › Новые идеи › Редактор Схем. Динамическая надпись
- В этой теме 19 ответов, 5 участников, последнее обновление 1 месяц, 3 недели назад сделано
manjey73.
-
АвторСообщения
-
30.03.2026 в 09:43 #42690
phenix769УчастникМне не хватает такого инструмента как <Динамическая надпись> что бы работал как по принципу <Динамический рисунок>, например есть условия (коллекция) Знач.=1 выводи слово <Привет мир> или Знач.=100 выводи слово <Привет мир на 100%> . Может и есть решение с помощью обходных путей но хотелось такую реализацию как в Dinamic Picture.
-
Тема изменена 2 месяца, 2 недели назад пользователем
Mikhail.
30.03.2026 в 10:26 #42691
manjey73УчастникА когда-то такое было?
Для динамического текста применяется Перечисление. Если есть разрывы в значении, то предварительно привести скриптом через case к последовательным значениям, потом Перечисление.Другой путь, это применение svg с текстом и использовать Динамический рисунок, ну в Mimic просто рисунок + условия.
Пример svg с текстом выкладывал.30.03.2026 в 10:27 #42692
manjey73Участникз.ы. на счет условий для текста я говорил Михаилу, что надо 🙂
Может быть в Mimic как-то можно обыграть это скриптами теперь, но еще не пробовал.-
Ответ изменён 2 месяца, 2 недели назад пользователем
manjey73.
30.03.2026 в 10:40 #42694
a80808УчастникАга. Я в виде картинки выводил. Т.е. надпись оформлял типа картинки и как динамический рисунок… )))
30.03.2026 в 10:40 #42695
a80808УчастникТут заодно и цвет менять можно )))
30.03.2026 в 11:43 #42696
manjey73Участник<?xml version="1.0" encoding="utf-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" > <text text-anchor="start"> <tspan x="1" font-weight="normal" fill="#f00" stroke="#f00" stroke-width="0.6" > Авария основного </tspan> <tspan x="1" dy="1em" font-weight="normal" fill="#f00" stroke="#f00" stroke-width="0.6" > вентилятора по заслонке </tspan> </text> <style> <![CDATA[ text{ dominant-baseline: hanging; font: 12px Comic Sans MS, Verdana, Helvetica, Arial, sans-serif; } ]]> </style> </svg>Примет на две строки в svg
30.03.2026 в 16:25 #42697Boriss
УчастникМожно применить js скрипт к компоненту «Текст»
class extends ComponentScript { domCreated(args) { args.component.customData ??= {}; const customData = args.component.customData; } dataUpdated(args) { const customData = args.component.customData; const props = args.component.properties; const cnlData = args.dataProvider.getCurData(props.inCnlNum); if (cnlData.d.val <= 25) { props.text = "Мир на 25%"; } else if (cnlData.d.val > 25 && cnlData.d.val <= 50) { props.text = "Мир на 50%"; } else if (cnlData.d.val > 50 && cnlData.d.val <= 75) { props.text = "Мир на 75%"; } else if (cnlData.d.val > 75 && cnlData.d.val <= 100) { props.text = "Мир на 100%"; } else if (cnlData.d.val == 200) { props.text = "Мир на 200%"; } else { props.text = "--"; } args.propertyChanged = true } }Условия отредактируйте под свои задачи.
30.03.2026 в 17:03 #42698
MikhailМодераторДобрый день!
Если кратко резюмировать:
1. Если используется несколько фиксированных фраз, используйте формат канала. Например, Откл-Вкл
2. Если текст может быть произвольным или условий так много, что метод 1 становится неудобен, используйте скрипт компонента как показано выше.30.03.2026 в 17:07 #42699
MikhailМодераторТ.е. надпись оформлял типа картинки и как динамический рисунок…
В новом редакторе схем можно проще.
на счет условий для текста я говорил Михаилу, что надо
Было такое.
31.03.2026 в 07:42 #42702Boriss
УчастникТак будет правильнее. Убрал лишнее.
class extends ComponentScript { dataUpdated(args) { const props = args.component.properties; const cnlData = args.dataProvider.getCurData(props.inCnlNum); if (cnlData.d.val <= 25) { props.text = "Мир на 25%"; } else if (cnlData.d.val > 25 && cnlData.d.val <= 50) { props.text = "Мир на 50%"; } else if (cnlData.d.val > 50 && cnlData.d.val <= 75) { props.text = "Мир на 75%"; } else if (cnlData.d.val > 75 && cnlData.d.val <= 100) { props.text = "Мир на 100%"; } else if (cnlData.d.val == 200) { props.text = "Мир на 200%"; } else { props.text = "--"; } args.propertyChanged = true } }31.03.2026 в 09:05 #42703
a80808УчастникСтолько if — else…Может проще case?
31.03.2026 в 09:35 #42704
manjey73Участника как вы в case запихнете диапазон ?
31.03.2026 в 09:38 #42705Boriss
УчастникМожет и проще. А какая разница? phenix769 попросил обходной путь. Путь указан. А как его идти, дело сугубо индивидуальное 😉
Покажите свой вариант.31.03.2026 в 09:41 #42706
a80808УчастникХм…не ожидал, что простое замечание вызовет такую реакцию…Извините!
31.03.2026 в 10:05 #42707Boriss
УчастникНе стоит, я не со зла…
-
Тема изменена 2 месяца, 2 недели назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.