2011-07-12 21 views
7

En Dynamics AX 2009, estoy tratando de determinar el nivel de sangría de un mensaje de información. Lo que quiero es algo similar a esto:Cómo cambiar el nivel de los mensajes de información de AX

Prefix 
    Info1 
    Info2 
Prefix2 
    Info3 

he encontrado esto:

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

Pero no quieren utilizar un bucle, así que pensé que algo como esto podría funcionar:

setprefix("Prefix");  

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

setprefix("Prefix2"); 

{ 
    info("Info3"); 
} 

Pero no es así. ¿Hay alguna manera de hacer esto en x ++ y cuáles son las reglas sobre qué nivel de sangría está actualmente activo?

Respuesta

13

setPrefix en AX establece (agrega) prefijo para el ámbito de ejecución actual, y al salir del alcance, el prefijo se restablece automáticamente al nivel anterior. Puede usar getPrefix para verificar el prefijo de ejecución actual.

2 hacks pueden ayudar a que usted reciba el resultado esperado:

# 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"); 
} 
+2

WOW Trabajo # 2 necesita más atención. No me di cuenta de que una pestaña en realidad forzaría el próximo nivel de prefijo de alguna manera. Gran publicación –

+0

Indeed Job # 2 es increíble. Lo intenté con múltiples pestañas y crea múltiples subniveles según sea necesario. – Kempeth

Cuestiones relacionadas