IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

iReport Discussion :

passer le nom de table en paramètre avec iReport


Sujet :

iReport

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Points : 41
    Points
    41
    Par défaut passer le nom de table en paramètre avec iReport
    Bonjour,
    Je souhaite passer le nom de la table en paramètre vers ireport :

    parameters.put("table", "nom de ma table");

    même sur ireport ça marche pas .

    Si quelqu 'un a déjà fais , merci de me donner la solution .
    Merci de votre réponse

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    bonsoir,

    je ne veux pas dire de bêtises mais pour moi il n'est pas possible de le faire directement par un paramètre. J'ai regardé le bouquin de ireport sur la partie paramètre et apparemment rien n'est prévu à cet effet :

    extrait du livre :
    Parameters are values usually passed to the report from the program that creates the print of the report. They can be used for guiding particular behaviors during runtime (such as the application of a condition in a SQL query) and for supplying additional data to the print context such as an Image object containing a chart or a string with the report title.
    Built-in Parameters
    JasperReports provides some built-in parameters (they are internal to the reporting engine) that are readable but not modifiable by the user.
    Parameter Description
    REPORT_PARAMETERS_MAP This is the java.util.Map passed to the fillReport method, and it contains the parameter values defined by the user.
    REPORTCONNECTION This is the JDBC connection passed to the report when the report is created through a SQL query.
    REPORT_DATASOURCE This is the datasource used by the report when it is not using a JDBC connection.
    REPORT_SCRIPTLET This represents the scriptlet instance used during creation. If no scriptlet is specified, this parameter uses an instance of
    net.sf.jasperreports.engine.JRDefaultScriptlet. Starting from
    JasperReports 1.0.0, an implicit cast to the provided scriptlet class is
    performed. This simplifies many expressions that use the provided
    scriptlet class.
    IS_IGNORE_PAGINATION You can switch the pagination system on or off by setting a value for this parameter (it must be a Boolean object). By default, pagination is used, except for exporting to HTML or Excel formats.
    REPORT_LOCALE This is used to set the locale used to fill the report. If no locale is provided, the system default will be used.
    REPORT_TIME_ZONE This is used to set the time zone used to fill the report. If no locale is provided, the system default will be used.
    REPORT_MAX_COUNT This is used to limit the number of records filling a report. If no value is provided, no limit will be set.
    REPORT_RESOURCE_BUNDLE This is the resource bundle loaded for this report. See Chapter 10 for how to provide a resource bundle for a report.
    REPORT_VIRTUALIZER This defines the class for the report filler that implements the JRVirtualizer interface for filling the report.

    Voilà donc apparemment rien n'est prévu pour si ce n'est de créer peut être un subreport contenant une requête sur la table que tu souhaitais passer en paramètre.

    Bonne soirée

  3. #3
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Citation Envoyé par imanoual Voir le message
    Bonjour,
    Je souhaite passer le nom de la table en paramètre vers ireport :

    parameters.put("table", "nom de ma table");
    même sur ireport ça marche pas .
    Si qlq 'un a déjà fais , merci de me donner la solution .
    Merci de votre réponse
    A ma connaissance c'est pas possible!
    Ton rapport ne sera même pas compilé avec une requête SQL contenant dans le caluse FROM un nom de table comme paramètre.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Merci de votre réponse.
    par contre , est ce que je peux passer toute la requette en paramtere ?
    En faite j ai des table qui finissent par l'excercice 2007_2008 par exemple ,
    et ça se traite au niveau de java .
    Merci à vous.

  5. #5
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Je pense que tu dois nous exprimer ton besoin autrement! Il n'y a pas qu'une seule façon pour résoudre un problème en développement, sauf parfois...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Bonjour,
    Voila mon problème :
    sur ma classe java je cherche le chiffre d'affaire d'un exercice à partir d'une date saisi par l'utilisateur , exemple l'utilisateur entre '2008_2009' , souhaite consulter le rapport de l'anneé 2008/2009 , alors ma requette sera sur la table exercice_2008_2009 .
    c'est pour ça je veux passer la table en parametre sinon toute la requette
    Merci à vous

  7. #7
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Citation Envoyé par imanoual Voir le message
    Bonjour,
    Voila mon problème :
    sur ma classe java je cherche le chiffre d'affaire d'un exercice à partir d'une date saisi par l'utilisateur , exemple l'utilisateur entre '2008_2009' , souhaite consulter le rapport de l'anneé 2008/2009 , alors ma requette sera sur la table exercice_2008_2009 .
    c'est pour ça je veux passer la table en parametre sinon toute la requette
    Merci à vous
    Ton problème est d'ordre conceptuel. Je vois que tu fais pour chaque exercice une table et çà ce n'est pas plus du tout recommandé. Tu dois normalement avoir une seule table qui contient les chiffres d'affaires avec des dates (les années). L'utilisateur sélectionnera l'anné qu'il veut, ta classe Java va récupérer ce paramètre (l'année) que tu passeras à ton rapport qui contient à son tour ta requête SQL avec un paramètre année.
    Ta requête SQL ressemblera alors à :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    Select sum(montant) from maTable Where annee = $P{monParametre}

    Est ce bien clair pour toi tout ça?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Oui , merci de m'avoir répondre , mais ça c'est l existant , c'est pas ce que je dois modifier.
    Mon périmètre d'intervention est juste sur le graphe
    Donc je dois m'adapter avec l'existant , faut que mon programme soit intelligent pour connaitre quelle table va interroger , en fonction de l'année .... c'est compliqué (sauf la solution de créer un graphe pour chaque exercice , c'est pas trop intelligent )

  9. #9
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Et tu as beacoup d'exercices ou juste 2 ou 3?
    Ces exercices sont figés dans le temps ou que tu auras des exercices suplémentaires après?
    car s'ils sont figés alors tu n'as qu'à créer des fichiers Jasper pour chaque exercice et en fonction du choix de l'utilisateur tu attaques un tel ou tel fichier Jasper.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Bonjour,
    c'est bien ce que j 'ai préciser dans ma derniere réponse "(sauf la solution de créer un graphe pour chaque exercice , c'est pas trop intelligent )"
    ça va pas etre pas dynamique , et le prochaine exercice , on dois modifier créer un nouveau jasper et modifier le code .
    Vous pensez pas qu'on peut modifier le jrxml a partir de java ? avant de lancer la compilation
    ça serai pas bete

  11. #11
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Beh tu peux modifier ton JRXML (même si je ne l'ai jamais fait) via des API XML telle que XSLT ( mais ça sera pas une bonne solution car dans ce cas tu devras à chaque fois compiler ton JRXML, et imagine si tu as beacoup d'utilisateurs qui se connectent à ton application et que chacun fait une compilation et tu dois gérer des noms de fichiers...

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Oui , ça me semble aussi compliqué , donc j'affiche seulement un exercice ,
    Merci de m'aider par votre réflexion et votre savoir faire

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Mars 2005
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    Essayer d'utliser cette syntax $P!{TBLE_NAME} au lieu de $P{TBLE_NAME}.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Requête avec nom de table en paramètre
    Par Tchebichef dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/12/2012, 13h40
  2. [AC-2010] Requête avec nom de table en paramètre
    Par pcayrol dans le forum IHM
    Réponses: 1
    Dernier message: 13/04/2011, 20h35
  3. Passer un nom de table en paramètre.
    Par ygrim dans le forum Développement
    Réponses: 2
    Dernier message: 05/08/2008, 15h01
  4. passer un nom de champs en paramètre de procédure stockée
    Par dor_boucle dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/02/2006, 19h10
  5. Passer le nom de colonne en paramètre d'une procédure stocké
    Par theartist dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/01/2005, 15h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo