Как изменить уровень информационных сообщений AX - PullRequest
8 голосов
/ 12 июля 2011

В 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 ++, и каковы правила того, какой уровень отступа активен в настоящее время?

1 Ответ

14 голосов
/ 12 июля 2011

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");
}
...