Transformar uma lista em um pdf?

9 respostas
L

Eu fiz um relatorio ele me tras a pesquisa e joga em uma tabela p mostrar p cliente, porem nessa tela eu preciso ter um botão imprimir… minha dúvida é, como faço para transformar essa lista em um pdf?

alguém poderia me ajudar?

9 Respostas

Danilo_Carvalho

Existem varias formas dependendo de como é seu projeto, web, desktop, richfaces, primefaces etc.

Eu aconselho você a gerar o pdf usando o Ireport.

Até mais…

L

o meu projeto é web, vou da uma pesquisada sobre Ireport, mas de qualquer jeito vou colocar aqui como esta o meu jsp e minha classe(a q retorna a lista) p se caso vc tiver mais alguma sugestão:

<h1><img src="image/user.png" alt="" />Relatórios</h1>  
    <div class="content">  
        <form name="form1" action="Relatorios.do?action=list&filter=S" method="post" id="form">  
            <table style="width: 100%;">  
              <tr>  
                <td style="text-align: center;"><b>Tipo de Relatório:</b>  
                  <select name="filter#IDTBORIGEM#Integer" id="filter#IDTBORIGEM#Integer" value="<c:out value="${filter_IDTBORIGEM_Integer}"/>" style="width: 170px; margin-top: 4px">  
                            <option value="">Selecionar</option>  
                            <option value="1">Contas a Receber</option>  
                            <option value="2">Contas a Pagar</option>  
                        </select>  
                  <b>Cliente/Fornecedor:</b>  
                    <input type="text" name="filter#NOME#String" id="filter#NOME#String" value="<c:out value="${filter_NOME_String}"/>" style="width:170px;"/>  
                  <b>Data Inicial:</b>  
                    <input type="text" style="width:72px;" name="filter#DATAINICIAL#String" id="filter#DATAINICIAL#String" value="<c:out value="${filter_DATAINICIAL_String}"/>" />  
                  <b>Data Final:</b>  
                    <input type="text" style="width:72px;" name="filter#DATAFINAL#String" id="filter#DATAFINAL#String" value="<c:out value="${filter_DATAFINAL_String}"/>" />                   
                    
              </tr>  
              <tr>  
              <td style="text-align: center">                     
                <a onclick="javascritp:document.form1.submit();" class="button" >Filtrar</a>  
            </td></tr>  
            </table>  
        </form>  
<c:if test="${relatorioList eq 'relatorioList'}" >      
    <div class="content">  
        <table class="list">  
          <thead>  
            <tr>  
              <td align="left">Cliente</td>  
              <td align="left">Parcela</td>  
              <td align="left">Qtd. Parcelas</td>  
              <td align="left">Vencimento</td>  
              <td align="left">Valor</td>  
            </tr>  
          </thead>  
          <tbody>  
            <c:forEach var="RelatorioContasPagar" items="${sessionScope.RelatorioContasPagar_list}">  
            <tr>  
              <td align="left"><c:out value="${RelatorioContasPagar.NOME}" /> </td>  
              <td align="left"><c:out value="${RelatorioContasPagar.PARCELA}" /> </td>  
              <td align="left"><c:out value="${RelatorioContasPagar.QTDPARCELAS}" /> </td>  
              <td align="left"><c:out value="${RelatorioContasPagar.VENCIMENTO}" /> </td>  
              <td align="left"><c:out value="${RelatorioContasPagar.VALOR}" /> </td>  
            </tr>  
            </c:forEach>  
          </tbody>  
        </table> 
      </div>          
</c:if>
public class Relatorios implements ActionCommand {  
      
      
        private static String LIST_USER = "/index.jsp?Page=Relatorios.jsp";  
      
        public void execute(HttpServletRequest request,  
                HttpServletResponse response, RequestContext context)  
                throws ServletException, IOException {  
      
            HttpSession session = request.getSession();  
            String action     = request.getParameter("action");  
            String forward    = "";  
            String msgSuccess = "";  
            String msgError   = "";  
            String Where      = " 1 = 1";  
      
            if (action == null) {  
                action = "list";  
            }  
      
            try {  
                forward = LIST_USER;  
                Fin_DebitoDAO dao = new Fin_DebitoDAO();  
      
                if (action.equalsIgnoreCase("list")) {  
                    forward = LIST_USER;  
      
                    Enumeration<String> en = request.getParameterNames();  
                    while (en.hasMoreElements()) {  
      
                         String param = (String) en.nextElement();  
                         String[] paramProperties = param.split("#");  
                         String paramValue = "";  
      
                         if ( param.indexOf( "filter#" ) > -1 ) {  
      
                             paramValue   = (String) request.getParameter(param.toString());  
                             session.setAttribute(param.replace("#", "_"),request.getParameter(param));  
      
                             if (paramValue.length() > 0 ){  
                                 if (paramProperties[2].equalsIgnoreCase("Integer") == true) {  
                                     Where = Where + " AND " + paramProperties[1].toString() + " = " + paramValue;  
                                       
                                 } else if (paramProperties[2].equalsIgnoreCase("Date") == true) {  
                                     Where = Where + " AND " + paramProperties[1].toString() + " >= '" + paramValue +"'";  
                                     Where = Where + " AND " + paramProperties[1].toString() + " <= '" + paramValue +"'";  
                                 } else {  
                                     Where = Where + " AND UPPER(" + paramProperties[1].toString() + ") LIKE UPPER('%" + paramValue + "%')";  
                                 }  
                             }  
                         }  
                           
                    }  
      
                    session.setAttribute("RelatorioContasPagar_list", dao.Fin_Debito_List(Where, "nome", iOffset));  
                    session.setAttribute("relatorioList", "relatorioList");  
      
                }    
                session.setAttribute("msgSuccess", msgSuccess);  
                session.setAttribute("msgError", msgError);  
      
                context.setNextPage(forward);  
      
            } catch (Exception e) {  
                session.setAttribute("msgError", "Nao foi possivel efetuar " + action + " do registro!" + e.getMessage());  
            }  
      
        }  
      
    }

desde ja agradeco :)

Danilo_Carvalho

Então, com um projeto web quando se usa primefaces é possível exportar pdf facilmente usando componentes prontos, mas como seu projeto usa JSP, voce vai ter que usar o Ireport.

O Ireport é a melhor ferramenta para geração de relatórios, voce pode conferir isso pesquisando.

Se precisar de ajuda com o Ireport só dizer, tenho um bom conhecimento com esta ferramenta.

Até mais…

L

Danilo, estou lendo esse site: http://www.k19.com.br/artigos/relatorios-em-java-jasperreports-e-irepor/

porém não entendi muito bem, aqui ele tem uma lista que é gravado no formato .jrxml e depois eu pego esse arquivo e transformo em pdf?

não consegui entender como fazer no meu caso, porque depois q o cliente faz a pesquisa, chama a classe pesquisa no banco e ja me retorna uma lista onde já jogo no jsp… enfim, não consegui entender como deve ser feito…

L

Danilo… tem alguma sugestão?.. ainda não consegui fazer

Danilo_Carvalho

Boa tarde.

Vocẽ, possui um arrayList com os dados antes de entregar para sua pagina JSP, correto?

Quer que eu te ajude a desenvolver um relatório usando o ireport?

Até mais.

Danilo_Carvalho

Olha se este arquivo que acabei de gerar vai resolver para voce.

Este é um comprovante de vendas do meu sistema http://tidanilocarvalho.wordpress.com/2013/01/09/jboss-seam/

Até mais.

L

Oi Danilo… demorei, mas ainda preciso de ajuda… li o q vc me mandou fiz a mesma coisa q estava nos exemplos porem ainda nao sei como vou fazer para pegar os dados q já estao no jsp…qdo clicar no botao nao tem como fazer a consulta novamente… por que a consulta depende se a pessoa fez por nome, por data e etc… tem algum exemplo de como fazer?

G

1 forma de fazer:

1º prever todas as formas de pesquisa… ex: nome, cpf, data nasc;
2º criar um relatorio para cada tipo de pesquisa, por que teria os campos fixos no cabeçalho da tabela do relatorio
3º A pessoa vai escolher uma forma de pesquisa, e digitar o valor da pesquisa… ae vc vai pegar a forma de pesquisa e chamar o relatorio referente aquela pesquisa e passar o valor digitado.
4º O Ireport vai pegar o valor digitado e realizar uma busca no seu banco e gerar o pdf com as informções desejada.

outra forma:
1º prever todas as formas de pesquisa… ex: nome, cpf, data nasc;
2º criar um relatorio contendo só variaveis que quando fosse solicitado a pesquisa vc passaria os valores que teoricamente sao fixas + o valor que a pessoa digito pro ireport fazer a pesquisa…


exemplos: Dados que teoricamente seria fixo - Nome | CPF | Data d Nasc |


| Nome | CPF | Data d Nasc |
|Carlos | 012 | 11 / 11 / 11 |
|Aasdf | 321 | 22 / 22 /22 |

Criado 29 de maio de 2013
Ultima resposta 11 de jun. de 2013
Respostas 9
Participantes 3