Показать сообщение отдельно
Старый 16.03.2021, 10:14   #11  
v.i.p.to is offline
v.i.p.to
Участник
 
14 / 10 (1) +
Регистрация: 24.07.2015
Цитата:
Сообщение от 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 <--
}
2. Создаем проект, добавляем туда таблицу
3. Выделяем все поля и из контекстного меню открываем всем EDT
Вложение 13140

4. Все открывшиеся EDT перетягиваем в свой проект и экспортируем.

* Как верно подметили, талица может ссылаться не только на EDT, а также на многое другое: другие таблицы, классы, enums, maps. Те, в свою очередь, могут аналогично ссылаться на что-то ещё. Поэтому задача рекурсивная. Если ее решить в лоб, то с большой степенью вероятности, на выходе вы получите почти все элементы слоя (модели), поэтому проще выгрузить весь слой.
Но на практики таких задач не возникает. Но иногда, что решается лишними +15..+30 минтуми времени. Т.е. волшебной кнопки не существует.
Спасибо, тоже пригодилось.