JasperReport Camembert Exemple
Je suis tout nouveau à JasperReports et suis en train de combattre mon chemin à travers les notions de base. J'ai une situation où je ne veux pas de remplissage d'un graphique à secteurs avec DB-piloté par les données (par le biais d'un source de données). Je tiens à fournir toutes les informations nécessaires pour remplir le diagramme de Java hashmap passé dans le JasperFillManager au moment de l'exécution.
Ce serait inclure des paramètres pour étiqueter les tranches dans le graphique à secteurs, à définir leurs couleurs, et de définir leur poids/valeurs (taille des tranches). Donc, à un certain moment dans mon code Java, je voudrais être écrit quelque chose comme:
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);
Le but que je suis en train de faire ici, c'est de faire un graphique à secteurs avec 2 tranches; une en rouge "Red Team" tranche en prenant en hausse de 67% de la tarte, et un bleu "Blue Team" tranche takig en hausse de 33%.
J'ai maintenant besoin d'aide "relier les points" entre ma table de hachage et la JRXML/JasperDesign.
Quelqu'un peut-il montrer ce soit moi (ou juste me guider moi-même) vers ce genre de <pieChart>
JRXML j'aurais besoin de l'écrire afin d'avoir mon jrParam
hashmap remplir le graphique à secteurs avec des paramètres d'exécution? J'ai fait un best-tentative ci-dessous, mais je suis juste mal sur soit un total de sens à tout cela.
<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>
Merci d'avance pour toute aide ou de précisions!
OriginalL'auteur IAmYourFaja | 2011-11-10
Vous devez vous connecter pour publier un commentaire.
zharvey,
Puisque vous êtes assez nouveau pour JasperReport, je suis en espérant que vous utilisez le iReport Designer. Conception d'un graphique à partir d'un des modèles que l'iReport designer a et ensuite d'essayer d'étudier les générées JRXML. Il est très facile de l'échantillon que vous pouvez regarder pour aller à iReport->Aide->les Échantillons->Graphiques
Mon deuxième conseil pour vous est d'utiliser java beans ou Pojo comme source de données (en se basant simplement sur le code que vous avez posté). Je suis à la recherche à votre exemple de code où vous créez une Carte de la Chaîne de l'étiquette, la couleur et les valeurs. Ne serait-il pas agréable et facile, si vous avez eu un plain old java bean classe avec tous ces trois propriétés en tant que variable d'instance? Il serait facile pour votre rapport, parce que vous pouvez créer une collection de fèves objets qui peuvent facilement être consulté et utilisé par le JRBeanDataSource.
Je sens qu'il va faire de votre code un peu plus propre et plus facile à maintenir.
Ce qui concerne les!
Sinon, je serais accepter votre réponse si vous pouviez modifier pour fournir de la façon d'écrire le JRXML de travailler avec un JRBeanArrayDataSource. Dire que j'ai un PieSlice bean qui a Chaîne de l'étiquette, la Couleur de la couleur, et de la Double valeur de ses seuls 3 propriétés, ainsi que la norme des getters/setters pour chacun d'eux. J'ai ensuite passer le JasperFillManager un tableau (avec taille = 2 correspondant au 2 tranches de ma question initiale) de ces PieSlices au temps de remplissage. Ce qui ne l'JRXML besoin de ressembler à maintenant?
J'allais écrire tout le code, mais suis tombé sur cette grande explication...Check it out...Oh, et j'espère que cela vous donne une idée de comment le faire avec une Carte ou une Liste de source de données...Laissez-moi savoir si vous avez plus de questions. Ce qui concerne les! gilbertadjin.wordpress.com/2009/08/09/...
Très intéressant!!! Dernière pensée avant de finalement relier les points: j'ai Donc créer une collection de PieSlice les haricots et les faire passer à un nouveau JRBeanArrayDataSource, et puis les nourrir que de JasperFillManager. Mais quelque part dans le JRXML j'ai besoin de mapper les propriétés du bean à un champ. L'article que vous m'a indiqué états, il n'ceci, sur la base de l'haricot noms de propriétés (les majuscules sont importantes, etc.). Ainsi PieSlice avec Double propriété "valeur" doit synchroniser jusqu'à JRXML champ $F{valeur}, oui? Je suppose donc que <pieDataset> boucles à travers le tableau et utilise les champs dans chaque index de mon tableau, oui?
Vous êtes correct. Les propriétés du bean sont mappés à des champs, donc si vous si vous avez une propriété "nom" dans votre bean, alors $F{PieSlice}.nom ou seulement ${nom} récupère la valeur. Prévoyant, vous avez la méthode de lecture dans votre bean. Espérons que cela aide les autres.
OriginalL'auteur Mechkov
Voir si ce code vous aide! J'ai créé un graphique à barres à l'aide du code ci-dessous qui utilise javabean comme source de données. Si vous voulez aller à travers mon jrml je peux fournir aussi.
OriginalL'auteur false9striker