El artículo es relevante hasta la versión 2022.1.
FastReport.NET tiene una buena herramienta para representar los datos en forma de la tabla dinámica o la matriz. A mucha gente le gustaría añadir las funciones de la matriz, por ejemplo, una opción mas útil como la selección de N valores principales. Parece que lo más fácil es seleccionar las primeras N líneas desde la fuente de datos. Pero además de la vista rápida de los valores principales necesita agrupar el resto de los datos en un registro y eso es más complicado. Es imposible hacerlo con las herramientas orgánicas del objeto Matrix.
Así que tenemos que preparar los datos para que contengan los valores principales y la suma de todos los demás valores. Este método es adecuado para los bases de datos SQL. Todo lo que tenemos que hacer es escribir una consulta SQL.
Suponemos que presentamos una lista de los salarios de los empleados por año. En el editor de la fuente de datos puede utilizar la consulta SQL, si se utiliza el base de datos SQL.
Así es la consulta SQL que seleccionará los dos valores principales y la suma del resto:
SELECT top 2 name, year, month, salary FROM crosstest ORDER BY salary UNION SELECT 'Other' AS name, year, month, SUM(salary) FROM crosstest WHERE name NOT IN (SELECT Top 2 name FROM crosstest ORDER BY salary) GROUP BY name, year, month
Aquí hemos reunido dos consultas por vía del operador union. En la primera consulta seleccionamos los valores principales, en la segunda — la suma del resto de los valores.
Al fin tenemos una matriz como esta:
Cómo ve, podemos obtener un resultado deseado aplicando diversas técnicas de la preparación de los datos iniciales, aunque el generador de informes no incluya esta función al principio.