Posted: Tue Apr 04, 2006 11:15 pm Post subject: Mensajes con fundamento
//**********************************************************
// Tipo : Desarrollo
// Titulo : Mensajes con fundamento
// Codigo : TD0007
// Keywords : Programacion, Axapta 3.0
// Sub-keywords : Mensajes Error, Advertencia, SysInfoAction, Info
// FormRun
//
//**********************************************************
Hoy tenemos un pequeño truco que nos puede venir muy bien a la hora
de comunicarnos con los usuarios de nuestros programas.
Son frecuentes las ocasiones en las que debemos ejecutar algún tipo de
proceso. No me refiero necesariamente a procesos de corrección de
datos, sino a cualquier tipo de proceso que realice algún cálculo,
automatismos, envíos de datos, importaciones periódicas …
Bien, en la mayoría de estos procesos son necesarios una serie de
parámetros, que normalmente almacenamos en las típicas tablas de
parámetros VendParameters, SalesParameters, LedgerParameters …
Y que pasa si tenemos un proceso que requiere que se informen una
serie de parámetros en diversas tablas y resulta que cuando llega el
momento de ejecutar dicho proceso … ¡sorpresa! ¡El usuario se ha
olvidado de informar los parámetros!
Pues lo que pasa es que normalmente nos quejamos con el típico …
x++:
throw error('Falta el parámetro X');
Y corresponde al usuario comenzar a indagar donde diablos puede
encontrar el famoso parámetro X que no le deja ejecutar su deseado
proceso.
¿Le podemos facilitar un poco la vida al usuario?
Por supuesto que si
Axapta dispone de una herramienta mediante la cual somos capaces de
lanzar mensajes de advertencia, información y/o error con una especie
de “acción adjunta”.
Con un ejemplo lo veremos más claro :
Imaginemos que para la correcta ejecución de nuestro proceso,
necesitamos que el usuario haya informado el campo SumAccount de la
tabla VendParameters.
Resulta que cuando ejecutamos dicho proceso, nos damos cuenta de que
el campo mencionado está en blanco …
Esto es algo similar a lo que haríamos hasta ahora :
x++:
If(! VendParameters::find().SumAccount) Throw error('Debe informar el extracto de cuenta sin grupo');
Pero … como hemos dicho, esto puede dejar un poco desorientado al
usuario.
Podemos hacerlo un poco más elegante y comprensivo de esta forma :
x++:
SysInfoAction_FormRun SInfo;
;
If(!VendParameters::find().SumAccount) {
SInfo = new SysInfoAction_FormRun('VendParameters','SumAccount','Llevame allí ...');
Throw error('Debe informar el extracto de cuenta sin grupo','',Sinfo);
}
Si ahora probamos de nuevo …
Y si pulsamos el botón “Llevame allí…” …
Vemos como nos abre la pantalla de parámetros de proveedores y se nos
posiciona en el control llamado “SumAccount”.
En caso de que existan más mensajes de información, puede cambiar el
aspecto de la ventana de información y no aparecer nuestro botón. En
ese caso simplemente haciendo doble clic en nuestro mensaje o bien
mediante el botón de la derecha sobre nuestro mensaje podríamos
realizar la misma función.
Bien, si echáis un vistazo a las clases SysInfoAction… vereis que las hay
de diversos tipos y realizan diversas funciones … ¡ala! ¡A experimentar!
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
Axapta y Dynamics Ax son marcas registradas de Microsoft corporation. Todos los logos y marcas son propiedad de sus respectivos propietarios. Excepto trucosAx.com que este si que es mio :-). (c) 2005 by Manel Querol (Mkz) TrucosAx.com no pertenece ni está asociada a Microsoft corporation. Los fragmentos de código y proyectos importables que aquí se muestren están realizados sobre bancos de pruebas. No nos hacemos responsables de cualquier daño o pérdida de datos que se pudiera originar del hecho de instalar alguno de estos ejemplos en un sistema productivo. Es responsabilidad del usuario ser consciente del impacto que puede ocasionar en sus aplicaciones el uso del código que de aquí extraiga.