Soy nuevo en JasperReports y estoy luchando poco a poco por lo básico. Tengo una situación en la que no quiero completar un gráfico circular con datos basados en DB (a través de la llamada fuente de datos ). Deseo proporcionar toda la información necesaria para completar el gráfico circular de un hashmap Java pasado a JasperFillManager en tiempo de ejecución.JasperReport Gráfico de tarta Ejemplo
Esto incluiría parámetros para etiquetar las divisiones en el gráfico circular, establecer sus colores y definir sus pesos/valores (tamaño de las divisiones). Por lo tanto, en algún momento de mi código Java, estaría escribiendo algo así como:
HashMap<String,Object> jrParams = new HashMap<String,Object>();
jpParams.put("slice_1_label", "Red Team");
jpParams.put("slice_1_color", Color.RED);
jpParams.put("slice_1_value", 67.0);
jpParams.put("slice_2_label", "Blue Team");
jpParams.put("slice_2_color", Color.BLUE);
jpParams.put("slice_2_value", 33.0);
// ... some other code
JasperFillManager.fillReport(jasperDesign, jrParams);
El objetivo que estoy tratando de lograr aquí sería tener un gráfico circular con 2 rebanadas; una rebanada roja de "Equipo rojo" ocupa el 67% del pastel, y una rebanada azul del "Equipo azul" sube un 33%.
Ahora necesito ayuda para "conectar los puntos" entre mi hashmap y el JRXML/JasperDesign.
Puede alguien o me mostrar (o simplemente ayudar a guiarme) hacia qué tipo de <pieChart>
JRXML que tendría que escribir con el fin de tener mi jrParam
HashMap llenar el gráfico de sectores con los parámetros de tiempo de ejecución? Hice un mejor intento a continuación, pero estoy luchando por tener un sentido total de todo.
<pieChart>
<chart isShowLegend="true">
<reportElement x="10" y="10" width="300" height="300"/>
<chartTitle>
<titleExpression><![CDATA[My First JR Pie Chart]]></titleExpression>
</chartTitle>
</chart>
<pieDataset>
<!-- Here is where I believe I need to put my two slices; not sure how -->
</pieDataset>
<piePlot>
<plot backcolor="#8BA870"/>
<itemLabel color="#000000"/>
</piePlot>
</pieChart>
¡Gracias de antemano por cualquier ayuda/aclaración!
Mechkov gracias por su respuesta. Sí, estoy usando iReports (y su ejemplo de Gráficos) que es de donde saqué la mayor parte del JRXML en mi pregunta. Estoy de acuerdo en que en la mayoría de los casos me gustaría completar los datos de mi informe con JRDataSource y, en este caso, con JRBeanDataSource. Sin embargo, me pregunto si es posible usar un hashmap puro de parámetros, y si es así, cómo sería el JRXML. Gracias de nuevo por su respuesta! – IAmYourFaja
Alternativamente, aceptaría su respuesta si pudiera editarla para proporcionar cómo escribir el JRXML para trabajar con un JRBeanArrayDataSource. Digamos que tengo un grano PieSlice que tiene la etiqueta de cadena, el color y el valor doble como sus únicas 3 propiedades, así como los captadores/ajustadores estándar para cada uno de ellos. Luego paso el JasperFillManager una matriz (con el tamaño = 2 correspondiente a las 2 rebanadas en mi pregunta original) de estos PieSlices en el momento del llenado. ¿Cómo debe verse el JRXML ahora? – IAmYourFaja
@Zharvey Iba a escribir todo el código, pero tropecé con esta gran explicación ... Compruébalo ... Ah, y con suerte te da una idea de cómo hacerlo con una fuente de datos de Mapa o de Lista. .Déjame saber si tienes más preguntas. ¡Saludos! http://gilbertadjin.wordpress.com/2009/08/09/charting-with-jasper-reports/ – Mechkov