1 package ecar.servlet.relatorio.PPA_LinhaAcao;
2
3 import java.io.ByteArrayOutputStream;
4 import java.util.ArrayList;
5 import java.util.HashMap;
6 import java.util.Map;
7
8 import javax.servlet.ServletContext;
9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11
12 import net.sf.jasperreports.engine.JasperPrint;
13 import net.sf.jasperreports.engine.JasperReport;
14 import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
15
16 import org.apache.log4j.Logger;
17
18 import ecar.util.jasper.JasperService;
19 import ecar.util.jasper.servlet.RelatorioServlet;
20
21
22
23
24
25
26 public class RelatorioPPALinhaAcaoServlet extends RelatorioServlet {
27
28 private static final long serialVersionUID = 3213904736460171482L;
29 private Logger logger = Logger.getLogger(this.getClass());
30
31 public RelatorioPPALinhaAcaoServlet(){
32 super();
33 }
34
35 public void doRelatorioGet(HttpServletRequest request, HttpServletResponse response) {
36 doRelatorioPost(request,response);
37 }
38
39 public void doRelatorioPost(HttpServletRequest request, HttpServletResponse response) {
40
41 logger.info("Generating relatorio PPA Por Linha de Ação...");
42
43 final ServletContext context = getServletContext();
44
45
46 Map parametros = new HashMap();
47 try {
48
49 String possuiGerente = request.getParameter("possuiGerente");
50 String titulo = request.getParameter("titulo");
51 String pagina = request.getParameter("pagina");
52 String data = request.getParameter("data");
53 Integer paginaInt = null;
54
55 logger.info("Imprimir gerente no relatorio? " + possuiGerente );
56
57 try {
58 if( pagina ==null || pagina.equals("") ){
59 paginaInt = Integer.valueOf(1);
60 }else{
61 paginaInt = Integer.valueOf( pagina );
62 }
63 } catch (Exception e) {
64 paginaInt = Integer.valueOf( 1 );
65 }
66
67 try {
68 if( data ==null || data.equals("") ){
69 data = "";
70 }
71 } catch (Exception e) {
72 data = "";
73 }
74
75 try {
76 if( titulo ==null || "".equals( titulo ) ){
77 titulo = "ESTADO DO PARANÁ - PLANO PLURIANUAL 2008/2011 - Demonstrativo por Programa";
78 }
79 } catch (Exception e) {
80 titulo = "ESTADO DO PARANÁ - PLANO PLURIANUAL 2008/2011 - Demonstrativo por Programa";
81 }
82
83
84 final RelatorioPPALinhaAcaoService service = RelatorioPPALinhaAcaoService.getInstance(request);
85
86
87 final String pathRelPPA = context.getRealPath( JasperService.PATH_RELATORIO + "/relatorioPPALinhaAcao.jasper" );
88 final String pathRelPPACapa = context.getRealPath( JasperService.PATH_RELATORIO + "/relatorioPPA_Demonstrativos_capa.jasper" );
89
90 JasperReport relatorioJasper = JasperService.loadReport( pathRelPPA );
91 JasperReport relatorioCapaJasper = JasperService.loadReport( pathRelPPACapa );
92 this.redirectDefaultErrorIfNull(request, response, relatorioJasper);
93
94 ArrayList<PPA_LinhaAcaoBean> relatorioDS = service.generatePPA( Boolean.valueOf( possuiGerente ).booleanValue() );
95 this.redirectDefaultErrorIfNull(request, response, relatorioDS);
96
97 JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(relatorioDS);
98
99 if (possuiGerente!=null && "true".equalsIgnoreCase(possuiGerente) ){
100 parametros.put("coluna1", "Linha de Ação / Programa / Gerente" );
101 }else{
102 parametros.put("coluna1", "Linha de Ação / Programa" );
103 }
104
105 parametros.put("pagina", paginaInt );
106 parametros.put( "data" , data );
107 parametros.put( "titulo" , titulo );
108 parametros.put("totalExer1", service.getTotalGeral1() );
109 parametros.put("totalExer2", service.getTotalGeral2() );
110 parametros.put("totalExer3", service.getTotalGeral3() );
111 parametros.put("totalExer4", service.getTotalGeral4() );
112 parametros.put("totalGeral", service.getTotalGeral() );
113
114
115 JasperPrint capa = JasperService.fillReport(relatorioCapaJasper,parametros );
116 JasperPrint rel = JasperService.fillReport(relatorioJasper,parametros, ds);
117
118 ByteArrayOutputStream out = new ByteArrayOutputStream();
119 JasperService.addRelatorio( capa, rel, out );
120 this.responseToPDF(response, out.toByteArray());
121
122 } catch (Exception e) {
123 logger.error( "Nao foi possivel gerar relatorio PPA por Linha de Ação",e);
124 }
125
126 }
127
128
129
130
131 }