martes, 16 de abril de 2013

Display option en una grid de Dynamics AX (Axapta) y un sólo registro

Imaginemos un formulario de Dynamics AX (Axapta) con una tabla principal en la que mostramos cierta información en modo lectura, por ejemplo registros de ventas:


Para que de un rápido vistazo el usuario pueda ver los registros que están en estado "Cancelado" podemos hacer que éstos aparezcan en rojo, sobrecargando el método "displayOption" del DataSource:

Y el resultado sería este:


Como podemos ver, aparece en rojo el que está cancelado y el resto en blanco o en gris.... hasta aquí todo bien.... ¿pero qué pasa si hay sólo un registro?
Pues efectivamente pasa que no sabemos qué color tiene, porque se resalta en azul por ser el registro activo:


¿Cómo podemos arreglar esto? Pues la solución es bastante fácil, sólo hay que poner el siguiento código en el executeQuery del dataSource:

Y al haber sólo un registro quedaría así:


Lo que estamos haciendo en ese código, es desactivar el resaltado del registro activo si hay un registro, y activarlo cuando hay más de uno. 

De esta manera, teniendo un sólo registro en la tabla, ya sea porque sólo haya un registro en la base de datos o ya sea porque hemos filtrado en el grid, podemos saber en qué estado está ese registro de un golpe de vista, viendo el color que tiene.

¡¡Hasta la próxima!!