Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Jasper > iReport
iReport Forum d'entraide sur iReport
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 21/01/2008, 11h15   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 32
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 32
Points : 10
Points : 10
Par défaut Datasource Provider and Fields

Bonjour,

But :
A partir d une classe java derrivee de JRDataSourceProvider je cherche a obtenir les fields disponibles pour l interrogation d un DataSource.
Ces fields doivent s afficher dans la fenetre Data > Report querry > Datasource provider en pressant "get fields for data source".

Probleme :
Les champs s affichent correctement dans la fenetre.
Cependant, lorsque je selectionne les champs et presse "ok", il m'importe dans "document structure" non pas les champs selectionner uniquement mais tous ceux trouvés dans le datasource.

Code :
Pour afficher les champs dans la fenetre, j ai code la méthode public JRField[] getFields(JasperReport report) selon mes besoins specifique.
Elle va chercher tout les champs de mon datasource et renvoie la liste.

Question :
Comment faire en sorte que mon datasource provider n importe que les champs selectionnés ?

Merci.
ecatum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2008, 10h53   #2
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 32
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 32
Points : 10
Points : 10
Solution :

Le problème ne vient pas de la classe DataSource Provider mais de iReport. En effet en me plongeant dans le code, je me suis appercu que peu importe la selection, iReport importait tous les fields.

class : it.businesslogic.ireport.gui.ReportQueryDialog
method : okButtonActionPerformed(java.awt.event.ActionEvent evt)

Code :
1
2
3
4
5
6
7
8
9
10
 
// int[] selectedRows = jTableFields.getSelectedRows();
// for (int i=0; i<selectedRows.length ; ++i) {
// if (selectedRows[i] > jTableFields.getRowCount()) continue;
//
// it.businesslogic.ireport.JRField field = (it.businesslogic.ireport.JRField)this.jTableFields.getValueAt(selectedRows[i], 0);
 
for (int i=0; i<jTableFields.getRowCount(); ++i)
{
it.businesslogic.ireport.JRField field = (it.businesslogic.ireport.JRField)this.jTableFields.getValueAt(i, 0);
On remarque dans le code, que tous les champs présents sont importés. En modifiant le code et en le recompilant, le problème est alors résolue.

Voila.
ecatum 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 05h48.


 
 
 
 
Partenaires

Hébergement Web