Inicio Blog Cómo utilizar los estilos de fila de consulta genérica de Acumatica con valores agregados

Cómo utilizar los estilos de fila de consulta genérica de Acumatica con valores agregados

Samvel Petrosov | 4 de febrero de 2021

Cómo utilizar los estilos de fila de consulta genérica de Acumatica con valores agregados

Hoy quiero compartir con vosotros un pequeño truco sobre cómo podemos utilizar Estilos de Fila con valores agregados en Consultas Genéricas. No es exactamente obvio o intuitivo cómo se puede hacer esto. De un examen superficial, parece que el sistema no proporciona esta funcionalidad en absoluto.

Veamos un escenario para ilustrarlo claramente. Digamos que necesitamos crear una IG que proporcione el tiempo facturado y no facturado agregado empleado en el proyecto específico por día que dependiendo de la productividad (100*[tiempo facturado]/8, asumiendo que trabajamos 8 horas al día) resalte las líneas con diferentes colores (verde - productividad>=70, naranja - productividad>=40 o rojo).

Empecemos a construir la IG simplemente añadiendo una tabla PMTimeActivity y PMProject.

Cómo utilizar los estilos de fila de consulta genérica de Acumatica con valores agregados

Ahora, vamos a proporcionar las Relaciones necesarias. Haremos esto con una unión interna en el ID del proyecto de la siguiente manera:

Cómo utilizar los estilos de fila de consulta genérica de Acumatica con valores agregados

A continuación tenemos que añadir un parámetro para el CD del proyecto, de modo que podamos reducir el conjunto de resultados para hacerlo más legible.

Cómo utilizar los estilos de fila de consulta genérica de Acumatica con valores agregados

Luego agregamos una Agrupación por ID de Proyecto por ahora. Acumatica nos permite obtener el resultado directamente desde la página Generic Inquiry haciendo clic en el botón Preview (con el icono del "ojo" en el panel derecho). Ahora podemos ver el resultado sin salir de la página.

Cómo utilizar los estilos de fila de consulta genérica de Acumatica con valores agregados

El siguiente paso que tenemos que hacer es cambiar la Agrupación para agrupar; también por la fecha.

Personalmente, no me gusta cómo funciona la agrupación con Fechas, por lo que utilizo la siguiente fórmula para agrupar por Día=Año([PMTimeActivity.Date])*10000 +[PMTimeActivity.Date_Month]*100+[PMTimeActivity.Date_Day] que puedes ver en rojo abajo.

Cómo utilizar los estilos de fila de consulta genérica de Acumatica con valores agregados

ADVERTENCIA: Es posible que esta fórmula no funcione correctamente debido a la diferencia de zona horaria. Acumatica mantiene las fechas en UTC.

Ahora añadiremos algunos Estilos de Fila. La fórmula que utilizaremos es la siguiente:

=IIF(100 * CDec([PMTimeActivity.TimeBillable]/60) / 8>=70,'bueno', IIF(100 * CDec([PMTimeActivity.TimeBillable]/60) / 8>=40, 'naranja40','malo'))

Cómo utilizar los estilos de fila de consulta genérica de Acumatica con valores agregados

Como puede ver arriba en la captura de pantalla, el Resaltado no funcionó muy bien. La primera línea está resaltada en rojo, pero la Productividad es >=40, lo que significa que debería ser naranja.

El problema aquí es debido al hecho de que la fórmula que hemos proporcionado está trabajando sin agrupar y el cálculo está tomando la primera actividad de tiempo para ese grupo, que en este caso se puede ver a continuación como 0 (cero) tiempo facturable en la segunda fila de las Actividades de Tiempo del Empleado enumeradas.

Cómo utilizar los estilos de fila de consulta genérica de Acumatica con valores agregados

Para resolver este problema, tenemos que tener una manera de decirle al Estilo de Fila que queremos que el valor se tome después de la Agrupación en sí, aunque no hay manera documentada de hacer esto en la actualidad. Sin embargo, no es una forma intencionadamente oculta de hacerlo.

En su lugar, basta con utilizar la siguiente fórmula:

=IIF(PMTimeActivity_FormulaA4A7ACEFFCC1444DA018CE78DD1BFCA3>=70,'bueno', IIF(PMTimeActivity_FormulaA4A7ACEFFCC1444DA018CE78DD1BFCA3>=40, 'naranja40','malo')

Como habrá observado a continuación, la línea aparece resaltada correctamente.

Cómo utilizar los estilos de fila de consulta genérica de Acumatica con valores agregados

Sigamos adelante y analicemos los Scripts SQL que trabajan detrás de la IG para entender por qué esta fórmula funcionó y cómo. Si revisamos el Registro de Peticiones SQL, veremos el script de abajo. Como puede ver en la captura de pantalla, nuestra fórmula para la columna Productividad está siendo seleccionada con un alias y corresponde al valor que usamos en la fórmula para el Estilo de Fila.

Cómo utilizar los estilos de fila de consulta genérica de Acumatica con valores agregados

Esto lo genera el código siguiente del gráfico PXGenericInqGrph:

GIST: https://tinyurl.com/msu6dx4b

Y el método GetExtFieldId básicamente devuelve el valor RowID.

GIST: https://tinyurl.com/msu6dx4b

Por lo tanto, el código anterior está agregando Formula y Row ID. Ahora veamos el ID de Fila del GIResultado para esa línea en particular:

Cómo utilizar los estilos de fila de consulta genérica de Acumatica con valores agregados

Como puede ver, el código está añadiendo_FormulaA4A7ACEF-FCC-1444D-A018-CE78DD1BFCA3al Alias de la Tabla que es PMTimeActivity en este caso y así es como se genera "PMTimeActivity_FormulaA4A7ACEF-FCC-1444D-A018-CE78DD1BFCA3".

Aquí está el enlace al GIST: https://tinyurl.com/yck94f5y

Esperamos que esta información le haya resultado útil en su propio trabajo de desarrollo.

¡Feliz codificación!

 

Autor del blog

Samvel es arquitecto de software en Information Integration Group Inc. (IIG). Su carrera comenzó como desarrollador de C# y rápidamente se fusionó en un papel de desarrollo analista para resolver las limitaciones estándar de ERP. Tiene más de 5 años de experiencia en el desarrollo de software ERP y ha gestionado todos los aspectos del ciclo de desarrollo. En su tiempo libre, le gusta jugar al ajedrez y leer libros.

Reciba las actualizaciones del blog en su bandeja de entrada.