Стартовая страница › Форумы › Разработка и интеграция › Модули сервера V6, возможности?
- В этой теме 59 ответов, 4 участника, последнее обновление 5 месяцев назад сделано
Mikhail.
-
АвторСообщения
-
10.04.2023 в 08:37 #28104
manjey73
УчастникГотовые формы наверное не очень устраивают, мне скорее надо создать дерево в одном окне и потом перетягивать для связи на объекты дерева в другом окне.
10.04.2023 в 08:59 #28105Romiros
УчастникТогда только самому разрабатывать.
10.04.2023 в 09:07 #28106manjey73
УчастникСобственно что из себя представляет таблица CnlTable?
как мне ее в дерево превратить? какое окно тут лучше использовать в VisualStudio ?
а то как-то я пока далек от WinForms, не совсем понимаю в какую сторону тут копать лучше, чтобы зря время не терять пробуя все и вся.
10.04.2023 в 11:08 #28110JurasskPark
Участниккак мне ее в дерево превратить? какое окно тут лучше использовать в VisualStudio
TreeView.
Собственно что из себя представляет таблица CnlTable?
Ключевые слова BaseTableAdapter, DataTable.
10.04.2023 в 11:57 #28116Mikhail
МодераторТаблица каналов уже загружена. Поэтому нужно в цикле пройтись по её элементам и построить дерево, создавая и добавляя узлы TreeNode.
Если Вы строите дерево по какому-либо ограниченному набору каналов, то предварительно отфильтруйте элементы таблицы. Дерево строится в Редакторе таблиц, Администраторе, драйвере Modbus, драйвере OPC.16.04.2023 в 10:44 #28262manjey73
Участникпоявились некоторые сложности.
1. в таблице CnlTable объект обозначается числом. Само название объекта в другой таблице.2. Теперь сама сложность. Как построить дерево объектов с каналами если существуют дочерние объекты ?
Вот пример.
Объект1
Объект11
Объект12
Объект2
Объект21
Объект22соответственно 11, 12 являются дочерними для 1
а 21 и 22 дочерними для 2
А теперь иначеОбъект1
Объект2
Объект11
Объект21
Объект12
Объект22При чем в таблице каналов родительские объекты вроде не отображаются.
И объекты могут располагаться не в иерархии.Как быть в данной ситуации ?
16.04.2023 в 11:31 #28264Mikhail
МодераторДля канала задан один ID объекта. Если канал относится к дочернему объекту, то это будет ID дочернего объекта.
Если у Вас есть ID родительского объекта и нужно найти каналы, которые к нему относятся, включая дочерние объекты, то сначала нужно получить ID всех объектов — родительского и дочерних, а затем сравнивать их с объектом канала.
Для получения ID объектов потребуется использовать рекурсию.
Посмотрите класс RightMatrix в качестве примера.16.04.2023 в 14:02 #28265manjey73
УчастникДочерние объекты, дочерних объектов, дочерних объектов возможны?
16.04.2023 в 20:15 #28266manjey73
УчастникITableIndex obj_parentObjIndex
Не совсем понимаю, что я должен поставить вместо этого параметра?
Вот есть таблица ConfigDataset.ObjTable — и как из нее получить интерфейс?
17.04.2023 в 08:50 #28267manjey73
УчастникСобственно задача стоит так, надо понять, каким образом можно связывать несколько тысяч данных двух источников между собой, а не заниматься связями по одному каналу…
Вот для этого надо понять как создать иерархию по объектам. Пока ничего толком не выходит…
17.04.2023 в 10:20 #28271manjey73
УчастникДобился кое-какого результата, но мне кажется это решение не очень разумное, так как надо знать Номера родительских объектов, чтобы узнать последовательность дочерних объектов.
Может стоило идти как-то от обратного? Например если в таблице каналов указан ID объекта, узнавать цепочку родительских объектов и заносить их в словарь например?
типа Dictionary<ObjNum, List<parentNum>> ? по количеству в List сразу известна цепочка Родителей объекта и все.
17.04.2023 в 10:21 #28272manjey73
УчастникИли я чего-то не доделал и надо узнавать еще что объект не является дочерним и тогда запускать код поиска дочерних?
17.04.2023 в 11:28 #28278manjey73
УчастникВот тут возникает вопрос.
То, что с точкой и после него нет точки понятно, не имеет дочерних объектов.
City имеет дочерние объекты, но тут их несколько.Как определить District и Street что у каждого есть дочерние объекты ?
17.04.2023 в 11:28 #28279manjey73
УчастникТо есть как определить, что некий дочерний объект является главным для других для правильного построения дерева?
Номера как видите идут совершенно не последовательно и это нормально в моем случае.
-
Этот ответ был изменен 5 месяцев, 1 неделя назад от
manjey73.
17.04.2023 в 16:08 #28282Mikhail
МодераторДочерние объекты, дочерних объектов, дочерних объектов возможны?
Уровень вложенности не ограничен.
Возможно, Вам нужно на основе таблицы Объекты построить дерево объектов, которые имеют тип, похожий на TreeNode. Используйте компонент TreeView на форме.
Какая у Вас задача в целом? Иначе непонятно, что советовать. -
Этот ответ был изменен 5 месяцев, 1 неделя назад от
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.