View Javadoc

1   package ecar.servlet.relatorio.PPA_OrgaoUnidade;
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.servlet.relatorio.PPA_Orgao.PPA_OrgaoBean;
19  import ecar.util.jasper.JasperService;
20  import ecar.util.jasper.servlet.RelatorioServlet;
21  
22  /**
23   * Servlet responsavel por interagir com os eventos de geracao de relatorio PPA por Orgao / Unidade
24   * @author gabrielsolana
25   *
26   */
27  public class RelatorioPPAOrgaoUnidadeServlet extends RelatorioServlet {
28  	
29  
30  	private static final long serialVersionUID = 6365940120217655517L;
31  	private Logger logger = Logger.getLogger(this.getClass());
32  
33  	public RelatorioPPAOrgaoUnidadeServlet(){
34  		super();
35  	}
36  	
37  	public void doRelatorioGet(HttpServletRequest request, HttpServletResponse response) {
38  		doRelatorioPost(request,response);
39  	}
40  
41  	public void doRelatorioPost(HttpServletRequest request, HttpServletResponse response) {
42  
43  		logger.info("Generating relatorio PPA Por Orgao / Unidade...");
44  		
45  		final ServletContext context = getServletContext();
46  		
47  		byte[] bytes = null;
48  		Map parametros = new HashMap();
49  		try {
50  			
51  			String titulo = request.getParameter("titulo");
52  			String pagina = request.getParameter("pagina");
53  			String data = request.getParameter("data");			
54  			Integer paginaInt = null;
55  			
56  			final RelatorioPPAOrgaoUnidadeService service = RelatorioPPAOrgaoUnidadeService.getInstance(request);
57  						
58  			try {
59  				if( pagina ==null || pagina.equals("") ){
60  					paginaInt = Integer.valueOf(1);
61  				}else{
62  					paginaInt = Integer.valueOf( pagina );
63  				}
64  			} catch (Exception e) {
65  				paginaInt = Integer.valueOf( 1 );
66  			}
67  			
68  			try {
69  				if( data ==null || data.equals("") ){
70  					data = "";
71  				}
72  			} catch (Exception e) {
73  				data = "";
74  			}			
75  			
76  			try {
77  				if( titulo ==null || "".equals( titulo ) ){
78  					titulo = "ESTADO DO PARANÁ - PLANO PLURIANUAL 2008/2011 - Demonstrativo por Órgão e Administração Indireta";	
79  				}
80  			} catch (Exception e) {
81  				titulo = "ESTADO DO PARANÁ - PLANO PLURIANUAL 2008/2011 - Demonstrativo por Órgão e Administração Indireta";
82  			}	
83  			
84  			// path absoluto do relatorio PPA
85  			final String pathRelPPA = context.getRealPath( JasperService.PATH_RELATORIO + "/relatorioPPAOrgaoUnidade.jasper" );
86  			final String pathRelPPACapa = context.getRealPath( JasperService.PATH_RELATORIO + "/relatorioPPA_Demonstrativos_capa.jasper" );				
87  
88  			JasperReport relatorioJasper = JasperService.loadReport( pathRelPPA );
89  			JasperReport relatorioCapaJasper = JasperService.loadReport( pathRelPPACapa );	
90  			this.redirectDefaultErrorIfNull(request, response, relatorioJasper);
91  			
92  			ArrayList<PPA_OrgaoBean> relatorioDS = service.generatePPA();
93  			this.redirectDefaultErrorIfNull(request, response, relatorioDS);
94  			
95  			parametros.put("pagina", paginaInt );
96  			parametros.put( "data" , data );
97  			parametros.put( "titulo" , titulo );
98  			parametros.put("totalExer1", service.getTotalGeral1() );
99  			parametros.put("totalExer2", service.getTotalGeral2() );
100 			parametros.put("totalExer3", service.getTotalGeral3() );
101 			parametros.put("totalExer4", service.getTotalGeral4() );
102 			parametros.put("totalGeral", service.getTotalGeral() );
103 			
104 			JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(relatorioDS);
105 			
106 			JasperPrint capa = JasperService.fillReport(relatorioCapaJasper,parametros );
107 			JasperPrint rel = JasperService.fillReport(relatorioJasper,parametros, ds);
108 			
109 			ByteArrayOutputStream out = new ByteArrayOutputStream();
110 			JasperService.addRelatorio( capa, rel, out );			
111 			this.responseToPDF(response, out.toByteArray());
112 			
113 		} catch (Exception e) {
114 			logger.error( "Nao foi possivel gerar relatorio PPA por Orgao / Unidade",e);
115 		}
116 		
117 	}
118 
119 	
120 }