16.03.2021, 10:14 | #11 |
Участник
|
Цитата:
Сообщение от DSPIC
1. Вносим правку в стандартный метод \Classes\SysOpenNewWindowApplObject\runsysContextMenu
X++: void runsysContextMenu(SysContextMenu _sysContextMenu) { TreeNode aNode = _sysContextMenu.first(); TreeNode treeNodeToOpen; // Open multi fix, 15/03/2021, EVGA --> List treeNodelList = new List(Types::Class); ListEnumerator le; // Open multi fix, 15/03/2021, EVGA --> while (aNode) // only single....?! { treeNodeToOpen = this.usingTreeNode(aNode); if (treeNodeToOpen) { // Open multi fix, 15/03/2021, EVGA --> /* treeNodeToOpen.AOTnewWindow(); */ treeNodelList.addEnd(treeNodeToOpen); // Open multi fix, 15/03/2021, EVGA <-- } aNode = _sysContextMenu.next(); } // Open multi fix, 15/03/2021, EVGA --> le = treeNodelList.getEnumerator(); while(le.moveNext()) { treeNodeToOpen = le.current(); if (treeNodeToOpen) { treeNodeToOpen.AOTnewWindow(); } } // Open multi fix, 15/03/2021, EVGA <-- } 3. Выделяем все поля и из контекстного меню открываем всем EDT Вложение 13140 4. Все открывшиеся EDT перетягиваем в свой проект и экспортируем. * Как верно подметили, талица может ссылаться не только на EDT, а также на многое другое: другие таблицы, классы, enums, maps. Те, в свою очередь, могут аналогично ссылаться на что-то ещё. Поэтому задача рекурсивная. Если ее решить в лоб, то с большой степенью вероятности, на выходе вы получите почти все элементы слоя (модели), поэтому проще выгрузить весь слой. Но на практики таких задач не возникает. Но иногда, что решается лишними +15..+30 минтуми времени. Т.е. волшебной кнопки не существует. |
|