Olha só, eu estou criando um relatório com o IReport, que deve ler os dados de um arquivo XML, eu coloquei só um campo de parâmetro que eu acho q é para ler do XML:
E não importa que método eu chame, sempre aparece o seguinte erro ao compilar o relatório:
Se alguém poder fazer o favor de me ajudar eu agradeço muito!
Pior que na net até tem uns tutoriais, o único problema é que todos usam algum banco de dados como exemplo. Se pelo menos tivesse um relatório pronto, feito dessa forma, era só importar.
Bom dia.
Estou fazendo um relatório que lê dados de um arquivo CSV. Para isto tive que criar uma conexão (data - conexão/Fonte da Dados/new). Ainda não usei nenhum arquivo XML mas a teoria é a seguinte:
Crie uma conexão ( Data - Conexão/Fonte de Dados/New)
Digite um nome para sua conexão
Escolha o tipo XML File DataSorce
Informe o nome do arquivo XML a ser usado
Informe a expressão para o select
Tome este arquivo XML como exemplo.
Davolio
Nancy<
Fuller<
Andrew
Leverli
Peacock
Margar
Uma expressão para selecionar todas as pessoas seria
Para selecionar apenas as pessoas da categoria trabalho a expressão seria
/addressbook/category[@name = "work"]/person
O resultado seria
Peacock</lastn
Margaret</fir
Os campos terão que ser criados conforme tabela abaixo:
Fieldname Description Type
ID @id Integer
LASTNAME lastname String
FIRSTNAME forname String
CATEGORY ancestor::category/@name String
Depois é só montar o relatório e pronto. Como disse esta é a teoria. Não tenho experiencia com arquivos XML. Espero que estas informaçoes te ajudem.
Aproveitando… estou comproblemas para usar a Expressão de filtragem para um relatório que lê os dados de um arquivo CSV. Quando uso uma expressão do tipo:
$F{nome}.conpareTo("AAA")>0
Aparece o erro
net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. Cannot cast from boolean to Boolean value = (java.lang.Boolean)(((java.lang.String)field_nome.getValue()).compareTo(“AAA”)>0);
Coloque sua expressão dentro de um Boolean. Isso acontece qdo vc está utilizando o campo “Print when expression”. Para isso coloque sua expressão inteira dentro de um:
A indicação do jesley.sena é a correção para o problema apresentado pelo criador do tópico. Mesmo fazendo tanto tempo, acho importante postar a confirmação da solução para que possa ajudar quem está com esta mesma inconsistência.
Eu estava com a mesma dúvida. “Por que fazer cast de boolean pra boolean?” Instanciando o boolean, o iReport se encontra.