Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Jasper Report + iReport + NetBeans 4 (http://www.forosdelweb.com/f45/jasper-report-ireport-netbeans-4-a-280528/)

laraos 21/06/2005 05:28

Agradecimiento
 
Este foro me ha sido de mucha ayuda, quiero agradecer a cada uno por que cada duda despejada me sirvio para cumplir mi objetivo, sin embargo seguire indagando y ayudando dentro de mis posibilidades. GRACIAS!!

LUISPEX 21/06/2005 11:57

iReport: Total de paginas de un reporte
 
Hola, estoy haciendo reportes con el iReport 0.5.0 y estoy teniendo problema para averiguar el valor de la cantidad total de páginas del reporte(ej: para poner “Pagina 1 de 4”, “Pagina 2 de 4”, etc), pensé q venia como una variable por defecto, pero el problema es que probé con todas las que trae pero ninguna tiene ese valor, estas son las variables que me trae y que probé:

PAGE_NUMBER - da el nº actual de página
COLUMN_NUMBER - da el nº de columna
REPORT_COUNT - da la cantidad de rows del reporte
PAGE_COUNT - da la cantidad de rows de la página
COLUMN_COUNT - da la cantidad de rows de la columna

Supongo q esto es algo comun con lo q de alguna forma secilla se debe poder extraer la cantidad total de paginas, ya q no creo q halla q calcularlo a mano, no??? :pensando:
Desde agradezco sus aportes.
Un saludo.

Shu_A 22/06/2005 01:44

Respuesta a paginado y pregunta de filtro dinamico
 
Hola a todos!!!
En primer lugar felicitaros por este foro tan bueno de jasper report / ireport.
Bueno pues quiero participar resolviendo una duda de un compañero que quería paginar los reports, poniendo "página 1 de 5", pues bueno, la solución es la siguiente:
Hay una variable por defecto del ireport que se llama PAGE_NUMBER, esta variable tiene algunos atributos modificables:
- Para obtener la pagina actual debeis poner en el atributo "evaluation time" ==> now.
- Para obtener el conjunto total de páginas que tiene el informe debereis establecer el atributo "evaluation time" ==> report

Shu_A 22/06/2005 01:51

Filtro dinamico en la consulta
 
Hola a todos!!!
Mi objetivo ahora es poder establecer un filtro desde una pagina .jsp, y en funcion de los valores que quiera filtrar el usuario, crear un predicado adecuado a ese filtro para que muestre esos registros en el informe.

El problema es que no se como hacer que el predicado en el ireport sea dinamico. De hecho creo que no se puede, pero alguien aporto una idea importante, y es poner en la consulta unicamente un parametro en el que le pasaras la consulta entera. De este modo podriamos generar la consulta dinamica en JAVA (cosa mucho mas facil) y mandarsela al ireport.

Se comento en este foro que no funcionaba porque a la consulta se le añadian las comillas simples indicando que es cadena, y que esto no funcionaba. Y alguien dio la solucion de poner $P!{SQL_QUERY}... He realizado todos estos pasos. Solo tengo un parametro en la consulta (exactamente como se indica arriba) y le paso la consulta desde JAVA, pero me sale el siguiente error:

Error preparing statement for executing the report query : $P!{SQL_QUERY}

Haber si pudierais ayudarme, ya que es importante para mi. Muchas gracias.

Saludos. (Shu)

LUISPEX 22/06/2005 06:22

Posible solucion filtrado
 
Hola, primero queria agradecerte por la respuesta, ya me parecia q tenia q ser algo sencillo q no me daba cuenta.. :cool:
Bueno con respecto a tu pregunta, nose como puedes pasar la consulta como parametro pero lo q yo hago es realizar la consulta por fuera del reporte y le paso directamente el resultado.
Aca va el ej:


String sourceFileName = "C:/Reports/reporte.jasper";
HashMap parameters = null;
//Fill the report with the ArrayList (the query result --> reportItems)
String filledFileName = JasperFillManager.fillReportToFile(sourceFileName,
parameters, new JRBeanCollectionDataSource(reportItems));

//Export the report to an html file
JasperExportManager.exportReportToHtmlFile(filledF ileName);


Saludos.

inydesystem 23/06/2005 14:07

Hola a todos.... si alguien pudiera ayudarme... cuando migro un reporte del JasperViewer en un archivo tipo Excel... me aparece todo desconfigurado en filas y columnas... y en cuanto a los FileText... en una celda con fondo negro... quien podra ayudarme?¿... desde ya muchas Gracias... estoy programando con NetBeans 4.0, mas SQL Server 2000 y con iReport 5.0.... los reportes los genero por codigo desde el mismo IDE... un saludo a todos...

inmadgm 24/06/2005 02:22

Hola... soy nueva en esto y queria preguntaros como podria diseñar con el iReport un informe si en el código java le paso al metodo fillReport un DataSource en vez de una conexión.

Object available_data[]={matri_stock,n_refer,proced,p_compra,
tip_iva,prev_rea,c_total,p_venta,f_compra,sed,f_ma tric,tot_vehic};
JList myList = new JList(available_data);
MyDataSource dataSource = new MyDataSource(myList);

JasperPrint reporte = JasperFillManager.fillReport("C:\\Documents and Settings\\Inma\\Mis documentos\\SRC\\Propios\\Listados Tecsa\\TStock.jasper", parameters,dataSource);

matri_stock, n_refer...seria vectores.

y mi clase MyDataSource seria esta:

package listados_tecsa;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
import java.util.Vector;



public class MyDataSource implements JRDataSource {
private Object[][] data; // data source structure
private int index = -1; // current record index

public MyDataSource(javax.swing.JList myList) {
/* int numero_righe=myList.getModel().getSize();
int numero_colonne=12;
data = new Object[numero_righe][numero_colonne];
for(int x=0;x<numero_righe;x++){
Object ob=myList.getModel().getElementAt(x);
Vector v=(Vector)ob;
for(int y=0;y<numero_colonne;y++){
data[x][y]=v.elementAt(y);
}
}*/
int numero_colonne=myList.getModel().getSize();
Object obj=myList.getModel().getElementAt(0);
Vector ve=(Vector)obj;
int numero_righe=ve.size();
data = new Object[numero_righe][numero_colonne];

for(int x=0;x<numero_colonne;x++){//0 al 12
Object ob=myList.getModel().getElementAt(x);
Vector v=(Vector)ob;
for(int y=0;y<numero_righe;y++){
if(v.size()==7){
data[y][x] = v.elementAt(y);
}else{
data[y][x]="";
}
}
}


}

// called in net.sf.jasperreports.engine.fill package from JRBaseFiller.next() method
// to make certain further data exist
public boolean next() throws JRException {
index++;

return (index < data.length);
}

// called in net.sf.jasperreports.engine.fill package from JRBaseFiller.next() method
// to get the right field value by means of column name an current record index
public Object getFieldValue(JRField field) throws JRException {
Object value = null;

String fieldName = field.getName();

if ("MATRÍCULA".equals(fieldName)) {
value = data[index][0];
}
else if ("Nº REF. ART.".equals(fieldName)) {
value = data[index][1];
}
else if ("PROCEDENCIA".equals(fieldName)) {
value = data[index][2];
}
else if ("PRECIO COMPRA".equals(fieldName)) {
value = data[index][3];
}
else if ("TIPO IVA".equals(fieldName)) {
value = data[index][4];
}
else if ("PREV. REACOND.".equals(fieldName)) {
value = data[index][5];
}
else if ("COSTO TOTAL".equals(fieldName)) {
value = data[index][6];
}
else if ("PRECIO VENTA".equals(fieldName)) {
value = data[index][7];
}
else if ("FECHA COMPRA".equals(fieldName)) {
value = data[index][8];
}
else if ("SEDE".equals(fieldName)) {
value = data[index][9];
}
else if ("FECHA 1ª MATRIC.".equals(fieldName)) {
value = data[index][10];
}
else if ("Nº TOTAL VEHÍCULO".equals(fieldName)) {
value = data[index][11];
}




return value;
}

} // end of class

Tambien os queria preguntar si ya no es mucho, como sería tambien el parametro "Map parameters" que le tengo que pasar al método fillReport.

Mucha gracias!!!

LUISPEX 24/06/2005 06:06

Funcion fillreport
 
En el ultimo mensaje que postié al este foro puse un ejemplo de como invocar a la funcion, y los tipos de parametros que se le pasan.. capaz q eso te da una mejor idea.
saludos.

Arcangellous 24/06/2005 09:22

Que tal a todos asi como muchos tambiene estoy iniciando con iReports y necesito saber como inicializar una variable, cuando creo una variable en la biblioteca de objetos hay una parte para inicializar initial value expression alguien me puede decir como usar esta parte para inicializar por ejemplo una variable booleana en false

no se si me explique bien espero me haya podido explicar bien
Gracias

antony_fire 24/06/2005 14:10

como hago un reporte sin lanzar ningun query, osea que solo muetro parametros en el reporte y estos parametros los envio desde java?

antony_fire 24/06/2005 14:22

Hola a todos...

Como hago un reporte sin enviar la conexion, solo enviando parametros

Gracias de antemano

inydesystem 25/06/2005 12:00

Cita:

Iniciado por antony_fire
como hago un reporte sin lanzar ningun query, osea que solo muetro parametros en el reporte y estos parametros los envio desde java?

Solo tenes que definir los parametros (nombre del parametro y $P{parametro}, y listo..... despues te queda ubicarlo donde quieras en el diseño del reporte.... :) saludos

Paola_Urizar 30/06/2005 07:17

hola:
estoy empezando con jasperreport y tengo un problema al exportarlo a html el resultado de mi rreporte sale lleno de imagenes que parecieran que no existen con muchas x rojas mi codigo es el siguiente:
response.setContentType( "text/html" );
PrintWriter outout = response.getWriter();
JRHtmlExporter exporter = new JRHtmlExporter();
Map imagesMap = new HashMap();
request.getSession().setAttribute( "IMAGES_MAP", imagesMap );
exporter.setParameter( JRExporterParameter.JASPER_PRINT, jasperPrint );
exporter.setParameter( JRExporterParameter.OUTPUT_WRITER, outout );
exporter.setParameter( JRHtmlExporterParameter.IMAGES_MAP, imagesMap );
exporter.setParameter( JRHtmlExporterParameter.IMAGES_URI, "image?image=" );
exporter.exportReport();
no se si alguien me puede ayudar

Paola_Urizar 30/06/2005 07:59

hola:
quisiera preguntar si alguien sabe si se puede enviar como parametros al reporte el ancho y alto de la pagina o los margenes
<jasperReport name="InformeUsuario" columnCount="1" printOrder="Vertical"
orientation="Portrait" pageWidth="612" pageHeight="792"
columnWidth="556" columnSpacing="0" leftMargin="28"
rightMargin="28" topMargin="28" bottomMargin="28" >

Ariel#1 30/06/2005 16:03

Importar datos de tipo Int & Double a string
 
Hola, me URGE!!!! saber como importo datos de mi Base de Datos de tipo Int y Double a string porque a la hora de compilar el Reporte en el iReport me aparece esto:

Errors compiling .\classic.jasper! it.businesslogic.ireport.ReportClassLoader@baa89c 1758563*[Thread-111]*WARN*design.JRVerifier**-*Warning*:*Element*bottom*reaches*outside*band*are a*:*y=0*height=1*band-height=0 net.sf.jasperreports.engine.JRException:*Errors*we re*encountered*when*compiling*report*expressions*c lass*file: 1.*Cannot*cast*from*Integer*to*String ****************value*=*(java.lang.String)(((java. lang.Integer)field_IdProducto.getValue())); ************************<------------------------------------------------------------------> 2.*Cannot*cast*from*Integer*to*String ****************value*=*(java.lang.String)(((java. lang.Integer)field_IdProducto.getOldValue())); ************************<---------------------------------------------------------------------> 3.*Cannot*cast*from*Integer*to*String ****************value*=*(java.lang.String)(((java. lang.Integer)field_IdProducto.getValue())); ************************<------------------------------------------------------------------> 3*errors




QUE PROPIEDAD TENGO QUE CAMBIAR PARA QUE ME LLAME LOS DATOS DE TIPO INT Y DOUEBLE

GRACIAS

maob85 30/06/2005 20:54

Error cannot resolve method fillReport
 
Beunas noches compañeros, he tratado de seguir sus pasos para llamar desde un jsp al reporte y no me reconoce los metodos cuando importo los paquetes... Sea cual sea el metodo que llame se produce el siguiente error:

Ha tenido lugar un error en la línea: 169 en el archivo jsp: /prueba/jasper.jsp
Error de servlet generado:
C:\Tomcat 5.0\work\Catalina\localhost\jsp-examples\org\apache\jsp\prueba\jasper_jsp.java:283 : cannot resolve symbol
symbol : method fillReport (java.lang.String,java.util.Map,pruebaconexion.Con exionDB)
location: class net.sf.jasperreports.engine.JasperFillManager
JasperPrint prin =JasperFillManager.fillReport(reportFile.getPath() , parameters, bd1);
^
1 error

Me pasa tambien si trato de pasar el archivo a byte para llevarlo a pdf...

alguna idea??? es urgente..... Gracias

Ariel#1 01/07/2005 01:30

y AHORA QUE.......
 
Ya descubri el truco, pero ahora en el codigo que Destruktor puso

Código:

try
    {

        //Ruta de Archivo Jasper
        String fileName="C:\\reports\\rep_cli.jasper";
        //Ruta de archivo pdf de destino
        String destFileNamePdf="C:\\reports\\rep_cli.pdf";
        //Ruta de archivo xls de destino
        String destFileNameXls="C:\\reports\\rep_cli.xls";

        //Pasamos parametros al reporte Jasper.
        Map parameters = new HashMap();
        parameters.put("sql_query", new String("select * from clientes"));
       
       
        //Preparacion del reporte (en esta etapa se inserta el valor del query en el reporte).
        JasperPrint jasperPrint=JasperFillManager.fillReport(fileName,  parameters, getConnection());

        //Creación del PDF
        JasperExportManager.exportReportToPdfFile(jasperPr  int, destFileNamePdf);

        //Creación del XLS
        JRXlsExporter exporter = new JRXlsExporter();
        exporter.setParameter(JRExporterParameter.JASPER_P  RINT, jasperPrint);
        exporter.setParameter(JRExporterParameter.OUTPUT_F  ILE_NAME, destFileNameXls);
        exporter.setParameter(JRXlsExporterParameter.IS_ON  E_PAGE_PER_SHEET, Boolean.TRUE);
        exporter.exportReport();

        System.exit(0);
    }
    catch (Exception e)
    {
            System.out.println(e.getMessage());
    }



AL COMPILAR TODO ESTÀ BIEN PERO A LA HORA DE MANDAR LLMAR EL REPORTE, ME MANDA DECIR QUE NO ENCUENTRA LA RUTA ( EN COLOR VERDE) QUE LA MANDO LLAMAR AQUI (COLOR ROJO) .
COMO ESTA LA COSA AMIGO DESTRUKTOR :no: .

Ariel#1 01/07/2005 01:45

definir la consulta y pasarle parametros
 
Cita:

Iniciado por DestruKtor
Olvidemos lo de las fuentes por ahora,
Lo que me inquieta es como pasarle parametros a una consulta
puedo definir la consulta y pasarle parametros parametros que eh definido asi:

select * from clientes where idclienter = $P{id}
select * from clientes where idclienter = $P{id} and ciudad = $P{ciudad} order by $P{orden}

hasta hay todo bien, pero la cosa se complica por ejemplo si tengo muchos filtros que mandarle a una consulta, por lo que pensaba pasar mejor la consulta completa
en un parametro

para ello defini un parametro $P{query} y le asigne valor por defecto = "select * from clientes" para poder visualizar los datos y ver el informe

y en query del ireport solo coloco el parametro $P{query}, me arroja el error :
Syntax error en o cerca de "$1" ahora si elimino las "" del valor por defecto del parametro que es lo que asumo esta molestando en la consulta no deja compilar, alguna idea de como solucionar esto uso el iReport 0.4.1



LOS PARAMETROS LOS PUEDES DEFINIR DENTRO DE LA SENTENCIA SQL HE INCLUSO LLAMRLOS MEDIANTE UNA VARIABLE :cool:

maob85 01/07/2005 08:20

Garabatos
 
Ya encontre el error que me daba pero ahora al imprimir el archivo byte en pantalla me aparece el basurero que el genera sin ningun tipo de formato... Intente lo que escribieron para otra persona que le paso lo mismo y nada.... Que puedo hacer?

maob85 01/07/2005 12:06

Listo... Ahora ¿if.... then?
 
Buenas tardes, ya resolvi... bueno en realidad se resolvio solo... jejeje. Ahora tengo OTRA duda.... Como hago condicionales en iReport?... yo hice un par de variables que me funcionaron en un reporte pero en otro no...

F{campo}.toString=="valor"?(new String()):"String uno"
F{campo2}.toString=="valor2"?(new String()):"String dos"

y las coloque en un texto dinamico, me funciono de maravilla pero ahora no lo esta haciendo en un reporte nuevo... ideas???

LUISPEX 01/07/2005 12:14

Maob: si los parametros son String quizás te convenga utilizar equals, tambien en lugar de toString generelmente se utiliza String.valueOf(F{Campo}).
good luck!!

onetwo 01/07/2005 13:18

hola
 
tengo un problema con el codigo que esta al inicio del foro no se bien como crear el reporte con el ireport alguien me puede asesorar al compilar el progama me sale el siguiente error : Errpr loading object from file C:\mi ubicacion

gracias

onetwo 01/07/2005 13:22

si alguien desea contestarme mi correo es [email protected] nota EL PUNTO JASPER ES EL QUE NO PUEDO CARGAR

OscarEscobar 01/07/2005 14:34

solucion a muchas imagenes
 
Cita:

Iniciado por Paola_Urizar
hola:
estoy empezando con jasperreport y tengo un problema al exportarlo a html el resultado de mi rreporte sale lleno de imagenes que parecieran que no existen con muchas x rojas mi codigo es el siguiente:
response.setContentType( "text/html" );
PrintWriter outout = response.getWriter();
JRHtmlExporter exporter = new JRHtmlExporter();
Map imagesMap = new HashMap();
request.getSession().setAttribute( "IMAGES_MAP", imagesMap );
exporter.setParameter( JRExporterParameter.JASPER_PRINT, jasperPrint );
exporter.setParameter( JRExporterParameter.OUTPUT_WRITER, outout );
exporter.setParameter( JRHtmlExporterParameter.IMAGES_MAP, imagesMap );
exporter.setParameter( JRHtmlExporterParameter.IMAGES_URI, "image?image=" );
exporter.exportReport();
no se si alguien me puede ayudar

Hola paola: lo que necesitas agregarle a tu codigo es lo siguiente...

exporter.setParameter(JRHtmlExporterParameter.IS_U SING_IMAGES_TO_ALIGN, new Boolean(false));

con esto te quitara todas las imagenes, tendras problemas si tu reporte incluye alguna imagen por que con este comando se inabilitan...

espero que te sirva. :cool:

OscarEscobar 01/07/2005 14:42

ver un chart
 
Hola a todos:

He podido hacer un reporte con un chart mediante la herramienta que trae el IReport y funciona muy bien. pero al enlazar el reporte con mi programa en Java, me muestra el reporte pero no la grafica, por que al compilar el reporte no genera la carpeta con la imagen.

que puedo hacer. ya inclui los *.jar y no me genera error pero tampoco la imagen.....

alguien sabe que puedo hacer

OscarEscobar 01/07/2005 14:52

inicializar un campo boolean
 
Cita:

Iniciado por Arcangellous
Que tal a todos asi como muchos tambiene estoy iniciando con iReports y necesito saber como inicializar una variable, cuando creo una variable en la biblioteca de objetos hay una parte para inicializar initial value expression alguien me puede decir como usar esta parte para inicializar por ejemplo una variable booleana en false

no se si me explique bien espero me haya podido explicar bien
Gracias

Arcangellous:

debes colocar el siguiente codigo

new Boolean(false)

en el campo initial value expression, escribelo tal cual, igual te doy los de los otros tipos, los mas usados

new Double(100)
new String("Hola mundo")

espero que te sirvan

Saludos

Oscar :cool:

onetwo 01/07/2005 15:01

porfa.. contesten es para mi tarea.... :pensando:

onetwo 01/07/2005 16:14

puedes compartir tu codigo oscar escobar

IO_Exception 04/07/2005 09:22

Holas

Soy nuevo en esto de los Reports. Antes de nada agradecer a todos los colaboradores del foro su trabajo. Este foro me ha ayudado mucho y me gustaría contribuir con algunas preguntas y repsuestas.

onetwo:
:P Lo que te seguramente te este pasando es que tienes diferentes librerías de Jasper en el iReport y en el visualizador, es decir, que compilas el report con una librerias y lo visualizas con otra. Fíjate en el directorio lib de iReports tendrás una librería con este nombre: "jasperreports-0.6.7.jar" (la que viene por defecto con el iReports) y en el proyecto donde estes visualizando usarás seguramente una librería con nombre "jasperreports-0.6.8.jar" (que es la última que hay en la web de JasperReports)

Solución:
Yo lo que he hecho es coger todas las últimas versiones de las librerías que se necesitan (las que vienen en la web de JasperReports) y meterlas en la carpeta "lib" de iReports. Borré la "jasperreports-0.6.7.jar" que venía con el iReports y renombré la "jasperreports-0.6.8.jar" como "jasperreports-0.6.7.jar" (todo esto dentro de la carpeta "lib" del iReports)

Con eso me funcionó ^^

noeliak 05/07/2005 09:25

hola, queria consultarles algo.
Tengo tablas dinámicas en java (JdbTables) y queria ver si se pueden pasar de alguna forma al iReport. Intente con el custom JRDataSource, pero no pude hacerlo.
Alguno tiene idea de como hacerlo?
gracias, noelia


La zona horaria es GMT -6. Ahora son las 14:01.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2025, Jelsoft Enterprises Ltd.