Показать сообщение отдельно
Старый 13.08.2008, 18:23   #8  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Немножко присоседюсь к Ивану
Показалось напряжным запускать пиклист заново, когда хочется посмотреть реализацию метода сразу в нескольких классах. Внёс небольшую модификацию, использовав SysInfoAction_Editor. По ходу получилось своеобразное инфолог-меню, которое можно подержать на экране, щелкая по строчкам. Ну, и добавил заодно доступ и к самим классам в целом (а не только к конкретному методу).
X++:
switch (descendents.elements())
{
    case 0:
        info(strFmt(@"The method '%1' is not overridden in any of the %2 descendent classes", methodName, descendentsCount));
        break;
    case 1:
        descendentsEnumerator = descendents.getEnumerator();
        if (descendentsEnumerator.moveNext())
            treeNode = TreeNode::findNode(descendentsEnumerator.currentKey());
        break;
    default:
// Gustav -->
        //treeNode = TreeNode::findNode(pickList(descendents, "@SYS24724", @"Pick required class to go to method definition"));
        info(strRep('-', 100));
        info(' Double click required string to go to method or class definition: ' );
        info(strRep('-', 100));

        descendentsEnumerator = descendents.getEnumerator();
        while (descendentsEnumerator.moveNext())
        {
            treeNode = TreeNode::findNode(descendentsEnumerator.currentKey());

            info( strFmt('CLASS: %1', subStr( treeNode.AOTparent().treeNodePath(),10,100 )),
                  '', SysInfoAction_Editor::newOpen( treeNode.AOTparent().treeNodePath() ));

            info( strFmt('%1 METHOD: %2', strRep('-', 50), treeNode.treeNodeName() ),
                  '', SysInfoAction_Editor::newOpen( treeNode.treeNodePath() ));
        }
}
if(descendents.elements()<=1)
{
    if (treeNode && SysTreeNode::hasSource(treeNode))
        treeNode.AOTedit();
}
// Gustav <--
Проверить можно, например, открыв метод AssetId класса InventMovement и выполнить для него этот скрипт.
За это сообщение автора поблагодарили: kashperuk (5), aidsua (1), alex55 (1).