Ajuda com erro Ireport

6 respostas
THIAGOANALISTA

Esta ocorrendo o seguinte erro:

run: log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment). log4j:WARN Please initialize the log4j system properly. Exception in thread "main" net.sf.jasperreports.engine.JRRuntimeException: No such parameter SORT_FIELDS at net.sf.jasperreports.engine.fill.JRFillDataset.getParameterValue(JRFillDataset.java:963) at net.sf.jasperreports.engine.fill.JRFillDataset.getParameterValue(JRFillDataset.java:944) at net.sf.jasperreports.engine.fill.DatasetSortUtil.needSorting(DatasetSortUtil.java:86) at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:609) at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1281) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:901) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:845) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:378) at tutorialrelatorios.util.ReportUtils.openReport(ReportUtils.java:45) at tutorialrelatorios.Main.abrirRelatorioClientes(Main.java:50) at tutorialrelatorios.Main.main(Main.java:27) Java Result: 1 CONSTRUÍDO COM SUCESSO (tempo total: 7 segundos)

6 Respostas

feltraco

Ele nao esta encontrando este parametro

No such parameter SORT_FIELDS

Verifica onde vc faz referencia a ele.

TheKill

o iReport 3.7.5 possui uma nova função de ordenar a impressao do relatório
talves não tenha se dado conta disto, e o erro acima mencionado 'SORT_FIELDS’
é o parametro que vc deve informar ao relatório ( forma como ele deve imprimir )

No caso, vc nao esta mandando nada e ele fica Null, gerando com isso o seu

Exception in thread "main"  net.sf.jasperreports.engine.JRRuntimeException: No such parameter SORT_FIELDS
THIAGOANALISTA

Cara, eu tinha lido um tópico seu falando sobre isso, mas não encontrei onde fica essa propriedade, vc sabe me informar como não deixá-la nula?Valeu pela atenção!!!

TheKill

HashMap hm;
hm.put(“SORT_FIELDS”, valor);

THIAGOANALISTA

Amigo, deu o seguinte erro e não consegui resolver:

run:
Exception in thread "main" java.lang.NullPointerException
        at tutorialrelatorios.Main.abrirRelatorioClientes(Main.java:48)
        at tutorialrelatorios.Main.main(Main.java:27)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)
Minha classe é essa:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */



import java.io.InputStream;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import tutorialrelatorios.jdbc.ConnectionFactory;
import tutorialrelatorios.util.ReportUtils;

/**
 * Ponto de entrada do projeto.
 *
 * @author Thiago
 */
public class Main {
     HashMap hm ;
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        new Main().abrirRelatorioClientes();

    }

    public void abrirRelatorioClientes() {


        // note que estamos chamando o novo relatório
        InputStream inputStream = getClass().getResourceAsStream( "/bancos.jasper" );

        // mapa de parâmetros do relatório
        Map<String, Object> parametros = new HashMap<String, Object>();
       
        /* 
         * Insere o parâmetro primeiroNome no mapa, com o valor F%
         * ou seja, todos os clientes que tenham primeiro nome começando
         * com a letra F.
         */
        parametros.put( "nome", "A%" );

        // outros possíveis parâmetros aqui...
           hm.put("SORT_FIELDS",1);

        try {

            // abre o relatório
            ReportUtils.openReport( "Clientes", inputStream, parametros,
                    ConnectionFactory.getSupercredConnection() );

        } catch ( SQLException exc ) {
            exc.printStackTrace();
        } catch ( JRException exc ) {
            exc.printStackTrace();
        }
        
    }

}
wamarra

vc esta tentando usar um HashMap sem inicializa-lo

public class Main {  
     HashMap hm ;  
.
.
.
.
.
 hm.put("SORT_FIELDS",1);

Teria q inicializa-lo primeiro

HashMap hm = new HashMap(); //porem o ideal eh usar generics 
Map<String, Object> mapa = new HashMap<String, Object>();

porém se entendi direito, vc esta querendo passar um parametro para iReport…
e vc jah tem um Map com o nome de "paremetros"
basta utiliza-lo:

parametros.put("SORT_FIELDS",valor);

junto com os outros parametros setados no map
e caso não tenha esse parametro no iReport vc terar q criar

Criado 13 de outubro de 2010
Ultima resposta 14 de out. de 2010
Respostas 6
Participantes 4