Ireport:variables utilisant une fonction classpath && code java

Fermé
Nicodoss Messages postés 39 Date d'inscription vendredi 16 décembre 2016 Statut Membre Dernière intervention 30 août 2019 - Modifié le 13 juil. 2017 à 18:36
Nicodoss Messages postés 39 Date d'inscription vendredi 16 décembre 2016 Statut Membre Dernière intervention 30 août 2019 - 14 juil. 2017 à 15:20
Bonsoir,
j'ai un petit soucis
j'aimerais savoir comment renseigner la classpath d'une fonction entrée en paramètre pour afficher mon Etat à partir de mon code java saisie depuis netbeans sans utiliser la classpath de ireport ou de netbeans.
Supposons que:
-je crée une variable V qui est une fonction qui change le format d'une date (YYYY-DD-MM) en (DD-MM-YYYY).
-J'importe la classepath de la fonction compiler (jar) dans ireport. Il est clair que ca marche à merveille.
Mais ce que je souhaite c'est que la fonction soit sous forme paramètre que je pourrais ou une manière de la renseigner depuis mon code java afin qu'elle effectue la conversion du format pour l'affichage.
Je précise aussi que la fonction est aussi dans une classe de mon projet

voici par exemple mon code java pour impression

try {

if ((DateDebut1.getDate() == null) || (DateFin1.getDate() == null) || datedifference.datediff(DateDebut1, DateFin1) == true) {
JOptionPane.showMessageDialog(this, "Veuillez revoir les dates sélectionnées");
} else {
String st = ((JTextField) DateDebut1.getDateEditor().getUiComponent()).getText();
String st2 = ((JTextField) DateFin1.getDateEditor().getUiComponent()).getText();
String chemin = "./Etat/LST_DES_AGENTS_PAR_FORMATION_FIN.jrxml";
JasperReport jr = JasperCompileManager.compileReport(chemin);
String Dateretour1 = jsf.DateEng(st);
String Dateretour2 = jsf.DateEng(st2);
HashMap param = new HashMap();
param.put("parameter1", Dateretour1);
param.put("parameter2", Dateretour2);
param.put("parameter3","./images/LOGO.jpg");
conn = ConnectBD.javaconnect();
JasperViewer jasperViewer;
JasperPrint jp = JasperFillManager.fillReport(jr, param, conn);
jasperViewer = new JasperViewer(jp, false);
JDialog dialog = new JDialog(this);//the owner
dialog.setContentPane(jasperViewer.getContentPane());
dialog.setSize(jasperViewer.getSize());
dialog.setTitle("Impression");
dialog.setVisible(true);
}


} catch (Exception e) {
JOptionPane.showMessageDialog(this, e);
}
dans ce code nous avons les datedebut et datefin qui doivent être convertie par la fonction.

Voici mon code pour la fonction de conversion

public static String DateEng(String datefrench) {
String Dateretour = "";
try {

String date[]=datefrench.split("-");
Dateretour=date[2]+"-"+date[1]+"-"+date[0];

} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
return Dateretour;
}


Dans quelle partie du code java pour l'impression je pourrais renseigner en paramètre la fonction

S'il y a d'autre méthode je suis preneur aussi
A voir également:
  • Ireport:variables utilisant une fonction classpath && code java
  • Ireport - Télécharger - Édition & Programmation

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
13 juil. 2017 à 18:54
Bonjour,

Je ne comprends pas tes explications avec ton code...

"je crée une variable V qui est une fonction"
C'est une variable ou une fonction ? Où est-elle dans ton code ? Comment tu t'en sers ?

"J'importe la classepath de la fonction compiler (jar) dans ireport"
Quelle est cette "fonction compiler" ? Où est-elle dans ton code ? Comment tu t'en sers ? Quel jar as-tu importé et comment ?

"sous forme paramètre que je pourrais renseigner depuis mon code java"
Si c'est depuis le code java, pourquoi vouloir "renseigner la classpath d'une fonction" ?
0
Nicodoss Messages postés 39 Date d'inscription vendredi 16 décembre 2016 Statut Membre Dernière intervention 30 août 2019
13 juil. 2017 à 19:35
je demande comment peut-on renseigner la classpath d'une variable utilisée comme fonction dans jaspereport à partir de son code java.
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
13 juil. 2017 à 19:47
Le classpath c'est pour les classes... ça n'a pas de sens de parler de classpath pour une variable, surtout que c'est "une variable utilisée comme fonction" ce qui n'a pas beaucoup plus de sens...

C'est pour ça que je te demande d'être plus clair dans tes explications parce que là tu utilises des termes qui ne semblent pas appropriés et du coup je ne comprends pas ce que tu veix.
0
Nicodoss Messages postés 39 Date d'inscription vendredi 16 décembre 2016 Statut Membre Dernière intervention 30 août 2019
13 juil. 2017 à 20:04
oki, peut être j'utilise pas les bons termes techniques
j'ai une fonction v que j'ai créé à partir de java.
La fonction consiste à changer le format d'une date passée en paramètre dans une requête sql éditer dans ireport.
Maintenant, pour utiliser la fonction j'ai pris le fichier jar(fonction compilée) que j'ai renseigner dans le menu Outils\Options\Classpath où j'ai renseigné le chemin menant vers le fichier jar de la fonction.celà converti le format de la date avant l'affichage du rapport.
Mon problème est : comment pourrais-je déployer l'application avec le report de sorte que le chemin que j'ai renseigner pour le classpath de ma fonction puisse être passé en paramètre(coe un chemin relatif) et ceci depuis mon code java de mon projet.


Encore une fois Merci pour la patience car je suis un grand novice en programation
0
Nicodoss Messages postés 39 Date d'inscription vendredi 16 décembre 2016 Statut Membre Dernière intervention 30 août 2019
14 juil. 2017 à 15:20
voilà, j'ai un peu bosser sur le sujet, je pense que ca serait vraiment utile si tu m'aidais à créer un scriptlet interne au report, là je n'aurai plus à utiliser du code java pour appeler ma fonction.
Merci d'avance
0