Jump to content
Changes to the Jaspersoft community edition download ×

Customizer class


Recommended Posts

By: bill - rx7haze

Customizer class

2006-05-30 07:34

Can someone please help me figure out how to use the Customizer class? I have the BarChartReport sample and can not get it to work. I get an error stating that it could not create the chart customizer instance.

Do I simply need to have the Customizer.java file located in the same directory as the report? I assume so since that is how the sample is set up. Do I need to put it in the classpath as well? I tried that with no success. I fear I am missing something simple, but I don't know where to look next.

I am executing with an empty datasource. Here is the error I get:

Error filling print...

java.lang.ClassNotFoundException: BarChartCustomizer at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:90) at net.sf.jasperreports.engine.fill.JRFillChart.<init>(JRFillChart.java:260) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getChart(JRFillObjectFactory.java:551) at net.sf.jasperreports.engine.base.JRBaseChart.getCopy(JRBaseChart.java:470) at net.sf.jasperreports.engine.fill.JRFillElementGroup.<init>(JRFillElementGroup.java:88) at net.sf.jasperreports.engine.fill.JRFillElementContainer.<init>(JRFillElementContainer.java:88) at net.sf.jasperreports.engine.fill.JRFillBand.<init>(JRFillBand.java:77) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getBand(JRFillObjectFactory.java:374) at net.sf.jasperreports.engine.fill.JRFillGroup.<init>(JRFillGroup.java:76) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getGroup(JRFillObjectFactory.java:353) at net.sf.jasperreports.engine.fill.JRFillVariable.<init>(JRFillVariable.java:83) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getVariable(JRFillObjectFactory.java:333) at net.sf.jasperreports.engine.fill.JRFillDataset.addVariable(JRFillDataset.java:275) at net.sf.jasperreports.engine.fill.JRFillDataset.setVariables(JRFillDataset.java:265) at net.sf.jasperreports.engine.fill.JRFillDataset.<init>(JRFillDataset.java:219) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getDataset(JRFillObjectFactory.java:1032) at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:374) at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:92) at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:74) at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:147) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:83) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:653) at java.lang.Thread.run(Unknown Source) NESTED BY : java.lang.ClassNotFoundException: BarChartCustomizer at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:90) at net.sf.jasperreports.engine.fill.JRFillChart.<init>(JRFillChart.java:260) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getChart(JRFillObjectFactory.java:551) at net.sf.jasperreports.engine.base.JRBaseChart.getCopy(JRBaseChart.java:470) at net.sf.jasperreports.engine.fill.JRFillElementGroup.<init>(JRFillElementGroup.java:88) at net.sf.jasperreports.engine.fill.JRFillElementContainer.<init>(JRFillElementContainer.java:88) at net.sf.jasperreports.engine.fill.JRFillBand.<init>(JRFillBand.java:77) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getBand(JRFillObjectFactory.java:374) at net.sf.jasperreports.engine.fill.JRFillGroup.<init>(JRFillGroup.java:76) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getGroup(JRFillObjectFactory.java:353) at net.sf.jasperreports.engine.fill.JRFillVariable.<init>(JRFillVariable.java:83) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getVariable(JRFillObjectFactory.java:333) at net.sf.jasperreports.engine.fill.JRFillDataset.addVariable(JRFillDataset.java:275) at net.sf.jasperreports.engine.fill.JRFillDataset.setVariables(JRFillDataset.java:265) at net.sf.jasperreports.engine.fill.JRFillDataset.<init>(JRFillDataset.java:219) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getDataset(JRFillObjectFactory.java:1032) at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:374) at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:92) at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:74) at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:147) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:83) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:653) at java.lang.Thread.run(Unknown Source) NESTED BY : net.sf.jasperreports.engine.JRRuntimeException: Could not create chart customizer instance. at net.sf.jasperreports.engine.fill.JRFillChart.<init>(JRFillChart.java:263) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getChart(JRFillObjectFactory.java:551) at net.sf.jasperreports.engine.base.JRBaseChart.getCopy(JRBaseChart.java:470) at net.sf.jasperreports.engine.fill.JRFillElementGroup.<init>(JRFillElementGroup.java:88) at net.sf.jasperreports.engine.fill.JRFillElementContainer.<init>(JRFillElementContainer.java:88) at net.sf.jasperreports.engine.fill.JRFillBand.<init>(JRFillBand.java:77) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getBand(JRFillObjectFactory.java:374) at net.sf.jasperreports.engine.fill.JRFillGroup.<init>(JRFillGroup.java:76) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getGroup(JRFillObjectFactory.java:353) at net.sf.jasperreports.engine.fill.JRFillVariable.<init>(JRFillVariable.java:83) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getVariable(JRFillObjectFactory.java:333) at net.sf.jasperreports.engine.fill.JRFillDataset.addVariable(JRFillDataset.java:275) at net.sf.jasperreports.engine.fill.JRFillDataset.setVariables(JRFillDataset.java:265) at net.sf.jasperreports.engine.fill.JRFillDataset.<init>(JRFillDataset.java:219) at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getDataset(JRFillObjectFactory.java:1032) at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:374) at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:92) at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:74) at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:147) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:83) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:653) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: BarChartCustomizer at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:90) at net.sf.jasperreports.engine.fill.JRFillChart.<init>(JRFillChart.java:260) ... 23 more

Print not filled. Try to use an EmptyDataSource...!

Link to comment
Share on other sites

  • 5 months later...
  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Hi

This is Atanu. I am very new in ireport and also in java environment. In the ireport I have designed a template .like this.

please look on attach file

size=150C:Documents and SettingsAtanuMy Documentsgraph.jpeg[/img]

Now I want to plot a line graph on the basis of the each data like t1 t2 ---t5 and lcl, ucl, actual value for each row.

That I have done. Now my problem is that I have to change the color of points of t1 t2 ---t5 on the basis of Lcl and Ucl . If the value of t1 ,or t2 or ----t5 are between Ucl and Lcl the color will be blue. And if it out side of Lcl and Ucl then it will be red..

I want the following figure. Where the upper bold line is Ucl and lower bold line isLcl

size=150C:Documents and SettingsAtanuMy Documentsdata.jpeg[/img]

Actually I have got a information that for that I have to write a customizer class for chart. Also I have write it .

 

Code:

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.JREmptyDataSource;
import java.util.*;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
import net.sf.jasperreports.engine.JRAbstractChartCustomizer;
import javax.sql.*;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.renderer.category.*;
import org.jfree.chart.renderer.*;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.LevelRenderer;
import org.jfree.chart.renderer.category.LayeredBarRenderer;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;
import java.util.HashMap;
import java.util.Map;
import java.lang.String;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JRChartDataset;
import net.sf.jasperreports.engine.JRChartPlot;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.chart.axis.CategoryLabelPositions;


import org.jfree.chart.renderer.category.LineRenderer3D;
import java.awt.*;
import net.sf.jasperreports.engine.JRChart;
import net.sf.jasperreports.engine.JRChartCustomizer;
import org.jfree.chart.JFreeChart;
import net.sf.jasperreports.engine.*;
import java.awt.Color;
import net.sf.jasperreports.engine.JRChart;
import net.sf.jasperreports.engine.JRChartCustomizer;

import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.renderer.category.BarRenderer3D;
import java.lang.Object;



public class LineChartCustomizer extends JRAbstractChartCustomizer {

public void customize(JFreeChart chart, JRChart jasperChart) {

LineAndShapeRenderer renderer = (LineAndShapeRenderer) chart.getCategoryPlot().getRenderer();


renderer.setSeriesPaint(1, Color.green);
renderer.setSeriesPaint(4, Color.orange);

chart.setTitle("Setting the title "«»);
}


}

Now this customize class ok running successfully with creating jar files.

Now I want to create a logic to check the value of t1 t2 t3 t5 with respect to UCL and LCL. How can I fetch data from report.

Or is there any other way to do this.

Is there any way to pass value from iReport to customizer class ?

 

What should I do. Please please help me. It’s urget for me.

 

Any help would be greatly appreciated.

Thanks in advance.

[file name=query-37ab101e3a539a71be9c962f72749d92.doc size=49152]http://www.jasperforge.org/components/com_joomlaboard/uploaded/files/query-37ab101e3a539a71be9c962f72749d92.doc[/file]

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...