Popular uma tabela com um array

24 views
Skip to first unread message

Silvio Nunes

unread,
Sep 1, 2020, 9:38:36 AM9/1/20
to JasperReports / iReport Brasil
Olá pessoal…como faço para alimentar uma tabela dentro de meu relatório ? Meu código está assim: 

    // Colhe os dados do form e envia via Ajax 

    String[] dadosRec = new String[5]; 
    dadosRec[0] = solicitante; 
    dadosRec[1] = String.valueOf(qtde);
    dadosRec[2] = serv; 
    dadosRec[3] = dtentrega; 
    dadosRec[4] = vetordns; 

     // No método que recebe os dados 

    List<DnSaida> dnsaida = new ArrayList<DnSaida>(); 
    DnSaida dnsaida1 = new DnSaida(); 
    dnsaida1.setSolicitante(dadosRec[0]); 
    dnsaida1.setQtde(dadosRec[1]);
    dnsaida1.setServidor(dadosRec[2]); 
    dnsaida1.setDtEntrega(dadosRec[3]); 
    String[]dadosdns = dadosRec[4].split(","); 
    dnsaida1.setDns(dadosdns); // Vai popular a tabela
    dnsaida.add(dnsaida1); 
    DnCorSaidaREL recibo = new DnCorSaidaREL(); 
    recibo.imprimir(dnsaida); 

    // Bean 

     public String[] getDns(){ 
       return dns; 
     } 
    public void setDns(String[] dns){ 
       this.dns = dns; 
    } 

      // No método imprimir(List<DnSaida> dnssaida) 

     JasperReport report = JasperCompileManager.compileReport("c:/wildfly-       12.0.0.Final/RecibosSisprot/recibentregadncor.jrxml"); 
 JasperPrint print = new JasperPrint(); 
    print = JasperFillManager.fillReport(report, null, new JRBeanCollectionDataSource(dnssaida));      JasperExportManager.exportReportToPdfFile(print, "c:/wildfly12.0.0.Final/RecibosSisprot/recibentregadncor.pdf"); 

Está apresentando a tabela vazia. Como resolver isso ?  

Denis Benjamim

unread,
Sep 1, 2020, 12:44:04 PM9/1/20
to jasperreports-...@googlegroups.com
Quando seu ajax é assíncrono ou síncrono?
Quando gera o relatório você usou o debug a lista estava completa? 

--
Você recebeu essa mensagem porque está inscrito no grupo "JasperReports / iReport Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jasperreports-irepor...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/jasperreports-ireport-brasil/7de79297-bbaf-4ae1-82a5-4963c3b692d4n%40googlegroups.com.

Silvio Nunes

unread,
Sep 20, 2020, 7:35:02 PM9/20/20
to jasperreports-...@googlegroups.com
Opa, colega...grato pela resposta. Ajax assíncrono. E lista do relatório completa.

Denis Benjamim

unread,
Sep 20, 2020, 9:37:56 PM9/20/20
to jasperreports-...@googlegroups.com
Tentou desativar o async do ajax? As vezes pode ser por esta assíncrono que seu relatório é gerado antes dos dados 

Silvio Nunes

unread,
Sep 23, 2020, 4:15:14 PM9/23/20
to JasperReports / iReport Brasil
Não...e na verdade minha grande dúvida é como receber no report esse objeto. Via parametro ? É necessário criar textfield ? Como ficará por exemplo numa tabela de 4 colunas...pode me dar um código como exemplo ?

Denis Benjamim

unread,
Sep 23, 2020, 10:42:47 PM9/23/20
to jasperreports-...@googlegroups.com
É um tanto quanto complicado eu vi no seu código no email inicial esse trecho new JRBeanCollectionDataSource(dnssaida));      ao realizar o debug o a lista(dnssaida) continha os dados? Quando passou por essa linha? 
Se sim o componente list é capaz de exibir em lista mas um jrbeancollectiondatasource deve ser visto como para cada item na lista q passou como um novo registro no seu report, seria necessário ver de alguma forma a configuração que fez para receber os parâmetros infelizmente e difícil providenciar qualquer código que seja para te auxiliar sem mais detalhes. 
Tive um problema com jrbeancollectiondatasource e escrevi um pouco no meu blog se ainda sim não conseguir pode me chamar no e-mail PV e tento te ajudar de outra forma http://denisbenjamim.blogspot.com/2020/05/jasperreports-jrbeancollectiondatasourc.html?m=1


Reply all
Reply to author
Forward
0 new messages