AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
CRM
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 20.05.2009, 11:41   #4  
Timofey_k ist offline
Timofey_k
Microsoft Dynamics
Benutzerbild von Timofey_k
Соотечественники
Сотрудники Microsoft Dynamics
 
20 / 50 (2) ++++
Registriert seit: 04.07.2006
Ort: Sydney, Australia
Держите самый красивый вариант :-) Года два назад нарисовал бессонной ночью.

X++:
//Open the selected element in a new AOT window
#AOT
void addIns_OpenNewWindowSelected(Editor e)
{
    TreeNode            sourceCodeNode = TreeNode::findNode(e.path());
    TreeNode            newWindowNode;
    TreeNodePath        treeNodePath;

    xRefTmpReferences   refTable;

    int                 startLine = e.selectionStartLine();
    int                 startCol  = e.selectionStartCol();
    int                 endCol    = e.selectionEndCol();

    str                 selectedText;
    ;
    if (sourceCodeNode && e.selectionStartLine() == e.selectionEndLine() && startCol != endCol)
    {
        infolog.updatexRefSet(sourceCodeNode, true);

        sourceCodeNode.AOTmakeXref(1);
        refTable = xRefCreate::makeTmp(infolog.lastxRef());

        infolog.updatexRefSet(sourceCodeNode, false);

        select firstonly refTable
            where refTable.line   == startLine
               && refTable.Column == startCol;

        if (refTable)
        {
            treeNodePath = refTable.Path();

            if (treeNodePath)
            {
                newWindowNode = TreeNode::findNode(treeNodePath);

                if (newWindowNode)
                {
                    newWindowNode.AOTnewWindow();

                    if (!newWindowNode.AOTchildNodeCount()) //Workaround for the AX4 "open new window" bug. Remove for AX3/2009
                    {
                        infolog.getUserSetup().setUserSetup(xUserInfo::find());
                    }
                }
            }
        }
        else
        {
            e.firstSelectedLine();
            selectedText = strLRTrim(subStr(e.getLine(), e.selectionStartCol(), endCol-startCol));

            if (selectedText)
            {
                newWindowNode = TreeNode::findNode(#MacrosPath + #AOTDelimiter + selectedText);

                if (newWindowNode)
                {
                    newWindowNode.AOTedit();
                }
            }
        }
    }
}
This post has been rated by: sukhanchik (8), aidsua (1), alex55 (3), DSPIC (5).
Stichworte
editor script, tools, перекрестные ссылки, полезное, ax3.0

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Открыть в новом окне объект из кода miklenew DAX: База знаний и проекты 24 31.01.2023 17:31
танцы с бубном - COM Объект не имеет метода 'worksheets' Artem Mikhailov DAX: Программирование 4 05.02.2007 14:25
Как выбрать объект для создания шаблона импорта Excel? MagisterLudi DAX: Функционал 2 15.08.2003 16:42

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 10:50 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.