AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.06.2010, 15:54   #1  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
AXGoBack - скрипт для возврата к предыдущей позиции курсора в редакторе
ver. 1.0.0 beta, 13.06.2010

Возможности:
- Позволяет вернуться к позиции курсора в редакторе, предварительно сохраненной в кэше скриптом AXGoToDeclarationXRef ver. 1.0.3 beta (AXGoToDeclarationXRef - утилита перехода к объявлению переменной) или более поздней с включенным параметром #SaveGoBackPosition.
- Работает в AX 3, AX 4, AX 2009.

Установка:
- Добавить метод в класс EditorScripts и скомпилировать. После этого в контекстном подменю редактора Scripts/addIns появится пункт aaAXGoBack.

Примечание:
- Данный скрипт использует реализацию отложенного вызова функции перехода к позиции курсора из скрипта AXGoToDeclarationXRef ver. 1.0.3 beta (AXGoToDeclarationXRef - утилита перехода к объявлению переменной) или более поздней.

Спасибо Alex_KD и kashperuk за некоторые использованные идеи.

Сообщения об ошибках, конструктивная критика и идеи по доработке приветствуются.

X++:
//AXGoBack ver. 1.0.0 beta (for AX 3, AX 4, AX 2009), 13.06.2010
//Developed by alex55 (AXforum.info), 13.06.2010
//Home page: axforum.info/forums/showthread.php?p=226663
//Thanks to Alex_KD and kashperuk from AXForum.info for some used ideas
void aaAXGoBack(Editor e)
{
    #AOT

    #if.ReferencesPath
        #define.AX4OrAX5
    #endif

    #define.ThisClassCache('AXGoToDeclarationXRefClass')
    #define.ParamsCache('AXGoToDeclarationXRefParams')
    #define.GoBackParamsCache('AXGoBackParams')

    SysGlobalCache      globalCache;
    Column              editorColumn;
    Line                editorLine;
    TreeNodePath        methodNodePath;
    TreeNode            treeNode;
    ;

    globalCache = infolog.globalCache();
    
    if (globalCache)
    {
        [methodNodePath, editorLine, editorColumn] = globalCache.get(#GoBackParamsCache, #GoBackParamsCache, conNull());
        treeNode = TreeNode::findNode(methodNodePath);

        if (treeNode)
        {
            #if.AX4OrAX5
                 treeNode.AOTedit(editorLine, editorColumn);
            #endif

            #ifnot.AX4OrAX5
                infolog.globalCache().set(#ThisClassCache, #ThisClassCache, this);
                infolog.globalCache().set(#ParamsCache, #ParamsCache, [methodNodePath, editorLine, editorColumn]);
                infolog.addTimeOut(this, methodstr(EditorScripts, aaAXGoToDeclarationXRef), 10, false);
            #endif
        }

        globalCache.clear(#GoBackParamsCache);
    }

    return;
}
За это сообщение автора поблагодарили: Logger (4), Red Stranger (1), coolibin (1), gl00mie (4).
Теги
ax2009, ax3.0, ax4.0, tools, x++, законченный пример, инструменты, объявление переменной, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Поменять вид курсора dreamer DAX: Программирование 9 13.08.2010 15:23
Изменение "курсора" в цикле ZVV DAX: Программирование 8 09.12.2008 15:11
Инициализация записи из курсора в форме andy239 DAX: Программирование 5 16.08.2005 15:00
Как расчитать значение курсора при вызове initValue в таблице? Red Stranger DAX: Программирование 8 06.04.2005 16:24

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:25.