Peanut Posted September 8, 2006 Share Posted September 8, 2006 Hello, I'm a beginner with Jasper and even Java. To much for a day ! :P I'm trying since this morning to make all that stuff working, and I think I'm not so far... One thing I don't understand is the use of the second parameter of JasperFillManager.fillReport().What kind of data do I have to put here please ? Link to comment Share on other sites More sharing options...
Alexander Merz Posted September 11, 2006 Share Posted September 11, 2006 The second parameter is a Map object for parameters. Parameters are defined in the report via <parameter>. See the Tag reference and API docs for more information. Link to comment Share on other sites More sharing options...
Peanut Posted September 11, 2006 Author Share Posted September 11, 2006 I've read the docs but they're really not clear, and a lot of things are deprecated. :unsure: I have a CSV file :Code:title1;title2;title3;dataa;datab;datac;datad;datae;dataf;... and a jrxml file :Code:[code]...<field name="title1" class="java.lang.String"/><field name="title2" class="java.lang.String"/><field name="title3" class="java.lang.String"/>... Is this OK ? :Code:[code]Map params = new Hashtable();...params.put("title1","title1"«»);params.put("title2","title2"«»);params.put("title3","title3"«»);...JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,params,source); Thanks. Link to comment Share on other sites More sharing options...
Peanut Posted September 11, 2006 Author Share Posted September 11, 2006 :side: Here is my code :Code:import java.io.*;// import des classes "Map" et "Hastable" pour l'envoi de paramètres à un rapportimport java.util.Map;import java.util.Hashtable;import java.util.HashMap;// import du "moteur" de la librairie JasperReportsimport net.sf.jasperreports.engine.*;import net.sf.jasperreports.engine.export.JRCsvExporter;import net.sf.jasperreports.engine.design.JasperDesign;import net.sf.jasperreports.engine.xml.JRXmlLoader;import net.sf.jasperreports.engine.data.JRCsvDataSource;public class generatepdffromcsv{ public static void main(String[] arguments) { String erreur = ""; Map params = new Hashtable(); try { System.out.println("Et c'est parti..."«»); // ????? params.put("animal", "animal"«»); params.put("mange", "mange"«»); params.put("couleur", "couleur"«»); // Chargement et compilation du rapport JasperDesign jasperDesign = JRXmlLoader.load("essai1.jrxml"«»); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); // déclaration de la source de données File sourceFile = new File("essai1.csv"«»); JRCsvDataSource source = new JRCsvDataSource(sourceFile);System.out.println("aaaa"«»); // ???? source.setFieldDelimiter(";"«»); // ???? source.setUseFirstRowAsHeader(TRUE); // export du rapport au format temporaire 'jasperPrint' JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,params,source);System.out.println("cccc"«»); // puis export du rapport au format PDF JasperExportManager exporter = new JasperExportManager(); exporter.exportReportToPdfFile(jasperPrint,"essai1.pdf"«»); System.out.println("That's all folks !"«»); } catch (Exception e) { System.out.println(e.getMessage()); } }} My CSV file :Code:[code]animal;mange;couleur;sanglier;glands;beige;vache;herbe;blanche;chat;souris;gris;(I've tried to replace ";" with "," since setFieldDelimiter doesn't compile, but it's the same. And the result :Code:[code]Et c'est parti...aaaanull :( Link to comment Share on other sites More sharing options...
Alexander Merz Posted September 11, 2006 Share Posted September 11, 2006 Parameters are a way to pass arbitrary data into the report, where the data does not come from the data source. For example in your application you want to include the name of the user who is currently logged in and wants to get a report. Code:String userName = ......HashMap params = new HashMap();params.put("user", userName);...JasperPrint jp = JasperFillManager.fillReport(report, params, datasource); In the JRXML: Code:[code]<parameter name="user" class="java.lang.String"/>...<textField>... <textExpression><![CDATA[$P{user}]]></textExpression></textField> Link to comment Share on other sites More sharing options...
Peanut Posted September 11, 2006 Author Share Posted September 11, 2006 Ah OK, that's not the way I was trying to use it. :blush: Thank you. Link to comment Share on other sites More sharing options...
Peanut Posted September 13, 2006 Author Share Posted September 13, 2006 Here is a copy of my code working ! (not like so much on the net...)Hope it will help future newbies. :woohoo: Code:// Exemple de génération de rapport JasperReports à partir d'une source CSV// (validé avec jasperreports-1.2.6.jar - LY 09/2006)//// Exemple de fichier CSV utilisé en entrée :// => ne pas oublier le caractère séparateur en fin de ligne !//// animal;mange;couleur;// sanglier;glands;beige;// vache;herbe;blanche;// chat;souris;gris;//import java.io.*;// import de la classe "HashMap" pour l'envoi de paramètres à un rapportimport java.util.HashMap;// import du moteur de la librairie JasperReportsimport net.sf.jasperreports.engine.*;import net.sf.jasperreports.engine.data.JRCsvDataSource;import net.sf.jasperreports.engine.design.JasperDesign;import net.sf.jasperreports.engine.design.JRDesignField;//import net.sf.jasperreports.engine.export.JRCsvExporter;//import net.sf.jasperreports.engine.export.JRPdfExporter;import net.sf.jasperreports.engine.export.JRRtfExporter;import net.sf.jasperreports.engine.xml.JRXmlLoader;public class generatepdffromcsv{ public static void main(String[] args) { HashMap params = new HashMap(); //String[] nomCols = {"animal", "mange", "couleur"}; // <- si on n'utilise pas 'setUseFirstRowAsHeader' ** try { System.out.println("Et c'est parti..."«»); // Passage de paramètres (facultatif) //params.put("", ""«»); // Chargement et compilation du rapport System.out.print("+ chargement et compilation du rapport JRXML"«»); JasperDesign jasperDesign = JRXmlLoader.load("essai11.jrxml"«»); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); System.out.println(" : OK"«»); // Déclaration de la source de données System.out.print("+ déclaration de la source de données CSV"«»); File sourceFile = new File("essai1.csv"«»); JRCsvDataSource source = new JRCsvDataSource(sourceFile); source.setFieldDelimiter(';'); //source.setColumnNames(nomCols); // <- si on n'utilise pas 'setUseFirstRowAsHeader' ** source.setUseFirstRowAsHeader(true); System.out.println(" : OK"«»); // Export du rapport au format temporaire 'jasperPrint' System.out.print("+ export du rapport au format intermédiaire 'jasperPrint'"«»); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, source); //équivalent à JasperPrint jasperPrint = JasperFillManager.fillReport("essai1.jasper", params, source); System.out.println(" : OK"«»); // puis export du rapport au format cible JasperExportManager exporter = new JasperExportManager(); System.out.print("+ conversion au format cible PDF"«»); exporter.exportReportToPdfFile(jasperPrint, "essai1.pdf"«»); System.out.println(" : OK"«»); System.out.print("+ conversion au format cible HTML"«»); exporter.exportReportToHtmlFile(jasperPrint, "essai1.html"«»); System.out.println(" : OK"«»); System.out.print("+ conversion au format cible XML"«»); exporter.exportReportToXmlFile(jasperPrint, "essai1.xml", false); System.out.println(" : OK"«»); System.out.print("+ conversion au format cible RTF"«»); JRRtfExporter exporterRtf = new JRRtfExporter(); exporterRtf.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporterRtf.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "essai1.rtf"«»); exporterRtf.exportReport(); System.out.println(" : OK"«»); System.out.println("That's all folks !"«»); } catch (Exception e) { System.out.println(e.getMessage()); } }} Code:[code]CLASSPATH="./jasperreports-1.2.6.jar:/opt/oracle/instantclient_10_2/ojdbc14.jar:./xml-apis.jar:./commons-digester-1.7.jar:./commons-collections-2.1.jar:./commons-logging-api-1.0.2.jar:./commons-logging-1.0.2.jar:./commons-beanutils-1.5.jar:./itext-1.3.1.jar:./jcommon-1.0.0.jar:./jdt-compiler-3.1.1.jar:./commons-javaflow-20060411.jar:/usr/java14/lib:/opt/oracle/instantclient_10_2:.:/usr/java14/lib:/usr/java14/jre/lib:./itext-1.4.4.jar"Post edited by: Peanut, at: 2006/09/13 12:27 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now