hibernate + relatorio pdf

448 views
Skip to first unread message

vilmar ferreira

unread,
Dec 16, 2011, 6:34:28 AM12/16/11
to jav...@googlegroups.com
Bom dia galera, td blz??
É o seguinte, tenho uma datatable e a partir de um registro gerar um
relatorio pdf. Mas queria que esse relatorio fosse customizado de
forma organizada. Com o logo da empresa, algumas informações estáticas
e dinâmicas (registros).
Estava lendo a respeito do jasper. Mas o que não entendi foi, como
irei customizar isso? Preciso de algum programa? No caso o ireport???

Alguem pode me abrir a cabeça quando a isso???

Desde ja agradeço,

Vilmar Ferreira

Arthur Franco Ferreira

unread,
Dec 16, 2011, 8:58:08 AM12/16/11
to jav...@googlegroups.com
Baixe o iReport IDE

http://jasperforge.org/projects/ireport

Tutoriais:

http://www.guj.com.br/content/articles/reports/JasperReportsIReport.pdf
http://www.slideshare.net/flaviowd/tutorial-gerando-relatrios-com-jasperreports-e-ireports-no-netbeans


Arthur Franco Ferreira
Analista Desenvolvedor Web Java Pleno
Licenciado em Computação
UNILASALLE-RJ




2011/12/16 vilmar ferreira <vilma...@gmail.com>

Vilmar Ferreira

--
Você recebeu esta mensagem por que é membro do  Javasf
http://groups.google.com/group/javasf

Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil

Flavio Cysne

unread,
Dec 16, 2011, 10:22:36 AM12/16/11
to jav...@googlegroups.com
Vilmar,

    aqui na empresa estou usando o iReport para personalizar alguns relatórios. Crio vários sub-relatórios com modelos pré-definidos e monto o meu relatório final juntando vários destes subrelatórios (um abaixo do outro ou em bandas específicas). Desta forma eu padronizo as seções do meu relatório (cabeçalho, detalhe, grupo, título) e faço uma composição delas de acordo com a necessidade. Seria como, no Office, ter vários modelos de slides e compor sua apresentação juntando vários modelos diferentes.

Espero ter ajudado.
Flávio Cysne

vilmar ferreira

unread,
Dec 19, 2011, 7:57:00 AM12/19/11
to jav...@googlegroups.com
Pronto, baixei o ireport, criei o relatorio, e agora? Como faço para obter o arquivo .jasper??

Douglas

unread,
Dec 19, 2011, 8:01:38 AM12/19/11
to jav...@googlegroups.com
Busca rápida no google por "tutorial ireport"

http://www.livramento.yu.com.br/tutoriais/ireport.html
Douglas

"O homem não teria alcançado o possível se, repetidas vezes, não tivesse
tentado o impossível." Max Weber

Flavio Cysne

unread,
Dec 19, 2011, 8:08:29 AM12/19/11
to jav...@googlegroups.com
Vilmar,

    o .jasper é o arquivo compilado de um relatório do iReport. Ele é obtido abrindo um relatório (arquivo .jrxml) no iReport e compilando-o ou usando o preview (que faz a compilação antes de exibir). Normalmente os arquivos .jasper ficam na mesma pasta do arquivo do relatório.

Atenciosamente,
Flávio Cysne.

vilmar ferreira

unread,
Dec 19, 2011, 8:09:38 AM12/19/11
to jav...@googlegroups.com
Achei o arquivo... Agora vou tentar fazer com que funcione pelo java...

vilmar ferreira

unread,
Dec 19, 2011, 8:47:40 AM12/19/11
to jav...@googlegroups.com
Ta ficando tudo certo, nao to conseguindo é passar o valor do parametro via aplicação
está dando este erro:
GRAVE: net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : TPED_NUMERO_PEDIDO_PK
Caused by: java.lang.NoSuchMethodException: Unknown property 'TPED_NUMERO_PEDIDO_PK'

Douglas

unread,
Dec 19, 2011, 8:55:57 AM12/19/11
to jav...@googlegroups.com
Você pode utilizar:

//envia para o navegador o PDF gerado
            JasperRunManager.runReportToPdfStream(reportStream,
                    servletOutputStream, parametros,fonteDados);

onde parametros é:

Map<String, String> parametros = new HashMap<String, String>();
            parametros.put("TITULO", "Lotes Recepcionados");

Neste exemplo estou definindo o valor da variavel TITULO, que coloquei no relatorio


Exemplo:

        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletResponse response = (HttpServletResponse) context.
            getExternalContext().getResponse();
       
        //pega o caminho do arquivo .jasper da aplicação
        InputStream reportStream = context.getExternalContext()
            .getResourceAsStream("/resources/relatorios/lotes.jasper");

        //envia a resposta com o MIME Type PDF
        response.setContentType("application/pdf");
       
        try {
            ServletOutputStream servletOutputStream = response.getOutputStream();
       
            //envia o título para o relatório, usando o parâmetro criado
            Map<String, String> parametros = new HashMap<String, String>();
            parametros.put("TITULO", "Lotes Recepcionados");
       
             List dados = new ArrayList();
             
             Map record = null;
             
             //varre a consulta e separa os objetos
             for (Lote lote:lotes) {
       
                 record = new HashMap();
                 //coloca em um Map cada um dos campos criados
                 //manualmente pelo relatório
                 record.put("numero_lote", lote.getId().getNumeroLote());
                 record.put("codigo_ans", lote.getId().getCodigoAns());
                 record.put("quantidadeGuias", lote.getQuantidadeGuias());
                 record.put("tipoGuia", lote.getTipoGuia());
                 record.put("dataEntrada", lote.getDataEntrada());
                 
                 //adiciona o List dados
                 dados.add(record);
             
             }
       
            //cria uma fonte de dados para coleções
            JRBeanCollectionDataSource fonteDados =
                new JRBeanCollectionDataSource(dados);
       
            //envia para o navegador o PDF gerado
            JasperRunManager.runReportToPdfStream(reportStream,
                    servletOutputStream, parametros,fonteDados);
       
            servletOutputStream.flush();
            servletOutputStream.close();
       
        } catch (JRException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            context.responseComplete();

vilmar ferreira

unread,
Dec 19, 2011, 11:39:36 AM12/19/11
to jav...@googlegroups.com
 Map<String, String> parametros = new HashMap<String, String>();
            parametros.put("TITULO", "Lotes Recepcionados");

Este "TITULO" vc definiu aonde?  No IReport? É o nome do parâmetro??

Fui por este segmento colocando o nome do parâmetro assim:
 Map<String, String> param = new HashMap<String, String>();
             param.put("TPED_NUMERO_PEDIDO_PK", session.getAttribute("numeroos").toString());

E deu este erro:

Caused by: java.lang.NoSuchMethodException: Unknown property 'TPED_NUMERO_PEDIDO_PK'

vilmar ferreira

unread,
Dec 19, 2011, 11:50:27 AM12/19/11
to jav...@googlegroups.com
Eu to achando que seja na sql do ireport. Eu estou usando a versão 4.
Como eu coloco parâmetro? Eu so criei o parametro mas nao sei como usalo.

Flavio Cysne

unread,
Dec 19, 2011, 12:08:43 PM12/19/11
to jav...@googlegroups.com
No jasperreports existem parâmetros, campos e variáveis que podem ser reutilizados assim:

Parâmetro - $P{NomeDoParametro}
Campo - $F{NomeDoCampo}
Variável - $V{NomeDaVariavel}

Pelo erro parece que, em alguma expression de campo, você está usando uma expressão tipo $F{CAMPO}.TPED_NUMERO_PEDIDO_PK

Espero ter ajudado.
Flávio Cysne

Douglas

unread,
Dec 19, 2011, 12:13:03 PM12/19/11
to jav...@googlegroups.com
No caso meu TITULO é um Parâmetro - $P{NomeDoParametro}

Mas tenho por exemplo o numero_lote definido no relatorio assim $F{numero_lote} e no java faço da mesma forma, incluindo no map.
Lembre se que é case sensitive.

Em 19 de dezembro de 2011 14:39, vilmar ferreira <vilma...@gmail.com> escreveu:

vilmar ferreira

unread,
Dec 19, 2011, 1:09:45 PM12/19/11
to jav...@googlegroups.com
fui no relatorio e onde tinha $F{TPED_NUMERO_PEDIDO_PK}, troquei por $P{TPED_NUMERO_PEDIDO_PK} que foi o parâmetro que criei, mas continua dando o seguinte erro:

Caused by: java.lang.NoSuchMethodException: Unknown property 'TPED_NUMERO_PEDIDO_PK'

vilmar ferreira

unread,
Dec 19, 2011, 1:10:33 PM12/19/11
to jav...@googlegroups.com
Se eu da um preview la no relatorio funciona blz.

vilmar ferreira

unread,
Dec 19, 2011, 1:25:32 PM12/19/11
to jav...@googlegroups.com
to pensando que pode ser no mapeamento hibernate...

vilmar ferreira

unread,
Dec 20, 2011, 5:09:03 AM12/20/11
to jav...@googlegroups.com
Douglas para que serve essa variavel do tipo Map? Para mapeador todos os fields?? Este laço  for (Lote lote:lotes), lotes é uma lista do tipo Lote??

Douglas

unread,
Dec 20, 2011, 8:13:10 AM12/20/11
to jav...@googlegroups.com
O Map contém os dados dos parâmetros e variaveis do relatorio, o lotes que aparece no for é um List<Lote>

vilmar ferreira

unread,
Dec 20, 2011, 8:14:59 AM12/20/11
to jav...@googlegroups.com
eu to fazendo igualzinho, mas na hora de executar da nullpointerexception em JasperRunManager.
runReportToPdfStream(reportStream,
                    servletOutputStream, parametros,fonteDados);

Somente quando eu faço esse laço para adicionar a variavel record.
Quando eu coloco a lista direto nao da null mas da aquele erro...


ta osso....

vilmar ferreira

unread,
Dec 20, 2011, 8:17:02 AM12/20/11
to jav...@googlegroups.com
Meu codigo:

 FacesContext context = FacesContext.getCurrentInstance();
        HttpServletResponse resposta = (HttpServletResponse) context.getExternalContext().getResponse();

        InputStream reportStream = null;


        resposta.setContentType("application/PDF");

        try {
            // HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
            /*List<TserOrdem> list = new ArrayList<TserOrdem>();
            for (TserOrdem ordemservico : osdao.getAllOS(this.os)) {
                list.add(ordemservico);
            }*/
            reportStream = OrdemHome.class.getResourceAsStream("os_teste.jasper");
            System.out.println("REPORT STREAM ======>" + reportStream);
            ServletOutputStream outputStream = resposta.getOutputStream();

            Map<String, String> parametros = new HashMap<String, String>();

            parametros.put("numeroOS", "WHERE numeroOS=" + Integer.toString(this.os.getId().getTserNumeroPedidoFkPk()));


            List dados = new ArrayList();
            Map record = null;

            for (TserOrdem ordemservico : osdao.getAllOS(this.os)) {
                record = new HashMap();
                record.put("TSERUNIDADEFKPK", ordemservico.getId().getTserUnidadeFkPk());
                record.put("TSERNUMEROPEDIDOFKPK", ordemservico.getId().getTserNumeroPedidoFkPk());
                dados.add(record);
            }
            System.out.println("OUTPUT STREAM ======>" + outputStream);
            System.out.println("parametros ======>" + parametros);
            System.out.println("dados ======>" + dados.get(0));


            JRBeanCollectionDataSource fonteDados = new JRBeanCollectionDataSource(dados);
            //System.out.println("fonte de dados ======>" + fonteDados);
            //JRDataSource jrds = new JRBeanCollectionDataSource(dados);
            JasperRunManager.runReportToPdfStream(reportStream, outputStream, parametros, fonteDados);
            outputStream.flush();
            outputStream.close();

vilmar ferreira

unread,
Dec 20, 2011, 8:17:49 AM12/20/11
to jav...@googlegroups.com
Mas da null sempre neste método =/////////////////

Douglas

unread,
Dec 20, 2011, 9:09:00 AM12/20/11
to jav...@googlegroups.com
Veja qual variavel está null.
Pode ser que o seu arquivo jasper já não esteja sendo carregado em:

reportStream = OrdemHome.class.getResourceAsStream("os_teste.jasper");

Por você tem que verificar quem está nulo.

Depois coloque o stacktrace aqui para darmos uma olhada

vilmar ferreira

unread,
Dec 20, 2011, 11:35:32 AM12/20/11
to jav...@googlegroups.com
está dando no :
 InputStream reportStream = context.getExternalContext().getResourceAsStream("os.jasper");
tentei de várias maneiras mas da erro.

vilmar ferreira

unread,
Dec 20, 2011, 11:36:33 AM12/20/11
to jav...@googlegroups.com
AVISO: StandardWrapperValve[ExemploRelatorioServlet]: PWC1406: Servlet.service() for servlet ExemploRelatorioServlet threw exception
java.lang.NullPointerException
    at g7.control.ExemploRelatorioServlet.processRequest(ExemploRelatorioServlet.java:44)
    at g7.control.ExemploRelatorioServlet.doGet(ExemploRelatorioServlet.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
    at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:662)

Douglas

unread,
Dec 20, 2011, 11:38:41 AM12/20/11
to jav...@googlegroups.com
onde você colocou o seu arquivo os.jasper ???

Em 20 de dezembro de 2011 14:35, vilmar ferreira <vilma...@gmail.com> escreveu:

vilmar ferreira

unread,
Dec 20, 2011, 11:39:38 AM12/20/11
to jav...@googlegroups.com
no mesmo pacote do meus MB e do Servlet

vilmar ferreira

unread,
Dec 20, 2011, 11:43:10 AM12/20/11
to jav...@googlegroups.com
funcionou assim: InputStream reportStream = this.getClass().getResourceAsStream("os.jasper");

mas da o erro tentando ler uma variavel, ele pensa que é um bean

vilmar ferreira

unread,
Dec 20, 2011, 12:16:07 PM12/20/11
to jav...@googlegroups.com
Douglas mudei a query hql e ja ta surtindo efeito... deu um erro diferente. so que na minha lista
GRAVE: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to g7.model.TserOrdem.

vilmar ferreira

unread,
Dec 20, 2011, 12:39:31 PM12/20/11
to jav...@googlegroups.com
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

       
        OrdemDAO osdao = new OrdemDAO(TserOrdem.class);
        ServletOutputStream ouputStream = null;
      

        try {

            HttpSession session = request.getSession(true);

                     
            Map parametros = new HashMap();
            parametros.put("tserNumeroPedidoFkPk", session.getAttribute("numpedido").toString());

            List list = new ArrayList();
            Map record = null;
            for (TserOrdem os : osdao.getList(Integer.parseInt(session.getAttribute("numpedido").toString()))) {
                record = new HashMap();
                record.put("tserNumeroPedidoFkPk", os.getId().getTserNumeroPedidoFkPk());
                record.put("tserUnidadeFkPk", os.getId().getTserUnidadeFkPk());
                System.out.println("NUM OS --->" + os.getId().getTserNumeroPedidoFkPk());
                System.out.println("unidade --->" + os.getId().getTserUnidadeFkPk());
                list.add(record);

            }

            InputStream reportStream = this.getClass().getResourceAsStream("os.jasper");

          
            System.out.println("caminho===========>" + reportStream);
            JRDataSource jrds = new JRBeanCollectionDataSource(list);
            JasperPrint jasperPrint = JasperFillManager.fillReport(reportStream, parametros, jrds);

            byte bytes[] = null;



            response.setHeader("application/pdf", "Content-Type");
            response.setContentType("application/pdf");
            bytes = JasperExportManager.exportReportToPdf(jasperPrint);



            response.setContentLength(bytes.length);
            ouputStream = response.getOutputStream();
            ouputStream.write(bytes, 0, bytes.length);
            ouputStream.flush();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {

          
           
            if (ouputStream != null) {
            ouputStream.close();

vilmar ferreira

unread,
Dec 20, 2011, 1:22:04 PM12/20/11
to jav...@googlegroups.com
java.lang.OutOfMemoryError: Java heap space

Agora deu isso, o que é? arquivo mt grande para ser gerado?

vilmar ferreira

unread,
Dec 22, 2011, 11:19:53 AM12/22/11
to jav...@googlegroups.com
Consegui galera. Vou postar o codigo aqui. Mas so tem um probleminha para mostrar a data no relatorio. Da o seguinte erro:
Caused by: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '2011-11-22' with class 'java.sql.Date' to class 'java.sql.Timestamp'
como soluciono isso?

Luxu

unread,
Dec 22, 2011, 6:36:59 PM12/22/11
to javasf: JavaServer Faces Group
mude a language de Groovy para Java e resolverá...

On 22 dez, 14:19, vilmar ferreira <vilmars...@gmail.com> wrote:
> Consegui galera. Vou postar o codigo aqui. Mas so tem um probleminha para
> mostrar a data no relatorio. Da o seguinte erro:
> Caused by: org.codehaus.groovy.runtime.typehandling.GroovyCastException:
> Cannot cast object '2011-11-22' with class 'java.sql.Date' to class
> 'java.sql.Timestamp'
> como soluciono isso?
>
> Em 20 de dezembro de 2011 16:22, vilmar ferreira <vilmars...@gmail.com>escreveu:
>
>
>
>
>
>
>
> > java.lang.OutOfMemoryError: Java heap space
>
> > Agora deu isso, o que é? arquivo mt grande para ser gerado?
>
> >>> Em 20 de dezembro de 2011 14:43, vilmar ferreira <vilmars...@gmail.com>escreveu:
>
> >>> funcionou assim: InputStream reportStream =
> >>>> this.getClass().getResourceAsStream("os.jasper");
>
> >>>> mas da o erro tentando ler uma variavel, ele pensa que é um bean
>
> >>>> Em 20 de dezembro de 2011 14:39, vilmar ferreira <vilmars...@gmail.com>escreveu:
>
> >>>> no mesmo pacote do meus MB e do Servlet
>
> >>>>> Em 20 de dezembro de 2011 14:38, Douglas <doug.um...@gmail.com>escreveu:
>
> >>>>> onde você colocou o seu arquivo os.jasper ???
>
> >>>>>> Em 20 de dezembro de 2011 14:35, vilmar ferreira <
> >>>>>> vilmars...@gmail.com> escreveu:
>
> >>>>>>> está dando no :
> >>>>>>>  InputStream reportStream =
> >>>>>>> context.getExternalContext().getResourceAsStream("os.jasper");
> >>>>>>> tentei de várias maneiras mas da erro.
>
> >>>>>>> Em 20 de dezembro de 2011 12:09, Douglas <doug.um...@gmail.com>escreveu:
>
> >>>>>>> Veja qual variavel está null.
> >>>>>>>> Pode ser que o seu arquivo jasper já não esteja sendo carregado em:
>
> >>>>>>>> reportStream =
> >>>>>>>> OrdemHome.class.getResourceAsStream("os_teste.jasper");
>
> >>>>>>>> Por você tem que verificar quem está nulo.
>
> >>>>>>>> Depois coloque o stacktrace aqui para darmos uma olhada
>
> >>>>>>>> Em 20 de dezembro de 2011 11:17, vilmar ferreira <
> >>>>>>>> vilmars...@gmail.com> escreveu:
>
> >>>>>>>>> Mas da null sempre neste método =/////////////////
>
> >>>>>>>>> Em 20 de dezembro de 2011 11:17, vilmar ferreira <
> >>>>>>>>> vilmars...@gmail.com> escreveu:
> >>>>>>>>>> vilmars...@gmail.com> escreveu:
>
> >>>>>>>>>> eu to fazendo igualzinho, mas na hora de executar da
> >>>>>>>>>>> nullpointerexception em JasperRunManager.
> >>>>>>>>>>> runReportToPdfStream(reportStream,
> >>>>>>>>>>>                     servletOutputStream, parametros,fonteDados);
>
> >>>>>>>>>>> Somente quando eu faço esse laço para adicionar a variavel
> >>>>>>>>>>> record.
> >>>>>>>>>>> Quando eu coloco a lista direto nao da null mas da aquele erro...
>
> >>>>>>>>>>> ta osso....
>
> >>>>>>>>>>> Em 20 de dezembro de 2011 11:13, Douglas <doug.um...@gmail.com>escreveu:
>
> >>>>>>>>>>> O Map contém os dados dos parâmetros e variaveis do relatorio, o
> >>>>>>>>>>>> lotes que aparece no for é um List<Lote>
>
> >>>>>>>>>>>> Em 20 de dezembro de 2011 08:09, vilmar ferreira <
> >>>>>>>>>>>> vilmars...@gmail.com> escreveu:
>
> >>>>>>>>>>>> Douglas para que serve essa variavel do tipo Map? Para mapeador
> >>>>>>>>>>>>> todos os fields?? Este laço  for (Lote lote:lotes), lotes é uma lista do
> >>>>>>>>>>>>> tipo Lote??
>
> >>>>>>>>>>>>> Em 19 de dezembro de 2011 11:55, Douglas <doug.um...@gmail.com
> >>>>>>>>>>>>> > escreveu:
>
> >>>>>>>>>>>>> Você pode utilizar:
>
> >>>>>>>>>>>>>> //envia para o navegador o PDF gerado
>
> >>>>>>>>>>>>>> JasperRunManager.runReportToPdfStream(reportStream,
> >>>>>>>>>>>>>>                     servletOutputStream,
> >>>>>>>>>>>>>> parametros,fonteDados);
>
> >>>>>>>>>>>>>> onde parametros é:
>
> >>>>>>>>>>>>>> Map<String, String> parametros = new HashMap<String,
> >>>>>>>>>>>>>> String>();
> >>>>>>>>>>>>>>             parametros.put("TITULO", "Lotes Recepcionados");
>
> >>>>>>>>>>>>>> Neste exemplo estou definindo o valor da variavel TITULO, que
> >>>>>>>>>>>>>> coloquei no relatorio
>
> >>>>>>>>>>>>>> Exemplo:
>
> >>>>>>>>>>>>>>         FacesContext context =
> >>>>>>>>>>>>>> FacesContext.getCurrentInstance();
> >>>>>>>>>>>>>>         HttpServletResponse response = (HttpServletResponse)
> >>>>>>>>>>>>>> context.
> >>>>>>>>>>>>>>             getExternalContext().getResponse();
>
> >>>>>>>>>>>>>>         //pega o caminho do arquivo .jasper da aplicação
> >>>>>>>>>>>>>>         InputStream reportStream =
> >>>>>>>>>>>>>> context.getExternalContext()
>
> >>>>>>>>>>>>>> .getResourceAsStream("/resources/relatorios/lotes.jasper");
>
> ...
>
> mais »

vilmar ferreira

unread,
Dec 23, 2011, 10:58:38 AM12/23/11
to jav...@googlegroups.com
como muda isso?

vilmar ferreira

unread,
Dec 23, 2011, 2:27:00 PM12/23/11
to jav...@googlegroups.com
mudei o TemporalType de Date para TimeStamp e funcionou.

Obrigado.

Em 23 de dezembro de 2011 07:58, vilmar ferreira
<vilma...@gmail.com> escreveu:

Luxu

unread,
Dec 24, 2011, 8:22:59 AM12/24/11
to javasf: JavaServer Faces Group
lá no iReport tem uma opção chamada LANGUAGE seta pra java e pronto...

On 23 dez, 17:27, vilmar ferreira <vilmars...@gmail.com> wrote:
> mudei o TemporalType de Date para TimeStamp e funcionou.
>
> Obrigado.
>
> Em 23 de dezembro de 2011 07:58, vilmar ferreira
> <vilmars...@gmail.com> escreveu:
>
> > como muda isso?
> ...
>
> mais »

vilmar ferreira

unread,
Jan 3, 2012, 12:25:00 PM1/3/12
to jav...@googlegroups.com
Primeiramente quero agradecer a todos pela paciência e ajuda. Como
comentei a uns posts logo atráz, abaixo segue meu código para geração
do pdf:

public void relatorioOSAll(List list) throws IOException, JRException {
try {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse)
context.getExternalContext().getResponse();
ServletOutputStream responseStream = response.getOutputStream();

Map param = new HashMap();
param.put("tserNumeroPedidoFkPk",
Integer.toString(this.os.getId().getTserNumeroPedidoFkPk()));
//param.put("imagem",
"http://localhost:8080/"+context.getExternalContext().getRequestContextPath()+"//images//g_logo.gif");
// caminho do jrxml
InputStream pathjrxml =
this.getClass().getResourceAsStream("os.jrxml");
InputStream pathimg =
this.getClass().getResourceAsStream("g_logo.gif");
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment;
filename=\"relatorioos"+this.os.getId().getTserNumeroPedidoFkPk()+".pdf\"");

List lista = new ArrayList();
Map record = null;
DateFormat dataFormat = new SimpleDateFormat("dd/MM/yyyy");
for(Iterator it = list.iterator(); it.hasNext();){
record = new HashMap();
TserOrdem ordemservido = (TserOrdem) it.next();

record.put("tserNome",
ordemservido.getTserTecnico().getTserNome());
record.put("tcliNomeRazao",
ordemservido.getTpedPedidoVenda().getTcliClienteByTpedClienteFk().getTcliNomeRazao());
record.put("tcliEndereco",
ordemservido.getTpedPedidoVenda().getTcliClienteByTpedClienteFk().getTcliEndereco());
record.put("tcliBairro",
ordemservido.getTpedPedidoVenda().getTcliClienteByTpedClienteFk().getTcliBairro());
record.put("tcliFone1Ddd",
ordemservido.getTpedPedidoVenda().getTcliClienteByTpedClienteFk().getTcliFone1Ddd());
record.put("tcliFone1Prefixo",
ordemservido.getTpedPedidoVenda().getTcliClienteByTpedClienteFk().getTcliFone1Prefixo());
record.put("tcliFone1Final",
ordemservido.getTpedPedidoVenda().getTcliClienteByTpedClienteFk().getTcliFone1Final());
record.put("tcliFone2Ddd",
ordemservido.getTpedPedidoVenda().getTcliClienteByTpedClienteFk().getTcliFone2Ddd());
record.put("tcliFone2Prefixo",
ordemservido.getTpedPedidoVenda().getTcliClienteByTpedClienteFk().getTcliFone2Prefixo());
record.put("tcliFone2Final",
ordemservido.getTpedPedidoVenda().getTcliClienteByTpedClienteFk().getTcliFone2Final());
record.put("tlocCidadeCepPk",
ordemservido.getTpedPedidoVenda().getTcliClienteByTpedClienteFk().getTcliCidadeCepFk().getTlocCidadeCepPk());
record.put("tlocNome",
ordemservido.getTpedPedidoVenda().getTcliClienteByTpedClienteFk().getTcliCidadeCepFk().getTlocNome());
record.put("tlocUfPk",
ordemservido.getTpedPedidoVenda().getTcliClienteByTpedClienteFk().getTcliCidadeCepFk().getTlocUf().getTlocUfPk());
record.put("tserDataVisita",
dataFormat.format(ordemservido.getTserDataVisita()));
record.put("tserDataPrometida",
dataFormat.format(ordemservido.getTserDataPrometida()));
record.put("tserSintomas", ordemservido.getTserSintomas());

lista.add(record);

}

JasperReport pathReport =
JasperCompileManager.compileReport(pathjrxml);
JasperPrint print =
JasperFillManager.fillReport(pathReport, param, new
JRBeanCollectionDataSource(lista));
JasperExportManager.exportReportToPdfStream(print, responseStream);

responseStream.flush();
responseStream.close();
context.renderResponse();
context.responseComplete();
} catch (Exception e) {
e.printStackTrace();
}


}

Reply all
Reply to author
Forward
0 new messages