Oi Gente… eu to tentando passar os parametros da minha classe para o relatório… mas eu to com duvidas…
abaixo esta o código da classe, que peguei aqui no guj através de um tutorial muito bom… acredito que todos ja devem ter visto…
[code]package contasconsumo_c;
/*
- RelatorioBibliotecaPessoal.java
- Criado em 28 de Fevereiro de 2005, 09:42
*/
/* pacotes necessários */
import dori.jasper.engine.;
import dori.jasper.view.JasperViewer;
import java.sql.;
import java.util.;
import javax.swing.;
import java.util.HashMap;
import java.io.*;
import javax.servlet.;
import javax.servlet.http.;
/**
*
-
@author Um montao de gente
*/
public class RelatorioBibliotecaPessoal {
/* Realiza conexão com o banco de dados, retornando o objeto connection */
private static Connection getConnection( ) throws
ClassNotFoundException, SQLException
{
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:back";
String user = "teste";
String password = "testeback";
Class.forName(driver);
Connection con = DriverManager.getConnection( url, user, password );
return con;
}
/* Gera Relatorio e visualiza-o */
public void geraRelatorio( ) throws JRException, Exception
{
Connection con = getConnection( );
Statement stm = con.createStatement( );
String query = "select * from teste.vgeral where cdprestador = 4 and cdsecretaria = 700 and substr(nrmesanoref,4,4) = '2004'";
ResultSet rs = stm.executeQuery(query);
/* implementação da interface JRDataSource para DataSource ResultSet */
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
/* HashMap de parametros utilizados no relatório. Sempre instanciados */
Map parameters = new HashMap();
// parameters.put("COLUNA", valor);
//parameters.put("cdPrestador", new Integer(1));
//parameters.put("cdSecretaria", new Integer(1));
//parameters.put("nmSecretaria", new String("aa"));
//parameters.put("substr(nrmesanoref,1,2)", new String("aa"));
//parameters.put("substr(nrmesanoref,1,2)", new String("aa"));
/* Preenche o relatório com os dados. Gera o arquivo BibliotecaPessoal.jrprint */
//JasperFillManager.fillReportToFile("C:/jakarta-tomcat-4.1.29/webapps/pmg/contasconsumo_c/relatorios/BibliotecaPessoal.jasper",parameters,jrRS);
/* Exporta para o formato PDF */
//JasperExportManager.exportReportToPdfFile("C:/jakarta-tomcat-4.1.29/webapps/pmg/contasconsumo_c/relatorios/BibliotecaPessoal.jrprint");
/* Preenche o relatorio e o salva diretamente em arquivo PDF. Sem
a necessidade do .jrprint */
//JasperRunManager.runReportToPdfFile("C:/jakarta-tomcat-4.1.29/webapps/pmg/contasconsumo_c/relatorios/BibliotecaPessoal.jasper", parameters, jrRS);
/* Visualiza o relatório em formato PDF */
//JasperViewer.viewReport("C:/jakarta-tomcat-4.1.29/webapps/pmg/contasconsumo_c/relatorios/BibliotecaPessoal.pdf",false);
JasperPrint jprint = JasperManager.fillReport("C:/jakarta-tomcat-4.1.29/webapps/pmg/contasconsumo_c/relatorios/BibliotecaPessoal.jasper", parameters, jrRS);
JasperViewer.viewReport(jprint,false);
}
public static void main(String[] args) throws JRException, Exception
{
new RelatorioBibliotecaPessoal().geraRelatorio();
}
}[/code]
as minhas duvisas são as seguintes:
1ª DUVIDA
eu coloquei no relatorio os parametros
[list]CodPrestador[/list]
[list]CodSecretaria[/list]
[list]NumAnoRef[/list]
[list]NumMesRef[/list]
[list]NomeSecretaria[/list]
dentro do Report query eu coloquei assim:
select * from teste.vgeral where cdPrestador=$P{CodPrestador} and cdSecretaria=$P{CodSecretaria} and substr(to_char(nrMesAnoRef),4,4) = $P{NumAnoRef}
rodando do ireport funciona legal, e inclusive eu mando em pdf, então é o seguinte, na minha classe a query esta assim:
String query = "select * from teste.vgeral where cdprestador = 4 and cdsecretaria = 700 and substr(nrmesanoref,4,4) = '2004'";
como eu devo colocar? eu ja tenho que jogar aqui mesmo os parametros dentro da classe? ou eu nao tenho que fazer a query aqui e montar la no relatorio, mas acontece que as vezes não vao todos os parametros que esta acima… entao acredito que eu tenha que montar na classe mesmo a query como bem desejar, ou melhor, como o usuario desejar…
2ª DUVIDA
eu instalei recentemente a versao 4.1.0 do ireport, rodei o relatorio por la, e funcionou, mas na hora em que eu tento rodar pelo meu jsp, não funciona… acredito que tenha a ver com os import’s, pois teria que usar o
[list]net.sf.jasperreports.engine.JasperManager[/list]
[list]net.sf.jasperreports.engine.design.JasperDesign[/list]
[list]net.sf.jasperreports.engine.JasperReport[/list]
[list]net.sf.jasperreports.engine.JasperPrint[/list]
[list]net.sf.jasperreports.view.JasperViewer[/list]
é que eu nao consigo achar isso, mas beleza… estou fazendo na versao antiga e pelo menos nessa esta funcionando, ou seja, esta aparecendo o relatorio…
3ª DUVIDA
eu nao consigo fazer o relatorio aparecer em pdf, da pau… entao eu só deixo habilitado essas linhas na classe… o que dizia respeito ao pdf eu deixei desabilitado, pois nao consigo fazer funcionar…
JasperPrint jprint = JasperManager.fillReport("C:/jakarta-tomcat-4.1.29/webapps/pmg/contasconsumo_c/relatorios/BibliotecaPessoal.jasper", parameters, jrRS);
JasperViewer.viewReport(jprint,false);
alguem tem alguma ideia do que seja?
obrigado, desculpem qualquer coisa, não foi por mal… muito agradecido pela paciência…
