JasperReports+ireports, caminho das pedras

Pessoal, estou tendo dificuldades para trabalhar com o JasperReports+ireports e gostaria de uma ajuda.

Gostaria de saber os passos para se instalar estas ferramentas na minha máquina windows 2000. Alguém poderia me passar o caminho das pedras passo a passo, desde as configurações de classpath…etc…

cara voce baixa o jasper reports e descompacta entao tera uma pasta por exemplo c:\JasperReports depois voce baixa o iReports versao em java que eh a mais atual descompacte e procure o arquivo startup.bat onde diz set path voce coloca o diretorio bin do seu j2sdk, onde diz set classpath voce poe o caminho do diretorio onde estao as classes do jasper (exemplo: c:\JasperReports\classes) e tb coloca os jars do seu banco de dados.

depois eh so executar o script startup.bat que esta na pasta noAnt do iReport

buenas ervas isso :twisted:

Blza…deu certo…
Mas agora, eu gostaria de saber 3 coisas:
1 - Como faço para rodar o relatório via Web, através de um arquivo .jsp ?

2 - Caso deseje colocar mascara nos campos (field) como faço ?

3 - Na hora de gerar via Web, o usuário precisará de algum componente na sua máquina ?

Eu baixei os dois arquivos JasperReport e iRreports, descompactei nas pastas c:\JasperReport e c:\iReports, dentro da pasta iReports tem um arquivo iReports.bat, neste arquivo tem alguns paths que precisa ser setado inclusive da pasta c:\ANT, mas eu não tenho está pasta, eu preciso instalar mais alguma coisa ou eu instalei algo erro?
ou seja, não consigo rodar o JasperReport.

Marcos

1 - voce precisa criar um servlet que vai compilar e executar o relatorio,
nele voce seta o local onde estara o arquivo a ser compilado(o xml criado pelo iReport) e chama-lo via jsp passando os parametros necessario, olha o exemplo no site do projeto.
2 - como assim mascara… se eu entendi eh mais ou menos assim, voce tem um metodo em alguma classe como por exemplo, formataValorToBR(rst.getString(vltTotal)), onde voce busca um valor float do banco de dados, ex. 1000 e converte em 1.000,00 pelo metodo, se esse metodo for java basta voce chama-lo diretamente usando o field como se fosse o retorno de uma collection.
ex.: pacote.classe.formataValorToBR(F${VlrTotal}.toString());
3 - não, basta voce ter os jars do jasperReports no lib do servido ou no lib da aplicação.

see ya :wink:

Blza pela dica…porém eu não estou encontrando no site do projeto um exemplo de servlet para chamar o tal relatório…se vc puder me passar um exemplo, eu agradeço.

Um abraço,

Junior

[quote=“javaquest”]1 - voce precisa criar um servlet que vai compilar e executar o relatorio,
nele voce seta o local onde estara o arquivo a ser compilado(o xml criado pelo iReport) e chama-lo via jsp passando os parametros necessario, olha o exemplo no site do projeto.
2 - como assim mascara… se eu entendi eh mais ou menos assim, voce tem um metodo em alguma classe como por exemplo, formataValorToBR(rst.getString(vltTotal)), onde voce busca um valor float do banco de dados, ex. 1000 e converte em 1.000,00 pelo metodo, se esse metodo for java basta voce chama-lo diretamente usando o field como se fosse o retorno de uma collection.
ex.: pacote.classe.formataValorToBR(F${VlrTotal}.toString());
3 - não, basta voce ter os jars do jasperReports no lib do servido ou no lib da aplicação.

see ya :wink:[/quote]

Segue abaixo o servlet que fiz:

package beans;

import dori.jasper.engine.;
import dori.jasper.engine.design.
;
import dori.jasper.engine.print.;
import dori.jasper.view.
;
import dori.jasper.*;

import java.io.;
import javax.servlet.
;
import javax.servlet.http.*;

import java.util.Map;

import java.util.Map;
import java.util.HashMap;

import java.sql.*;

public class Imprimir extends HttpServlet {

private static Connection con2 = null;

public void service(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
JRExporter exporter = null;
byte[] bytes = null;
Map parameters = new HashMap();

String systemId = getServletContext().getRealPath(request.getServletPath());
File directory = new File(systemId.substring(0, systemId.lastIndexOf(File.separator)-5)); //para tirar o nome do diretorio… (-5)

try {
//File reportFile = new File(“c:\empresas.jasper”);
File reportFile = new File(directory.getPath()+"\ireports\empresas.jasper");
JasperPrint jasperPrint = JasperManager.fillReport(reportFile.getPath(), null, getConexao()); //o null pode ser trocado pelo parameters

bytes =JasperManager.runReportToPdf(reportFile.getPath(), null, getConexao());
if ((bytes != null) && (bytes.length>0))
{
response.setHeader(“application/pdf”, “Content-Type”);
response.setContentType(“application/pdf”);
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}

// JasperExportManager.exportReportToPdfFile(jasperPrint, “c:\farnetani.pdf”);

//AQUI É O ESQUEMA PARA VISUALIZA-LO PELO PREVIEW
// JasperViewer.viewReport(jasperPrint, true);

} catch (Exception e) {
e.printStackTrace();
}

}

public static Connection getConexao(){
try{
DriverManager.registerDriver(new org.firebirdsql.jdbc.FBDriver());
con2 =DriverManager.getConnection(“jdbc:firebirdsql:localhost/3050:D:\Sistemas_Junior\CEBRAPA_7\Dados\CEBRAPA.GDB?lc_ctype=WIN1252”,“SYSDBA”,“masterkey”);
con2.setAutoCommit(true);
} catch (SQLException e){
System.out.println("Erro: " + (String)e.getMessage());
}
return con2;
}

}

[quote=“farnetani”]Blza pela dica…porém eu não estou encontrando no site do projeto um exemplo de servlet para chamar o tal relatório…se vc puder me passar um exemplo, eu agradeço.

Um abraço,

Junior

[quote=“javaquest”]1 - voce precisa criar um servlet que vai compilar e executar o relatorio,
nele voce seta o local onde estara o arquivo a ser compilado(o xml criado pelo iReport) e chama-lo via jsp passando os parametros necessario, olha o exemplo no site do projeto.
2 - como assim mascara… se eu entendi eh mais ou menos assim, voce tem um metodo em alguma classe como por exemplo, formataValorToBR(rst.getString(vltTotal)), onde voce busca um valor float do banco de dados, ex. 1000 e converte em 1.000,00 pelo metodo, se esse metodo for java basta voce chama-lo diretamente usando o field como se fosse o retorno de uma collection.
ex.: pacote.classe.formataValorToBR(F${VlrTotal}.toString());
3 - não, basta voce ter os jars do jasperReports no lib do servido ou no lib da aplicação.

see ya :wink:[/quote][/quote]

Daew Marcos… qnto ao dir ANT, vc deve ter uma versão tipow a IReport 0.3.0 essa naum tem esse dir… vc pode ver na pasta do IReport o documento ChangeLog q diz o seguinte na primeira linha:

11/05/2004 12.00 hsw added starter for Windows and Linux without ant

:twisted:

galera como faço para conseguir compilar a classe servlet que eu fizer para o chamar o ireport??
qual o nome da biblioteca do ireport que eu devo setar para compilar a classe?