Jump to content
Changes to the Jaspersoft community edition download ×

JasperFillManager.fillReport


Peanut

Recommended Posts

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

  • Replies 6
  • Created
  • Last Reply

Top Posters In This Topic

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

:side:

Here is my code :

Code:
import java.io.*;

// import des classes "Map" et "Hastable" pour l'envoi de paramètres à un rapport
import java.util.Map;
import java.util.Hashtable;
import java.util.HashMap;

// import du "moteur" de la librairie JasperReports
import 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...
aaaa
null

 

:(

Link to comment
Share on other sites

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

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 rapport
import java.util.HashMap;

// import du moteur de la librairie JasperReports
import 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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...