Fórum Duvida iReport #3984
25/03/2009
0
package com.br.servlets;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import com.br.beans.Login;
import com.br.conexao.ConexaoIreport;
/**
* Servlet implementation class ServletRelatorioConsultaPotencial
*/
public class ServletRelatorioConsultaPotencial extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void processRequest(HttpServletRequest httpServletRequest , HttpServletResponse httpServletResponse)
throws ServletException, IOException {
String marco = httpServletRequest.getParameter("marco_opr");
String area = httpServletRequest.getParameter("numeropropriedade_opr");
String vinculo = httpServletRequest.getParameter("vinculopessoas");
String renda_principal = httpServletRequest.getParameter("rendaprincipalpessoas");
String atividade_principal = httpServletRequest.getParameter("Atividadepricipalpessoas");
String atividade_secundaria = httpServletRequest.getParameter("atividadesecundariapessoas");
String parentesco = httpServletRequest.getParameter("parentescopessoas");
if (marco.equals("") == false && area.equals("") == false && vinculo.equals("") == false && renda_principal.equals("") == false && atividade_principal.equals("") == false && atividade_secundaria.equals("") == false && parentesco.equals("") == false){
String path = getServletContext().getRealPath("/relatorios/");
String relJasper = path+ "\\ConsultaPotencial.jasper";
HttpSession httpSession = httpServletRequest.getSession();
List listSession = (List) httpSession.getAttribute("login");
Iterator i = listSession.iterator();
while (i.hasNext()){
Login login = (Login)i.next();
login.setUsuario(login.getUsuario());
String usuario = login.getUsuario();
Map parameter = new HashMap();
parameter.put("Marco", marco);
parameter.put("Area",Double.parseDouble(area));
parameter.put("Tipo_Vinculo", Integer.parseInt(vinculo));
parameter.put("Tipo_renda_principal",Integer.parseInt(renda_principal));
parameter.put("AtividadePrincipal", Integer.parseInt(atividade_principal));
parameter.put("AtividadeSecundaria",Integer.parseInt(atividade_secundaria));
parameter.put("Tipo_parentesco", Integer.parseInt(parentesco));
parameter.put("Usuario",usuario);
JasperPrint report = null;
ConexaoIreport conexaoIreport = new ConexaoIreport();
try{
report = JasperFillManager.fillReport(relJasper, parameter, conexaoIreport.getConnection());
JasperExportManager.exportReportToPdfFile(report, "ArquivoPdf.pdf");
httpServletResponse.setContentType("application/pdf");
JasperExportManager.exportReportToPdf(report);
byte x1[] = JasperExportManager.exportReportToPdf(report);
httpServletResponse.getOutputStream().write(x1);
}
catch (Exception e) {
System.out.print(e.getMessage());
e.printStackTrace();
}
}
}
else if (atividade_principal.equals("") == true || atividade_secundaria.equals("") == true || parentesco.equals("") == true) {
String path = getServletContext().getRealPath("/relatorios/");
String relJasper = path+ "\\ConsultaPotencialResumido.jasper";
HttpSession httpSession = httpServletRequest.getSession();
List listSession = (List) httpSession.getAttribute("login");
Iterator i = listSession.iterator();
while (i.hasNext()){
Login login = (Login)i.next();
login.setUsuario(login.getUsuario());
String usuario = login.getUsuario();
Map parameter = new HashMap();
parameter.put("Marco", marco);
parameter.put("Area",Double.parseDouble(area));
parameter.put("Tipo_Vinculo", Integer.parseInt(vinculo));
parameter.put("Tipo_renda_principal",Integer.parseInt(renda_principal));
parameter.put("Usuario",usuario);
JasperPrint report = null;
ConexaoIreport conexaoIreport = new ConexaoIreport();
try{
report = JasperFillManager.fillReport(relJasper, parameter, conexaoIreport.getConnection());
JasperExportManager.exportReportToPdfFile(report, "ArquivoPdf.pdf");
httpServletResponse.setContentType("application/pdf");
byte x1[] = JasperExportManager.exportReportToPdf(report);
httpServletResponse.getOutputStream().write(x1);
}
catch (Exception e) {
System.out.print(e.getMessage());
e.printStackTrace();
}
}
}
else {
httpServletResponse.sendRedirect("error.jsp");
}
}
public ServletRelatorioConsultaPotencial() {
super();
// TODO Auto-generated constructor stub
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
}
Cristian Mietlicki
Curtir tópico
+ 0Post mais votado
25/03/2009
<td><input type="submit" value="Tela" onclick="javascript:direcionaConsultaTela();"></td>
<td><input type="submit" value="Relatório" onclick="javascript:geraRelatorio(); target="_blank"> </td>
Na verdade não da erro , só da um refresh na página e apaga os registros.
Cristian Mietlicki
Gostei + 1
Mais Posts
25/03/2009
Henrique Weissmann
1. NO link, mude o atributo target da tag a para _blank
2. Utilizando Javascript, crie uma nova janela cuja URL aponte para a responsável pela geração do relatório
Gostei + 0
25/03/2009
Cristian Mietlicki
Gostei + 0
25/03/2009
Henrique Weissmann
bem: sua aplicação gera o relatório a partir de um servlet, correto?
Neste caso, na página HTML que chama o servlet, voce poderia fazer algo como
<a href="/path/para/seu/servlet/com/parametros/se/for/o/caso" target="_blank">Gerar relatório</a>
Se quiser, pode também utilizar uma função javascript que gere uma janela cuja URL seja a URL do seu servlet. Neste link explica como fazer isto: http://www.pageresource.com/jscript/jwinopen.htm
Gostei + 0
25/03/2009
Cristian Mietlicki
Gostei + 0
25/03/2009
Henrique Weissmann
porque o servlet só funciona do lado do servidor. Ele só envia os dados para o cliente. Se é para ser aberto em outra janela ou não, o servidor simplesmente ignora.
Esta parte é de responsabilidade da interface gráfica do cliente no caso. Sendo assim, as únicas soluções que consigo ver para este caso é uma das duas que citei anteriormente.
Gostei + 0
25/03/2009
Cristian Mietlicki
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" import="java.sql.*,com.br.dao.*"%>
<jsp:useBean id="marcosBean" scope="session" class="com.br.controle.ControleMarco"/>
<jsp:useBean id="vinculoBean" scope="session" class="com.br.controle.ControleVinculo"/>
<jsp:useBean id="atividadeBean" scope="session" class="com.br.controle.ControleAtividadePrincipal"/>
<jsp:useBean id="fonterendaBean" scope="session" class="com.br.controle.ControleFonteRenda"/>
<jsp:useBean id="parentescoBean" scope="session" class="com.br.controle.ControleParentesco"/>
<jsp:useBean id="atividadeSecundariaBean" scope="session" class="com.br.controle.ControleAtividadeSecundaria"/>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" language="">
function direcionaListarPotencial(){
window.location = "../consultas/consultarusuario.jsp";
}
function converSaoHectAlqueire(){
window.open("../calculo/conversaoalqueire.jsp", "Pagina2" , "height = 200 , width = 400");
}
function direcionaConsultaTela(){
document.form.action = "../consultas/consultalistapotencial.jsp";
}
function geraRelatorio(){
document.form.action = "../../ServletRelatorioConsultaPotencial";
}
</script>
<style type="text/css" title="mystyles" media="all">
<!--
table { background-color: ;
color: black;
}
body { background-color: ;
color: black;
margin-left: 170px;
font-size: medium;
line-height: 180%;
}
p { text-indent: 3em;}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Potencial para Reassentamento</title>
</head>
<body>
<h3>Consulta Potencial para Reassentamento</h3>
<form method="post" name="form">
<table border="1" bgcolor="" width="500">
<tr>
<td>* Marco</td>
<td><select name="marco_opr" id="marcos">
<c:forEach items="${marcosBean.buscarTodosMarcos}" var="marcos">
<option>${marcos.sigla}</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td>* Área em Alqueire</td>
<td><input type="text" name="numeropropriedade_opr" > <input type="button" onclick="javascript:converSaoHectAlqueire();" value="Converter" > </td>
</tr>
<tr>
<td>* Vinculo</td>
<td><select name="vinculopessoas" id="vinculo">
<option value="">.............. Selecione ..............</option>
<c:forEach items="${vinculoBean.buscarTodosVinculos}" var="vinculo" >
<option value="${vinculo.cod}">${vinculo.nome_vinculo}</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td>* Renda principal</td>
<td><select name="rendaprincipalpessoas" id="rendaprincipal">
<option value="">.............. Selecione ..............</option>
<c:forEach items="${fonterendaBean.buscarTodosFonteRenda}" var="rendaprincipal">
<option value="${rendaprincipal.cod}">${rendaprincipal.renda_principal}</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td> Atividade principal</td>
<td><select name="Atividadepricipalpessoas" id="atividade">
<option value="">.............. Selecione ..............</option>
<c:forEach items="${atividadeBean.buscarTodasAtividadesPrincipais}" var="atividade">
<option value="${atividade.cod_atividade_principal}">${atividade.descricao_atividade_principal}</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td>Atividade secundaria</td>
<td><select name="atividadesecundariapessoas" id="atividadesecundaria">
<option value="">.............. Selecione ..............</option>
<c:forEach items="${atividadeSecundariaBean.buscarTodasAtividadesSecundaria}" var="atividadesecundaria">
<option value="${atividadesecundaria.cod_atividade_secundaria}">${atividadesecundaria.descricao_atividade_secundaria}</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td>Renda principal</td>
<td><select name="rendaprincipalpessoas" id="rendaprincipal">
<option value="">.............. Selecione ..............</option>
<c:forEach items="${fonterendaBean.buscarTodosFonteRenda}" var="rendaprincipal">
<option value="${rendaprincipal.cod}">${rendaprincipal.renda_principal}</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td>Parentesco</td>
<td><select name="parentescopessoas" id="parentesco">
<option value="">.............. Selecione ..............</option>
<c:forEach items="${parentescoBean.buscarTodosParentesco}" var="parentesco">
<option value="${parentesco.cod}">${parentesco.nomeparentesco}</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td><input type="submit" value="Tela" onclick="javascript:direcionaConsultaTela();"></td>
<td><input type="submit" value="Relatório" onclick="javascript:geraRelatorio(); target="_blank"> </td>
</tr>
</table>
</form>
</body>
</html>
Gostei + 0
25/03/2009
Henrique Weissmann
E dentro do JSP, qual a parte dele que gera o relatório?
Gostei + 0
25/03/2009
Henrique Weissmann
1. Inclua o atributo target="_blank" na tag form, e não na tag input
2. Na sua tag input, repare que voce não fechou os valores:
onclick="javascript:geraRelatorio(); target="_blank"
deveria ser
onclick="javascript:geraRelatorio();" target="_blank"
<td><input type="submit" value="Tela" onclick="javascript:direcionaConsultaTela();"></td>
<td><input type="submit" value="Relatório" onclick="javascript:geraRelatorio(); target="_blank"> </td>
Gostei + 0
25/03/2009
Cristian Mietlicki
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)