Fórum Ireport + Eclipse + J2SE #407863
21/09/2011
0
minha classe deleta eh a que chama... ta com esse nome so pra teste.
pq do erro alguem sabe?
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
Curtir tópico
+ 0
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
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 !
Se funcionou... poderia fechar o chamado ?
Valeu !
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)