Как изменить уровень информационных сообщений AX

В Dynamics AX 2009 я пытаюсь определить уровень отступа информационного сообщения. Я хочу что-то похожее на это:

Prefix
    Info1
    Info2
Prefix2
    Info3

Я нашел это:

http://www.doens.be/2010/05/the-ax-infolog/

Но не хочу использовать цикл, поэтому я подумал, что что-то вроде этого может сработать:

setprefix("Prefix");    

{
    info("Info1");
    info("Info2");
}

setprefix("Prefix2");

{
    info("Info3");
}

Но это не так. Есть ли способ сделать это в x++ и каковы правила относительно того, какой уровень отступа активен в данный момент?


person Paul Michaels    schedule 12.07.2011    source источник


Ответы (1)


setPrefix в AX устанавливает (добавляет) префикс для текущей области выполнения, а при выходе из области действия префикс автоматически сбрасывается на предыдущий уровень. Вы можете использовать getPrefix для проверки текущего префикса выполнения.

2 лайфхака помогут получить ожидаемый результат:

№1

static void TestJob(Args _args)
{
    void sub1()
    {
        setprefix("Prefix");
        info("Info1");
        info("Info2");
    }

    void sub2()
    {
        setprefix("Prefix2");
        info("Info3");
    }
    ;

    setPrefix("Main");
    sub1();
    sub2();
}

№2

static void TestJob(Args _args)
{
    setPrefix("Main");
    info("Prefix\tInfo1");
    info("Prefix\tInfo2");
    info("Prefix2\tInfo3");
}
person 10p    schedule 12.07.2011
comment
WOW Работа № 2 требует больше внимания. Я не осознавал, что табуляция каким-то образом заставит перейти на следующий уровень префикса. Отличный пост - person Alex Kwitny; 23.07.2014
comment
Действительно Работа № 2 потрясающая. Я только что попробовал его с несколькими вкладками, и он создает несколько подуровней по мере необходимости. - person Kempeth; 05.04.2017