|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2008 Messages : 18 ![]() |
bonsoir,
Je suis en stage actuellement et je dois présenter un document sous ireport. J'ai une connection sur une base Oracle 9. J'ai réussi à faire ma requête sql sans problème. Maintenant je dois armoniser les libellés ressortis par la requête. Je m'explique ma requête ressort le budget d'un service, j'ai donc une nature de dépense, une sous fonction et une sdg. Auparavant, le service utilisait bo pour établir la requête puis la passait sur excel. Avec une table de correspondance il pouvait modifier les libellés : il y a une concaténation des trois champs nature/sousfonction/sdg. Jusque là pas de soucis, j'ai réussi à faire la concaténation dans ma requête sql. Cependant ireport ne pouvant cibler deux bases de données en même temps et ne pouvant importer aucun tableau excel, je dois faire un scriplet de la manière suivante : mon idée est de créer un tableau de valeur telle que : tab[0] = 020.9061521; (c'est un tableau en String) tab[1] = 020.10615211223; tab[3] = 021.20615211218; etc... ensuite j'ai créé une HasMap pour pouvoir dire : si i < 3 alors hm = "forfait entretien espaces verts" au travail j'ai réussi à compiler sans aucune erreur, cependant je n'arrive pas à mettre un chemin valide dans mon paramètre pour avoir les valeurs retournées par le scriplet. je sais qu'il faut metter $REPORT_SCRIPLET.NomdelaMethode(<MaVariable>) mais à chaque fois mon champs revient avec des "null". Quelqu'un pourrait-il avoir une idée ? j'ai essayé de me faire un exemple chez moi, j'ai une base sql, ou j'ai construit une petite base de données et sur ireport j'ai fais une requête. J'essai de reproduire un peu le même model que pour mon stage et cela donne à peu près : import net.sf.jasperreports.engine.*; import java.util.*; import java.awt.*; import java.lang.*; import java.io.*; public class SALAIREScriptlet extends it.businesslogic.ireport.IReportScriptlet { /** Creates a new instance of JRIreportDefaultScriptlet */ HashMap hm = new HashMap(); String[] Tableau = new String[4]; int i; } public SALAIREScriplet(){ } public void beforeDetailEval() throws JRScriptletException { String i[] ={"AMIEL","LAPINOU","MANDRAGOR","TUTOUL","COMBONNE"}; } public void afterDetailEval() throws JRScriptletException { for(int i =0 ; i< Tableau.length ; i++){ if( i==1){ hm.put("ENFANT","lulu"); } else if(i ==2){ hm.put("ENFANT","fripouille"); } else if(i ==3){ hm.put("ENFANT","bibi"); } else { hm.put("ENFANT",""); } } super.afterDetailEval(); } je n'ai aucune erreur de compilation. Mais pour mon paramètre enfant je ne sais pas quel chemin lui mettre si je mets ""+($P{REPORT_SCRIPTLET}.ToString($P{ENFANT})) mais cela me mets une erreur : net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. The method ToString(String) is undefined for the type SALAIREScriptlet value = (java.lang.String)(""+(((SALAIREScriptlet)parameter_REPORT_SCRIPTLET.getValue()).ToString(((java.lang.String)parameter_ENFANT.getValue()))));//$JR_EXPR_ID=0$ <------> souligne ToString(), je ne sais pas quelle méthode mettre car j'utilise uniquement hm.put(). merci pour l'aide que vous pourrez m'apporter c'est assez urgent. bonne soirée |
|
|
00
|
|
|
#2 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2008 Messages : 18 ![]() |
personne ne peut m'aider !!!!!
Est ce que quelqu'un pourrait me dire si mon code présente une erreur, j'ai fini ma première année bts informatique et je n'ai pas encore vu le java. J'ai fais ce code à partir de tutoriel sur Internet et à partir des sites de développeur, mais je pense qu'il me manque quand même un for pour lancer la boucle, mais je n'ai pas de message d'erreur dans la compilation. Merci pour votre aide. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com