Led
09/04/2009
queria saber como eh que faz pra misturar texto e fields em um mesmo campo tpow .....pro texto ficar assim
dia F$, do mes F$.......
alguem sabe???
GOSTEI 0
Niflheim
09/04/2009
ops... o codigo q vc deve inserir no campo "TextField Expression" na aba "Text Field" na propriedade do elemento é o seguinte:
"dia "+$F+", do mes "+$F
:!:
GOSTEI 0
Niflheim
09/04/2009
blz galera,
tem como alguem mostrar um servlet exibindo o exemplo acima, tipo uma chamada em uma aplicação web.
valeu
GOSTEI 0
Niflheim
09/04/2009
Saudações, gostaria de saber como faz para pegar uma imagem da base de dados e colocá-la num relatório do iReport. Esta imagem está armazenada num campo do tipo blob. E o banco de dados que uso é o Postgres.
Desde já, agradeço
GOSTEI 0
Rafael Ferreira
09/04/2009
Cara, primeiramente achei muito bacana essa publicação sua..
Mas travei logo no inicio...
1. O que é um ANT..
2. Não achei nenhum .bat com o iReport..
Podem me ajudar??
Obrigado!
Rafael Ferreira / Ceará
GOSTEI 0
Dalton
09/04/2009
[quote="ceara"]Cara, primeiramente achei muito bacana essa publicação sua..
Mas travei logo no inicio...
1. O que é um ANT..
2. Não achei nenhum .bat com o iReport..
Podem me ajudar??
Obrigado!
Rafael Ferreira / Ceará
Veja este tópico:
http://www.javafree.com.br/forum/viewtopic.php?t=4993
[]'s
GOSTEI 0
Rafael Ferreira
09/04/2009
Dalton,
Obrigado cara, eu peguei um pluggin para o NetBeans, mas estou apanhando aqui, nunca trabalhei com ANT e nem relatórios..
Obrigado
Rafael Ferreira
Ceará
GOSTEI 0
Linomarcos
09/04/2009
Para usar o iReport precisa ter instalado o Jasper Report?
Tô perdido.
Não estou conseguindo nem instalar o Jasper Reports. Já baixei o programa no site (http://jasperreports.sourceforge.net/requirements.html#jdbc) do sourceforge, mas ele só possui arquivos .jar. Pelo que entendi terei que gerar uma aplicação em java para gerar os relatórios de que preciso.
Eu estava utilizando o Crystal Reports, mas essa m... não funciona em linux. Por isso resolvi mudar para o Jasper que até o momento me parece muito bom. Com excessão da facilidade de instalar!
Tentei segui as instruções no site do jasper reports, mas lá só passa o requerimento do programa.
(Falando nisso não encontrei o Driver JDBC que o site fala).
E preciso urgentemente da ferramenta.
Minha intenção é criar os relatórios tanto em Windows como Linux e rodar os mesmos em ambas plataformas. Aqui eu utilizo o Windows 2000 Server e o Kurumin(Linux). As paginas são desenvolvidas em ASP e o Banco é SQL, e eu gostaria de uma solução para chamar os relatórios a partir do asp.
e só mais algumas questões:
O que é Ant e onde eu encontro?
O JDK que o site se refere é o que vem com o NetBeans (Pois é este que está instalado na minha máquina)?
O JAXP XML Parser que o site se refere não está funcionando nenhum dos links e eu não consegui encontrá-lo. Onde Achá-lo?
Como instalar o XLS no windows 2000(Se é que precisa)?
GOSTEI 0
Niflheim
09/04/2009
Linomarcos...
se tiver duvidas ainda sobre o IReport pode me cadastrar no messenger...
eu tbm apanhei bastante do IReport qndo começei... agora aprendi alguma coisa com ele
alias... eu naum me importe de alguem me cadastrar... fico feiz em poder ajudar tbm
******************* 24/11/2004 **********************
Pessoal... a algum tempo eu mudei de empresa, e agora não estou mais trabalhando com Java, sendo assim não utilizo mais o JasperReport e nem o IReport... ainda assim podem me cadastrar no msn... mas não tenho mais nenhum exemplo de relatorio para auxilia-los...
****************************************************
GOSTEI 0
Niflheim
09/04/2009
Aproveitando esse tópico... Alguém aí sabe como fazer um relatório "zebrado" (as linhas ficam alternando de cor pra facilitar a leitura) ???
Agradeço sua atenção.
GOSTEI 0
Rodrigo Reis
09/04/2009
EhPegue o arquivo .jar do Jasper e coloque na variável de ambiente
CLASSPATH. Como q é isso?
Na minha variavel de ambiente tem:
-JASPERREPORT_HOME = C:\jasperreports-0.6.0;
C:\jasperreports-0.6.0\lib\jasperreports-0.6.0.jar
-JAVA_HOME = C:\j2sdk1.4.2_03
-Path = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Arquivos de programas\ATI Technologies\ATI Control Panel;C:\j2sdk1.4.2_03\lib;C:\jasperreports-0.6.0\lib;C:\mysql\lib;C:\jasperreports-0.6.0\lib\jasperreports-0.6.0.jar;.
O q devo fazer, não sei mais o q devo fazer?
GOSTEI 0
Niflheim
09/04/2009
Eh[quote="RodReis"]
-JASPERREPORT_HOME = C:\jasperreports-0.6.0;
C:\jasperreports-0.6.0\lib\jasperreports-0.6.0.jar
-JAVA_HOME = C:\j2sdk1.4.2_03
-Path = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Arquivos de programas\ATI Technologies\ATI Control Panel;C:\j2sdk1.4.2_03\lib;C:\jasperreports-0.6.0\lib;C:\mysql\lib;C:\jasperreports-0.6.0\lib\jasperreports-0.6.0.jar;.
:arrow: kra... naum to lembrado direito, mas acho q vc deve adicionar esses endereços em "Variaveis do Ambiente" no windows, depende da versão q vc usa, tipow no windows 2000, vc vai em propriedades do sistema, na aba avançado tem lah o botão variaveis do ambiente... acho q eh isso
no linux naum sei como funciona :wink:
mas tenta isso ai, depois vc diz se funciona :!:
GOSTEI 0
Flavio Rabelo
09/04/2009
Olá pessoal, estou com um probleminha com um relatório em jasper.
Eu uso o Ireport e estou tentando evitar a quebra de relatório por página.
Necessito que, se um relatório não couber no espaço restante de uma página, esse relatorio deve iniciar em uma nova pagina, deixando todo o espaço no final da pagina atual em branco.
Este relatório contem 4 grupos e eu tentei configurar estes grupos na opção "print header on each page" no menu "Add/modify group".
Com essa configuração, quando não há espaço para o relatório; este é impresso até o final da página, ocorre a quebra, mas todo o relatório se repete na nova página. O problema seria resolvido se o relatório não fosse impresso no final da página onde ocorre a quebra.
Não sei se daria para resolver este problema utilizando a opção "Group Expression".
Aguardo sugestöes.
Obrigado galera.
Flavio
GOSTEI 0
Rocker
09/04/2009
Ae pessoal,
Alguem sabe como fazer uma multiplicacao no iReport?
Crio uma variavel no iReport?
Quero multiplicar os valores de dois campos de uma tabela.
Até mais!
GOSTEI 0
Wheb Ltda.
09/04/2009
Alguem tem um tutorial de iReport utilizando a entrada de dados via COLLECTION ou ARRAY??
E sei tiver como criar um PDF somente em memoria para WEB agradeço
GOSTEI 0
Wheb Ltda.
09/04/2009
Seguinte cara,,,
Vc possui algum exemplo de como alimentar um relatorio feito em JasperReport através de um Collection ou Array??
Pq até agora soh vi exemplo com sql do banco.
GOSTEI 0
Rafael Ferreira
09/04/2009
Olá....
Finalmente consegui fazer o iReport funcionar...
Só não ficou claro para mim, como que eu executo ele de "fora", como de um software que eu fiz em java posso chamar o iReport e utilizar já um relatorio pronto...
Ainda ficou essa duvida!!
agradeço muito
Rafael Ferreira
GOSTEI 0
Wheb Ltda.
09/04/2009
Caro Rafael Ferreira
Para executar um relaótiro feito pelo Ireport vc utilizará o arquivo compilado do seu relatório XX.jrxml
Logo vc criara um classe em java que será chamada pelo seu programa.
Algo parecido com :
import java.io.IOException;
import java.io.StringReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import javax.swing.text.BadLocationException;
import javax.swing.text.rtf.RTFEditorKit;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.view.JasperViewer;
/* Primeira parte */
public class RelatorioLaboratorio {
private Connection con = null;
private String driver = "oracle.jdbc.driver.OracleDriver";
private String endereco = "enderecoBanco";
private String user = "usuarioBanco";
private String pass = "senhaBanco";
private ResultSet rs = null;
private String valores[] = new String[10];
private int chamada = 1;
private String dir = "local onde está o arquivo do relatorio";
private StringReader stream;
/*Segunda parte */
public RelatorioLaboratorio() {
/* Efetua a conexao a base de dados e coleta os valores da base de dados armazenando-os
em um array para ser futuramente utilizado */
try {
if (con == null) {
Class.forName(driver);
con = DriverManager.getConnection(endereco, user, pass);
Statement statement = con.createStatement();
rs = statement.executeQuery("select a ser executado");
HashMap teste = new HashMap();
while(rs.next()) {
//for até o numero de campos da tabela
for (int i = 1; i < 10; i++) {
valores[i] = rs.getString(i);
}
}
}
}
catch (Exception e) {
System.err.println("Problemas apresentados na operacao de conexao");
e.printStackTrace();
}
/* Inicio do bloco que ira gerar nossos relatorios e 3ª parte */
try {
String array[] = valores;
JasperDesign design = JasperManager.loadXmlDesign(dir + "NomeDoRelatorio.jrxml");
JasperReport jr = JasperManager.compileReport(design);
HashMap parameters = new HashMap();
parameters.put("PARAMETRO_1",array[1]);
parameters.put("PARAMETRO_2", array[2]);
parameters.put("PARAMETRO_3", array[5]);
parameters.put("PARAMETRO_4", array[4]);
parameters.put("PARAMETRO_5",array[9]);
JasperPrint impressao = JasperManager.fillReport(jr,parameters,con);
JasperViewer jrviewer = new JasperViewer(impressao,false);
jrviewer.show();
}
catch (Exception e) {
e.printStackTrace();
}
}
/* Aqui chamamos o construtor de nossa classe para exibirmos o relatorio e 4ª parte*/
public static void main (String args[]) {
new RelatorioLaboratorio();
System.out.println("ok");
}
}
GOSTEI 0
Raphael Santos
09/04/2009
Galera.... estou gerando relatorios com o ireport numa boa, mas estou com um pequeno problema. A quebra de página está errada, ele está quebrando com +- 2/3 da página e ja começa o conteúdo da proóxima página na mesma. Se alguém tiver alguma idéia de como resolver isso, responda pf.
GOSTEI 0
Rafael Ferreira
09/04/2009
Desculpe a lerdeza...
Mas voltei a implementar esse meu projeto...
Montei o meu software que joga tudo no banco e consegui fazer o iReport rodar e montei o relatorio e tudo funciona..
Está faltando a integração entre os 2.
Copiei o codigo que o amigo colocou lá em cima...
Mas estou tendo erros nas lib´s.... não acha aqui pra compilar
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.view.JasperViewer;
RelatorioLaboratorio.java [12:1] package net.sf.jasperreports.engine does not exist
import net.sf.jasperreports.engine.JasperManager;
^
RelatorioLaboratorio.java [13:1] package net.sf.jasperreports.engine does not exist
import net.sf.jasperreports.engine.JasperPrint;
^
RelatorioLaboratorio.java [14:1] package net.sf.jasperreports.engine does not exist
import net.sf.jasperreports.engine.JasperReport;
^
RelatorioLaboratorio.java [15:1] package net.sf.jasperreports.engine.design does not exist
import net.sf.jasperreports.engine.design.JasperDesign;
^
RelatorioLaboratorio.java [16:1] package net.sf.jasperreports.view does not exist
import net.sf.jasperreports.view.JasperViewer;
Se alguem puder me ajudar... agradeço muito!!
Ceará
GOSTEI 0
Djeff
09/04/2009
[quote="Luis Coelho"]Caro Rafael Ferreira
Para executar um relaótiro feito pelo Ireport vc utilizará o arquivo compilado do seu relatório XX.jrxml
Logo vc criara um classe em java que será chamada pelo seu programa.
Algo parecido com :
import java.io.IOException;
import java.io.StringReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import javax.swing.text.BadLocationException;
import javax.swing.text.rtf.RTFEditorKit;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.view.JasperViewer;
/* Primeira parte */
public class RelatorioLaboratorio {
private Connection con = null;
private String driver = "oracle.jdbc.driver.OracleDriver";
private String endereco = "enderecoBanco";
private String user = "usuarioBanco";
private String pass = "senhaBanco";
private ResultSet rs = null;
private String valores[] = new String[10];
private int chamada = 1;
private String dir = "local onde está o arquivo do relatorio";
private StringReader stream;
/*Segunda parte */
public RelatorioLaboratorio() {
/* Efetua a conexao a base de dados e coleta os valores da base de dados armazenando-os
em um array para ser futuramente utilizado */
try {
if (con == null) {
Class.forName(driver);
con = DriverManager.getConnection(endereco, user, pass);
Statement statement = con.createStatement();
rs = statement.executeQuery("select a ser executado");
HashMap teste = new HashMap();
while(rs.next()) {
//for até o numero de campos da tabela
for (int i = 1; i < 10; i++) {
valores[i] = rs.getString(i);
}
}
}
}
catch (Exception e) {
System.err.println("Problemas apresentados na operacao de conexao");
e.printStackTrace();
}
/* Inicio do bloco que ira gerar nossos relatorios e 3ª parte */
try {
String array[] = valores;
JasperDesign design = JasperManager.loadXmlDesign(dir + "NomeDoRelatorio.jrxml");
JasperReport jr = JasperManager.compileReport(design);
HashMap parameters = new HashMap();
parameters.put("PARAMETRO_1",array[1]);
parameters.put("PARAMETRO_2", array[2]);
parameters.put("PARAMETRO_3", array[5]);
parameters.put("PARAMETRO_4", array[4]);
parameters.put("PARAMETRO_5",array[9]);
JasperPrint impressao = JasperManager.fillReport(jr,parameters,con);
JasperViewer jrviewer = new JasperViewer(impressao,false);
jrviewer.show();
}
catch (Exception e) {
e.printStackTrace();
}
}
/* Aqui chamamos o construtor de nossa classe para exibirmos o relatorio e 4ª parte*/
public static void main (String args[]) {
new RelatorioLaboratorio();
System.out.println("ok");
}
}
eu tava usando o código disponível no guj e não tava conseguindo gerar a visualização do iReport e
graças ao código disponibilizado aqui consegui gerar a visualização do meu relatório, muito obrigado aih Luis Coelho :o
quanto a dúvida ali das lib's, uma pergunta: Elas foram importadas para a sua IDE??? Por exemple, eu to usando o JBuilder X, para poder encontrá-las tive que ir em required libraries e adicionar os arquivos da pasta lib do iReport, aih elas foram reconhecidas :!:
GOSTEI 0
Suelen Vinter
09/04/2009
EhMeu código é o seguinte:
import net.sf.jasperreports.engine.data.JRXmlDataSource;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.*;
import java.util.HashMap;
public class Relatorio {
public static void main(String[] args) throws Exception {
String reportFileName = "addressbook.jasper";
String outFileName = "addressbook.pdf";
String xmlFileName = "bd.xml";
String recordPath = "/Northwind/Customers";
JRXmlDataSource jrxmlds = new JRXmlDataSource(xmlFileName,recordPath);
HashMap hm = new HashMap();
try
{
JasperPrint print = JasperFillManager.fillReport(
reportFileName,
hm,
jrxmlds);
JRExporter exporter = new net.sf.jasperreports.engine.export.JRPdfExporter();
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,outFileName);
exporter.setParameter(JRExporterParameter.JASPER_PRINT,print);
exporter.exportReport();
System.out.println("Created file: " + outFileName);
}
catch (JRException e)
{
e.printStackTrace();
System.exit(1);
}
catch (Exception e)
{
e.printStackTrace();
System.exit(1);
}
}
}
Eu queria saber pq o seguinte erro está ocorrendo? Ao executar...
C:\j2sdk1.4.2_08\bin\java.exe -classpath "C:\j2sdk1.4.2_08\jre\lib\rt.jar;C:\j2sdk1.4.2_08\lib\tools.jar;C:\j2sdk1.4.2_08\jasperreports-0.6.6.jar;E:\relatorio" Relatorio
org.xml.sax.SAXParseException: Document root element is missing.
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:668)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
at net.sf.jasperreports.engine.data.JRXmlDataSource.parse(JRXmlDataSource.java:248)
at net.sf.jasperreports.engine.data.JRXmlDataSource.<init>(JRXmlDataSource.java:219)
at Relatorio.main(Relatorio.java:16)
NESTED BY :
org.xml.sax.SAXParseException: Document root element is missing.
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:668)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
at net.sf.jasperreports.engine.data.JRXmlDataSource.parse(JRXmlDataSource.java:248)
at net.sf.jasperreports.engine.data.JRXmlDataSource.<init>(JRXmlDataSource.java:219)
at Relatorio.main(Relatorio.java:16)
NESTED BY :
net.sf.jasperreports.engine.JRException: Failed to parse the xml document
at net.sf.jasperreports.engine.data.JRXmlDataSource.parse(JRXmlDataSource.java:250)
at net.sf.jasperreports.engine.data.JRXmlDataSource.<init>(JRXmlDataSource.java:219)
at Relatorio.main(Relatorio.java:16)
Caused by: org.xml.sax.SAXParseException: Document root element is missing.
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:668)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
at net.sf.jasperreports.engine.data.JRXmlDataSource.parse(JRXmlDataSource.java:248)
... 2 more
Exception in thread "main" Finished executing
GOSTEI 0
Djeff
09/04/2009
EhPessoal,
Estou com outra duvida:
Não consigo gerar um relatorio apartir de um XML (jrxml), isso em uma aplicação WEB, pq quanto estou testando por um metodo main no meu projeto java, pega tranquilo.
Eu ja havia passado por isso antes, mas me livrei usando o arquivo ja copilado (.jasper), so que dessa vez eu tenho que usar o JRXML e compilar.
JasperDesign jasperDesign = JasperManager.loadXmlDesign(arqJrxml);
//O erro ocorre justamente aqui:
JasperReport jasperReport = JasperManager.compileReport(jasperDesign);
O erro é o seguinte:
C:\eclipse3.1\relacaoTransacaoTesouraria_groupGenerico.java:4: package net.sf.jasperreports.engine does not exist
import net.sf.jasperreports.engine.*;
^
C:\eclipse3.1\relacaoTransacaoTesouraria_groupGenerico.java:5: package net.sf.jasperreports.engine.fill does not exist
import net.sf.jasperreports.engine.fill.*;
^
C:\eclipse3.1\relacaoTransacaoTesouraria_groupGenerico.java:17: cannot resolve symbol
symbol : class JRCalculator
location: class relacaoTransacaoTesouraria_groupGenerico
public class relacaoTransacaoTesouraria_groupGenerico extends JRCalculator
.........
Eu acho o seguinte, ele tenta copilar e gera esse *.java temporariamente, so que ele esta pegando um caminho doido, no meu caso o "C:\eclipse3.1\" ao inves do path da minha aplicação. E nesse caminho ele não tem acesso ao jar do JasperReport, entao ele nao acha nenhuma das suas classes.
Alguem já teve esse problema?
GOSTEI 0
Jeferson Junior
09/04/2009
Eu acabei de achar um outro forum onde o rapaz teve o mesmo problema e sabe como resolve? Colocando um tal de jdt.compiler.jar dentro do lib do teu WEB-INF. Dá uma olhadinha na url que me resolveu o problema:http://dev.eclipse.org/newslists/news.eclipse.platform.rcp/msg05138.html
Boa Sorte!,
Jeff
GOSTEI 0
Artur Carvalho
09/04/2009
Uma maneira de fazer relatórios zebrados, na band Detail, adicionar o retangulo q ira aparecer linha sim linha nauh.
Na propriedade desse retangulo, na aba common no espaço Print When Expression adicionar a seguinte regra:
new Boolean(($V.intValue() % 2) == 0)
GOSTEI 0
Djeff
09/04/2009
Ae galera !!!!!
Como faço para importar:
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.view.JasperViewer;
tentei importar no eclipse,mas não consegui...
O q dvo fazer para poder importar essas classes ???? :mad:
GOSTEI 0
Fabricio Viana
09/04/2009
Como faço para gerar um relatorio frente e verço
E assim tenho um relatorio no ireport frente e outro verso
Como falço para ele gerarem um frente e outro verso
GOSTEI 0
Fabricio Viana
09/04/2009
Pessoal, eu estou fazendo um relatório que contém alguns subrelatórios.
Como faço para forçar uma quebra de página antes de cada subrelatório?
GOSTEI 0
Fabricio Viana
09/04/2009
tenho a seguinte query funcionando:
select cst.CST_NOME nomeConsultor, tabelaR.totalMinutos totalMinutosConsultor, tabelaR.nomeProjeto nomeProjeto
from rel_consultor cst,
--tabelaR
(select h.HRS_PRJCST_CST_LOGIN login,
sum(
NVL(
(to_char(h.HRS_SAIDA_AM,'HH24')*60+to_char(h.HRS_SAIDA_AM,'MI'))
-(to_char(h.HRS_ENTRADA_AM,'HH24')*60+to_char(h.HRS_ENTRADA_AM,'MI')),0
)
+
NVL((to_char(h.HRS_SAIDA_PM,'HH24')*60 + to_char(h.HRS_SAIDA_PM,'MI'))
-(to_char(h.HRS_ENTRADA_PM,'HH24')*60 + to_char(h.HRS_ENTRADA_PM,'MI')),0
)) totalMinutos, p.PRJ_NOME nomeProjeto
from rel_horas h, rel_projeto p
where h.HRS_PRJCST_PRJ_COD in(2526,2830,2521,2833,87,34,36,40)
and h.HRS_PRJCST_PRJ_COD=p.PRJ_COD
and (h.HRS_DATA between to_date($P,'DD/MM/YYYY') and to_date($P,'DD/MM/YYYY'))
group by h.HRS_PRJCST_CST_LOGIN, p.PRJ_NOME) tabelaR
--fim tabelaR
where tabelaR.login = cst.CST_LOGIN
order by tabelaR.nomeProjeto, cst.CST_NOME
O problema esta quando eu tento passar um parametro para o "in()" da linha :
where h.HRS_PRJCST_PRJ_COD in(2526,2830,2521,2833,87,34,36,40)
ja tentei passar um parametro do tipo string da seguinte forma:
where h.HRS_PRJCST_PRJ_COD in($P)
e o conteudo de codProjeto seria uma string como essa:
"2526,2830,2521,2833,87,34,36,40"
o que não deu certo. dessa forma soah funciona quando eu tenho apenas 1 projeto : "2526".
não encontrei uma forma de passar um vetor ou algo parecido.
resumindo:
como faço para passar um parâmetro para a clausula in()
se alguem puder me ajudar agradeço...
GOSTEI 0
Gerda Oliveira
09/04/2009
Pessoal,
fiz um relatorio no ireport.
depois fiz um servlet.
e agora??????????????
como faço para chamar o relatorio na pagina web(html)?
GOSTEI 0
Felipe Staudt
09/04/2009
galera
seguinte estou tendo um pequeno problema cm o iReport
eu consegui fazer o relatorio tranquilo no iREport soh q o meu problema esta sendo na hora de colocar no meu sistema java.
gostaria de saber como q eu faço pra abrir o meu arquivo xml q o iReport gerou na minha aplicação java.
como q eu faço pra numa classe minha gerar o relatorio
se alguem puder me ajudar
brigado
flw
GOSTEI 0
Marcoscorso
09/04/2009
e os parametros ...
vc disse que passou na query do relatorio ..
mas como faco pra imprimir esse parametro, imprimir "param1" ??
GOSTEI 0
Leandro Silva
09/04/2009
Alguem sabe me dizer como mudar o top e o left dos Campos dinamicamente?
ou seja passo por parametro o left e o top para posicionar os campos do meu relatorio
Aguardo ajuda
valeu..
GOSTEI 0
Alexsander Konowalow
09/04/2009
Alguém pode me ajudar, fiz o relatorio arquivo .jrxml porem quando acesso ele através de um href, é aberto o código do arquivo e não é executado o relatório, oq deve ser feito para executar o relatório?
GOSTEI 0
Edinei Manica
09/04/2009
[quote="alexkonowalow"]Alguém pode me ajudar, fiz o relatorio arquivo .jrxml porem quando acesso ele através de um href, é aberto o código do arquivo e não é executado o relatório, oq deve ser feito para executar o relatório?
Para executar um relatório a primeira coisa que você deve fazer é gerar o .jasper dele....... que é o arquivo compilado......
Após isto você executa e mostra na tela.
GOSTEI 0
Rodrigo Correa
09/04/2009
poxa to na monografia, to tendo que fazer os relatorios em jasper, mas nao tenho experiencia, o banco(postgres) conecta com o report tranquilo, mas quando eu peço pra ver relatorio no beans,abre a tela do jasper(aquela meio branca ou cinza), mas nao consegue encontrar meu relatorio a tela fica branca, se alguem puder me ajudar ou mandar para mim algum exemlplo desktop usando report eu agradeço.
GOSTEI 0
Sérgio Fantin
09/04/2009
Olá pessoal,
acrescentando... http://www.livramento.yu.com.br/tutoriais/ireport.html
Este material ajudou-me muito.
Abraços!
GOSTEI 0
Fábio Oliveira
09/04/2009
pessoal, já diversos exemplos de relatorios com Ireport usando dataset, collection, array. Agora estou precisando fazer um passando apenas Objeto. Alguem tem algum exemplo que possa me ajudar? VALEU!!
GOSTEI 0
Jeferson Silva
09/04/2009
:bebado:
Como faco para adicionar uma classe externa ao ireport? Sendo .java??
GOSTEI 0
Duley
09/04/2009
Olá pessoal,
Gostaria de saber como eu gero um documento que contém 3 vias em que todos eles contém informações no verso(assinaturas, data e outras coisas manuais).
Hoje, quando não há mais de uma via, eu uso a parte lastPageFooter, ai fica legal com 1 via.
E, quando não há parte de trás, eu ESTUPIDAMENTE, uso Union no select depois do parâmetro.
Obrigado,
Duley
PS:Muito bom fórum!! :evil:
GOSTEI 0
Jose Nobre
09/04/2009
Tenho alguns campos num relaório que ao invés de apresentar o registro cadastrado eles mostrão o Id do resistro. Ex:
Campo nome do cliente mostra o id do cliente.
Obs: São campos combus ná janela, apontam para outra tabela.
Alguem pode me ajudar
GOSTEI 0
Nikolay
09/04/2009
Pessoal,
Alguém poderia me ajudar a usar o jasper?
Agradeço
Já tenho os arquivos:
jasperreports-2.0.5-project
iReport-nb-0.9.1-src
[quote="daltoncamargo"][b]Tutorial iReport 0.2.2[/b]
Por [url=http://www.javafree.com.br/forum/profile.php?mode=viewprofile&u=2936]Bruno R. Lima[/url] ( aebrlima@hotmail.com )
Criando relatórios JasperReports utilizando iReport e uma conexão JDBC.
+ O QUE É IREPORT ?
+ CRIANDO UM RELATORIO SIMPLES
++ Iniciando o iReport
++ Criando um Relatório
++ Criando a origem dos dados
++ Selecionado a visualização no Ireport
++ Criando o SELECT dos dados
++ Construindo o relatório
[i][b]O QUE É O IREPORT ?[/b][/i]
O iReport é uma ferramenta que visa facilitar a construção de relatórios utilizando a biblioteca JasperReports ( http://jasperreports.sourceforge.net ) através de uma interface gráfica desenvolvida em Swing. Ele dispõe de importantes ferramentas para desenvolver relatórios complexos e demorados.
Mesmo sem nenhum conhecimento das bibliotecas do JasperReports, você consegue criar relatórios muito interessantes através desta ferramenta e aprender a entender as tags XML utilizadas no JasperReports.
[i][b]CRIANDO UM RELATORIO SIMPLES[/b][/i]
Iniciando o iReport
Se você tiver o Ant instalado em sua maquina, altere o arquivo iReport.bat e iReport.sh para setar o diretório de instalação.
Se você não tem o Ant instalado, vá ao subdiretório noAnt e execute o arquivo startup.bat para iniciá-lo.
Criando um Relatório
No menu File, clique em New Document; Irá aparecer a janela para configurar o seu relatório, entre essas configurações estão o nome do relatório, tamanho da folha utilizada, margens, colunas do relatório entre outras opções.
Para configurar um relatório já criado, alterar o tamanho da folha, margens, etc. vá ao menu View > Report Properties.
[i][b]Criando a origem dos dados[/b][/i]
[b]1[/b]. Agora vamos criar uma conexão JDBC para enxergar o banco de dados.
[b]2[/b]. Va ao menu DataSources > Connections / DataSources.
[b]3[/b]. Irá aparecer uma janela contendo as suas conexões de fonte de dados. Agora iremos criar uma conexão JDBC.
[b]4[/b]. Clique no botão New; Selecione em "Type Of Connection / DataSource" a opção "DataBase JDBC Connection".
[b]5[/b]. Defina um nome para a conexão: este nome é apenas para identificá-lo no iReport. Ex: "MinhaConexao"
[b]6[/b]. Agora você deve selecionar o driver JDBC a ser utilizado. Neste caso vamos utilizar o driver da Oracle, "oracle.jdbc.driver.OracleDriver". Preencha também a URL de conexão com o banco: "jdbc:oracle:thin:@<maquina>:<porta>:<instancia>". Você deve substituir as opções:
- <maquina> - Endereço da maquina onde o banco de encontra. Ex: 192.168.0.1;
- <porta> - Porta de conexão do banco; Default 1521;
- <instancia> - A instancia do banco. Ex: oradata;
Neste caso nossa URL seria: "jdbc:oracle:thin:@192.168.0.1:1521:oradata".
[b]7[/b]. Informe os campos "Database" com a instancia do banco, "User" com o usuário e "password" com a senha do seu banco. Essas informações são necessárias para o iReport conectar-se no banco para obter informações da coluna.
Clique em TEST para testar se a conexão está ok. Se estiver tudo em ordem, clique na opção SAVE para salvar sua conexão.
Se você quiser alterar alguma dessas informações, clique no botão "Modify" da janela "Connections/Datasources".
Após criada a conexão, apenas clique no "X" no canto já janela para fechá-la.
Agora que você criou sua conexão, devemos informar que vamos usá-la no relatório, então vá ao menu "Build" e clique na opção "Set Active Connection". Irá aparecer uma lista das conexões disponíveis. Clique na conexão que criamos, a "MinhaConexao" e clique em ok para selecioná-la.
[i][b]Selecionado a visualização no IReport[/b][/i]
Após criada a conexão, devemos selecionar qual forma queremos visualizar nosso relatório depois de pronto. As opções disponíveis são aquelas que o Jasper disponibiliza. Vamos selecionar a opção PDF Preview para ver em PDF.
[i][b]Criando o SELECT dos dados[/b][/i]
Bem, como o relatório é apenas fictício, criaremos a seguinte query para retornar apenas alguns campos utilizados no relatório.
SELECT 'Meu Primeiro Relatorio' TITULO,
SYSDATE DATA_CORRENTE,
5000 DIAS
FROM DUAL
[b]1[/b]. Vá para o menu "Datasource > Report Queries".
[b]2[/b]. Ao abrir a janela, encontra-se a area onde deverá ser digitado a sua query.
Nesta janela, você pode criar qualquer query, pois o que importa é o resultado dela.
[b]3[/b]. Após digitar sua query, veja que existem os botões "Read Fields" e "Save Query To Report". Clique no primeiro, "Read Field", que irá ler os campos que sua query retorna. Os campos irão aparecer na parte de baixo da janela, com o nome identificado na query e seu tipo correspondete no JDBC. No nosso caso irão aparece os seguintes campos:
- TITULO : java.lang.String
- DATA_CORRENTE : java.sql.Timestamp
- DIAS : java.lang.Double
[b]4[/b]. Selecione estes campos, clicando no primeiro, segure a tecla SHIFT e clique no ultimo. Clique no botão "Register Fields To Report". Isto fará com que os campos selecionados sejam criados ( registrados ) no relatório, para poderem ser utilizados. O botão "Clear List" limpa os campos encontrados na sua query.
Se você, por acaso mais tarde resolver incluir um novo campo na sua query, ao clicar no "Register Fields To Report" ele irá verificar se os campos que estão retornando na query já estão registrados no relatório, e não irão ser exibidos, exibindo assim somente os campos novos.
Para utilizar parâmetros no SQL, teremos que adicioná-los depois de criados os campos. Por que? Porque o iReport executa a query do jeito que esta no banco, e se existir algum parâmetro do iReport em sua query, ele irá reclamar, gerando um erro de SQL.
5. Antes de fechar a janela, altere sua query adicionando o parâmetro que iremos criar chamado de "PARAM1":
SELECT ?Meu Primeiro Relatorio? TITULO,
SYSDATE DATA_CORRENTE,
5000 DIAS,
$P PARAMETRO
FROM DUAL
Para trabalhar com parametros nas queries, devemos identificar que o valor é um valor do iReport, que deverá ser substituido. Por isso utilizamos a sintaxe $P{"nome do parametro"}. Assim, quando executarem a nossa query no relatorio, irão substituir esse valor pelo valor que passaremos como parametro no relatório. No caso de uma variavel, a sintaxe muda para $V{"nome da variavel"}.
Agora clique em "Save Query to Report" e clique em Close para salvar a query e fechar a janela.
[i][b]Construindo o relatório[/b][/i]
Vamos verificar se os campos foram criados corretamente. No meu "View", clique na opção "Report Fields", para abrir a janela dos campos do relatório.
Nesta janela é possível visualizar os campos criados no relatório, bem como as variáveis do relatório e os parâmetros.
Agora devemos criar o parâmetro que incluímos na nossa query, o "PARAM1".
[b]1[/b]. Com a janela que exibe os campos aberta, vá na aba "Parameters".
[b]2[/b]. Clique em "New"; Informe o nome do parâmetro, no caso "PARAM1", o tipo do parâmetro, neste caso java.lang.String, e um valor default, informe "VALOR DO PARAMETRO". Informe também uma descrição do parâmetro.
[b]3[/b]. Clique em Ok, verifique que o parametro foi criado. Feche a janela.
[i][b]Após criar o parâmetro, vamos adicionar os campos na tela.[/b][/i]
[b]1[/b]. No menu "Edit" vá na opção "Insert Element...". Aparecerá os elementos que você pode inserir em seu relatório. Vamos inserir um "Static Text" clicando nesta opção. Um "Static Text" é como um label, onde o seu texto ficará estático: você informa o texto.
[b]2[/b]. Verifique que o cursor do mouse alterou. Clique em um local do seu relatório, de preferência na área "Page Header", que é o cabeçalho de pagina para incluir o campo.
[b]3[/b]. Clique agora no menu "View" e selecione a opção "Element Property". Irá aparecer a janela com as propriedades do campo criado.
[b]4[/b]. Vamos alterar o tamanho dele. Altere a propriedade Width e Height para o tamanho desejado. Você pode também alterar o tamanho direto no layout do relatório apenas clicando e arrastando pelas bordas do objeto. Para deixar um tamanho padrao, vamos setar as propriedades para:
- Width: 300
- Height: 30
- Top: 10
- Left: 120
[b]5[/b]. Na segunda aba da janela, "Font" vamos informar a fonte usada no objeto, clique nela. Altere as propriedade para:
- "Font Name" = "Arial"
- "Size" = 18
- "Bold" = Checked
- "Horizontal Align" = Center
- "Vertical Align" = Middle
[b]6[/b]. Na terceira aba, "Static Text" é onde vamos informar o texto que deverá aparecer, clique nela. Na área que aparece, apague o texto e digite: "Relatório Ireport - JasperReport". Pode fechar a janela, clicando no (X).
[b]7[/b]. Para facilitar nossa vida, na barra de menu tem os botões de atalho. Para criar um Text Field, clique no botão que contem a letra "F".Clique agora em alguma área do relatório, de preferência dentro da área escrita "Detail", onde se encontram os detalhes.
Após inserir o campo, de um duplo clique sobre ele, e verá que aparece a caixa de propriedades do objeto. É semelhante as propriedades de um "Static Text" exceto pelas novas abas "Text Field" e "Hyper Link". Altere as propriedades abaixo na aba "Commom"
- Width: 280
- Height: 18
- Top: 10
- Left: 15
[i][b]Feche a janela de propriedades do objeto.[/b][/i]
[b]8[/b]. Vamos criar os outros dois campos do relatório: Repita o mesmo procedimento anterior para incluir um campo, mas alterar a propriedade Top para 30 em um e 50 no outro campo. Assim você irá criar mais 2 campos um logo abaixo do outro.
[b]9[/b]. Dê um duplo clique no primeiro campo criado para verificar suas propriedades. Na janela de propriedades, clique na aba "Text Field" para alterarmos as propriedades de campos dele.
A propriedade "Textfield Expression Class" é a classe que esse textfield irá representar. No nosse exemplo, esse campo irá representar o titulo que retornará da query. Altere para java.lang.String.
A propriedade "Text Field Expression" é o valor que a mesma irá imprimir, preencha com $FTutorial de IREPORT.
Sem fechar a janela, seleciona o segundo campo criado no relatório. Na mesma aba selecionada, a "Text Field" das propriedades do campo, altera as propriedades "TextField Expression Class" para java.util.Date e a propriedade "Text Field Expression" para $F. Altere a propriedade Pattern para "dd/MM/yyyy", que é o formato que queremos exibir a data.
Agora clique no terceiro campo criado e altere as propriedades "TextField Expression Class" para java.lang.Double, "Text Field Expression" para $F e o Pattern para "0000".
Após finalizar a configuração dos campos, clique em Save no meu File para salvar o arquivo, ou no disquete na barra de atalho. Informe o arquivo XML para o qual deseja salvar seu relatório. Confirme.
Para compilar o seu relatório e gerar um arquivo . JASPER, clique no botão laranja, ao lado do zoom de visualização do relatório.
Para executar seu relatório utilizando a conexao ativa, vá em "Build" e "Execute Report ( using active conn )".
Arquivos:
[url=http://www.javafree.com.br/dependencias/tutoriais/jasper/exemplo1.jasper]exemplo1.jasper[/url]
[url=http://www.javafree.com.br/dependencias/tutoriais/jasper/exemplo1.pdf]exemplo1.pdf[/url]
[url=http://www.javafree.com.br/dependencias/tutoriais/jasper/exemplo1.xml]exemplo1.xml[/url]
GOSTEI 0
Rodrigo Silveira
09/04/2009
Olá Pessoal
estou querendo mostrar no meu grafico o pecentual que representa para uma das parte do grafico.
Valeu!
GOSTEI 0