IReport

To com uma duvida se alguem poder me ajuda, ficaria grato

tipo eu to com meu relatorio pronto no iReport, o problema eh que naum to conseguindo fazer ele imprimir, vou ser mais claro

na minha tela tem, o botao imprimir, qeria fazer a acao desse botao imprimir o relatorio do ireport,

se alguem souber me ajuda por favor

Sua aplicação é web ou desktop?

O q o relatorio esta imprimindo um em cima do outro são os dados do “detail”?

desktop, resolvi a parte dos dados em cima dos outros, soh estou com duvida agora na parte de imprimir

Cara pode ser que isto te ajude…eu usava esta classe:

http://www.guj.com.br/posts/list/128237.java

[]s.

Aqui tem um exemplo do que eu uso pra gerar relatorio pra desktop:

[code]
public class RelListagemSimplesClientes {

    //nome do seu relatorio gerado no ireport
private static String layout = "relatorios/listagem_simples_clientes.jrxml";

@SuppressWarnings("unchecked")
public RelListagemSimplesClientes(Collection col) throws Exception {
	
	try {
                   //parametros que serão utilizados no seu relatorio
		Map parametros = new HashMap();

                    //compilação do seu modelo (jrxml)
		JasperReport relatorio = JasperCompileManager.compileReport(layout);

                    //criação do dataSource que no meu caso é uma coleção de clientes
		JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(col);
		
                    //gerando e preenchendo o relatorio
		JasperPrint print = JasperFillManager.fillReport(relatorio, parametros, ds);

                    //gerando o objeto que pode ser visualizado
		JasperViewer viewer = new JasperViewer(print, false);
                   
                    //setando alguns parametros da minha visualização
		viewer.setExtendedState(JasperViewer.MAXIMIZED_BOTH);
		viewer.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);

                    //exibindo para o usuário o relatorio
		viewer.setVisible(true);
	} catch (Exception e) {
		e.printStackTrace();
		throw e;
	}
}

}[/code]

O código ta bem comentado qualquer coisa posta sua duvida ai!

Abraço!

private static String layout = “relatorios/listagem_simples_clientes.jrxml”;

cara eu entendi mas essa parte eh o endereço onde ele está salvo seria???

por exemplo o meu tah salvo no “D:/workspace/Rpa/iRecibo.jrxml” e naum deu certo, soh deu erro nessa aprte do codigo

CuRu10, eu sempre crio uma pasta na raiz do projeto e salvo o relatorio q criei no ireport nessa pasta, pq dai qd distribuir a aplicação vai estar sempre junto, e dai ele ja acha direto tb, tenta fazer isso, criar uma pasta na raiz do seu projeto e coloca la o seu .jrxml

[]'s

ERRO: net.sf.jasperreports.engine.JRException: Error compiling report java source files : D:\workspace\Rpa\classic_landscape_1245956685078_402776.java

ele aparece esse erro, tipo Rpa eh a pasta do meu projeto do eclipse, ele jah esta lah dentro. criei uma pasta tbm dentro da pasta do projeto e da mesmo erro, parece que eh erro de compilacao, soh q naum consigo resolver.

faz como no meu exemplo, cria uma pasta na raiz do seu projeto ai vc chama só

relatorios/seu_relatorio.jrxml

e se não funcionar posta o seu codigo ai pra eu dar uma olhada!

[]'s

esse eh meu codigo

package br.fundgo.event;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;
import br.fundgo.cadastro.Relatorio;

public class CadRelatVisual implements ActionListener{
private Relatorio relatorio;

public CadRelatVisual(Relatorio relatorio){
	this.relatorio = relatorio;
}
private static String relatIre = "IReport/Relatorio.jrxml";
private Collection col;
public void actionPerformed(ActionEvent ae){
	try{
		//parametros que serão usados no relatorio
		Map parametros = new HashMap();
		
		//compila o modelo (jrxml)
		JasperReport relat = JasperCompileManager.compileReport(relatIre);
		
		//criacao do dataSource
		JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(col);
		
		// gerando e preenchendo o relatorio
		JasperPrint print = JasperFillManager.fillReport(relat, parametros, ds);
		
		//gerando o objeto que pode ser visualizado
		JasperViewer view = new JasperViewer(print, false);
		
		//setando alguns paramentros da minha visualizacao
		view.setExtendedState(JasperViewer.MAXIMIZED_BOTH);
		view.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);
		
		//exibindo para o usuario o relatorio
		view.setVisible(true);
					
	}catch(Exception ex){
		System.out.println("ERRO: " + ex);
	}
}

}

tipo tentei fazer a acao do botao imprimir o relatorio.

Quando vc compila o seu relatorio no ireport ele roda certinho sem dar erro?
Tem que ver so se vc ta usando os jar’s corretos.
Qual versão do ireport vc ta usado?

Quando vc debuga onde ta dando erro?

Aparentemente esta td ok na implementação!

[]'s

cara no ireport roda tudo certim, usa query do banco ele puxa os dados certim, imprimi pelo ireport certim tbm,

http://img517.imageshack.us/img517/5716/imagemszf.jpg

tah imagem ai tah add varios jar’s axo q sao os necessarios,

uso o ireport 3.0.0

tah dando erro nakela msg mesmo.

vlw pela ajuda, cara ta me achando bastante suas dicas, mas naum estou conseguindo mesmo.

existe a pasta “IReport” na raiz do seu projeto?

existe

CuRu10, eu uma vez baixei a versão 3.0.algumacoisa do ireport, tb tive uns probleminhas pra usar ela e acabei abandonando, eu uso a versão 2.0.4, até agora não senti falta de nada que eu saiba que existe na versão 3 em diante, tenta baixar essa versão 2.0.4 e ve se funciona o seu relatorio, talves seja alguma incompatibilidade do meu codigo com o dessa versão 3 q vc esta usando!

[]'s

vlw pelas dicas

problema jah resolvi

qlqer coisa q precisa to ai

AJUDA EU

To com um problema na hora de gerar o pdf. A servlet vai nuba boa, mas o que vem na tela pra mim é isso aqui oh.

%PDF-1.4 %âãÏÓ 4 0 obj <>stream x?¥?Ín!?ïûãMRq??v?þi¢ë©ö@]jÖ¬k?Ö¶?Ü·è®=h??m2!Ãa?pe?²H&#65533;¯[ÓB¶?.R¢?½DÝ^¶?®Î?pXnÎ?P&L##?ü# j?ùq?_EÝt>N'óN§Ù?Ãê??ê1p¤??ŧòß?á}zwC&#65533;?:÷0áÁú°Ê?ß@¨uhfK·?©{õn窽ÝaG¹º¸íî&ÏÎ;?í=mh?âD@#çË¢"Z #"O?zÂ?kç7¶ú$ 3¸ä}Î??(?>â¸k¥i¥1ô7ÇÃlJ´ÞB¨,dþm]?å?(??¼WÎÕ·¤rÈ-?ÜAi?NP?ªÙ×G±ÜÂ%KÕL?Ã5'½á£?p&®É?ê$?Xtõ¢aZë¾2H©.µ??Jñ?$Í?>å7íì?Q endstream endobj 1 0 obj<<<>>>/MediaBox[0 0 595 842]>> endobj 7 0 obj <>stream x?¥?½NÃ0?w?Å?é@ðO?±¨Th?ÚT?!jL)JmpB?Gæ-HÐe8EJ¬Äw?/?Ï®ØyÁðîêïY"¡Ø³Ó©&#65533;Ñ?Y4*?ÙÅñ?ýq?R?ñ4NÿyÈ>?-?Æó"?÷i8lÿIuÿÐ=+ º5 \ëÝÎÃÌaë<%µ@åïÎA¥C¿kV¶ee?o&#65533;¤?ÂR?ÆP_»??I<??~p×*¢??Jl_ Ñ?XGz=­õ?:ST-I??Ü[]Óòk?í²ÈWQ8N(?ü¾là²Õ'Ñ;Z?µma_?m¬kËvw°Ä]??ä]YÎl?å+¥mzM!¨eïï¨?PÄݸ{7¹¥B«kª4ý:Fü6¦1YF3?ìh>f¥FóAÖ7j??= endstream endobj 6 0 obj<<<>>>/MediaBox[0 0 595 842]>> endobj 9 0 obj <>stream x?¥ÔKKÃ@að{>Åë¡u³¯l?­´iú8??Æ4Òld?Vü¾ú=Ü?2??a$³¿dÿ;?p?L·I “nç£Ó¶ur=O!?WÏÉàjû?Ì.ðT_)NØ?ý-çBñ};?É`:[/6ça?õðϤñ?háfª¶«|Såáè’?éáîC?&E]ùÈ?¼kÃS¶wãGOíé£Dà8??,3µ<ð??-l?cã@JfB=Èeè?¡Ð?Ët{Di°??vÿ?2d?¦?Ùr²ãö)-Üæ>öèªiZfú4³ÉØÂ_¶è»¼«NÈ\48oBÛaÜÃ7#¡igp?UÍ??D¬SÂr”?

alguem sabe como resolver esse problema?

código que estou usando:

import java.io.;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.
;
import javax.servlet.http.*;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperRunManager;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;

/**
*

  • @author Administrador
    */
    public class Relatorio extends HttpServlet {

private Connection getConnection(){
Connection connection=null;
try {
//cria a conexão com o banco de dados
Class.forName(“com.mysql.jdbc.Driver”);
String db = “jdbc:mysql://localhost:3306/relatorios?user=edson&password=integrator”;
connection = DriverManager.getConnection(db);

} catch (SQLException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}

return connection;

}

/**

  • Processes requests for both HTTP GET and POST methods.
  • @param request servlet request
  • @param response servlet response
    */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // response.setContentType(“text/pdf;charset=ISO-8859-1”);
    // PrintWriter out = response.getWriter();

ServletOutputStream servletOutputStream = response.getOutputStream();

String caminho = “/WEB-INF/relatorios/”;
String relatorio = caminho+“Relatorios_MestreDetalhe.jasper”;
InputStream reportStream = getServletConfig().
getServletContext().
getResourceAsStream(relatorio);

ServletContext context = getServletContext();

try {

Connection connection = getConnection();
HashMap<String, String> map = new HashMap<String, String>();
//o Nome do parâmetro e o valor é passado ao HashMap
map.put(“SUBREPORT_DIR”, context.getRealPath(caminho)+File.separator);

JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream, map,connection);

response.setContentType(“application/pdf”);
servletOutputStream.flush();
servletOutputStream.close();
if(connection!=null)connection.close();
} catch (SQLException ex) {
Logger.getLogger(“global”).log(Level.SEVERE, null, ex);
}
catch (JRException e) {
// display stack trace in the browser
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
e.printStackTrace(printWriter);
response.setContentType(“text/plain”);
response.getOutputStream().print(stringWriter.toString());
}

}

//
/**

  • Handles the HTTP GET method.
  • @param request servlet request
  • @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    processRequest(request, response);
    }

/**

  • Handles the HTTP POST method.
  • @param request servlet request
  • @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    processRequest(request, response);
    }

/**

  • Returns a short description of the servlet.
    */
    public String getServletInfo() {
    return “Short description”;
    }
    //
    }

os arquivos estão nas pastas corretas o problema é somente na visualização! Obrigado desde já a atenção

Uso ireport para gerar relatórios e preciso criar um servidor de impressão para a mossada acessar os gráficos e relatórios em geral com mais facilidade, mas eu estou tendo dificuldade de fazer aparecer o gráfico. O relatório comum, sem sub-relatório, sem nada, básico mesmo, eu consegui fazer com passagem de parâmetro e tudo mais.
Alguém sabe como retornar o gráfico dentro de um pdf. Já rodeia a internet inteira e não acho ninguém com alguma coisa que realmente ajude.
Vi tutoriais no devmedia mas o que o cara faz nele não é nada elegante para o meu propósito. Consegui até gerar com o dele mas eu quero que seja usada a query do relatório e não uma query do java. Se o povo do GUJ puder me ajudar… fico gráto desde já pela atenção.
Só para esclarecer eu estou criando uma web para isso.