web-dev-qa-db-fra.com

Quelle est la différence entre variable, paramètre et champ dans JasperReports?

Je suis un débutant pour JasperReports, j'ai travaillé sur quelques petits échantillons. Il semble que "Champs", "Paramètres" et "Variables" soient très couramment utilisés pour démontrer des données dynamiques et se ressemblent beaucoup. Alors, puis-je demander quelle est leur différence spécifiquement dans JasperReports?

Je suppose que la variable est quelque chose de défini dans un rapport Jasper et peut changer dynamiquement. Le paramètre provient d'une source externe (Java..etc), le champ est destiné aux entités (schéma de base de données, entité de classe), mais je ne pense pas que ma compréhension soit correcte.

30
Dreamer

De mon expérience personnelle avec JasperReports je peux déduire que vous utiliserez le plus les paramètres et les champs. Les paramètres et les champs sont des emplacements de mémoire ou des valeurs que vous pouvez remplir à partir de votre code, c'est-à-dire lorsque vous générez le rapport.

En règle générale, vous remplissez une ou plusieurs cartes de paramètres avec des paramètres différents pour votre rapport. J'utilise des paramètres si j'ai une page de résumé ou une page de couverture (la toute première d'un rapport) Quelque chose comme:

parameters.put("authorName", author); //where authorName is a parameter you have created in your JRXML template.

Ensuite, vous utilisez peut-être un "variables" Personnalisé ou vous utilisez des variables fournies par JasperReports. Certaines de ces variables utiles sont: PAGE_COUNT et PAGE_NUMBER. Ils gardent une trace de ... rapportent le nombre de pages et les numéros de page. Bien sûr, vous pouvez avoir des variables personnalisées.

Les champs sont utilisés lorsque les données changent fréquemment. Ils sont assez similaires aux paramètres mais à chaque itération, les données peuvent changer. Par exemple, un champ peut être une liste d'objets germanCar pour une itération et une liste d'objets japaneseCar pour la suivante. J'utiliserais un champ pour contenir la liste des objets Car qui pourraient changer.

En fin de compte, les paramètres et les champs sont assez similaires, mais les champs sont remplis à partir de JasperReportDataSource (afin qu'ils puissent changer fréquemment lorsque vous remplissez cette source de données), tandis que les paramètres que vous utiliseriez pour les pages de garde ou les paramètres JR personnalisés PENDANT la génération le rapport lui-même. Ils pourraient être assez déroutants.

J'espère que ça aide un peu!

20
Mechkov

Paramètres sont des entrées simples pour JasperReports. Vous devez définir des paramètres dans le JasperReport avant de les utiliser. Vous pouvez afficher la valeur de la variable, vous pouvez l'utiliser dans le cadre d'expressions booléennes et vous pouvez même la transmettre à des sous-rapports. Cela peut être une entrée pour une requête SQL.

Champs sont des définitions de variables simples. Vous pouvez les considérer comme des variables d'instance de l'objet de source de données transmises au rapport ou elles peuvent être des noms de clé si la source de données est une carte. Si vous configurez JasperReport pour créer le jeu de données basé sur SQL, les champs sont les noms de colonne du ResultSet. Vous utiliserez Fields pour afficher l'ensemble de résultats d'une requête SQL exécutée.

Variables sont un autre type de variables qui vivent dans Jasper Report, ce ne sont pas des entrées. Ils sont utilisés pour calculer la somme ou la moyenne de certains champs (définis ci-dessus). Vous pouvez effectuer de nombreuses autres fonctions de calcul prédéfinies sur les champs à l'aide de variables.

22
sperumal