Problema com o iReport

5 respostas
carolino

Está vindo pra mim a seguinte exceção

Exception during request processing:
Caused by javax.servlet.ServletException with message: “#{vendedorHome.imprimirRelatorioVendedor()}: net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : nome”

só que o nome na minha classe java… e no meu relatório estão identicos…

alguem já passou por este problema?

Desde já obrigado pessoal

5 Respostas

L

Vc tem um field nome no ireport que esta diferente no java.
Verifique se tem os gets e sets.
e poste lagum codigo pra ficar mais facil de ajudar.

carolino

meu código que gera o relatório “no caso ele só vai imprimir o campo nome”

public class Relatorio{
  @SuppressWarnings( { "deprecation", "unchecked" })
	public void gerar(String layout,List<?> list) throws ClassNotFoundException,
			SQLException, JRException {
		JasperDesign desenho = JRXmlLoader.load(layout);
		JasperReport relatorio = JasperCompileManager.compileReport(desenho);

  JRBeanCollectionDataSource jrRS = new JRBeanCollectionDataSource(list);

		
		Map parametros = new HashMap();
		parametros.put("nome", jrRS);
		
		JasperPrint impressao = JasperFillManager.fillReport(relatorio,
				parametros, jrRS);

  JasperViewer view = new JasperViewer(impressao,false);
		view.show();
  }
}

método que chama o método gerar para gerar relatórios

public void imprimirRelatorioVendedor() throws Exception{
  String layout;
  ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
  layout = servletContext.getRealPath("Relatorios/nomeRelatorio.jrxml");
  new Relatorio().gerar(layout, getVendedoresId());
}

e na minha classe java a propriedade está como “String nome” mesmo…
e existe get/set para ele…

TheKill

carolino:
meu código que gera o relatório “no caso ele só vai imprimir o campo nome”

public class Relatorio{
  @SuppressWarnings( { "deprecation", "unchecked" })
	public void gerar(String layout,List<?> list) throws ClassNotFoundException,
			SQLException, JRException {
		JasperDesign desenho = JRXmlLoader.load(layout);
		JasperReport relatorio = JasperCompileManager.compileReport(desenho);

  JRBeanCollectionDataSource jrRS = new JRBeanCollectionDataSource(list);

		
		Map parametros = new HashMap();
		parametros.put("nome", jrRS);
		
		JasperPrint impressao = JasperFillManager.fillReport(relatorio,
				parametros, jrRS);

  JasperViewer view = new JasperViewer(impressao,false);
		view.show();
  }
}

Tipo, no iReport vc tem um List de String chamado Nome ?
Qual objeto vc tem lá?? Obs.: Deve ser um Parametro do tipo List de preferencia String

carolino

então TheKill…
dentro do meu “nomeRelatorio.jrxml” tenho o campo que se refere a propriedade nome

<detail>
			<band height="100"  isSplitAllowed="true" >
				<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
					<reportElement
						x="175"
						y="27"
						width="100"
						height="18"
						key="textField"/>
					<box></box>
					<textElement>
						<font/>
					</textElement>
				<textFieldExpression   class="java.lang.String"><![CDATA[$F{nome}]]></textFieldExpression>
				</textField>
			</band>
		</detail>
TheKill

perguntei se ele é Parameter, e qual tipo de parameter?

Ps.: vc esta mandando da aplicação um parametro… consecutivamente deve ter um objeto para receber o parametro no relatório…

att. Jonas

Criado 12 de abril de 2010
Ultima resposta 13 de abr. de 2010
Respostas 5
Participantes 3