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

BIRT Discussion :

[2.3.1] Utiliser un code java dans un rapport, une classe par exemple [Fait]


Sujet :

BIRT

  1. #1
    Membre �prouv�
    Avatar de DelphiCool
    Homme Profil pro
    Ing�nieur de production
    Inscrit en
    Mars 2002
    Messages
    187
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur de production
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 187
    Par d�faut [2.3.1] Utiliser un code java dans un rapport, une classe par exemple
    Bonjour,

    j'utilise Eclipse 3.4.1 avec le pluggin birt 2.3.1

    J'ai un report dans lequel j'aimerai utiliser une classe java que j'ai faite.

    Je ne sais pas comment faire ??

    Pourquoi je veux utiliser une classe ??

    Parce que dans mon rapport j'ai une valeur en nombre de seconde que je convertis avec ma classe en ce type de valeur : 1j 03h10

    Peu �tre y a t-il un moyen plus propre ?

    Voici pour information la fonction que j'utilise :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    public String SecondsToDateLisible(long Secondes) throws JRScriptletException
    {
     
       long Jours = 0;
       long Heures = 0;
       long Minutes = 0;
     
       String sJours = "0";
       String sHeures = "0";
       String sMinutes = "0";
       String sSecondes = "0";
     
    //Résultat de moins d'une minute      
          if (Secondes < 60) {return "00:00:" + Long.toString(Secondes);} 
     
    //Si le résultat est superieur à 60 secondes    
     
    //Nombre de Jours
          Jours = Secondes / 86400; // 1 jour = 24 heures = 86400 secondes
          Secondes = Secondes - (Jours * 86400); // Pour avoir ce qui reste
     
    //Nombre d'Heures
          Heures = Secondes / 3600; // 1 heure = 3600 secondes
          Secondes = Secondes - (Heures * 3600); // Pour avoir ce qui reste
     
     
    //Nombre de Minutes
          Minutes = Secondes / 60; // 1 minute = 60 secondes
          Secondes = Secondes - (Minutes * 60); // Pour avoir ce qui reste
     
     
          sJours = "" + Jours;
          sHeures = "" + Heures;
          sMinutes = "" + Minutes;
          sSecondes = "" + Secondes;
     
     
    //On met l'heure sur 2 caractères      
          if (sHeures.length() == 1) {sHeures = "0" + sHeures;}
          if (sMinutes.length() == 1) {sMinutes = "0" + sMinutes;}
          if (sSecondes.length() == 1) {sSecondes = "0" + sSecondes;}
     
     
        if (Jours == 0) {return sHeures + ":" + sMinutes + ":" + sSecondes;} // Si le Jour est égal à 0, on ne l'affiche pas
        else
        {
        return sJours + " j " + sHeures + ":" + sMinutes + ":" + sSecondes;
        }
     
        }

  2. #2
    BiM
    BiM est d�connect�
    Expert confirm�
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ing�nieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 39
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultante/Formatrice BIRT & Ing�nieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par d�faut
    Bonjour,

    Pour utiliser cette classe dans ton rapport tu as deux choix.

    Soit l'appeler avec l'ensemble du package comme ceci :
    Code JavaScript : S�lectionner tout - Visualiser dans une fen�tre � part
    var maClasse = new mon.package.MaClasse();
    (peut-�tre que le package doit �tre pr�c�d� de Packages comme ci-apr�s)

    Soit importer le package ou la classe comme ceci puis s'en servir normalement.
    Code JavaScript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    //Import du package
    importPackage(Packages.mon.package);
    //Ou import de la classe
    importClass(Packages.mon.package.MaClasse);

    Attention, on ne type pas les variables en Java donc quand tu instancies ta classe, ne la pr�fixe pas par son type (classe ou interface).

    Tu as une autre solution qui consistes � �crire ta m�thode en JavaScript pour l'utiliser dans le rapport directement ou bien via une librairie (voir FAQ pour cette solution).

    PS : Une m�thode en Java comment toujours par une minuscule ou � la limite un _.
    PS2 : Si tu n'as pas besoin d'instancier la classe pour ce type de m�thode, je te conseille alors de mettre ta classe en static. Dans ce cas, tu n'as pas besoin d'instancier ta classe pour appeler la m�thode.

  3. #3
    Membre �prouv�
    Avatar de DelphiCool
    Homme Profil pro
    Ing�nieur de production
    Inscrit en
    Mars 2002
    Messages
    187
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur de production
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 187
    Par d�faut
    Excusez mon ignorance :

    Je met ceci dans Script, sur le OnCreate :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    importClass(OutilsHiacine.ConvertionSecondes.SecondsToDateLisible());
    Est-ce juste ?

    Apr�s je l'utilise comment dans mon rapport ?

    J'ai mis un texte dynamique avec ceci dedans :
    Mais bien sur cela ne fonctionne pas

  4. #4
    Membre �m�rite
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 893
    Par d�faut
    Bonjour,


    Si la m�thode de ta classe est static normalement oui.

    Sinon essaie de passer d'abord par la cr�ation de l'objet et ensuite d'utiliser la m�thode de cette objet.

  5. #5
    Membre �prouv�
    Inscrit en
    Juillet 2008
    Messages
    189
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 189
    Par d�faut
    Meme si je suis plutot ignorant en Java, j'aimerai donn� mes petits points de vue (ne prenait pas mes remarques comme s�r, loin de l�).

    Citation Envoy� par DelphiCool Voir le message
    Je met ceci dans Script, sur le OnCreate :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    importClass(OutilsHiacine.ConvertionSecondes.SecondsToDateLisible());
    De ce cot�, je metterai ce code plutot dans le Initialize.
    A moins que tu n'utilises ta classe qu'� cette endroi pr�cis ?
    Car un On Create est somme toute assez Localis� sur un �l�ment bien pr�cis.


    Citation Envoy� par DelphiCool Voir le message
    J'ai mis un texte dynamique avec ceci dedans :
    Ne faut-il pas pr�fixer par le nom de la classe ?
    Je ne connais pas le Java, mais comment il va savoir que cette m�thode fait bien parti de la classe qui t'interesses si tu ne le sp�cifies pas ?
    Il peut rechercher (et il le fait surement) une fonction JavaScript qui n'existe pas, Et donc �a plante.


    Voila pour mes faibles comp�tences sur le sujet, bon courage.


    Nb: si tu as un jar � mettre, n'oublies pas de l'ajouter dans les ressources de l'edition

  6. #6
    BiM
    BiM est d�connect�
    Expert confirm�
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ing�nieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 39
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultante/Formatrice BIRT & Ing�nieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par d�faut
    Code JavaScript : S�lectionner tout - Visualiser dans une fen�tre � part
    importClass(OutilsHiacine.ConvertionSecondes.SecondsToDateLisible());
    Ceci n'est pas un import de classe, la classe est ConvertionSecondes.

    Tu dois donc faire l'import comme ceci et rajouter le pr�fixe Packages.
    Code JavaScript : S�lectionner tout - Visualiser dans une fen�tre � part
    importClass(Packages.OutilsHiacine.ConvertionSecondes);

    Pour l'appel, il faut le pr�fixer par le nom de la classe :
    Code JavaScript : S�lectionner tout - Visualiser dans une fen�tre � part
    ConvertionSecondes.SecondsToDateLisible(123);

    Sinon tu peux directement appeler la m�thode comme ceci (sans import) :
    Code JavaScript : S�lectionner tout - Visualiser dans une fen�tre � part
    OutilsHiacine.ConvertionSecondes.SecondsToDateLisible(123);

  7. #7
    Membre �clair�

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Par d�faut
    Sinon, tu peux �galement utiliser un fonction javascript (dans fichier *.js par exemple) pour effectuer ce type de traitement :

    format.js :
    Code Javascript : 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    function formatTens(number) {
    	return (number < 10) ? ("0" + number) : ""+number;
    }
     
    /**
     * seconds : number of seconds
     * pattern :
     *   - HH = Day
     *   - MI = Minutes
     *   - SS = Seconds
     **/ 
    function formatDuration(seconds, pattern) {
    	if(pattern == null) {
    		pattern = "HH:MI:SS";
    	}
    	var formatedDuration  = pattern;
    	var leftDuration      = seconds;
     
    	// days	
    	if(pattern.indexOf("DD") >= 0) {
      		formatedDuration = formatedDuration.replace("DD", ((leftDuration >= 1440) ? Math.floor(leftDuration / 1440) : "0"));
      		leftDuration -= (Math.floor(leftDuration / 86400) * 86400);
    	}
     
    	// hours	
    	if(pattern.indexOf("HH") >= 0) {
    		formatedDuration = formatedDuration.replace("HH", ((leftDuration >= 60) ? formatTens(Math.floor(leftDuration / 60)) : "00"));
    		leftDuration -= (Math.floor(leftDuration / 3600) * 3600);
    	}
     
    	// minutes
    	if(pattern.indexOf("MI") >= 0) {
    		formatedDuration = formatedDuration.replace("MI", formatTens(parseInteger(leftDuration)));
    		leftDuration -= (Math.floor(leftDuration / 60) * 60);
    	}
     
    	// seconds
    	if(pattern.indexOf("SS") >= 0) {
    		formatedDuration = formatedDuration.replace("SS", formatTens(parseInteger(leftDuration)));
    	}
     
    	return formatedDuration;
    }
     
    function formatLucky(seconds) {
      if(seconds >= 86400) {
        formatDuration(seconds, "DD:HH:MI:SS");
      }
      else if(seconds >= 3600) {
        formatDuration(seconds, "HH:MI:SS");
      }
      else if(seconds >= 60) {
        formatDuration(seconds, "MI:SS");
      }
      else {
        formatDuration(seconds, "SS");
      }
    }

    Pour utiliser ce fichier dans ton rapport, tu ajoutes le fichier javascript (vue properties > resources > javascript files).


  8. #8
    BiM
    BiM est d�connect�
    Expert confirm�
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ing�nieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 39
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultante/Formatrice BIRT & Ing�nieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par d�faut
    Pourquoi faire simple quand on peux faire compliqu� ?

    Il existe des fonctions qui permettent de faire directement ces transformations (donc (d�sol� erwan) ta solution est l�g�rement compliqu�e pour pas grand chose (voir FAQ pour les affichages de date)).

    D'autre part, peut �tre que cette fonction doit �tre utilis�e dans plusieurs rapports (dans ce cas, je pr�conise une librairie ou une m�thode en Java (comme il a fait)) ou m�me dans une application Java (qui entoure cette partie de reporting), dans ce cas, je pr�conise une m�thode Java.

    Voilou

  9. #9
    Membre �clair�

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Par d�faut
    BiM,

    Citation Envoy� par BiM
    Il existe des fonctions qui permettent de faire directement ces transformations (donc (d�sol� erwan) ta solution est l�g�rement compliqu�e pour pas grand chose (voir FAQ pour les affichages de date)).
    Je suis d'accord avec toi quand � pr�coniser l'utilisation de m�thodes existantes. (Il ne sait � rien de r�inventer la roue ).

    Citation Envoy� par BiM
    D'autre part, peut �tre que cette fonction doit �tre utilis�e dans plusieurs rapports (dans ce cas, je pr�conise une librairie ou une m�thode en Java (comme il a fait)) ou m�me dans une application Java (qui entoure cette partie de reporting), dans ce cas, je pr�conise une m�thode Java.
    Sur ce point, je n'ai pas de pr�conisations particuli�res. Je trouve aussi simple d'utiliser des fichiers javascripts que l'on inclut au sein de librairies ... cela me permet d'externaliser tr�s facilement la configuration des rapports.

    Enfin, tout ceci n'est qu'une histoire de go�t

    A+

  10. #10
    BiM
    BiM est d�connect�
    Expert confirm�
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ing�nieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 39
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultante/Formatrice BIRT & Ing�nieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par d�faut
    Le fait d'externaliser �vite l'augmentation du risque d'erreur et du temps de maintenance Je parle bien du fait qu'une fonction peut �tre r�utilis�e

  11. #11
    Membre �clair�

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Par d�faut
    Une fonction peut aussi bien externalis�e en java ou en javascript, surtout quand il s'agit de fonctions simples. Par contre, pour des fonctions plus complexes, il est souvent avantageux d'utiliser Java de part les API existantes.

  12. #12
    Membre �prouv�
    Avatar de DelphiCool
    Homme Profil pro
    Ing�nieur de production
    Inscrit en
    Mars 2002
    Messages
    187
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur de production
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 187
    Par d�faut
    Bonsoir,

    Je dois mal m'y prendre.

    J'ai cr�� un jar, que je met dans la racine du projet.

    Dans eclipse (onglet outline)
    Je clique sur la racine de mon projet.
    Je rajoute mon jar (� droite) (je le joint � ce message)

    ensuite je met un texte dynamique, o� je met l'expression suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     OutilsHiacine.ConvertionSecondes.SecondsToDateLisible(123);
    sans import comme le dit Bim.
    Question :
    Birt g�re t-il les fichier java, je veux dire : suis je oblig� de g�n�rer un fichier .class ou .jar ?
    Fichiers attach�s Fichiers attach�s

  13. #13
    BiM
    BiM est d�connect�
    Expert confirm�
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ing�nieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 39
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultante/Formatrice BIRT & Ing�nieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par d�faut
    As-tu toujours la m�me erreur ? Dans ce cas, je pense qu'il ne trouve pas ton .jar en effet.

    BIRT (comme toute autre librairie) ne peux appeler que des .class ou .jar puisque ce sont des fichiers compil�s.

    D'autre part, pour appeler la m�thode comme ceci, l'as-tu mise en static ? (mot clef static au moment de la d�finition de la m�thode :
    Code Java : S�lectionner tout - Visualiser dans une fen�tre � part
    public static String SecondsToDateLisible(long Secondes) throws JRScriptletException { ... }
    )

  14. #14
    Membre �prouv�
    Avatar de DelphiCool
    Homme Profil pro
    Ing�nieur de production
    Inscrit en
    Mars 2002
    Messages
    187
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur de production
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 187
    Par d�faut
    J'ai toujours la m�me erreur ci-dessous :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    Des erreurs sont survenues lors de lévaluation du script "{0}":
    {1}. birt.core.JavascriptCommonError ( 46 fois )
    détails : org.eclipse.birt.report.engine.api.EngineException: Des erreurs sont survenues lors de lévaluation du script "{0}":
    {1}.
     at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1109)
     at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1061)
     at org.eclipse.birt.report.engine.executor.DynamicTextItemExecutor.execute(DynamicTextItemExecutor.java:105)
     at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:42)
     at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45)
     at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:33)
     at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.execute(HTMLAbstractLM.java:434)
     at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.execute(HTMLAbstractLM.java:442)
     at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.execute(HTMLAbstractLM.java:442)
     at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.execute(HTMLAbstractLM.java:442)
     at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.execute(HTMLAbstractLM.java:442)
     at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.execute(HTMLAbstractLM.java:442)
     at org.eclipse.birt.report.engine.layout.html.HTMLListingBandLM.intializeHeaderContent(HTMLListingBandLM.java:96)
     at org.eclipse.birt.report.engine.layout.html.HTMLListingBandLM.initialize(HTMLListingBandLM.java:48)
     at org.eclipse.birt.report.engine.layout.html.HTMLTableBandLM.initialize(HTMLTableBandLM.java:42)
     at org.eclipse.birt.report.engine.layout.html.HTMLLayoutManagerFactory.createLayoutManager(HTMLLayoutManagerFactory.java:50)
     at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.createLayoutManager(HTMLReportLayoutEngine.java:142)
     at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:67)
     at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:27)
     at org.eclipse.birt.report.engine.layout.html.HTMLGroupLM.layoutChildren(HTMLGroupLM.java:80)
     at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:133)
     at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:68)
     at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:27)
     at org.eclipse.birt.report.engine.layout.html.HTMLGroupLM.layoutChildren(HTMLGroupLM.java:80)
     at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:133)
     at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:68)
     at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:27)
     at org.eclipse.birt.report.engine.layout.html.HTMLTableLM.layoutChildren(HTMLTableLM.java:76)
     at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:133)
     at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:68)
     at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90)
     at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:101)
     at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:151)
     at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:72)
     at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:954)
     at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:933)
     at org.eclipse.birt.report.service.actionhandler.BirtGetPageAllActionHandler.__execute(BirtGetPageAllActionHandler.java:132)
     at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
     at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)
     at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)
     at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPageAll(BirtDocumentProcessor.java:183)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)
     at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
     at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
     at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
     at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
     at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
     at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
     at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
     at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
     at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
     at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:225)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:616)
     at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
     at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:112)
     at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
     at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
     at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
     at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:59)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
     at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:269)
     at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
     at org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:677)
     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
     at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
     at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
     at org.mortbay.http.HttpServer.service(HttpServer.java:909)
     at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
     at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
     at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
     at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
     at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
     at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
    Caused by: org.eclipse.birt.core.exception.CoreException: Des erreurs sont survenues lors de lévaluation du script "{0}":
    {1}.
     at org.eclipse.birt.core.script.ScriptContext.eval(ScriptContext.java:300)
     at org.eclipse.birt.core.script.ScriptContext.eval(ScriptContext.java:316)
     at org.eclipse.birt.core.script.ScriptContext.eval(ScriptContext.java:237)
     at org.eclipse.birt.report.engine.executor.ExecutionContext.evaluate(ExecutionContext.java:660)
     at org.eclipse.birt.report.engine.executor.DynamicTextItemExecutor.execute(DynamicTextItemExecutor.java:91)
     ... 80 more
    voici le code fichier ConvertionSecondes.java :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    package OutilsHiacine;
     
     
    public class ConvertionSecondes {
     
    public static String SecondsToDateLisible(long Secondes)
    {
     
       long Jours = 0;
       long Heures = 0;
       long Minutes = 0;
     
       String sJours = "0";
       String sHeures = "0";
       String sMinutes = "0";
       String sSecondes = "0";
     
    //Résultat de moins d'une minute
          if (Secondes < 60) {return "00:00:" + Long.toString(Secondes);}
     
    //Si le résultat est superieur à 60 secondes
     
    //Nombre de Jours
          Jours = Secondes / 86400; // 1 jour = 24 heures = 86400 secondes
          Secondes = Secondes - (Jours * 86400); // Pour avoir ce qui reste
     
    //Nombre d'Heures
          Heures = Secondes / 3600; // 1 heure = 3600 secondes
          Secondes = Secondes - (Heures * 3600); // Pour avoir ce qui reste
     
     
    //Nombre de Minutes
          Minutes = Secondes / 60; // 1 minute = 60 secondes
          Secondes = Secondes - (Minutes * 60); // Pour avoir ce qui reste
     
     
          sJours = "" + Jours;
          sHeures = "" + Heures;
          sMinutes = "" + Minutes;
          sSecondes = "" + Secondes;
     
     
    //On met l'heure sur 2 caractères
          if (sHeures.length() == 1) {sHeures = "0" + sHeures;}
          if (sMinutes.length() == 1) {sMinutes = "0" + sMinutes;}
          if (sSecondes.length() == 1) {sSecondes = "0" + sSecondes;}
     
     
        if (Jours == 0) {return sHeures + ":" + sMinutes + ":" + sSecondes;} // Si le Jour est égal à 0, on ne l'affiche pas
        else
        {
        return sJours + " j " + sHeures + ":" + sMinutes + ":" + sSecondes;
        }
     
        }
     
    }

  15. #15
    BiM
    BiM est d�connect�
    Expert confirm�
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ing�nieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 39
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultante/Formatrice BIRT & Ing�nieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par d�faut
    Bonjour,

    En effet, il ne doit pas trouver ta classe. Passes-tu par une application ? Par le designer ? Ou autre ?

    Autre pr�cision, petite aide en Java � vrai dire. Tu peux utiliser directement les m�thodes existantes pour convertir tes dates :
    Code Java : 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
    package OutilsHiacine;
     
    import java.text.SimpleDateFormat;
    import java.util.Date;
     
    public class ConvertionSecondes {
    	public static String secondsToDateLisible(long secondes)
    	{
    		Date d = new Date(secondes*1000);
     
    		SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
    		String time = sdf.format(d);
     
    		long jour = secondes/86400;
     
    		return jour+"j "+time;
    	}
    }
    Ce code retourne le temps sous forme 24j 14:03 par exemple de fa�on beaucoup plus simple.

    Rappel de PS : La convention d'�criture en Java stipule que les m�thodes et variables doivent commencer par une minuscule ou un _. Cela peut poser des probl�mes dans certains cas si ce n'est pas le cas.

  16. #16
    Membre �prouv�
    Avatar de DelphiCool
    Homme Profil pro
    Ing�nieur de production
    Inscrit en
    Mars 2002
    Messages
    187
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur de production
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 187
    Par d�faut
    Merci Bim,

    Mais je n'y arrive toujours pas.

    J'utilise notepad pour faire mon fichier java.

    J'ai de grosses lacunes en java, language que je d�couvre, moi c'est plutot delphi .


    Je met un projet vierge test o� j'essaye d'utiliser cette classe.

    Peux �tre que tu verra o� je fait une erreur
    Fichiers attach�s Fichiers attach�s

  17. #17
    Membre �prouv�
    Avatar de DelphiCool
    Homme Profil pro
    Ing�nieur de production
    Inscrit en
    Mars 2002
    Messages
    187
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur de production
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 187
    Par d�faut
    Si je souhaites utilise un fichier .class.
    Le fait de le mettre dans le dossier du projet, suffit-il ?

  18. #18
    Membre �clair�

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Par d�faut
    Non.

    Tu as dans les propri�t�s du rapport la possibilit� de d�finir des ressources externes (properties>resources>...jar).

    Bon courage

  19. #19
    Membre �prouv�
    Avatar de DelphiCool
    Homme Profil pro
    Ing�nieur de production
    Inscrit en
    Mars 2002
    Messages
    187
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur de production
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 187
    Par d�faut
    Citation Envoy� par erwan.bodere Voir le message
    Non.

    Tu as dans les propri�t�s du rapport la possibilit� de d�finir des ressources externes (properties>resources>...jar).

    Bon courage

    Le probl�me c'est que c'est bien l� que je vais

  20. #20
    Membre �prouv�
    Avatar de DelphiCool
    Homme Profil pro
    Ing�nieur de production
    Inscrit en
    Mars 2002
    Messages
    187
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur de production
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 187
    Par d�faut
    Bonsoir,

    j'ai enfin r�ussi :

    * Le fichier jar �tait cr�er sans les r�pertoires.
    * je rajoute mon jar correct � mes ressources.
    * dans initialise, je met :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    fc = new Packages.outilsHiacine.ConvertionSecondes();
    * et dans mes texte dynamiques, ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    fc.secondsToDateLisible(secondes);

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 1 sur 2 12 Derni�reDerni�re

Discussions similaires

  1. Utiliser un code MATLAB dans du code Java
    Par si_a7med dans le forum MATLAB
    R�ponses: 1
    Dernier message: 23/04/2011, 16h30
  2. Utiliser du code java dans le code C++
    Par brazzaville dans le forum Biblioth�ques
    R�ponses: 1
    Dernier message: 18/12/2008, 21h45
  3. coloration syntaxique code java dans Word
    Par zais_ethael dans le forum API standards et tierces
    R�ponses: 10
    Dernier message: 25/05/2006, 18h07
  4. [Forms 9i] Integrer du code java dans un bloc PL/SQL
    Par mohmanjdo dans le forum PL/SQL
    R�ponses: 2
    Dernier message: 07/02/2006, 13h54
  5. [CR] Utilisation de codes � barres dans crystal
    Par franck.cvitrans dans le forum SAP Crystal Reports
    R�ponses: 4
    Dernier message: 29/06/2004, 08h48

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