2006 IR Open Dicussion Posted August 27, 2006 Share Posted August 27, 2006 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 More sharing options...
atanupanda Posted February 6, 2007 Share Posted February 6, 2007 HiThis 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 filesize=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 isLclsize=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 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