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

Jasper Discussion :

Intégrer une fonction dans iReport


Sujet :

Jasper

  1. #41
    Membre du Club

    Inscrit en
    Décembre 2008
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 100
    Points : 43
    Points
    43
    Par défaut
    Alors petite avancée, si je crée la méthode affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public String affiche() throws JRScriptletException
    {
    	return (java.lang.String)getFieldValue("items2_lastvalue");
    }
    Tout se passe sans problème, mes valeurs sont affichées correctement.

    Ceux qui veut dire que pour mon erreur précédente le problème ne vient pas de mon field de départ mais plutôt je pense de mes variables retournées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return jours+" J "+heures+" h "+min+" Min";
    enfin, je pense

  2. #42
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Salut Alucard95,

    Bon moi, j'ai le même pb mais avec des getParameterValue !!!!

    par contre, ma question était de savoir si tu étais obligé de sortir de iReport pour que les modifications de ta scriptlet soient pris en compte ???
    moi ça me gave un peu de sortir et de relancer l'appli

    tu as quoi comme version ?

    et comme options / chemin de classe : as tu ton répertoire de compilation ?

  3. #43
    Membre du Club

    Inscrit en
    Décembre 2008
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 100
    Points : 43
    Points
    43
    Par défaut
    Bah moi je n'ai pas besoin de sortir de l'appli, j'ouvre l'éditeur de scriptlet, je modifie, je fais enregistrer et je compile.

    Par contre j'utilise la version 2.0.3 et comme chemin de classe, j'ai uniquement C:\Program Files\Java\jdk1.6.0_11\lib\tools.jar

  4. #44
    Membre du Club

    Inscrit en
    Décembre 2008
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 100
    Points : 43
    Points
    43
    Par défaut
    J'ai un doute, est-ce que quelqu'un peut me confirmer que ma méthode de cast est bonne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int val=Integer.parseInt(recup);

  5. #45
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    pour le Integer.parseInt, je l'ai tjs utilisé dans mes applications java

    mais maintenant avec iReport faut s'attendre à tout

    Je te dis cela car qd je récupère un paramétre ou un field pour faire un return direct, je n'ai pas de problèmes ... MAIS dès que j'affecte une variable avec, j'ai toujours du Null;

  6. #46
    Membre du Club

    Inscrit en
    Décembre 2008
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 100
    Points : 43
    Points
    43
    Par défaut
    Ouais, exactement pareil, si je récupère ma variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public String convert4() throws JRScriptletException
    {
    	String recup=(java.lang.String)getFieldValue("items2_lastvalue");
     
                     return recup;
    }
    La pas de soucis, par contre dès que je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public Integer convert4() throws JRScriptletException
    {
    	String recup=(java.lang.String)getFieldValue("items2_lastvalue");
    	int val=Integer.parseInt(recup);
    		return val;
    }
    j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.NumberFormatException:*null*
    Je pense que le problème vient donc bien de la...

  7. #47
    Membre du Club

    Inscrit en
    Décembre 2008
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 100
    Points : 43
    Points
    43
    Par défaut
    Bon, victoire!!!

    J'ai trouvé d'ou venait mon problème, en fait il y avait parmis les valeur que je devais caster une valeur nulle d'ou le problème.

    Donc pour pallier à cela, j'ai rajouter un try / catch

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public Integer convert4() throws JRScriptletException
    {
    try {
    	String recup=(java.lang.String)getFieldValue("items2_lastvalue");
    	int val=Integer.parseInt(recup);
    	int val2=val/86400;
    		return val2;
    }catch (Exception e)
    {
    		return 0;
    }
    }
    Sinon, peux mettre ton code pour essayer de voir ou peut être l'erreur?

  8. #48
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    En fait, j'arrive à faire les String, Integer mais pas avec les dates:

    Sur ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    28
    29
    30
    31
    32
    33
     
    import net.sf.jasperreports.engine.*;
    import java.util.Date;
     
     
    public class Expo_produitScriptlet extends it.businesslogic.ireport.IReportScriptlet {
        private int periodeJ;
        private int periodeM;
        private int S;
        private Date dateDeb;
     
    /** Creates a new instance of JRIreportDefaultScriptlet */
    public Expo_produitScriptlet() throws JRScriptletException {
        Date dateStart;
        Date dateEnd;
     
        // Mise à jour des attributs de la classe
        dateStart = (java.util.Date)getParameterValue("date_debut");
        dateEnd = (java.util.Date)getParameterValue("date_fin");
        this.dateDeb = dateStart;
        long diff = dateEnd.getTime() - dateStart.getTime();
        diff = diff / (1000 * 60 * 60 * 24);
        this.periodeJ = (int)diff;
        this.periodeM = this.periodeJ / 30;
        this.S = this.periodeM / 7;
    }
     
    public String printFq() throws JRScriptletException
    {
        //String retDate = (java.lang.String)getParameterValue("jasperPath");
        retDate = ":" + this.periodeJ;
        return retDate;
    }
    Tu vois le textfield s'affiche tjs par la fonction printFq() qui marche (depuis hier), maintenant avec le getParameterValue("jasperPath") pas de problèmes, c uniquement lors des getParameterValue("date_debut") par ex !!!

  9. #49
    Membre du Club

    Inscrit en
    Décembre 2008
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 100
    Points : 43
    Points
    43
    Par défaut
    Juste une question, à quel moment tu appelles ta fonction Expo_produitScriptlet()??

  10. #50
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Ouais c complètement bête mon truc, c le constructeur de la classe

    Je vais virer ce post !!!!

  11. #51
    Membre du Club

    Inscrit en
    Décembre 2008
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 100
    Points : 43
    Points
    43
    Par défaut

  12. #52
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bon de mon côté, ça marche bien maintenant

    J'utilise même les méthodes de la classe comme beforeReportInit()

    restera juste à trouver pourquoi je suis obligé de sortir de iReport pour pouvoir prendre en compte une modification de code

    A+

    bonne chance pour la suite ....

  13. #53
    Membre du Club

    Inscrit en
    Décembre 2008
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 100
    Points : 43
    Points
    43
    Par défaut
    Cool ça

    en tout cas merci de ton aide, je met en résolus et je m'occupe dès ce soir ou demain de rajouter dans la FAQ

  14. #54
    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 Alucard95 Voir le message
    Cool ça

    en tout cas merci de ton aide, je met en résolus et je m'occupe dès ce soir ou demain de rajouter dans la FAQ
    Cool.
    Je te propose d'aller plus loin, pourquoi ne pas rédiger un article sur la mise en oevure des scriptlets sous iReport en colaboration avec @Fench. ça aidera beacoup de gens, beacoup de monte plante devant les scriptlets.
    Qu'est ce que vous en dites?

  15. #55
    Membre du Club

    Inscrit en
    Décembre 2008
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 100
    Points : 43
    Points
    43
    Par défaut
    Bah écoute pour moi c'est sans problème

  16. #56
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    oui, ya pas de problèmes, juste savoir comment faire ???

    Et puis, j'aimerais quand même résoudre le fait de sortir tout le temps de ireport pour la validation des données.

    Et aussi, je suis entrain de faire une fonction qui doit utiliser une base de données mysql en parallèle au rapport/sous rapport car il faut savoir que chaque rapport/ sous rapport ne comporte qu'une requête SQL.

  17. #57
    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 Fench Voir le message
    oui, ya pas de problèmes, juste savoir comment faire ???
    Je te montrerai comment faire

  18. #58
    Membre du Club

    Inscrit en
    Décembre 2008
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 100
    Points : 43
    Points
    43
    Par défaut
    Hello!!

    Dis Fench, je viens de lire ça dans la doc d'Ireport:

    "In the latter case, if the class is modified and recompiled, iReport would not be able to use this most recently compiled version, due to the java class loader that caches in memory except when the class or the root package directory (but not a jar) is placed in the same directory as the report. This directory, in fact, is managed by Ireport using a dynamic classloader that is able to reload classes present in this directory each time the report is executed"

    Est-ce que ça serait pas pour cette raison que tu es obligé de refermé Ireport à chaque fois, car pour moi en effet, tout est dans le même repertoire.

    J'espère ça t'aidera

  19. #59
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Salut,

    Merci, super sympa de penser à ma galère

    Je vais regarder cela mais mes jrxml, jasper, java, class sont tous dans le même répertoire

    par contre tu pourrais me donner ton arborescence à partir de iReport (juste là ou sont tes fichiers xrjml, ... ET le répertoire bin)
    et puis aussi dans le menu 'options/paramètres' l'onglet 'compiler'

    merci

  20. #60
    Membre du Club

    Inscrit en
    Décembre 2008
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 100
    Points : 43
    Points
    43
    Par défaut
    Hello,

    Alors, mes fichiers .java, .class, ou encore .jasper se trouvent dans C:\Program Files\JasperSoft\iReport-2.0.3 ou se trouve aussi le dossier bin.

    Pour ce qui est de l'onglet compiler dans le menu option/paramètre, à Repertoire de compilation par defaut j'ai juste un "." et quand je clique sur parcourir il me met dans "C:\Program Files\JasperSoft\iReport-2.0.3".

    Par contre, mon fichier .jrxml se trouve dans un dossier sur le Bureau.

    Voila, j'espère ça pourra t'aider

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Intégrer une fonction 360 jours dans access
    Par amiral974 dans le forum VBA Access
    Réponses: 3
    Dernier message: 23/06/2014, 23h32
  2. Intégrer une fonction EQUIV dans une fonction INDIRECT
    Par Dgardian dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/12/2010, 16h33
  3. Intégrer une fonction VBA dans une requête
    Par chelmi95 dans le forum IHM
    Réponses: 1
    Dernier message: 15/09/2008, 19h55
  4. intégrer une fonction dans une requête
    Par badboys206s16 dans le forum ASP
    Réponses: 16
    Dernier message: 10/07/2006, 15h02
  5. Programmation d'une fonction dans Rn
    Par simone.51 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 12/11/2004, 12h30

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