Снегопат
https://snegopat.ru/forum/

Переход к ссылкам метаданных::Перейти к ссылке ИЗ. Сортировк
https://snegopat.ru/forum/viewtopic.php?f=3&t=921
Страница 1 из 1

Автор:  tormozit [ 22 сен 2020, 16:38 ]
Заголовок сообщения:  Переход к ссылкам метаданных::Перейти к ссылке ИЗ. Сортировк

Почему то список переходов не отсортирован по умолчанию.
Не нашел как сохранить сортировку по алфавиту.
Если не предусмотрено, то прошу это реализовать.
И вообще почему по умолчанию то не включена сортировка?
В чем польза от отсутствия сортировки при открытии? Или там какой то непонятный и потому бесполезный порядок.

Вложения:
Clip_163707.png
Clip_163707.png [ 9.14 КБ | Просмотров: 34424 ]

Автор:  tormozit [ 24 сен 2020, 13:52 ]
Заголовок сообщения:  Re: Переход к ссылкам метаданных::Перейти к ссылке ИЗ. Сорти

Исправил скрипт, чтобы он по умолчанию с сортировкой открывался. Пометил комментарием "// tormozit" свои изменения
Код:
function doJump(command, forceShow)
{
    if(windows.modalMode != msNone)
        return false
    // Для начала проверим, что мы в окне метаданных
    var view = windows.getFocusedView();
    var state = command.getState();
    if(!view || !state || !state.enabled) {
        //MessageBox("Не выбран объект метаданных")
        return false
    }
    refs = []
    // Ставим перехват на вывод в окно сообщений
    events.connect(windows, "onMessage", SelfScript.self)
    // Подавляем показ диалога
    events.connect(windows, "onDoModal", SelfScript.self)
    // Посылаем команду поиска ссылок
    command.send()
    // Убираем перехваты
    events.disconnect(windows, "onMessage", SelfScript.self)
    events.disconnect(windows, "onDoModal", SelfScript.self)
 
    if(refs.length < 2) {
        MessageBox("Ссылок не найдено");
        return false
    }
    var mdObj = view.mdObj;
    if (!mdObj)
        mdObj = windows.getActiveView().mdObj;
    var rootObject = (mdObj ? mdObj.container :  metadata.current).rootObject;
   
    var currentObject = findObject(rootObject, refs[0].match(/"(.+)"/)[1])
   
    var choice
    if(refs.length == 2 && !forceShow)
        choice = refs[1]
    else
    {
        refs.splice(0, 1)
        var dlg = new SelectValueDialog("Выберите объект для перехода!", refs);
        dlg.form.SortByName = true; // tormozit
        dlg.sortValuesList(true); // tormozit
        if (dlg.selectValue())
            choice = dlg.selectedValue;
        else
            return false
    }
    var mdObj = findObject(rootObject, choice)
    mdObj.activateInTree()
    lastObjects.push(currentObject)
    return true
}

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/