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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.02.2008, 10:31   #1  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Уровень узла в дереве?
В классе FormTreeItem (узел для дерева) никак не могу найти номер уровня.
В отладчике я вижу путь (\vewrv\verwvwewe\evwvr). На косые чёрты опираться для нахождения уровня не правильно.
Можно конечно перебором вверх узнавая родителя.
И скорее всего так и прийдётся.
Но неужто нет более простого варианта.
Старый 13.02.2008, 11:07   #2  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Как вариант при построении дерева что-то мудрить. Например, в data его писать.
Но я бы не стал на это закладыватся.
Как задача звучит?
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Старый 13.02.2008, 11:24   #3  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Да понятно, что tmp таблицу можно создать писать туда все узлы и уровень.
Можно и так как я писал выше.
Но странно что разработчике в этом классе не сделали метод level.
Жалько.
Старый 13.02.2008, 15:09   #4  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Не пробовал, но если FormTreeItem.toString() вернет \vewrv\verwvwewe\evwvr, то вот номер уровня
print(conlen(str2con(FormTreeItem.toString(),"\\")));
Старый 13.02.2008, 15:15   #5  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
X++:
int LevelItem(int   _treeItemNum)
{
    int treeItemNumLoc;
    int level;
;
    treeItemNumLoc = _treeItemNum;
    while (treeItemNumLoc)
    {
        treeItemNumLoc = tree.getParent(treeItemNumLoc);
        if (treeItemNumLoc)
            level++;
    }
    return level;
}
Я метод написал. Чёрточки в название узла вводить можно. Поэтому не стал на них завязываться.
Старый 13.02.2008, 16:13   #6  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
до кучи
Когда-то ковырялся со списком всех пунктов меню. Тоже зачем-то нужен был уровень. Написал маленький джобик с использованием рекурсии, причём получившаяся компактность поразила. Может быть, на что сгодится (например, уровни надо куда-то в таблицу нагенерить). Уровень иерархии hLevel по ходу вычисляется простой инкрементацией "туда-сюда". Признаться, сейчас не сразу смогу сообразить, как это всё работает, но работает
X++:
static void Job_MenusList(Args _args)
{
    int         row, hLevel;
    TreeNode    treeNode = new xInfo().rootNode().AOTfindChild('Menus');

    void nextNode( treeNode _tn)
    {
        ;
        hLevel++;
        _tn = _tn.AOTfirstChild();
        while (_tn )
        {
            row++;
            info(strfmt('%1 -- %2 -- %3',
                        row,  hLevel,  _tn.treeNodePath()));
            nextNode(_tn );
            _tn = _tn.AOTnextSibling();
        }
        hLevel--;
    }
    ;
    nextNode( treeNode );
}
Старый 14.02.2008, 10:48   #7  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Тоже до кучи
A я когда то делал так.
Бежит по всем узлам репозитария.
Легко на основе этого свой нестондартный поиск написать, если надо конечно.
Вложения
Тип файла: xpo AOTSearch.xpo (4.2 Кб, 496 просмотров)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX 2009 создание узла в WSS _scorp_ DAX: Администрирование 7 18.11.2008 12:14
Пропали пункты меню в дереве настройки прав доступа Logger DAX: Программирование 10 21.06.2007 12:32
уровень доступа на форму Pavel Pustovalov DAX: Программирование 23 15.02.2007 00:25
поиск узла в проекте Antant DAX: Программирование 8 12.01.2006 13:03
Как посмотреть уровень изоляции DarkBear DAX: Администрирование 17 28.07.2005 11:31

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

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

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