Comment la somme des lignes spécifiques dans iReport avec de la requête?
Je suis en train de créer un tableau de synthèse à l'aide de iReport. Mon jeu de données est de retour d'une liste des achats et des prix. Quelque chose comme
Milk, $1.23
Chicken, $5.45
Milk, $1.44
et ainsi de suite. Je veux que mon tableau pour être en mesure de répartition mon article par produit. Je veux une table avec des colonnes:
- # de fois que le produit a été acheté (#lignes de produits laitiers),
- montant total dépensé sur le produit (la somme des prix où le produit est le lait),
- et la moyenne du prix du produit (colonne 2 divisé par la colonne 1).
Comment puis-je faire cela? J'ai été jouer avec des variables et des que je peux obtenir une somme totale de tous les prix, mais je ne sais pas comment faire cela avec un sous-ensemble de données à l'aide d'une requête plus complexe.
OriginalL'auteur Marianna | 2012-07-16
Vous devez vous connecter pour publier un commentaire.
Il est assez facile. Vous pouvez créer un groupe sur produit champ et deux variables sur ce groupe: pour le comptage résultat de la somme et la moyenne de la somme. Avec l'aide de la variable intégrée, vous pouvez calculer et afficher le nombre d'éléments de ce groupe.
C'est échantillon de travail:
Cet exemple prend fichier CSV en tant que source de données. Vous pouvez modifier la requête pour l'obtention de données avec des requêtes SQL.
La conception du rapport dans iReport est:
Le résultat sera (via l'aperçu en iReport):
Vous devriez lire cet article sur utilisation de variables dans JasperReports et ce post sur à l'aide de groupes dans JasperReports.
Veuillez rappelez-vous que vous devez trier les données avant de les utiliser.
La citation du post à propos de regroupement et de tri de la jasperforge.org:
In order to get an accurate data representation, the data in the data source should be already ordered according to the group expressions used in the report. One can either perform data sorting through the report query, or use the <sortField/> element.
Comme un addendum à mon problème d'origine... Est-il possible d'utiliser un multiplicateur à mon somme totale? J'ai une colonne supplémentaire, d'état indiquant l'état où il a été acheté. J'ai un STATE_SALES_TAX table que je veux requête pour chaque enregistrement. Si acheter mon lait dans le new JERSEY, la taxe de vente est de 1,06. - Je acheter un autre gallon à new york et il est de 1,08. Est-il possible que je peux résumer le montant total dépensé sur le lait à l'aide de ce multiplicateur à partir d'une autre table? Le montant Total consacré à lait = somme (eachMilkPx * tva(statePurchased))
Oui, vous pouvez créer une variable de l'expression que vous avez besoin.
OriginalL'auteur Alex K