Тема: Выделить текст в дереве

Здравствуйте.
Пытаюсь выделить шрифт в стандартном модуле трудового нормирования. Часть кода ниже:
         

Call OborNode.SetNodePropValues( "TPKOL", at.p_RunQuantity.AsSafeFloat )
          Call OborNode.SetNodePropValues( "TPZ", at.p_SetupTime.AsSafeFloat )
          Call OborNode.SetNodePropValues( "TSHT", at.p_TimePerPiece.AsSafeFloat )
          Call OborNode.SetNodePropValues( "TO", at.p_DirectManufactureTime.AsSafeFloat )
          Call OborNode.SetNodePropValues( "TV", at.p_AuxiliaryTime.AsSafeFloat )
         '----------------------
          if at.p_TimePerPiece.AsSafeFloat > 0 then OborNode.Font = "MS Sans Serif, 8, #FF000008, -B, 1"
          if at.p_SetupTime.AsSafeFloat > 0 then OborNode.Font = "MS Sans Serif, 8, #FF000008, -B, 1"

При открытии формы шрифт не выделяется жирным. Что-то делаю явно не правильно.

Re: Выделить текст в дереве

У  IDbNodeEx да и у обычной ноды IDbNode нет свойства Font. Программа так то должна ругать если ошибки не гасить.

Для управления раскраской в дереве используйте https://help.technologics.ru/7.9/TCSAPI … tyle_9.htm

Re: Выделить текст в дереве

Я брал такой метод: https://help.technologics.ru/7.9/TCSAPI … ont_15.htm

Re: Выделить текст в дереве

Это у самого дерева и работает через IFont стандартный. Не пользуемся обычно, так как на формах ввода можно проще сделать, но наверное работать должно. Но только это шрифт у всего дерева

(изменено: vitaly576, 20 мая 2022 10:29:02)

Re: Выделить текст в дереве

Спасибо.
Пока не понял как предложенный Вами код применить. Можно пример кода как добавить для ветки дерева жирный стиль шрифта?

Re: Выделить текст в дереве

ну я для дерева готовый не нашел, делается аналогично примеру https://forum.technologics.ru/post14827.html#p14827 ну и в самом TechnologiCS https://help.technologics.ru/7.9/TCSHelp/_809.htm

Re: Выделить текст в дереве

Ничего особо не получилось:

 Dim CM' as ICustomizedModule
  CM.CM_ClearAllCustomization
    CM.CM_AddTreeStyle("if at.p_TimePerPiece.AsSafeFloat > 0 then StyleColor( ""TSHT"", RGB( ""Lime"" ) ) End If")
  CM.CM_ApplyCustomization

Мы точно говорим про дерево в скриптах?
Речь про стандартный скрипт - трудовое нормирование операций.

Re: Выделить текст в дереве

скорее уж так, но точно не скажу

 Call CM.CM_AddTreeStyle("if GetAsFloat(""TSHT"") > 0 then StyleColor( ""TSHT"", RGB( ""Lime"" ) ) End If" )

Мы про наши сркипты говорим. А как где используется нужно смотреть уже.

Re: Выделить текст в дереве

К сожалению тоже не заработало.
Пробовал и в цикл вставлять код, и после цикла - не выделяются ячейки.

Re: Выделить текст в дереве

Вы ошибки гасите. Отключите, тогда код хотя бы проверите. Потом можно будет с подсветкой разобраться (там мы уже ошибки не показываем, так как прост некуда )

Re: Выделить текст в дереве

А как это сделать?

Re: Выделить текст в дереве

Ну....Тогда проще с простого примера начать. Я на него ссылку и кинул. Там разбирается как это работает, потом можно в свои программы проносить.

Re: Выделить текст в дереве

Так оттуда я код и взял.
Запустил макрос под отладкой с точкой останова, никаких ошибок не показывает.

Re: Выделить текст в дереве

Получилось вызвать код ошибки: "Объект не поддерживает это свойство или метод"
Объект я указал set CM = dbTree

Re: Выделить текст в дереве

CM = Сам справочник.

стоп!! это я наверноое обманул. Это же наше дервево. Там проще делается (но аналогично )https://help.technologics.ru/7.9/TCSAPI … ode_14.htm

Re: Выделить текст в дереве

Спасибо. Получилось, нашел подобное на форуме в одной из тем.

dbTree.StyleVBCode = "if GetAsFloat(""TSHT"") > 0 then : StyleColor(""TSHT"", ""red"", 1) : End if"

(изменено: vitaly576, 23 мая 2022 08:24:17)

Re: Выделить текст в дереве

Правда не понятно почему закрашивается фон только для одного столбца, а остальные игнорируются:
   

dbTree.StyleVBCode = "if GetAsFloat(""TSHT"") > 0 then : StyleColor(""TSHT"", ""Lime"", 1) : End if"
     dbTree.StyleVBCode = "if GetAsFloat(""TPZ"") > 0 then : StyleColor(""TPZ"", ""red"", 1) : End if"

https://i.postimg.cc/43fCDZLq/0000.png

Re: Выделить текст в дереве

Ну как в коде написано: если значение TSHT>0 то устанвоить цвет колонки TSHT в красный.

Re: Выделить текст в дереве

Для одного условия ячейки выделяются, а для двух (как выше указано), выделяются только для последнего условия.

Re: Выделить текст в дереве

Условия добавлять надо
dbTree.StyleVBCode = dbTree.StyleVBCode +vbNewLine + '...'

Re: Выделить текст в дереве

Спасибо. Заработало. В справке ничего подобного про это не указано.

Re: Выделить текст в дереве

Ну у дерева это просто строка. Ну а формировать ее можно по разному.