Página Inicial do Fórum > [Tutoriais] - Frameworks, APIs, Instalação e Configuração

Tutorial de IREPORT


Ir à página 1, 2 Próximo - >>

Criar novo tópico   Responder tópico


  1. daltoncamargo
    Posts:8899


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Tutorial iReport 0.2.2
    Por Bruno R. Lima ( aebrlima@hotmail.com )

    Criando relatórios JasperReports utilizando iReport e uma conexão JDBC.

    + O QUE É IREPORT ?
    + CRIANDO UM RELATORIO SIMPLES
    ++ Iniciando o iReport
    ++ Criando um Relatório
    ++ Criando a origem dos dados
    ++ Selecionado a visualização no Ireport
    ++ Criando o SELECT dos dados
    ++ Construindo o relatório

    O QUE É O IREPORT ?

    O iReport é uma ferramenta que visa facilitar a construção de relatórios utilizando a biblioteca JasperReports ( http://jasperreports.sourceforge.net ) através de uma interface gráfica desenvolvida em Swing. Ele dispõe de importantes ferramentas para desenvolver relatórios complexos e demorados.

    Mesmo sem nenhum conhecimento das bibliotecas do JasperReports, você consegue criar relatórios muito interessantes através desta ferramenta e aprender a entender as tags XML utilizadas no JasperReports.

    CRIANDO UM RELATORIO SIMPLES

    Iniciando o iReport

    Se você tiver o Ant instalado em sua maquina, altere o arquivo iReport.bat e iReport.sh para setar o diretório de instalação.

    Se você não tem o Ant instalado, vá ao subdiretório noAnt e execute o arquivo startup.bat para iniciá-lo.

    Criando um Relatório

    No menu File, clique em New Document; Irá aparecer a janela para configurar o seu relatório, entre essas configurações estão o nome do relatório, tamanho da folha utilizada, margens, colunas do relatório entre outras opções.

    Para configurar um relatório já criado, alterar o tamanho da folha, margens, etc. vá ao menu View > Report Properties.

    Criando a origem dos dados

    1. Agora vamos criar uma conexão JDBC para enxergar o banco de dados.

    2. Va ao menu DataSources > Connections / DataSources.

    3. Irá aparecer uma janela contendo as suas conexões de fonte de dados. Agora iremos criar uma conexão JDBC.

    4. Clique no botão New; Selecione em "Type Of Connection / DataSource" a opção "DataBase JDBC Connection".

    5. Defina um nome para a conexão: este nome é apenas para identificá-lo no iReport. Ex: "MinhaConexao"

    6. Agora você deve selecionar o driver JDBC a ser utilizado. Neste caso vamos utilizar o driver da Oracle, "oracle.jdbc.driver.OracleDriver". Preencha também a URL de conexão com o banco: "jdbcracle:thin:@::". Você deve substituir as opções:
    - - Endereço da maquina onde o banco de encontra. Ex: 192.168.0.1;
    - - Porta de conexão do banco; Default 1521;
    - - A instancia do banco. Ex: oradata;
    Neste caso nossa URL seria: "jdbcracle:thin:@192.168.0.1:1521radata".

    7. Informe os campos "Database" com a instancia do banco, "User" com o usuário e "password" com a senha do seu banco. Essas informações são necessárias para o iReport conectar-se no banco para obter informações da coluna.

    Clique em TEST para testar se a conexão está ok. Se estiver tudo em ordem, clique na opção SAVE para salvar sua conexão.

    Se você quiser alterar alguma dessas informações, clique no botão "Modify" da janela "Connections/Datasources".

    Após criada a conexão, apenas clique no "X" no canto já janela para fechá-la.

    Agora que você criou sua conexão, devemos informar que vamos usá-la no relatório, então vá ao menu "Build" e clique na opção "Set Active Connection". Irá aparecer uma lista das conexões disponíveis. Clique na conexão que criamos, a "MinhaConexao" e clique em ok para selecioná-la.


    Selecionado a visualização no IReport

    Após criada a conexão, devemos selecionar qual forma queremos visualizar nosso relatório depois de pronto. As opções disponíveis são aquelas que o Jasper disponibiliza. Vamos selecionar a opção PDF Preview para ver em PDF.



    Criando o SELECT dos dados

    Bem, como o relatório é apenas fictício, criaremos a seguinte query para retornar apenas alguns campos utilizados no relatório.



    1. Vá para o menu "Datasource > Report Queries".

    2. Ao abrir a janela, encontra-se a area onde deverá ser digitado a sua query.
    Nesta janela, você pode criar qualquer query, pois o que importa é o resultado dela.

    3. Após digitar sua query, veja que existem os botões "Read Fields" e "Save Query To Report". Clique no primeiro, "Read Field", que irá ler os campos que sua query retorna. Os campos irão aparecer na parte de baixo da janela, com o nome identificado na query e seu tipo correspondete no JDBC. No nosso caso irão aparece os seguintes campos:
    - TITULO : java.lang.String
    - DATA_CORRENTE : java.sql.Timestamp
    - DIAS : java.lang.Double


    4. Selecione estes campos, clicando no primeiro, segure a tecla SHIFT e clique no ultimo. Clique no botão "Register Fields To Report". Isto fará com que os campos selecionados sejam criados ( registrados ) no relatório, para poderem ser utilizados. O botão "Clear List" limpa os campos encontrados na sua query.

    Se você, por acaso mais tarde resolver incluir um novo campo na sua query, ao clicar no "Register Fields To Report" ele irá verificar se os campos que estão retornando na query já estão registrados no relatório, e não irão ser exibidos, exibindo assim somente os campos novos.

    Para utilizar parâmetros no SQL, teremos que adicioná-los depois de criados os campos. Por que? Porque o iReport executa a query do jeito que esta no banco, e se existir algum parâmetro do iReport em sua query, ele irá reclamar, gerando um erro de SQL.

    5. Antes de fechar a janela, altere sua query adicionando o parâmetro que iremos criar chamado de "PARAM1":



    Para trabalhar com parametros nas queries, devemos identificar que o valor é um valor do iReport, que deverá ser substituido. Por isso utilizamos a sintaxe $P{"nome do parametro"}. Assim, quando executarem a nossa query no relatorio, irão substituir esse valor pelo valor que passaremos como parametro no relatório. No caso de uma variavel, a sintaxe muda para $V{"nome da variavel"}.

    Agora clique em "Save Query to Report" e clique em Close para salvar a query e fechar a janela.


    Construindo o relatório

    Vamos verificar se os campos foram criados corretamente. No meu "View", clique na opção "Report Fields", para abrir a janela dos campos do relatório.
    Nesta janela é possível visualizar os campos criados no relatório, bem como as variáveis do relatório e os parâmetros.
    Agora devemos criar o parâmetro que incluímos na nossa query, o "PARAM1".

    1. Com a janela que exibe os campos aberta, vá na aba "Parameters".

    2. Clique em "New"; Informe o nome do parâmetro, no caso "PARAM1", o tipo do parâmetro, neste caso java.lang.String, e um valor default, informe "VALOR DO PARAMETRO". Informe também uma descrição do parâmetro.

    3. Clique em Ok, verifique que o parametro foi criado. Feche a janela.


    Após criar o parâmetro, vamos adicionar os campos na tela.


    1. No menu "Edit" vá na opção "Insert Element...". Aparecerá os elementos que você pode inserir em seu relatório. Vamos inserir um "Static Text" clicando nesta opção. Um "Static Text" é como um label, onde o seu texto ficará estático: você informa o texto.

    2. Verifique que o cursor do mouse alterou. Clique em um local do seu relatório, de preferência na área "Page Header", que é o cabeçalho de pagina para incluir o campo.

    3. Clique agora no menu "View" e selecione a opção "Element Property". Irá aparecer a janela com as propriedades do campo criado.

    4. Vamos alterar o tamanho dele. Altere a propriedade Width e Height para o tamanho desejado. Você pode também alterar o tamanho direto no layout do relatório apenas clicando e arrastando pelas bordas do objeto. Para deixar um tamanho padrao, vamos setar as propriedades para:
    - Width: 300
    - Height: 30
    - Top: 10
    - Left: 120

    5. Na segunda aba da janela, "Font" vamos informar a fonte usada no objeto, clique nela. Altere as propriedade para:
    - "Font Name" = "Arial"
    - "Size" = 18
    - "Bold" = Checked
    - "Horizontal Align" = Center
    - "Vertical Align" = Middle


    6. Na terceira aba, "Static Text" é onde vamos informar o texto que deverá aparecer, clique nela. Na área que aparece, apague o texto e digite: "Relatório Ireport - JasperReport". Pode fechar a janela, clicando no (X).

    7. Para facilitar nossa vida, na barra de menu tem os botões de atalho. Para criar um Text Field, clique no botão que contem a letra "F".Clique agora em alguma área do relatório, de preferência dentro da área escrita "Detail", onde se encontram os detalhes.
    Após inserir o campo, de um duplo clique sobre ele, e verá que aparece a caixa de propriedades do objeto. É semelhante as propriedades de um "Static Text" exceto pelas novas abas "Text Field" e "Hyper Link". Altere as propriedades abaixo na aba "Commom"
    - Width: 280
    - Height: 18
    - Top: 10
    - Left: 15

    Feche a janela de propriedades do objeto.

    8. Vamos criar os outros dois campos do relatório: Repita o mesmo procedimento anterior para incluir um campo, mas alterar a propriedade Top para 30 em um e 50 no outro campo. Assim você irá criar mais 2 campos um logo abaixo do outro.

    9. Dê um duplo clique no primeiro campo criado para verificar suas propriedades. Na janela de propriedades, clique na aba "Text Field" para alterarmos as propriedades de campos dele.
    A propriedade "Textfield Expression Class" é a classe que esse textfield irá representar. No nosse exemplo, esse campo irá representar o titulo que retornará da query. Altere para java.lang.String.
    A propriedade "Text Field Expression" é o valor que a mesma irá imprimir, preencha com $F{TITULO}.
    Sem fechar a janela, seleciona o segundo campo criado no relatório. Na mesma aba selecionada, a "Text Field" das propriedades do campo, altera as propriedades "TextField Expression Class" para java.util.Date e a propriedade "Text Field Expression" para $F{DATA_CORRENTE}. Altere a propriedade Pattern para "dd/MM/yyyy", que é o formato que queremos exibir a data.
    Agora clique no terceiro campo criado e altere as propriedades "TextField Expression Class" para java.lang.Double, "Text Field Expression" para $F{DIAS} e o Pattern para "0000".

    Após finalizar a configuração dos campos, clique em Save no meu File para salvar o arquivo, ou no disquete na barra de atalho. Informe o arquivo XML para o qual deseja salvar seu relatório. Confirme.
    Para compilar o seu relatório e gerar um arquivo . JASPER, clique no botão laranja, ao lado do zoom de visualização do relatório.

    Para executar seu relatório utilizando a conexao ativa, vá em "Build" e "Execute Report ( using active conn )".


    _________________
    Sugestão de Livros

    -- --




  1. led
    Posts:1


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    queria saber como eh que faz pra misturar texto e fields em um mesmo campo tpow .....pro texto ficar assim

    dia F${dia}, do mes F${mes}.......


    alguem sabe???


  1. Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    ops... o codigo q vc deve inserir no campo "TextField Expression" na aba "Text Field" na propriedade do elemento é o seguinte:

    "dia "+$F{dia}+", do mes "+$F{mes}


    _________________
    JavaFree.org




  1. AndZais
    Posts:5


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    blz galera,

    tem como alguem mostrar um servlet exibindo o exemplo acima, tipo uma chamada em uma aplicação web.


    valeu
    _________________
    JavaFree.org


  1. Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Saudações, gostaria de saber como faz para pegar uma imagem da base de dados e colocá-la num relatório do iReport. Esta imagem está armazenada num campo do tipo blob. E o banco de dados que uso é o Postgres.
    Desde já, agradeço
    _________________
    JavaFree.org




  1. ceara
    Posts:38


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Cara, primeiramente achei muito bacana essa publicação sua..

    Mas travei logo no inicio...

    1. O que é um ANT..
    2. Não achei nenhum .bat com o iReport..

    Podem me ajudar??

    Obrigado!

    Rafael Ferreira / Ceará
    _________________
    Stackoverflow.com




  1. daltoncamargo
    Posts:8899


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    ceara
    Cara, primeiramente achei muito bacana essa publicação sua..

    Mas travei logo no inicio...

    1. O que é um ANT..
    2. Não achei nenhum .bat com o iReport..

    Podem me ajudar??

    Obrigado!

    Rafael Ferreira / Ceará


    Veja este tópico:
    http://www.javafree.com.br/forum/viewtopic.php?t=4993

    []'s
    _________________
    Sugestão de Livros

    -- --




  1. ceara
    Posts:38


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Dalton,

    Obrigado cara, eu peguei um pluggin para o NetBeans, mas estou apanhando aqui, nunca trabalhei com ANT e nem relatórios..

    Obrigado

    Rafael Ferreira
    Ceará
    _________________
    Stackoverflow.com




  1. linomarcos
    Posts:1


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Para usar o iReport precisa ter instalado o Jasper Report?

    Tô perdido.
    Não estou conseguindo nem instalar o Jasper Reports. Já baixei o programa no site (http://jasperreports.sourceforge.net/requirements.html#jdbc) do sourceforge, mas ele só possui arquivos .jar. Pelo que entendi terei que gerar uma aplicação em java para gerar os relatórios de que preciso.

    Eu estava utilizando o Crystal Reports, mas essa m... não funciona em linux. Por isso resolvi mudar para o Jasper que até o momento me parece muito bom. Com excessão da facilidade de instalar!

    Tentei segui as instruções no site do jasper reports, mas lá só passa o requerimento do programa.
    (Falando nisso não encontrei o Driver JDBC que o site fala).

    E preciso urgentemente da ferramenta.

    Minha intenção é criar os relatórios tanto em Windows como Linux e rodar os mesmos em ambas plataformas. Aqui eu utilizo o Windows 2000 Server e o Kurumin(Linux). As paginas são desenvolvidas em ASP e o Banco é SQL, e eu gostaria de uma solução para chamar os relatórios a partir do asp.

    e só mais algumas questões:
    O que é Ant e onde eu encontro?
    O JDK que o site se refere é o que vem com o NetBeans (Pois é este que está instalado na minha máquina)?
    O JAXP XML Parser que o site se refere não está funcionando nenhum dos links e eu não consegui encontrá-lo. Onde Achá-lo?
    Como instalar o XLS no windows 2000(Se é que precisa)?
    _________________
    JavaFree.org


  1. Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Linomarcos...

    se tiver duvidas ainda sobre o IReport pode me cadastrar no messenger...
    eu tbm apanhei bastante do IReport qndo começei... agora aprendi alguma coisa com ele
    alias... eu naum me importe de alguem me cadastrar... fico feiz em poder ajudar tbm

    ******************* 24/11/2004 **********************
    Pessoal... a algum tempo eu mudei de empresa, e agora não estou mais trabalhando com Java, sendo assim não utilizo mais o JasperReport e nem o IReport... ainda assim podem me cadastrar no msn... mas não tenho mais nenhum exemplo de relatorio para auxilia-los...
    ****************************************************
    _________________
    JavaFree.org




  1. madmonk
    Posts:1


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Aproveitando esse tópico... Alguém aí sabe como fazer um relatório "zebrado" (as linhas ficam alternando de cor pra facilitar a leitura) ???

    Agradeço sua atenção.
    _________________
    JavaFree.org




  1. RodReis
    Posts:77


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    EhPegue o arquivo .jar do Jasper e coloque na variável de ambiente
    CLASSPATH. Como q é isso?

    Na minha variavel de ambiente tem:

    -JASPERREPORT_HOME = C:\jasperreports-0.6.0;
    C:\jasperreports-0.6.0\lib\jasperreports-0.6.0.jar

    -JAVA_HOME = C:\j2sdk1.4.2_03

    -Path = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Arquivos de programas\ATI Technologies\ATI Control Panel;C:\j2sdk1.4.2_03\lib;C:\jasperreports-0.6.0\lib;C:\mysql\lib;C:\jasperreports-0.6.0\lib\jasperreports-0.6.0.jar;.


    O q devo fazer, não sei mais o q devo fazer?
    _________________
    JavaFree.org


  1. Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Eh

    RodReis

    -JASPERREPORT_HOME = C:\jasperreports-0.6.0;
    C:\jasperreports-0.6.0\lib\jasperreports-0.6.0.jar

    -JAVA_HOME = C:\j2sdk1.4.2_03

    -Path = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Arquivos de programas\ATI Technologies\ATI Control Panel;C:\j2sdk1.4.2_03\lib;C:\jasperreports-0.6.0\lib;C:\mysql\lib;C:\jasperreports-0.6.0\lib\jasperreports-0.6.0.jar;.


    kra... naum to lembrado direito, mas acho q vc deve adicionar esses endereços em "Variaveis do Ambiente" no windows, depende da versão q vc usa, tipow no windows 2000, vc vai em propriedades do sistema, na aba avançado tem lah o botão variaveis do ambiente... acho q eh isso
    no linux naum sei como funciona
    mas tenta isso ai, depois vc diz se funciona
    _________________
    JavaFree.org




  1. fmrabelo
    Posts:2


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Olá pessoal, estou com um probleminha com um relatório em jasper.
    Eu uso o Ireport e estou tentando evitar a quebra de relatório por página.
    Necessito que, se um relatório não couber no espaço restante de uma página, esse relatorio deve iniciar em uma nova pagina, deixando todo o espaço no final da pagina atual em branco.
    Este relatório contem 4 grupos e eu tentei configurar estes grupos na opção "print header on each page" no menu "Add/modify group".
    Com essa configuração, quando não há espaço para o relatório; este é impresso até o final da página, ocorre a quebra, mas todo o relatório se repete na nova página. O problema seria resolvido se o relatório não fosse impresso no final da página onde ocorre a quebra.
    Não sei se daria para resolver este problema utilizando a opção "Group Expression".

    Aguardo sugestöes.
    Obrigado galera.
    Flavio
    _________________
    JavaFree.org




  1. Rocker
    Posts:125


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Ae pessoal,
    Alguem sabe como fazer uma multiplicacao no iReport?
    Crio uma variavel no iReport?

    Quero multiplicar os valores de dois campos de uma tabela.

    Até mais!
    _________________
    WE ROCK!
    JavaFree.org




  1. Luis Coelho
    Posts:121


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Alguem tem um tutorial de iReport utilizando a entrada de dados via COLLECTION ou ARRAY??

    E sei tiver como criar um PDF somente em memoria para WEB agradeço
    _________________
    Luis Fernando Coelho
    Bacharel em Ciência da Computação da FURB Blumenau - SC
    Gerente de TI

    JavaFree.org




  1. Luis Coelho
    Posts:121


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Seguinte cara,,,

    Vc possui algum exemplo de como alimentar um relatorio feito em JasperReport através de um Collection ou Array??

    Pq até agora soh vi exemplo com sql do banco.
    _________________
    Luis Fernando Coelho
    Bacharel em Ciência da Computação da FURB Blumenau - SC
    Gerente de TI

    JavaFree.org




  1. ceara
    Posts:38


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Olá....

    Finalmente consegui fazer o iReport funcionar...

    Só não ficou claro para mim, como que eu executo ele de "fora", como de um software que eu fiz em java posso chamar o iReport e utilizar já um relatorio pronto...

    Ainda ficou essa duvida!!

    agradeço muito
    Rafael Ferreira
    _________________
    Stackoverflow.com




  1. Luis Coelho
    Posts:121


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Caro Rafael Ferreira

    Para executar um relaótiro feito pelo Ireport vc utilizará o arquivo compilado do seu relatório XX.jrxml

    Logo vc criara um classe em java que será chamada pelo seu programa.
    Algo parecido com :

    _________________
    Luis Fernando Coelho
    Bacharel em Ciência da Computação da FURB Blumenau - SC
    Gerente de TI

    JavaFree.org


  1. Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Galera.... estou gerando relatorios com o ireport numa boa, mas estou com um pequeno problema. A quebra de página está errada, ele está quebrando com +- 2/3 da página e ja começa o conteúdo da proóxima página na mesma. Se alguém tiver alguma idéia de como resolver isso, responda pf.
    _________________
    JavaFree.org




  1. ceara
    Posts:38


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Desculpe a lerdeza...

    Mas voltei a implementar esse meu projeto...

    Montei o meu software que joga tudo no banco e consegui fazer o iReport rodar e montei o relatorio e tudo funciona..

    Está faltando a integração entre os 2.

    Copiei o codigo que o amigo colocou lá em cima...

    Mas estou tendo erros nas lib´s.... não acha aqui pra compilar




    RelatorioLaboratorio.java [12:1] package net.sf.jasperreports.engine does not exist
    import net.sf.jasperreports.engine.JasperManager;
    ^
    RelatorioLaboratorio.java [13:1] package net.sf.jasperreports.engine does not exist
    import net.sf.jasperreports.engine.JasperPrint;
    ^
    RelatorioLaboratorio.java [14:1] package net.sf.jasperreports.engine does not exist
    import net.sf.jasperreports.engine.JasperReport;
    ^
    RelatorioLaboratorio.java [15:1] package net.sf.jasperreports.engine.design does not exist
    import net.sf.jasperreports.engine.design.JasperDesign;
    ^
    RelatorioLaboratorio.java [16:1] package net.sf.jasperreports.view does not exist
    import net.sf.jasperreports.view.JasperViewer;



    Se alguem puder me ajudar... agradeço muito!!

    Ceará
    _________________
    Stackoverflow.com




  1. djeff
    Posts:3


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Luis Coelho
    Caro Rafael Ferreira

    Para executar um relaótiro feito pelo Ireport vc utilizará o arquivo compilado do seu relatório XX.jrxml

    Logo vc criara um classe em java que será chamada pelo seu programa.
    Algo parecido com :


    eu tava usando o código disponível no guj e não tava conseguindo gerar a visualização do iReport e
    graças ao código disponibilizado aqui consegui gerar a visualização do meu relatório, muito obrigado aih Luis Coelho
    quanto a dúvida ali das lib's, uma pergunta: Elas foram importadas para a sua IDE??? Por exemple, eu to usando o JBuilder X, para poder encontrá-las tive que ir em required libraries e adicionar os arquivos da pasta lib do iReport, aih elas foram reconhecidas
    _________________
    JavaFree.org




  1. svinter
    Posts:1


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    EhMeu código é o seguinte:

    import net.sf.jasperreports.engine.data.JRXmlDataSource;
    import net.sf.jasperreports.engine.export.JRPdfExporter;
    import net.sf.jasperreports.engine.*;
    import java.util.HashMap;


    public class Relatorio {

    public static void main(String[] args) throws Exception {

    String reportFileName = "addressbook.jasper";
    String outFileName = "addressbook.pdf";
    String xmlFileName = "bd.xml";
    String recordPath = "/Northwind/Customers";

    JRXmlDataSource jrxmlds = new JRXmlDataSource(xmlFileName,recordPath);

    HashMap hm = new HashMap();

    try
    {
    JasperPrint print = JasperFillManager.fillReport(
    reportFileName,
    hm,
    jrxmlds);

    JRExporter exporter = new net.sf.jasperreports.engine.export.JRPdfExporter();

    exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,outFileName);
    exporter.setParameter(JRExporterParameter.JASPER_PRINT,print);

    exporter.exportReport();
    System.out.println("Created file: " + outFileName);
    }
    catch (JRException e)
    {
    e.printStackTrace();
    System.exit(1);
    }
    catch (Exception e)
    {
    e.printStackTrace();
    System.exit(1);
    }

    }

    }

    Eu queria saber pq o seguinte erro está ocorrendo? Ao executar...

    C:\j2sdk1.4.2_08\bin\java.exe -classpath "C:\j2sdk1.4.2_08\jre\lib\rt.jar;C:\j2sdk1.4.2_08\lib\tools.jar;C:\j2sdk1.4.2_08\jasperreports-0.6.6.jar;E:\relatorio" Relatorio
    org.xml.sax.SAXParseException: Document root element is missing.
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)
    at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:66
    at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
    at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:44
    at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
    at net.sf.jasperreports.engine.data.JRXmlDataSource.parse(JRXmlDataSource.java:24
    at net.sf.jasperreports.engine.data.JRXmlDataSource.(JRXmlDataSource.java:219)
    at Relatorio.main(Relatorio.java:16)

    NESTED BY :
    org.xml.sax.SAXParseException: Document root element is missing.
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)
    at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:66
    at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)

    at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:44
    at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
    at net.sf.jasperreports.engine.data.JRXmlDataSource.parse(JRXmlDataSource.java:24
    at net.sf.jasperreports.engine.data.JRXmlDataSource.(JRXmlDataSource.java:219)
    at Relatorio.main(Relatorio.java:16)

    NESTED BY :
    net.sf.jasperreports.engine.JRException: Failed to parse the xml document
    at net.sf.jasperreports.engine.data.JRXmlDataSource.parse(JRXmlDataSource.java:250)
    at net.sf.jasperreports.engine.data.JRXmlDataSource.(JRXmlDataSource.java:219)
    at Relatorio.main(Relatorio.java:16)
    Caused by: org.xml.sax.SAXParseException: Document root element is missing.
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)
    at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:66
    at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
    at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:44

    at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
    at net.sf.jasperreports.engine.data.JRXmlDataSource.parse(JRXmlDataSource.java:24
    ... 2 more
    Exception in thread "main" Finished executing
    _________________
    JavaFree.org




  1. edneyfs
    Posts:5


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    EhPessoal,
    Estou com outra duvida:
    Não consigo gerar um relatorio apartir de um XML (jrxml), isso em uma aplicação WEB, pq quanto estou testando por um metodo main no meu projeto java, pega tranquilo.
    Eu ja havia passado por isso antes, mas me livrei usando o arquivo ja copilado (.jasper), so que dessa vez eu tenho que usar o JRXML e compilar.



    O erro é o seguinte:



    Eu acho o seguinte, ele tenta copilar e gera esse *.java temporariamente, so que ele esta pegando um caminho doido, no meu caso o "C:\eclipse3.1\" ao inves do path da minha aplicação. E nesse caminho ele não tem acesso ao jar do JasperReport, entao ele nao acha nenhuma das suas classes.

    Alguem já teve esse problema?




  1. dissonantbr
    Posts:1


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Eu acabei de achar um outro forum onde o rapaz teve o mesmo problema e sabe como resolve? Colocando um tal de jdt.compiler.jar dentro do lib do teu WEB-INF. Dá uma olhadinha na url que me resolveu o problema:http://dev.eclipse.org/newslists/news.eclipse.platform.rcp/msg05138.html

    Boa Sorte!,

    Jeff




  1. artur meier
    Posts:1


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Uma maneira de fazer relatórios zebrados, na band Detail, adicionar o retangulo q ira aparecer linha sim linha nauh.
    Na propriedade desse retangulo, na aba common no espaço Print When Expression adicionar a seguinte regra:
    new Boolean(($V{COLUMN_COUNT}.intValue() % 2) == 0)




  1. wolf creek
    Posts:6


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Ae galera !!!!!
    Como faço para importar:

    import net.sf.jasperreports.engine.JasperManager;
    import net.sf.jasperreports.engine.JasperPrint;
    import net.sf.jasperreports.engine.JasperReport;
    import net.sf.jasperreports.engine.design.JasperDesign;
    import net.sf.jasperreports.view.JasperViewer;

    tentei importar no eclipse,mas não consegui...
    O q dvo fazer para poder importar essas classes ????

    _________________
    Gl@diator


  1. Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Como faço para gerar um relatorio frente e verço
    E assim tenho um relatorio no ireport frente e outro verso
    Como falço para ele gerarem um frente e outro verso


  1. Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Pessoal, eu estou fazendo um relatório que contém alguns subrelatórios.

    Como faço para forçar uma quebra de página antes de cada subrelatório?




  1. rMoreira
    Posts:1


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    tenho a seguinte query funcionando:

    select cst.CST_NOME nomeConsultor, tabelaR.totalMinutos totalMinutosConsultor, tabelaR.nomeProjeto nomeProjeto
    from rel_consultor cst,
    --tabelaR
    (select h.HRS_PRJCST_CST_LOGIN login,
    sum(
    NVL(
    (to_char(h.HRS_SAIDA_AM,'HH24')*60+to_char(h.HRS_SAIDA_AM,'MI'))
    -(to_char(h.HRS_ENTRADA_AM,'HH24')*60+to_char(h.HRS_ENTRADA_AM,'MI')),0
    )
    +
    NVL((to_char(h.HRS_SAIDA_PM,'HH24')*60 + to_char(h.HRS_SAIDA_PM,'MI'))
    -(to_char(h.HRS_ENTRADA_PM,'HH24')*60 + to_char(h.HRS_ENTRADA_PM,'MI')),0
    )) totalMinutos, p.PRJ_NOME nomeProjeto
    from rel_horas h, rel_projeto p
    where h.HRS_PRJCST_PRJ_COD in(2526,2830,2521,2833,87,34,36,40)
    and h.HRS_PRJCST_PRJ_COD=p.PRJ_COD
    and (h.HRS_DATA between to_date($P{dataInicial},'DD/MM/YYYY') and to_date($P{dataFinal},'DD/MM/YYYY'))
    group by h.HRS_PRJCST_CST_LOGIN, p.PRJ_NOME) tabelaR
    --fim tabelaR
    where tabelaR.login = cst.CST_LOGIN
    order by tabelaR.nomeProjeto, cst.CST_NOME


    O problema esta quando eu tento passar um parametro para o "in()" da linha :

    where h.HRS_PRJCST_PRJ_COD in(2526,2830,2521,2833,87,34,36,40)

    ja tentei passar um parametro do tipo string da seguinte forma:

    where h.HRS_PRJCST_PRJ_COD in($P{codProjeto})

    e o conteudo de codProjeto seria uma string como essa:

    "2526,2830,2521,2833,87,34,36,40"

    o que não deu certo. dessa forma soah funciona quando eu tenho apenas 1 projeto : "2526".

    não encontrei uma forma de passar um vetor ou algo parecido.

    resumindo:

    como faço para passar um parâmetro para a clausula in()

    se alguem puder me ajudar agradeço...




  1. gerdagr
    Posts:5


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Pessoal,

    fiz um relatorio no ireport.
    depois fiz um servlet.

    e agora??????????????

    como faço para chamar o relatorio na pagina web(html)?
    _________________
    Gerda Graciela




  1. koka
    Posts:1


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    galera
    seguinte estou tendo um pequeno problema cm o iReport
    eu consegui fazer o relatorio tranquilo no iREport soh q o meu problema esta sendo na hora de colocar no meu sistema java.
    gostaria de saber como q eu faço pra abrir o meu arquivo xml q o iReport gerou na minha aplicação java.
    como q eu faço pra numa classe minha gerar o relatorio
    se alguem puder me ajudar
    brigado

    flw




  1. marcoscorso
    Posts:160


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44


    e os parametros ...

    vc disse que passou na query do relatorio ..

    mas como faco pra imprimir esse parametro, imprimir "param1" ??

    _________________




  1. lessilva
    Posts:1


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Alguem sabe me dizer como mudar o top e o left dos Campos dinamicamente?
    ou seja passo por parametro o left e o top para posicionar os campos do meu relatorio

    Aguardo ajuda

    valeu..


  1. Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Alguém pode me ajudar, fiz o relatorio arquivo .jrxml porem quando acesso ele através de um href, é aberto o código do arquivo e não é executado o relatório, oq deve ser feito para executar o relatório?




  1. Edinei Manica
    Posts:2456


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    alexkonowalow
    Alguém pode me ajudar, fiz o relatorio arquivo .jrxml porem quando acesso ele através de um href, é aberto o código do arquivo e não é executado o relatório, oq deve ser feito para executar o relatório?



    Para executar um relatório a primeira coisa que você deve fazer é gerar o .jasper dele....... que é o arquivo compilado......
    Após isto você executa e mostra na tela.




  1. r0drig0lac
    Posts:4


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    poxa to na monografia, to tendo que fazer os relatorios em jasper, mas nao tenho experiencia, o banco(postgres) conecta com o report tranquilo, mas quando eu peço pra ver relatorio no beans,abre a tela do jasper(aquela meio branca ou cinza), mas nao consegue encontrar meu relatorio a tela fica branca, se alguem puder me ajudar ou mandar para mim algum exemlplo desktop usando report eu agradeço.


  1. Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Olá pessoal,
    acrescentando... http://www.livramento.yu.com.br/tutoriais/ireport.html
    Este material ajudou-me muito.

    Abraços!
    _________________
    GAMBI Design Pattern




  1. Fabioc
    Posts:1


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    pessoal, já diversos exemplos de relatorios com Ireport usando dataset, collection, array. Agora estou precisando fazer um passando apenas Objeto. Alguem tem algum exemplo que possa me ajudar? VALEU!!




  1. CrazyFlog
    Posts:2


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44


    Como faco para adicionar uma classe externa ao ireport? Sendo .java??




  1. Relacionados





Novo tópico   Responder tópico     Índice do forum -> [Tutoriais] - Frameworks, APIs, Instalação e Configuração


Ir à página 1, 2 Próximo - >>