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?
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?
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…
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 :)
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…
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…
Danilo… tem alguma sugestão?.. ainda não consegui fazer
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.
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.
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?
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 |