Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Jasper
Jasper Forum d'entraide sur Jasper Reports. Avant de poster --> FAQ Jasper, Tutoriels Jasper
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/06/2008, 16h35   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 54
Points : 14
Points : 14
Par défaut Probleme sous rapport

salut,
voici mon problème:

Mon rapport maitre reçoit des données (dataSource) par code JAVA,
dans mon rapport maitre j'ai 2 sous rapport qui affiche chacun un tableau

je passe les données (dataSource) aux sous rapport grace a $P{REPORT_DATA_SOURCE} dans l'expression de source de donnée.

le premier sous rapport affiche bien les données de sa bande "detail" mais pas le deuxieme sous rapport...
par contre les bandes "columnsHearder" elles sont bien affichées dasn les 2 sous rapport..;

je vois pas pourquoi le deuxieme rapport n'affiche pas sa bande "details"

est 'il possible que la faite que je passe ma meme dataSource au 2 sous rapport pose porbleme?

(lorsque je place le 2eme sous rapport avant le premier, c'est lui qui contient les données et non l'autre..)

merci de vos reponse...
ptitom1381 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 10h53   #2
Candidat au titre de Membre du Club
 
Inscription : avril 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 54
Points : 14
Points : 14
bon, j'ai trouvé... pour ceux qui veulent savoir :

une dataSource ne peut être utilisée qu'une seul fois, c'est à dire qu'elle fonctionne comme une requête d'une base de donnée, on ne peut exploiter le résultat qu'une fois... ou alors on rappelle encore la requête.

la solution est de passer en paramètre la dataSource autant de fois que l'on en a besoin. Et ensuite d'en appeler une dans chaque sous-rapports.
ptitom1381 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 15h47   #3
Invité de passage
 
Inscription : septembre 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 13
Points : 4
Points : 4
Citation:
Envoyé par ptitom1381 Voir le message
bon, j'ai trouvé... pour ceux qui veulent savoir :

une dataSource ne peut être utilisée qu'une seul fois, c'est à dire qu'elle fonctionne comme une requête d'une base de donnée, on ne peut exploiter le résultat qu'une fois... ou alors on rappelle encore la requête.

la solution est de passer en paramètre la dataSource autant de fois que l'on en a besoin. Et ensuite d'en appeler une dans chaque sous-rapports.
bonjour,

peux tu préciser comment tu définis les paramètres datasource dans le master, et comment tu les transmets aux sous rapports ? Merci
Freedd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 11h51   #4
Candidat au titre de Membre du Club
 
Inscription : avril 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 54
Points : 14
Points : 14
alors voici
-dans le code java :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
//je declare mes parametres
Map<String, String> params = new HashMap<String, String>();
 
//j'ajoute des parametres
params.add("Titre1","Liste de personnage");
params.add("Titre2","Liste d'adresse");
//....
 
//je declare mes listes
ArrayList liste1= new ArrayList();
ArrayList liste2= new ArrayList();
 
//je rempli les liste, toujours remplir une dataSource d'une meme collectionBean
liste1.add(myClassPersonnage);
//...
liste2.add(myClassAdress);
//....
 
//je transmet mes dataSource à mes parametre
params.put("MyDataSource1",new JRBeanCollectionDataSource(liste1));
params.put("MyDataSource2",new JRBeanCollectionDataSource(liste2));
 
//pour le transmettre a jasper 
JasperReport jasperReport = (JasperReport)JRLoader.loadObject("D:\\masterReport.jasper");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource());
JasperExportManager.exportReportToPdfFile(jasperPrint, "D:\\jasperMaster.pdf");
-dans le masterReport : (en utilisant ireport)

pour passer "MyDataSource1" a un sous-rapport :
  1. dans le masterReport déclarer le paramètre "MyDataSource1"
  2. insérer le sous rapport dans le masterReport,
  3. sélectionner les propriétés du sous rapport et ajouter dans l'onglet "Rapport secondaire" :
    • selectionner "utiliser l'expression de source de données" dans "expression de connexion/source de données"
    • tapez : $P{MyDataSource1}
  4. ouvrer le sous rapport
  5. ouvrer la page de propriété du sous rapport (modifier->propriétés du rapport)
  6. allez dans l'onglet "plus"
    • dans "si aucune donnée", selectionner "toutes les sections, pas de details"

maintenant vous pouvez récupérer les champs de votre source de données,
il suffi juste de déclarer les champs dans le sous rapport.

mais attention, une source de données ne peut être utilisée que pour un seul sous rapport!!!
ptitom1381 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h44.


 
 
 
 
Partenaires

Hébergement Web