GARANTIR DESCONTO

Fórum Ireport + Eclipse + J2SE #407863

21/09/2011

0

minha classe deleta eh a que chama... ta com esse nome so pra teste.

Exception in thread "main" net.sf.jasperreports.engine.JRRuntimeException: No such parameter REPORT_CONTEXT  
    at net.sf.jasperreports.engine.fill.JRFillDataset.getParameterValue(JRFillDataset.java:1050)  
    at net.sf.jasperreports.engine.fill.JRFillDataset.getParameterValue(JRFillDataset.java:1031)  
    at net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues(JRFillDataset.java:559)  
    at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1237)  
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:869)  
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:832)  
    at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)  
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)  
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:605)  
    at Controle.chamaRelPit.abrirComanda(chamaRelPit.java:56)  
    at Relatorios.deleta.main(deleta.java:30)  


pq do erro alguem sabe?
 public void abrirComanda() throws JRException {  
  
        DefaultTableModel modelo = new DefaultTableModel();  
  
        modelo.addColumn("Secretaria");  
        modelo.addColumn("Solicitante");  
        modelo.addColumn("Usuário");   
  
          
        OrdemDeServico o;  
        ctrlOrdemServico c = new ctrlOrdemServico();  
         o = c.busca("1");  
           
         modelo.addRow(new Object[] {    
                    o.getSolicitante().getSecretaria().getSigla(),  
                    o.getSolicitante().getNome(),    
                    o.getUsuarioResponsavel()  });  
          
        JTable tblPdf = new JTable(modelo);  
  
        String arquivo = "Relatorios//teste.jasper"; // arquivo de relatorio  
        java.io.InputStream file = getClass().getClassLoader()  
                .getResourceAsStream(arquivo); // carrego o arquivo  
        JRTableModelDataSource tabela = new JRTableModelDataSource(  
                tblPdf.getModel()); // aqui eu crio um datasource usando  
                                            // a propria jtable  
        Map parametros = new HashMap(); // apenas crio um map, mas nem passo  
                                        // parametro nem nada, os parametros sao  
                                        // as colunas da jtable  
        JasperPrint printer = JasperFillManager.fillReport(file, parametros, tabela); // aqui eu passo a jtable(tabela) para o relatorio  
        JRViewer view = new JRViewer(printer); // preview  
        JDialog dialog = new JDialog(); // jdialog que contem o preview  
        dialog.getContentPane().add(view); // adiciono o preview  
        dialog.setSize(800, 600);  
        // dialog.setLocationRelativeTo(this);  
        dialog.setModalityType(ModalityType.APPLICATION_MODAL);  
        dialog.setModal(true);  
        dialog.setVisible(true);  
    }  
 
Carlos Melchiades

Carlos Melchiades

Responder

Posts

21/09/2011

Davi Costa

Dá uma olhada pode te ajudar:
http://www.guj.com.br/java/225496-ireport-sem-conexao-ao-bd-usando-jtable-
http://www.guj.com.br/java/253129-ireport--eclipse--j2se
http://www.guj.com.br/java/234822-valores-de-uma-jtable-implementando-arraylist-enviando-para-ireport-

Seu relatório executa no ireport independente do java?
Ele ta te dizendo nesse erro que teu relatório (.jrxml) não tem o Parameter REPORT_CONTEXT.

Existe a possibilidade de vc estar esquecendo de passar algum parâmetro, verifica isso e tenta usar essa implementação em último caso, depois dessa linha:

Map parametros = new HashMap(); // talvez seja interessante vc trocar HashMap() por HashMap<String,Object>()

setParameterValues(parametros);

//mais um método para sua classe
public void setParameterValues(Map<String,Object> parameterValues) throws JRException
{
ReportContext reportContext = (ReportContext) parameterValues.get(JRParameter.REPORT_CONTEXT);
if (reportContext == null && filler != null)
{
//inherit from main
// Can be null when running from Liferay
try {
reportContext = (ReportContext) filler.getMainDataset().getParameterValue(
JRParameter.REPORT_CONTEXT);
} catch (Throwable e) {
// TODO: handle exception
log.info(e);
}
parameterValues.put(JRParameter.REPORT_CONTEXT, reportContext);
}
E ainda assim caso não dê certo,verifica a versão do teu jasper e procura a 4.1.2

att Davi
Responder

Gostei + 0

27/09/2011

Dyego Carmo

Deu certo ?
Se funcionou... poderia fechar o chamado ?

Valeu !
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar