Foros del Web » Programación para mayores de 30 ;) » Java »

iReport - Tamaño de etiqueta de un gráfico

Estas en el tema de iReport - Tamaño de etiqueta de un gráfico en el foro de Java en Foros del Web. Hola a todos: Me gustaría saber si alguno de vosotros sabe cómo cambiar el tamaño de letra de las etiquetas que aparecen dentro de las ...
  #1 (permalink)  
Antiguo 23/04/2008, 08:03
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 17 años, 6 meses
Puntos: 0
iReport - Tamaño de etiqueta de un gráfico

Hola a todos:

Me gustaría saber si alguno de vosotros sabe cómo cambiar el tamaño de letra de las etiquetas que aparecen dentro de las barritas de un gráfico en iReport. Debe de ser una cosa sencilla, pero por más que lo intento no hay manera.

En "propiedades de diseño" > "propiedades grafica" he probado a cambiar todas las fuentes de letra, pero no se modifica.

Lo único que se me ocurre es aplicar una máscara de etiqueta, pero según lo que he leido parece que esta máscara es más bien para temas de formato numerico que para fuente de letra.

¿Alguien me puede ayudar? Muchas gracias
  #2 (permalink)  
Antiguo 29/08/2008, 07:59
 
Fecha de Ingreso: marzo-2008
Mensajes: 3
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: iReport - Tamaño de etiqueta de un gráfico

hola a todos , yo me encuentro en la misma situacion ,en mi caso es una grafica de pastel , aunque me imagino que sucede igual para todas, el problema esta en que Ireport te deja manipular la fuente solamente para el Titulo , el Subtitulo y la Leyenda , pero no para las etiquetas(labels) , alguien tiene alguna idea de como hacerlo ??? ...
Saludos .
  #3 (permalink)  
Antiguo 30/08/2008, 04:37
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: iReport - Tamaño de etiqueta de un gráfico

Hola Javico.

Yo después de pegarme con ello ya lo he conseguido, resulta que iReport no baraja la opción de hacer esto, por lo que tienes que utilizar la librería de JFreeChart (iReport utiliza por debajo JasperReports, que a su vez utiliza JFreeChart para los graficos).

La idea es hacerte una clase Customizer en Java que maneje las propiedades del grafico y las modifiques como necesites.

En mi caso la clase customizer quedó de la siguiente manera:

Código:
import net.sf.jasperreports.engine.JRChartCustomizer;
import net.sf.jasperreports.engine.JRChart;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.renderer.category.StackedBarRenderer;
import java.awt.*;
import org.jfree.chart.plot.CategoryPlot;

public class GraficoChartCustomizer implements JRChartCustomizer{
	protected static final java.awt.Font ITEM_FONT = new java.awt.Font("Arial", Font.ITALIC, 6);

	public void customize(final JFreeChart chart, final JRChart jasperChart){
	   CategoryPlot plot = chart.getCategoryPlot();
	   StackedBarRenderer renderer = (StackedBarRenderer) plot.getRenderer();
	   renderer.setBaseItemLabelFont(ITEM_FONT);
	}
}
Esta clase tienes que compilarla y generar el .class, que será el que le especifiques en las propiedades del gráfico.

Espero que te haya ayudado
  #4 (permalink)  
Antiguo 02/09/2008, 08:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 3
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: iReport - Tamaño de etiqueta de un gráfico

Hola muyerina, de veras que muchas gracias por ayudarme , intente de unas cuantas maneras de darle solución al problema y no la he encontrado , yo tambien trabajo en java pero un una aplicación web, Mi duda acerca de lo que me expones es que de que manera debo compilar esa clase Customizer , donde es que me genera el .class y de que manera debo de cambiarle las propiedades, si es a codigo o en una especie de interfaz grafica.

Gracias nuevamente

Saludos.
  #5 (permalink)  
Antiguo 02/09/2008, 10:31
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: iReport - Tamaño de etiqueta de un gráfico

Hola de nuevo, Javiko:

A ver... para crear el .class de esa clase Customizer debes crear primero un nuevo proyecto Java (ya sea de Eclipse, JBuilder, Netbeans...).
Una vez creado el nuevo proyecto creas una nueva clase Java donde escribes el código (como el que te he pegado antes). En mi caso la clase se llamaba "GraficoChartCustomizer.java" y se encarga de modificar ciertas propiedades de un gráfico determinado (en concreto cambiarle el formato de letra de las etiquetas).

Bien, no solo basta con esto, además debes incluir en el proyecto las librerías que utilizas en la clase (las librerías de JasperReports, Jfree...) antes de poder compilar la clase.

Yo particularmente me he hecho un build.xml para compilar la clase, ya que luego lo meto en un paquete para poder utilizarlo en mi aplicación Web. Este build.xml lo que hace es simplemente eso, compilar la clase "GraficoChartCustomizer" y meterla en un paquete que pueda utilizar después tanto en i-Report como en mi aplicación Web.

Este paquete que has generado lo metes en el classpath de la aplicación, de forma que la aplicación pueda reconocerla cuando la introduzcas en las propiedades del informe.

Espero haberme explicado bien
  #6 (permalink)  
Antiguo 19/09/2008, 10:11
 
Fecha de Ingreso: septiembre-2008
Mensajes: 11
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: iReport - Tamaño de etiqueta de un gráfico

Hola Muyerina

Con relacion a cambiar el tamaño de la letra en las etiquetas de ireport, quisiera
preguntarte detro de ireport en que parte se hace referencia al archivo GraficoChartCustomizer.class o donde le cambio las propiedades al informe.

Ya Generé el archivo GraficoChartCustomizer.class y lo adicioné a un archivo .jar,
además adicioné el .jar al classpath dentro de ireport (options/classpath), pero no me funciona.

Te agradezco tu colaboracion-

Sandra
  #7 (permalink)  
Antiguo 22/09/2008, 02:01
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: iReport - Tamaño de etiqueta de un gráfico

Hola Snarvaez:

La clase Customizer que has creado (en mi caso GraficoChartCustomizer.class) debes referenciarla en las propiedades del gráfico, es decir, pulsas sobre el gráfico y con el botón derecho eliges "Propiedades de Diseño". Aparecerá una nueva ventana con las propiedades más importantes del gráfico.

En esta ventana puedes elegir si quieres o no que salga la leyenda, la fuente de letra de determinadas partes del gráfico, la orientación de las barras (horizontal o vertical)...
En nuestro caso la opción que nos interesa de las propiedades es "Clase del Customizer", donde tendrías que poner "GraficoChartCustomizer" (sin el .class).

Y ya está, si creaste el .jar y lo añadiste en el classpath ya no deberías de tener problemas para que te la detectara.

Un saludo
  #8 (permalink)  
Antiguo 22/09/2008, 08:13
 
Fecha de Ingreso: septiembre-2008
Mensajes: 11
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: iReport - Tamaño de etiqueta de un gráfico

Hola Muyerina

Le cuento que tuve que reemplazar StackedBarRenderer por BarRenderer
en todo el codigo suyo que esta en esta página y me funciono perfectamente.

El tipo de gráfico que utilizo son barras normales. (No en 3D).


Gracias por su ayuda.

Sandra
  #9 (permalink)  
Antiguo 22/09/2008, 09:31
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: iReport - Tamaño de etiqueta de un gráfico

Me alegro mucho de haberte podido ayudar, Sandra.

Yo utilizaba el StackedBarRenderer porque efectivamente mi grafico era diferente. Cada uno deberá de hacer ciertas modificaciones según el grafico que utilice.
  #10 (permalink)  
Antiguo 11/02/2009, 09:59
 
Fecha de Ingreso: febrero-2009
Mensajes: 1
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: iReport - Tamaño de etiqueta de un gráfico

Hola Muyerina tengo un problema y espero me puedas ayudar es sobre tu codigo que pusistes yo hago lo mismo que tu en un buil.xml y genere el .class pero lo que no entiendo es como poner ese paquete del que hablas en el class path(mi paquete es ClaseGrafico). y eso do mas hay que hacer o otros pasos mas en el grafico pie.Espero tu respuesta.
  #11 (permalink)  
Antiguo 11/02/2009, 10:32
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: iReport - Tamaño de etiqueta de un gráfico

Hola acallirgosm:

A lo que me refiero con el paquete es que el build.xml no basta con que cree el .class, sino que debe generar un paquete de extensión .jar que contenga ese .class

Para hacer esto el build.xml no solo debe contener un <javac....>, sino tambien un <jar...> que haga este paquete.

Una vez generado ese .jar vas al iReport:
Opciones > Localización de las clases (Classpath)
Ahí le das a "Añadir JAR" y le especificas la ruta donde se encuentra.

En teoría ya te debería de funcionar.
  #12 (permalink)  
Antiguo 04/06/2010, 11:01
 
Fecha de Ingreso: junio-2010
Mensajes: 1
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: iReport - Tamaño de etiqueta de un gráfico

Que tal por favor tengo un problema con el Ireport bueno yo ya tengo un reporte que contiene un gráfico TIME SERIES, pero necesito visualizar lo que son las fechas diarias y el valor por cada SHAPE. Por favor ayudenme como genero eso,
me comentaron que puedo utilizar API en JasperReport pero todavia soy muy novato en la parte de programación.


A se me olvidava intente realizar ese ejemplo esta en este foro, pero me bota este error:

Error*filling*print...*org.jfree.chart.plot.XYPlot *cannot*be*cast*to*org.jfree.chart.plot.CategoryPl ot
java.lang.ClassCastException:*org.jfree.chart.plot .XYPlot*cannot*be*cast*to*org.jfree.chart.plot.Cat egoryPlot* ****at*org.jfree.chart.JFreeChart.getCategoryPlot( JFreeChart.java:830)* ****at*GraficoChartCustomizer.customize(GraficoCha rtCustomizer.java:21)* ****at*net.sf.jasperreports.engine.fill.JRFillChar t.evaluateChart(JRFillChart.java:1294)* ****at*net.sf.jasperreports.engine.fill.JRFillChar t.evaluateRenderer(JRFillChart.java:1254)* ****at*net.sf.jasperreports.engine.fill.JRFillChar t.evaluate(JRFillChart.java:1243)* ****at*net.sf.jasperreports.engine.fill.JRFillElem entContainer.evaluate(JRFillElementContainer.java: 256)* ****at*net.sf.jasperreports.engine.fill.JRFillBand .evaluate(JRFillBand.java:482)* ****at*net.sf.jasperreports.engine.fill.JRVertical Filler.fillSummaryNoLastFooterSamePage(JRVerticalF iller.java:1060)* ****at*net.sf.jasperreports.engine.fill.JRVertical Filler.fillSummary(JRVerticalFiller.java:1025)* ****at*net.sf.jasperreports.engine.fill.JRVertical Filler.fillReportEnd(JRVerticalFiller.java:283)* ****at*net.sf.jasperreports.engine.fill.JRVertical Filler.fillReport(JRVerticalFiller.java:117)* ****at*net.sf.jasperreports.engine.fill.JRBaseFill er.fill(JRBaseFiller.java:923)* ****at*net.sf.jasperreports.engine.fill.JRBaseFill er.fill(JRBaseFiller.java:826)* ****at*net.sf.jasperreports.engine.fill.JRFiller.f illReport(JRFiller.java:59)* ****at*net.sf.jasperreports.engine.JasperFillManag er.fillReport(JasperFillManager.java:417)* ****at*net.sf.jasperreports.engine.JasperFillManag er.fillReport(JasperFillManager.java:247)* ****at*com.jaspersoft.ireport.designer.compiler.IR eportCompiler.run(IReportCompiler.java:857)* ****at*org.openide.util.RequestProcessor$Task.run( RequestProcessor.java:572)* ****at*org.openide.util.RequestProcessor$Processor .run(RequestProcessor.java:997)*
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:48.