Модули сервера V6, возможности?

Стартовая страница Форумы Разработка и интеграция Модули сервера V6, возможности?

Просмотр 15 сообщений - с 31 по 45 (из 60 всего)
  • Автор
    Сообщения
  • #28104
    manjey73
    Участник

    Готовые формы наверное не очень устраивают, мне скорее надо создать дерево в одном окне и потом перетягивать для связи на объекты дерева в другом окне.

    #28105
    Romiros
    Участник

    Тогда только самому разрабатывать.

    #28106
    manjey73
    Участник

    Собственно что из себя представляет таблица CnlTable?

    как мне ее в дерево превратить? какое окно тут лучше использовать в VisualStudio ?

    а то как-то я пока далек от WinForms, не совсем понимаю в какую сторону тут копать лучше, чтобы зря время не терять пробуя все и вся.

    #28110
    JurasskPark
    Участник

    как мне ее в дерево превратить? какое окно тут лучше использовать в VisualStudio

    TreeView.

    Собственно что из себя представляет таблица CnlTable?

    Ключевые слова BaseTableAdapter, DataTable.

    #28116
    Mikhail
    Модератор

    Таблица каналов уже загружена. Поэтому нужно в цикле пройтись по её элементам и построить дерево, создавая и добавляя узлы TreeNode.
    Если Вы строите дерево по какому-либо ограниченному набору каналов, то предварительно отфильтруйте элементы таблицы. Дерево строится в Редакторе таблиц, Администраторе, драйвере Modbus, драйвере OPC.

    #28262
    manjey73
    Участник

    появились некоторые сложности.
    1. в таблице CnlTable объект обозначается числом. Само название объекта в другой таблице.

    2. Теперь сама сложность. Как построить дерево объектов с каналами если существуют дочерние объекты ?

    Вот пример.
    Объект1
    Объект11
    Объект12
    Объект2
    Объект21
    Объект22

    соответственно 11, 12 являются дочерними для 1
    а 21 и 22 дочерними для 2
    А теперь иначе

    Объект1
    Объект2
    Объект11
    Объект21
    Объект12
    Объект22

    При чем в таблице каналов родительские объекты вроде не отображаются.
    И объекты могут располагаться не в иерархии.

    Как быть в данной ситуации ?

    #28264
    Mikhail
    Модератор

    Для канала задан один ID объекта. Если канал относится к дочернему объекту, то это будет ID дочернего объекта.

    Если у Вас есть ID родительского объекта и нужно найти каналы, которые к нему относятся, включая дочерние объекты, то сначала нужно получить ID всех объектов — родительского и дочерних, а затем сравнивать их с объектом канала.
    Для получения ID объектов потребуется использовать рекурсию.
    Посмотрите класс RightMatrix в качестве примера.

    #28265
    manjey73
    Участник

    Дочерние объекты, дочерних объектов, дочерних объектов возможны?

    #28266
    manjey73
    Участник

    ITableIndex obj_parentObjIndex

    Не совсем понимаю, что я должен поставить вместо этого параметра?

    Вот есть таблица ConfigDataset.ObjTable — и как из нее получить интерфейс?

    #28267
    manjey73
    Участник

    Собственно задача стоит так, надо понять, каким образом можно связывать несколько тысяч данных двух источников между собой, а не заниматься связями по одному каналу…

    Вот для этого надо понять как создать иерархию по объектам. Пока ничего толком не выходит…

    #28271
    manjey73
    Участник

    Добился кое-какого результата, но мне кажется это решение не очень разумное, так как надо знать Номера родительских объектов, чтобы узнать последовательность дочерних объектов.

    Может стоило идти как-то от обратного? Например если в таблице каналов указан ID объекта, узнавать цепочку родительских объектов и заносить их в словарь например?

    типа Dictionary<ObjNum, List<parentNum>> ? по количеству в List сразу известна цепочка Родителей объекта и все.

    #28272
    manjey73
    Участник

    Или я чего-то не доделал и надо узнавать еще что объект не является дочерним и тогда запускать код поиска дочерних?

    #28278
    manjey73
    Участник

    Иерархия

    Вот тут возникает вопрос.
    То, что с точкой и после него нет точки понятно, не имеет дочерних объектов.
    City имеет дочерние объекты, но тут их несколько.

    Как определить District и Street что у каждого есть дочерние объекты ?

    #28279
    manjey73
    Участник

    То есть как определить, что некий дочерний объект является главным для других для правильного построения дерева?

    Номера как видите идут совершенно не последовательно и это нормально в моем случае.

    • Этот ответ был изменен 1 год, 2 месяца назад от manjey73.
    #28282
    Mikhail
    Модератор

    Дочерние объекты, дочерних объектов, дочерних объектов возможны?

    Уровень вложенности не ограничен.
    Возможно, Вам нужно на основе таблицы Объекты построить дерево объектов, которые имеют тип, похожий на TreeNode. Используйте компонент TreeView на форме.
    Какая у Вас задача в целом? Иначе непонятно, что советовать.

Просмотр 15 сообщений - с 31 по 45 (из 60 всего)
  • Вы должны авторизироваться для ответа в этой теме.