Стартовая страница › Форумы › Разработка и интеграция › Модули сервера V6, возможности?
- В этой теме 59 ответов, 4 участника, последнее обновление 1 год, 9 месяцев назад сделано Mikhail.
-
АвторСообщения
-
10.04.2023 в 08:37 #28104manjey73Участник
Готовые формы наверное не очень устраивают, мне скорее надо создать дерево в одном окне и потом перетягивать для связи на объекты дерева в другом окне.
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УчастникТо есть как определить, что некий дочерний объект является главным для других для правильного построения дерева?
Номера как видите идут совершенно не последовательно и это нормально в моем случае.
- Этот ответ был изменен 1 год, 9 месяцев назад от manjey73.
17.04.2023 в 16:08 #28282MikhailМодераторДочерние объекты, дочерних объектов, дочерних объектов возможны?
Уровень вложенности не ограничен.
Возможно, Вам нужно на основе таблицы Объекты построить дерево объектов, которые имеют тип, похожий на TreeNode. Используйте компонент TreeView на форме.
Какая у Вас задача в целом? Иначе непонятно, что советовать. -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.