1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Wincc tia v15.1 Компонент .net control TreeView

Ответить

Автор темы
DeanZ
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 04 мар 2020, 22:59
Имя: Дмитрий
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Wincc tia v15.1 Компонент .net control TreeView

Сообщение DeanZ »

Товарищи ! Помогите !
Как вставить компонент TreeView из .net control библиотеки. Как его заполнить из скриптов, неважно на c или vbs. Хочу создать фильтр сообщений, но пока не могу заполнить узлы в компоненте.
Использую пример отсюда:https://docs.microsoft.com/ru-ru/dotnet ... mework-4.8

Код примерно такой(пока сидит на клике кнопки):
Dim obj
Set obj = ScreenItems("TreeCtrl_1")
obj .Nodes.Add("Parent")
obj .Nodes(0).Nodes.Add("Child 1")
obj .Nodes(0).Nodes.Add("Child 2")
obj .Nodes(0).Nodes(1).Nodes.Add("Grandchild")
obj .Nodes(0).Nodes(1).Nodes(0).Nodes.Add("Great Grandchild")
или такой
Dim obj1
Dim obj2
Set obj1 = ScreenItems("TreeView_2")
Set obj2 = ScreenItems("TreeView_2").Nodes
obj1.BeginUpdate()
obj2.Add("Parent")
obj1.EndUpdate()
(получаю такую ошибку Application : PDLRT
Picture : myLIB_Alarms.pdl_Events
Function : Sub Button4X005F1_OnPressLeft(ByVal item, ByVal flags, ByVal x, ByVal y)
Line : 12
Error : Требуется объект: '[string: "(Коллекция)"]')

Wincc естественно ругается и ничего не создает. Пришлите пример заполнения.

iceman
здесь недавно
здесь недавно
Сообщения: 22
Зарегистрирован: 15 фев 2018, 07:17
Имя: Александр
Поблагодарили: 7 раз

Wincc tia v15.1 Компонент .net control TreeView

Сообщение iceman »

День добрый!

Пример работы с TreeView в VBS.

Sub OnOpen()

'===========================
'Создание дерева в TreeView
'===========================
Dim objTreeView
Dim NodeIndex

Set objTreeView = ScreenItems("TreeView")
objTreeView.Style = 6
objTreeView.LineStyle = 1
Set NodeIndex = objTreeView.Nodes.Add(,,"B","Родительский узел")
Set NodeIndex = objTreeView.Nodes.Add("B",4, "ID1","Потомок 1")
NodeIndex.Sorted=True

End Sub

Автор темы
DeanZ
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 04 мар 2020, 22:59
Имя: Дмитрий
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Wincc tia v15.1 Компонент .net control TreeView

Сообщение DeanZ »

Подскажите пожалуйста про какой именно элемент мы говорим? Скрипт сработал с актив х, а с net control, увы нет. Опять выдает ошибку:

============Ошибка выполнения Microsoft VBScript============
Application : PDLRT
Picture : myLIB_TrendsBig.pdl_Events
Function : Sub Button1X005F2_OnPressLeft(ByVal item, ByVal flags, ByVal x, ByVal y)
Line : 10
Error : Требуется объект: 'objTreeView.Nodes'
============Ошибка выполнения Microsoft VBScript============

iceman писал(а): 09 сен 2021, 10:42 День добрый!

Пример работы с TreeView в VBS.

Sub OnOpen()

'===========================
'Создание дерева в TreeView
'===========================
Dim objTreeView
Dim NodeIndex

Set objTreeView = ScreenItems("TreeView")
objTreeView.Style = 6
objTreeView.LineStyle = 1
Set NodeIndex = objTreeView.Nodes.Add(,,"B","Родительский узел")
Set NodeIndex = objTreeView.Nodes.Add("B",4, "ID1","Потомок 1")
NodeIndex.Sorted=True

End Sub

LexSL
осмотрелся
осмотрелся
Сообщения: 192
Зарегистрирован: 16 дек 2011, 15:13
Имя: Алексей
Страна: Россия
Благодарил (а): 65 раз
Поблагодарили: 46 раз

Wincc tia v15.1 Компонент .net control TreeView

Сообщение LexSL »

DeanZ писал(а): 26 сен 2021, 16:51 ============Ошибка выполнения Microsoft VBScript============
Application : PDLRT
Picture : myLIB_TrendsBig.pdl_Events
Function : Sub Button1X005F2_OnPressLeft(ByVal item, ByVal flags, ByVal x, ByVal y)
Line : 10
Error : Требуется объект: 'objTreeView.Nodes'
============Ошибка выполнения Microsoft VBScript============
VBS в WinCC ничего не знает о классах .net (в данном случае Nodes это public property, тип System.Windows.Forms.TreeNodeCollection).
Поэтому работать с TreeView (.net) в WinCC не получится. Надо писать свой UserControl, в нем размещать TreeView, на событии Load заполнять коллекцию Nodes, а также "прокидывать" события "Node click" наружу для доступа из WinCC. Да, еще и не забыть потом при разворачивании проекта на новом компе, UserControl dll установить в GAC.
Ответить

Вернуться в «WinCC»