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/)

JCarlos24 25/08/2005 11:40

Hola a todos soy completamente nuevo en esto del jasperReport, realice un sistema de captura de informacion con NetBeans y se lo envio a un archivo de excel con ayuda de las librerias de POI de jacarta, lo que nesecito hacer es que cuando se termine de capturar los datos se pueda imprimir la informacion directamente sin tener el archivo ya que se pude modificar la inf. lo he intentado con iReport pero resulta lo mismo. lo que quisiera saber es si poedo imprimir la informacion capturada desde iReport.
gracias.

yimenz 25/08/2005 11:50

Concatenar dos PDF Resuelto
 
Desktructor ya pude concatenar dos pdf en Uno.

De este modo se pueden hacer dos reportes diferentes y unirlos en uno solo, aca les dejo el codigo, esta explicado.

Codigo:
Código:

<%@ page import = "BaseDatos.Acceso" %>
<jsp:useBean id = "acceso" scope="page" class="BaseDatos.Acceso"/>

<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.design.*" %>
<%@ page import="net.sf.jasperreports.engine.data.*"%>
<%@ page import="net.sf.jasperreports.engine.export.*"%>
<%@ page import="net.sf.jasperreports.engine.util.*"%>
<%@ page import="net.sf.jasperreports.view.*"%>
<%@ page import="net.sf.jasperreports.view.save.*"%>
<%@ page import="com.lowagie.text.pdf.PdfCopyFields"%>
<%@ page import="com.lowagie.text.pdf.PdfReader"%>

<%@ page import="java.sql.Connection"%>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>

<html>
<head><title>Generando Reporte Historia de Ingreso...............</title>
<head>

<%
/*Declaro e inicializo la variable codigobebe, para enviarla como parametro*/
String codigobebe="0";
if (request.getParameter("codigobebe")!=null)
        codigobebe = request.getParameter("codigobebe");
/*FIN Declaro e inicializo la variable codigobebe, para enviarla como parametro*/                       

try{
        String ResultadoConexion = acceso.Conectar();
        if ("Ok".equals(ResultadoConexion))
        {
                        /*<Obtengo una conexión de la Base de datos>*/
                Connection conn = acceso.getConexion();

                        /*<Cargamos el jasperreports-0.6.7.jar OK>*/
                System.setProperty("jasper.reports.compile.class.path", application.getRealPath("/WEB-INF/lib/jasperreports-0.6.7.jar") +
                                        System.getProperty("path.separator") +
                                        application.getRealPath("/WEB-INF/classes/"));

        /*<Primer reporte>*/
                /*<Compilamos el primer reporte historiaIngreso.jrxml>*/
                        System.setProperty("jasper.reports.compile.temp", application.getRealPath("/WEB-INF/reportes/"));
                        JasperCompileManager.compileReportToFile(application.getRealPath("/WEB-INF/reportes/historiaIngreso.jrxml"));
                /*<FIN de compilar el primer reporte historiaIngreso.jrxml>*/
                       
                /*<Obtenemos el archivo .jasper historiaIngreso.jasper>*/
                        File reportFile = new File(application.getRealPath("/WEB-INF/reportes/historiaIngreso.jasper"));
               
                /*<Enviamos los parametros al reporte, en este ejemplo utilizo los mismos parametros para los dos reportes>*/
                        Map parameters = new HashMap();
                        parameters.put("CODIGO_BEBE",codigobebe);
               
                /*<Generamos el reporte en PDF, se guarda en una variable tipo bytes>*/
                        byte[] bytes = JasperRunManager.runReportToPdf( reportFile.getPath(), parameters, conn ); //Generar reporte PDF
        /*<FIN Primer reporte>*/
       
        /*<Segundo reporte>*/
                /*<Compilamos el segundo reporte historiaIngreso2.jrxml>*/
                        JasperCompileManager.compileReportToFile(application.getRealPath("/WEB-INF/reportes/historiaIngreso2.jrxml"));
                /*<FIN de compilar el segundo reporte historiaIngreso2.jrxml>*/
               
                /*<Obtenemos el archivo .jasper historiaIngreso2.jasper>*/
                        File reportFile2 = new File(application.getRealPath("/WEB-INF/reportes/historiaIngreso2.jasper"));
               
                /*<Generamos el reporte en PDF, se guarda en una variable tipo bytes>*/
                        byte[] bytes2 = JasperRunManager.runReportToPdf( reportFile2.getPath(), parameters, conn ); //Generar reporte PDF
        /*<FIN Segundo reporte>*/
               
                /*<Concatenamos los dos reportes>*/
                        PdfReader reader1 = new PdfReader(bytes);
                        PdfReader reader2 = new PdfReader(bytes2);
                        PdfCopyFields copy = new PdfCopyFields(new FileOutputStream(application.getRealPath("/WEB-INF/reportes/historiaIngreso3.pdf")));
                        copy.addDocument(reader1);
                        copy.addDocument(reader2);
                        copy.close();
                /*<Concatenamos los dos reportes>*/
               
                /*<Ahora debemos leer el reporte que creamos en /WEB-INF/reportes/ y enviarlo al navegador para su descarga>*/
               
                        /*<Se manda como tipo pdf al navegador>*/
                                response.setContentType("application/pdf");
                        /*<Se envia como adjunto, para que aparesca la ventana de Abrir con ó Guardar como>*/
                                response.setHeader ("Content-Disposition", "attachment;filename=\"historiaIngreso3.pdf\"");

                        /*<Se lee el Archivo pdf que creamos>*/
                                InputStream archivo = new FileInputStream(application.getRealPath("/WEB-INF/reportes/historiaIngreso3.pdf"));
                        /*<Se crea una variable de salida para el navegador>*/
                                ServletOutputStream outs = response.getOutputStream();
                       
                        /*<Se lee el contenido del Archivo PDF y se envia a la variable de salida>*/
                                int bit = 256;
                                int i = 0;
               
                                while ((bit) >= 0) {
                                bit = archivo.read();
                                outs.write(bit);
                                }
                               
                        /*<Forzamos a enviar los datos al navegador>*/
                                outs.flush();
                        /*<Se cierra la variable de salida y el archivo PDF>*/
                                outs.close();
                                archivo.close();
  }
  if ("NO OK".equals(ResultadoConexion))
                out.println("<font color = 'red'>No se pudo conectar a la base de datos, comuniquese con el desarrollador de la aplicación.</font>");
}catch (JRException e)
{out.println("Error:" +e.getMessage());}
catch (Exception e)
{e.printStackTrace(); out.println("Error2:" +e.getMessage());
}
%>
<body onLoad="window.document.close();">
</body>
</html>

Este codigo basicamente lo que hace es lo siguiente: carga el jasperreports.jar para luego compilar y ejecutar dos reportes, despues concatena estos dos reportes en un pdf y finalmente lo envia al navegador.

anjaarrin2005 25/08/2005 14:54

iReport
 
Hola a todos, veo que son muy buenos en esto, mi pregunta es si puedo colocar una marca de agua en el reporte?

Otra cosa, ya me muestra el reporte en un pdf pero por alguna razon se abren dos ventanas del acrobat y en netbeans muestra el siguiente error:

MonitorFilter::java.lang.IllegalStateException: getOutputStream() ya ha sido llamado para esta respuesta

Les agradezco alguna sugerencia.

yimenz 25/08/2005 21:55

JCarlos, cuando lo generas con el ireport, lo puedes mandar a imprimir una vez habra el reporte en pdf.....es decir, con el acrobat reader lo mandas a imprimir.


anjaarrin, muestra el codigo a ver si te podemos ayudar ...pienso que es necesario ver el codigo, seguro hay algo redundante hay.

ojvm_24 26/08/2005 08:35

buenas tardes a todos, estoy iniciandome con jasper reports apenas he podido hacer que un .pdf se ejecute en el navegador, ok este reporte no esta ligado a una bd unicamente tiene un cudro de texto si este reporte lo ejecuto dentro de el ireport se visualiza correctamente el reporte pero el problema es que cuando se muestra dentro del navegador (mediante un jsp) no muestra nada, esta en blanco, les agradecere cualquier ayuda que puedan proporcionarme.

ojvm_24 26/08/2005 08:37

visualizar texto en el reporte
 
buenas tardes a todos, estoy iniciandome con jasper reports apenas he podido hacer que un .pdf se ejecute en el navegador, ok este reporte no esta ligado a una bd unicamente tiene un cudro de texto si este reporte lo ejecuto dentro de el ireport se visualiza correctamente el reporte pero el problema es que cuando se muestra dentro del navegador (mediante un jsp) no muestra nada, esta en blanco, les agradecere cualquier ayuda que puedan proporcionarme.

yimenz 26/08/2005 10:36

ojvm_24, fijate en todo el foro, ya se han posteado codigos para visualizar un reporte en jsp. Cual es el codigo que usas para visualizar tu reporte ?

ojvm_24 27/08/2005 16:25

GRACIAS yimenz
 
lo de el codigo si he visto los ejemplos que han puesto en foro, de hecho el codigo que estoy usando lo obtube de aqui, claro tambien checando uno que otro tutorial, mira como comento en mi post anterior he diseñado un reporte sin acceso a bd lo unico que tiene es un campo de texto en el encabezado, si lo lanzo dentro de la aplicacion si se visualiza pero si lo no se ve si lo ejecuto desde mi .jsp.

este es el codigo

<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>

<%

Connection conexion;
String STRING = "jdbc:mysql://localhost/tesoreria";
Class.forName("com.mysql.jdbc.Driver").newInstance ();
conexion = DriverManager.getConnection(STRING,"root","test");
byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath (), null, conexion);

response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
%>


muchas gracias por la ayuda que me puedas dar..

ojvm_24 27/08/2005 16:47

{yimenz} ok, ya funciono¡¡¡
 
solo era una opcion dentro las propiedades del proyecto, no era algo de codigo, por si te interesa la opcion es proyecto--> opciones del proyecto --> more, estando ahi en la opcion "cuando no haya datos" seleccionas blank page

y listo ya aparecera el encabezado aunque el reporte no tenga datos, bien ahora la parte mas importante, que me muestre datos de la bd. ya te comentare como me fue.

ojvm_24 27/08/2005 17:50

esto parece chiste pero ya funciono¡¡¡
 
ok, el reporte ya funciona correctamente, unicamente tengo 2 dudas.

1.- le estoy pasando un parametro a mi reporte este lo toma y me muestra los registros relacionados, aparentemente bien pero la duda es la siguiente, tengo definido un query de la siguiente forma
select * from contrarecibo where nocontrarecibo LIKE '$P!{nocontrarecibo}%'
si tiene el "like" si retorna datos pero si le pongo
select * from contrarecibo where nocontrarecibo = '$P!{nocontrarecibo}%'
no me retorna nada, el parametro se llama "nocontrarecibo" y dentro del campo"default value expresion" tengo esta expresion "new String ("L11")"
no se si sea correcto ya que si se la quito me marca error.

2- la segunda duda es como le paso un parametro de manera dinamica a mi .jsp , por el momento deje hardcodeado el parametro asi.
Map param = new HashMap();
param.put("nocontrarecibo","L10");

pero como puedo pasar el valor, ya vi unos ejemplos de como obtenerlo. algo asi como request.getParameter(parametro);, pero no se exactamente como enviarlo.

muchas gracias y estoy feliz por que alfin pudo funcionar mi reporte, por cierto el error era, supongo yo, que el ejemplo que estaba utilizando tenia un codigo para cierta version del jasper, ayer en la noche baje la actualizacion 0.5.1 que trae la ver. 1.0.1 del jasper y una nueva del itext y asi fue como funciono.

anjaarrin2005 30/08/2005 13:22

yimenz mira mi codigo
 
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.data.*" %>
<%@ page import="net.sf.jasperreports.engine.fill.*" %>
<%@ page import="net.sf.jasperreports.engine.export.*" %>
<%@ page import="net.sf.jasperreports.engine.util.*" %>
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.view.*" %>
<%@ page import="java.net.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>


<%
try
{
ResultSet rs = null;
Statement st = null;
String sql = null;
String driver = "org.postgresql.Driver";
String connectString = "jdbc:postgresql://localhost:5432/HC";
String user = "postgres";
String password = "1234";
Class.forName(driver);
Connection conn = DriverManager.getConnection(connectString, user, password);
System.setProperty("jasper.reports.compile.class.p ath", application.getRealPath("/WEB-INF/lib/jasperreports-0.6.7.jar") + System.getProperty("path.separator") + application.getRealPath("/WEB-INF/classes/"));
System.setProperty("jasper.reports.compile.temp", application.getRealPath("/reports/"));
JasperCompileManager.compileReportToFile(applicati on.getRealPath("/reports/citasAtendidas.jrxml"));
File reportFile = new File(application.getRealPath("/reports/citasAtendidas.jasper"));
Map parameters = new HashMap();
byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath (), parameters, conn);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();

}
catch (JRException e)
{
System.out.println("Error:" +e.getMessage());}
catch (Exception e)
{
e.printStackTrace();
System.out.println("Error2:" +e.getMessage());
}


%>


Este es mi codigo y abre 2 ventanas del acrobat 7.0 y sale el error de:

MonitorFilter::java.lang.IllegalStateException: getOutputStream() ya ha sido llamado para esta respuesta

Tambien deseo saber como convierto una imagen en una marca de agua. Gracias. :adios:

JCarlos24 30/08/2005 16:40

Hola Yimenz, primero que nada gracias por tu comentario, lo que queria saber es si es posible imprimir el reporte desde java sin tener que abrir acrobat, no me explique bien,
ahora tengo otro problema necesito saber si es posible pasarle parametros al reporte pero NO de la base de datos, ni de una funcion, sino de un archivo.
se podra?
bueno muchas gracias a todos

anjaarrin2005 31/08/2005 06:43

JCarlos24
 
Si se pueden pasar parametros que no contienen datos de la BD, defines en ireport los parametros en: ver - parametros del report, le das un nombre y seleccionas el tipo, en java envia el parametro con:

Parameters.put("nombre_parametro","valor")

De esta manera funciona bien, espero te sirva. :adios:

ovejota 31/08/2005 13:59

buenass. una consulta con respecto a pasar una consulta completa por parámetros:
¿cómo hago para refereciar a un campo del resultado de la consulta desde el ireport ?
es decir la consulta sería: $P!{consulta}
y en la banda detail del ireport muestro el campo $F{nombres} (que supuestamente está en el select de la consulta)

esto me da un error al compilar ya que no encuentra al campo "nombres"
espero que alguien sepa como se hace esto. Desde ya muchas gracias

yimenz 31/08/2005 17:37

ojvm_24, me alegra que hayas podido solucionar tu problema. Bueno al grano.

con relacion a tu primera pregunta, a mi parecer es esencial que le pongas
un valor por defecto a tu parametro, si es un String puedes hacerlo asi como lo estas
haciendo "new String ("L11")" ó simplemente poniendo ""L11""

Al utilizar el "LIKE" y el "%" al final en tu consulta, "LIKE '$P!{nocontrarecibo}%"
el resultado que te trae son todos los nocontrarecibo que empiecen por "L11", en el ejemplo
que pones. Si cambias el "LIKE" por "=" en la misma consulta "= '$P!{nocontrarecibo}%"
el resultado que se obtiene es buscar en el campo nocontrarecibo exactamente
la palabra "L11%" y es por este motivo que no te devuelve nada en tu consulta,
no encuentra ninguna palabra con este nombre.

la segunda duda, es muy facil pasar valores por parametros de forma dinamica. te
pongo un ejemplo muy sencillo:

/*Declaro e inicializo la variable codigobebe, para enviarla como parametro*/
String codigobebe="0";
if (request.getParameter("codigobebe")!=null)
codigobebe = request.getParameter("codigobebe");

/*<Enviamos los parametros al reporte>*/
Map parameters = new HashMap();
parameters.put("CODIGO_BEBE",codigobebe);

----------

anjaarrin2005

No me hago la idea de lo que es una "imagen en marca de agua" =)
-----------

JCarlos24

Carlos imprimir el reporte desde java sin abrir el acrobat si se debe poder,
habria que buscar en la documentacion de java como manipular la impresora desde java
aunque pienso que resultaria mas complicado pero no imposible.

Pasar parametros desde un archivo tambien se puede, mira hay el concepto seria mas o menos
abrir el archivo, leerlo y enviar lo que desees como parametro al reporte.
Fijate en la clase File, esta te puede ayudar. Desgraciadamente no tengo un ejemplo,
hasta ahora no me he enfrentado con ninguna de las dos cituaciones que dices

-----------

JCarlos24 31/08/2005 18:15

Hola a todos en especial a los que han redpondido mis mensajes, ahora voy a explicar un poco mas mi sictuacion:

Numero 1.- lo que nececito hacer es una aplicacion de escritorio(nada que ver con aplicaciones web, ni con bases de datos) ,entonces, hice una aplicacion con java Swing la cual me genera un archivo de texto, pero tambien nececito que dicha aplicacion imprima el formato con los datos capturados, asi es que necesito mandarle la inf del archivo generado al formato del reporte.

Numero2.- se me hace interesante lo de las bases de dato asi es que tomando codigo que an posteado en este foro hice un ejemplo el codigo es el siguiente:

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.*;
import net.sf.jasperreports.engine.util.*;
import net.sf.jasperreports.view.*;
import java.sql.*;

import java.io.*;
import java.util.*;



public class Jasper {


public Jasper() {
}


public static void main(String[] args) {


try
{

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

//Pasamos parametros al reporte Jasper.
Map parameters = new HashMap();
parameters.put("sql_query", new String("select * from cat_aduanas where c_adu < '5';"));


//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);
}
}

/**Metodo para crear la conexion a DB*/
private static Connection getConnection() throws ClassNotFoundException, SQLException {
//Configuración de la conexión.
String driver = "com.mysql.jdbc.Driver"; //"org.postgresql.Driver";
String connectString = "jdbc:mysql://172.16.1.45/saaibase"; //"jdbc:postgresql://192.168.1.7:5432/bdtest";
String user = "root";
String password = "";

Class.forName(driver);
Connection conn = DriverManager.getConnection(connectString, user, password);

//Retornamos la conexión establecida.
return conn;
}

}

pero al momento de ejecutarlo me muestra el siguiente error:

net.sf.jasperreports.engine.JRException: Error loading object from file: C:\Report.jasper



ya revice las librerias y parece que todo esta en orden pero no logor hacer que funcione, si alguien me puede ayudar se los agradecere.
gracias

anjaarrin2005 01/09/2005 13:14

Marca de agua
 
Es una imagen que esta en fondo de la pagina, algo asi como las imagenes del papel membreteado que usan algunas empresas. :-(

ojvm_24 01/09/2005 14:09

gracias y disculpa.
 
no habia ingresado a los foros desde hace unos dias, bueno, mira ya mas o menos estoy manejando lo de los reportes afortunadamente por el momento no son muy complicados (cheques y listados) probablemente para el futuro empiese con sub-reportes.

voy a poner en practica el consejo que me das hacerca de la busqueda, lo de los parametros si me funciono.

muchas gracias por tu tiempo y por compartir tus conocimientos con la comunidad espero pronto estar a un buen nivel para tambien aportar.

yimenz 01/09/2005 19:58

Cita:

Iniciado por anjaarrin2005
Es una imagen que esta en fondo de la pagina, algo asi como las imagenes del papel membreteado que usan algunas empresas. :-(

Las he visto pero no sabia que se llamaban marca de agua :-D

Las podes hacer de la siguiente manera:

Edita la imagen que quieres poner en marca de agua con el Photoshop. Este programa te permite poner transparente la imagen.

Pasos a seguir, Abre el Photoshop y crea un nuevo archivo (File-New) en la ventana que te sale, cambia el nombre del archivo, cambiale los campos Width, Height a tu gusto (ponlos del tamaño de la imagen) donde dice Resolution ponle 72 pixels/inch y en Background Contents coloca Transparent. dale clic en Ok. Terminado esto abre tu imagen (File-Open) una ves que la abras seleccionala y arrastrala al proyecto o archivo que creaste anteriormente. Teniendo tu imangen en el archivo que creaste al principio, ahora la opacaremos un poco para darle la apariencia de marca de agua. Ve a Layer-Layer Style-Blending Options Hay un campo que se llama Opacity, lo pones en 50 % click en Ok. Guarda la imagen (File-Save As..) Donde dice nombre ponle el que quieras y donde dice Format cambialo a JPEG. Despues da click en Guardar, Click en Ok y listo terminamos con el Photoshop.

Ahora nos vamos al ireport. Todo reporte tiene una Estructura (Document structure) para realizar lo de marca de agua lo que nos interesa es la parte de background.

Primero esta parte pon la del tamaño que desees (Entre mas grande mejor) una vez que tengas el espacio que quieres. Selecciona Image Tool e ingresa una imagen a tu reporte en la parte que dice background dale doble click a la imagen que ingresaste para verle las propiedades y da click en la pestaña
Image y despues en Find para buscar la imagen que deseas poner en tu reporte. Busca la imagen que creamos anteriormente y dale click en OK. EN la parte de Scale Image ponle FillFrame.

Ejecuta el reporte y veras como se ve con un efecto de marca de agua.

Recuerda señalar el atributo de transparencia a todos los static text y textfield que vallas a ingresar.

anjaarrin2005 02/09/2005 07:07

Gracias yimenz
 
Hola, gracias por tu ayuda, ya pude colocar la imagen...

Otra cosa, ya genero reportes en pdf y con el visor de ireport, pero necesito generarlos en HTML, si sabes cual es el codigo te agradezco tu respuesta; ademas como se hacen los gráficos estadísticos con ireport?

Gracias.

Alejo® 02/09/2005 08:30

Comenzando y Aprendiendo....
 
Soy nuevo un poco en esto del Ireports, y aunque ya he creado un par de reportes en el, creanme que han sido tan pobres que daria lastima verlos.
Pero bueno, un poco mas al grano.... le agradecería a alguien que me colaborara sobre una duda que tengo....

Me pasa lo siguiente

Tengo un Encabezado

Rompimiento por cliente

Detalle

.... El problema es que al intentar totalizar un campo que esta en la linea del detalle si me deja, peo cuando intento totalizar una linea que esta en la linea del rompimiento no me da el valor que es..... necesito totalizarlas al final del reporte...
(Por cierto lo estoy haciendo con una variable) si hay otra forma me encantaria conocerla
Si me pueden colaborar MIL GRACIAS............



:cool: Alejo®

anjaarrin2005 02/09/2005 10:42

Chart tool
 
Gracias por tu ayuda yimenz, ya pude hacerlo, sin embargo estoy con problemas con los graficos estadisticos, ya los genera ireport pero no lo hemos podido hacer desde netbeans, y sale error en la clase que genera el ireport:


C:\Programa\reports\graficoestadistico.java:136: package it.businesslogic.ireport does not existC:\Programa\reports\graficoestadistico.java:9 6: package it.businesslogic.ireport does not exist

Te agradezco si sabes algo de esto

Bye. :pensando:

yimenz 02/09/2005 11:24

anjaarrin2005

prueba que la version del ireport.jar y de todas las librerias que uses se han las mismas que estan en la carpeta lib del ireport. Con respecto al error del Netbeans, prueba Seteando (colocando) en el CLASSPATH el ireport.jar ó si no mira en las opciones del Netbeans a ver como agregas librerias.

Espero lo soluciones con esto
----------------

Alejo

Una forma que se me ocure para resolver tu problema, es utilizando parametros. Si lo haces desde un JSP, totalizas el campo detalle y lo mandas como parametro al reporte.

Si no lo haces desde un JSP seria la misma historia, conectas a la base de datos, realizas tu consulta totalizas la variable detalle o la que quieras y despues la mandas por parametro al reporte.

Alejo® 02/09/2005 13:04

Gracias...!
 
Oye Yimenz muchas gracias....

Si, eso lo entiendo, pero lo que pasa es que el problema que tengo es a la hora de ir a crear la variable que tendra el SUM del campo. porque si esta, esta dentro del detalle no me pone problema, pero si esta al mismo nivel del rompimiento me la totaliza mal....

o.... no se si es que estoy creando mal la variable..... no conozco otra forma de totalizarla mas que haciendo un sum al campo........ hay otra forma?

aaa y recuerda, que el problema anexo que tengo, es que necesito que solo me salga al final del reporte, no que me salga cada rompimiento, por eso creo que debe ir hubicada en el summary o no????

:cool: Alejo®

yimenz 02/09/2005 16:41

Para que te salga solo al final, necesitas ponerla en el Page Footer.

Con la idea que tuve de pronto no me supe explicar bien, sumas todo con una consulta a la base de datos "SELECT Count(campo_tabla) total FROM tabla" el resultado que te devuelve lo guardas en una variable "variable = rs.getString("total")" y lo mandas como parametro de la siguiente forma al momento de compilar y generar el reporte

/*<Enviamos los parametros al reporte>*/
Map parameters = new HashMap();
parameters.put("TOTAL_CALCULADO",variable);

Y recuerda crear en el ireport la variable TOTAL_CALCULADO de tipo String

Alejo® 05/09/2005 09:17

Mil Gracias
 
Oye Yimenz de verdad mil gracias, ya me funciono, claro, no lo hice con un count porque no necesitaba saber la cantidado de registros, sino que me toco utilizar un SUM porque necesitaba totalizar unos valores, bueno..... Muchisimas gracias :cool:

Alejo® :cool:

Alejo® 05/09/2005 09:40

Hola... de nuevo yo
 
Otra inquietud para aquellos que me puedan colaborar...
Yo tengo un reporte creado en Reports6.0 en Oracle y yo quiero convertirlo en un reporte Java, asi que decidi comenzar a pasarlo por el Jasper iReports5.0 y el problema que tengo es que muchos de los campos que alli tengo son formulas, incluso algunas de ellas con Select anidados, etc.

Existe alguna forma en la cual yo pueda ingresar estas "Formulas" al Ireports???????????

Gracias....


:cool: Alejo®

anjaarrin2005 06/09/2005 09:46

Graficos con jfreechart
 
Hola a todos, la verdad tengo serios problemas con los chart en ireport, resulta que genero un grafico con Pie Chart, Pie3D Chart, pero si deseo hacer un grafico de otro tipo necesariamente los valores X y Y deben ser numeros no strings, alguien sabe como puedo hacer un grafico que no sea Pie por ejemplo cantidad vs. producto.

Gracias... :adios:

anjaarrin2005 06/09/2005 10:17

graficos...
 
Hola ya pude generar los graficos excepto el de tipo Line, si alguien sabe como debo hacer las series o las restricciones que tiene este tipo de gráfico le agradezco su ayuda...

Bye.

ojvm_24 07/09/2005 12:35

Acerca Del Scriptlet
 
SI NO MAL ME PARECE EL SCRIPLET.JAVA LO DEBES PONER EN LA CARPETA DE CLASSES DENTRO DEL WEB-INF ya que desde ahi lo lee


La zona horaria es GMT -6. Ahora son las 07:47.

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