Erro com ireport

9 respostas
rvcabral

olá, montei um relatório com o plugin do ireport para netbeans.

foi gerado um arquivo.jrxml.

com este arquivo, consigo visualizar pela opção preview (com os campos do banco), e compila sem erros gerando o .jasper.

na hora de chamar o .jasper, ele abre o relatório (o pdf), mas sem os campos da pesquisa.

segue o método que chama:

//abro minha conexão
Connection conn = ConexaoSingleton.getConexao();

Statement  st = conn.createStatement();
        
String sql = "select * from usuario";       
ResultSet rs = st.executeQuery(sql);

JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);

JasperPrint jasperPrint = JasperFillManager.fillReport("src/relatorios/report1.jasper", new HashMap(),jrRS);

JasperViewer.viewReport(jasperPrint); 

ConexaoSingleton.fechaConexao();

será que alguém dá uma luz?

se tiverem outro código que chama este .jasper, ajudaria também

9 Respostas

rvcabral

.

ataufo

Se ta gerando um PDF em branco deve ser alguma inconsistencia no relatório que você criou. Você criou no IReport mesmo? Tenta colocar algum label pra ver se aparece.

rvcabral

o relatórios está ok, com o irreport e pelo netbeans com preview ele chama o relatório bonitinho.

quando chamo pela classe java co aquele método acima, o relatório vem com os campos estáticos + data + números de página,
porém sem os dados do select.

me levando a conclusão que o problema está naquele meu código java acima.

se alguém tiver um código alternativo, ou poder apontar onde está o erro naquele agradeço

Augusto_Cesar

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 <a href="http://java.io">java.io</a>.<em>;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.servlet.</em>;

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

TheKill

Caro rvcabral,

Seu sql pode estar gerando inconsistencia de informação com o relatório.
vou explicar.

digamos que no seu relatorio vc quer que apareca o Codigo do produto.
e no seu sql vc faz,

beleza?
certo, mas em seu banco esta cd_codigo.

Blz?! Agora o relatório esta esperando seu resultSet com a informação de Codigo,

Reparou que ele não vai receber esse Codigo?? Porque você esta enviando cd_codigo;
Correção para esse tipo de problema.

Att. Jonas

J

ai cara estou com o seginte problema quando eu chamo o meu relatorio no sistema e paso os parametros ele me da o seginte erro

Ocorreu o seguinte erro ao gerar o relatório: Erro ao gerar relatório. Verifique a saída do programa:

Exception in thread "main"

java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException

at java.lang.Class.getDeclaredConstructors0(Native Method)

at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)

at java.lang.Class.getConstructor0(Unknown Source)

at java.lang.Class.newInstance0(Unknown Source)

at java.lang.Class.newInstance(Unknown Source)

at net.sf.jasperreports.engine.design.JRDefaultCompiler.getCompiler(JRDefaultCompiler.java:201)

at net.sf.jasperreports.engine.design.JRDefaultCompiler.loadEvaluator(JRDefaultCompiler.java:216)

at net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator(JRFillDataset.java:410)

at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:384)

at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:77)

at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:59)

at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:147)

at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:57)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:234)

at net.sf.jasperreports.engine.JasperRunManager.runReportToPdfFile(JasperRunManager.java:122)

at br.com.infoger.Relatorio.Utilitario.Gerador.GeradorRelatorio.gerar(GeradorRelatorio.java:43)

at br.com.infoger.Relatorio.Utilitario.Gerador.ProcessadorLinhaComando.(ProcessadorLinhaComando.java:53)

at br.com.infoger.Relatorio.Utilitario.Gerador.ProcessadorLinhaComando.main(ProcessadorLinhaComando.java:27)

Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.control.CompilationFailedException

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)

 19 more

Comando enviado para gerar o relatório:

java -jar …\relatorio.jar -o pdf “C:\Users\infoger
\AppData\Local\Temp\relatorio2811522.pdf” -b “127.0.0.1” “infocompos” “5432” “postgres” “infoger”
"“postgresql”" -m “…\relatorios\Clientes.jasper” -f “SUBREPORT_DIR” “…\relatorios\” -f
"nm_usuario" “USUARIO” “-f” “data_inicio” “01/07/2010” “-f” “data_final” “22/07/2010” “-f” “cidade” “1"
”-f" “cliente” “1” “-f” “vendedor” “1” “-f” “grupo” “1” “-f” “tipo_pessoa” “F” “-f” “ativos” “S” “-f” “nm_filial” “FILIAL” “[telefone removido]”

ve ai se vc pode me ajudar

TheKill

oque significa isso?

java -jar ..\..\relatorio.jar -o pdf "C:\Users\infoger
\AppData\Local\Temp\relatorio2811522.pdf" -b "127.0.0.1" "infocompos" "5432" "postgres" "infoger"
""postgresql"" -m "..\..\relatorios\Clientes.jasper" -f "SUBREPORT_DIR" "..\..\relatorios\\" -f
"nm_usuario" "USUARIO" "-f" "data_inicio" "01/07/2010" "-f" "data_final" "22/07/2010" "-f" "cidade" "1"
"-f" "cliente" "1" "-f" "vendedor" "1" "-f" "grupo" "1" "-f" "tipo_pessoa" "F" "-f" "ativos" "S" "-f" "nm_filial" "FILIAL" "[telefone removido]"
J

são os parametros que eu passo para o relatorio
e o local que ele esta

TheKill

deu erro de compilacao…

no seu groovy pelo que percebi

Criado 2 de julho de 2009
Ultima resposta 22 de jul. de 2010
Respostas 9
Participantes 5