SubReport - JasperReport

1,374 views
Skip to first unread message

Michell Hornung

unread,
Aug 30, 2010, 4:35:38 PM8/30/10
to jasperreports-...@googlegroups.com, t2ti-s...@googlegroups.com
Olá!

Alguém possui um tutorial de como criar um subreport dentro de um report no jasper e então pegar estes dados por parâmetro?


--
Atenciosamente,

Michell Hornung.

Revton Braga

unread,
Aug 30, 2010, 4:42:30 PM8/30/10
to JasperReports / iReport Brasil
Michell, fiquei com dúvida, você está usando a ferramenta iReport para
fazer ou não?

Daniel Sousa

unread,
Aug 30, 2010, 4:54:58 PM8/30/10
to JasperReports / iReport Brasil
Oi Michell,

Não entendi muito bem quais são estes dados que você quer pegar no
subrelatório, se puder explicar melhor...

De qualquer modo, no site do iReport tem um tutorial sobre
subrelatorios:
http://jasperforge.org/website/ireportwebsite/IR%20Website/ir_subreports.html?header=project&target=ireport

Qualquer coisa, dá um grito aqui dinovo.. =]


On 30 ago, 17:35, Michell Hornung <michellhorn...@gmail.com> wrote:

Michell Hornung

unread,
Aug 30, 2010, 5:01:07 PM8/30/10
to jasperreports-...@googlegroups.com
Sim, estou usando o iReport.

O que acontece que preciso definir os parâmetros do subreport criando HashMap.

Segue o fonte para exemplo. Neste caso ainda não estou pegando os dados do subreport que criei.

                                // --- Set Background Relatórios --- //
String path_background = getServletContext().getRealPath("/template/topo_retrato.jpg");
// --- Fim Background Relatórios --- //
//Define caminho da LOGO
String image = getServletContext().getRealPath("/images/logo_auditoria.jpg");
// Define Parametros do Relatório
HashMap<String, String> parametros = new HashMap<String, String>();
parametros.put("BACKGROUND_TOPO", path_background);
parametros.put("LOGO", getServletContext().getRealPath(image));
parametros.put("SEQUENCIA", data [0][0]);
parametros.put("CAMINHO", data [0][1]);
parametros.put("LOGO", image);
// Define o tipo de retorno no browser
response.setContentType("application/pdf");
// Define qual o template deve ser utilizado
InputStream stream = getServletContext().getResourceAsStream("template/auditoria.jasper");
// Define os dados do relatório
List<Map<String, String>> dados = new ArrayList<Map<String, String>>();
for (int i = 1; i < data.length; i++) {
Map<String, String> record = new HashMap<String, String>();
record.put("SEQUENCIA", data [i][0]);
record.put("CAMINHO", data [i][1]);
dados.add(record);
}
// Inicia a geração do relatório
JRBeanCollectionDataSource fonteDados = new JRBeanCollectionDataSource(dados);
ServletOutputStream servletOutputStream = response.getOutputStream();
JasperRunManager.runReportToPdfStream(stream, servletOutputStream, parametros, fonteDados);
servletOutputStream.flush();
servletOutputStream.close();
--
Atenciosamente,

Michell Hornung.

Daniel de Sousa

unread,
Aug 30, 2010, 11:00:53 PM8/30/10
to jasperreports-...@googlegroups.com
Primeiramente, vc está gerando o relatório usando uma coleção de Map.
Para isso, existe um DataSource chamado JRMapCollectionDataSource
 
Basta alterar aí no seu código para:
JRMapCollectionDataSource fonteDados = new JRMapCollectionDataSource(dados);
 
No seu relatório, vc pode criar parâmetros para pegar os dados que você colocou na sua variável "parâmetros". Devem ter o mesmo nome que você está informando aí:
BACKGROUND_TOPO
LOGO
etc...
 
Para pegar as informações do seu datasource, você precisa criar Fields com os mesmos nomes das chaves dos MAP.
Ex.:
CAMINHO
SEQUENCIA
 
 
Se precisar passar algum valor para um subrelatório, no relatório principal, clique sobre o elemento do subrelatório. No Painel de Propriedades, tem uma pripriedade chamada "Parameters". Lá você passa parâmetros para o subrelatorio, basta dar um nome para o parâmetro, e passar o valor, que pode ser qualquer coisa (parâmetro/field/variável).
Dentro do subrelatorio, crie Parametros com os nomes que você deu na tela anterior.
 
No caso de você querer repassar os mesmos "Parametros" que você recebeu no relatório principal para o subrelatório, sem ter que ficar passando um por um, vc pode simplesmente passar como parametro do relatorio algo assim:
Nome: params  (qualquer nome)
Valor:  $P{REPORT_PARAMETERS_MAP}
 
Daí no subrelatório você cria um parâmetro com o nome "params", do tipo "java.util.Map" (nao tem essa opção lá, mas vc pode escrever).
Daí vc usa ela no relatorio assim:  $P{params}.get("BACKGROUND_TOPO")
 
 
Dá uma olhada nos arquivos que anexei.
Qualquer coisa, posta ai novamente =]
 
 

===============================
Daniel de Sousa
Site:  www.danielsousa.com.br
Email/Msn: dani...@hotmail.com
Twitter:  www.twitter.com/danielsbarros
relatorio.zip
Message has been deleted

Daniel de Sousa

unread,
Aug 31, 2010, 12:46:36 PM8/31/10
to jasperreports-...@googlegroups.com
Tudo que você pode fazer numa tabela, você consegue fazer usando um subrelatório. O contrário não é válido.
 
Se você for usar Tabela, tenha em mente que você precisa ter dados, caso contrário, será exibida uma linha horizontal bem inconveniente onde deveriam estar os dados da detail dela.
Não é possível (ainda) exibir um conteúdo customizado caso ela não possua registros. Já com um subrelatório você poderia usar a band "No Data".
 
Ou seja, usar a Tabela é mais simples, pois economiza tempo de desenvolvimento, fora as facilidade de ter a grade, criar colunas etc... Mas precisa saber o que você precisará nela, porque ela ainda é um pouco limitada para algumas coisas....
Já tive situações de eu ter que desfazer várias tabelas e fazer subrelatórios, porque elas foram ganhando complexidade, e a tabela já não conseguia mais me atender.
 
Em ambos os formatos, tabela ou subrelatorio, imagino que esse seu parâmetro CUSTOM será o datasource que você usará pra gerar elas.
 
Se for usar subrelatório: Nas Propriedades do elemento do subrelatorio (no relatorio principal), configure isso:
Connection Type:  Use a Datasource Expression
DataSource Expression:  new net.sf.jasperreports.engine.JRMapCollectionDataSource($P{CUSTOM})  (chutei esse datasourse, imaginando que seu CUSTOM é uma lista de MAPs)
 
Se for tabela, a configuração é a mesma, só muda o local. Clique com o botão direito do mouse sobre o elemento da tabela, depois em "Edit table datasource". É necessário também estar recebendo o Parametro CUSTOM na aba "Parameters".
 
 
==========================
Daniel Sousa
Site:  www.danielsousa.com.br
Twitter:  www.twitter.com/danielsbarros

Sent: Tuesday, August 31, 2010 11:51 AM
Subject: Re: [JasperReports / iReport Brasil] Re: SubReport - JasperReport

Estava pensando agora senão seria mais fácil usar uma Tabela.

Estou passando os dados assim:

parametros.put("CUSTOM", description [row + 4][2]);

Alguém tem uma dica???? Tabela ou subreport????


--
Atenciosamente,

Michell Hornung.

Michell Hornung

unread,
Aug 31, 2010, 2:10:31 PM8/31/10
to jasperreports-...@googlegroups.com
Estou tentando fazer com o sub report mesmo visando posteriores implementações.

Mas não consigo de maneira alguma compilar. Se puder dar uma olhada, segue o anexo.

Muito obrigado.
--
Atenciosamente,

Michell Hornung.
auditoria.zip

Daniel de Sousa

unread,
Aug 31, 2010, 2:45:32 PM8/31/10
to jasperreports-...@googlegroups.com
Michael,
 
Verifiquei aqui.
 
O nome do datasource. Eu acabei errando no email anterior tmb...
o correto é net.sf.jasperreports.engine.data.JRMapCollectionDataSource
Tinha faltado esse "data" aí no email que enviei anteriormente... sorry...
 
Além disso, seu relatório não precisa mandar para o subrelatorio o $P{CUSTOM} como parâmetro, afinal ele já é o datasource.
 
Ou ponto: Lembre-se que para usar esse datasource, você precisa de uma Lista de MAPs.
Seu parâmetro $P{CUSTOM} esta declarado como java.util.Map, o correto seria java.util.List  (que contem todos os maps)

Michell Hornung

unread,
Aug 31, 2010, 3:31:44 PM8/31/10
to jasperreports-...@googlegroups.com
Tá difícil!

Mesmo com as alterações dá erro de compilação, veja:

Compiling to file... E:\LHTOOLS\04 - Projects\Alive Report\Alive Report 1.2.0\Template Auditoria\20100830-31\TESTES\auditoria.jasper Errors compiling E:\LHTOOLS\04 - Projects\Alive Report\Alive Report 1.2.0\Template Auditoria\20100830-31\TESTES\auditoria.jasper! Compilation exceptions: com.jaspersoft.ireport.designer.compiler.ErrorsCollector@1fcfb9c

net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
1. The constructor JRMapCollectionDataSource() is undefined
                value = (net.sf.jasperreports.engine.JRDataSource)(new net.sf.jasperreports.engine.data.JRMapCollectionDataSource()); //$JR_EXPR_ID=12$
                                                                  <---------------------------------------------------------------->
2. The constructor JRMapCollectionDataSource() is undefined
                value = (net.sf.jasperreports.engine.JRDataSource)(new net.sf.jasperreports.engine.data.JRMapCollectionDataSource()); //$JR_EXPR_ID=12$
                                                                  <---------------------------------------------------------------->
3. The constructor JRMapCollectionDataSource() is undefined
                value = (net.sf.jasperreports.engine.JRDataSource)(new net.sf.jasperreports.engine.data.JRMapCollectionDataSource()); //$JR_EXPR_ID=12$
                                                                  <---------------------------------------------------------------->
3 errors

    at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:191)
    at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:498)
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)
    





--
Atenciosamente,

Michell Hornung.

Daniel de Sousa

unread,
Aug 31, 2010, 3:41:29 PM8/31/10
to jasperreports-...@googlegroups.com
Michell,
 
Você provavelmente esqueceu de mudar o tipo do parâmetro CUSTOM para java.util.List
 
Fiz isso aqui e compilou certinho:
Alterei o parametro CUSTOM
De:     java.util.Map
Para:  Java.util.List
 
Alterei o "DataSource Expression" do subrelatorio
De: new net.sf.jasperreports.engine.JRMapCollectionDataSource($P{CUSTOM})
Para: new net.sf.jasperreports.engine.data.JRMapCollectionDataSource($P{CUSTOM}) 
 
Removi o parametro CUSTOM que você estava repassando no subrelatorio
 
Compilou certinho.
 
Anexei o jrxml.
auditoria.jrxml

Michell Hornung

unread,
Aug 31, 2010, 3:45:36 PM8/31/10
to jasperreports-...@googlegroups.com
Consegui compilar com sucesso!

Porém... rsrsrs ... surgiu outro problema. No eclipse, estou usanado hashmap. Olha o que acontece:

net.sf.jasperreports.engine.JRException: Incompatible java.util.HashMap value assigned to parameter CUSTOM in the auditoria dataset. 

Pode ser usado dessa forma por exemplo?

                                Map<String, String> testemap = new HashMap<String, String>();
testemap.put("teste", "valie");
testemap.put("asdfteste", "valiasde");
parametros.put("CUSTOM", testemap);
--
Atenciosamente,

Michell Hornung.

Daniel de Sousa

unread,
Aug 31, 2010, 3:50:26 PM8/31/10
to jasperreports-...@googlegroups.com
pode sim...
 
mas onde foi que subiu esse erro? no relatorio principal ou no subrelatorio?
Você criou no subrelatorio Fields com o mesmo nome das chaves dos maps?

Michell Hornung

unread,
Aug 31, 2010, 3:59:18 PM8/31/10
to jasperreports-...@googlegroups.com
Esse erro foi no debug no eclipse.
Eu havia deixado os nomes diferentes.

Os fields tem de ser o mesmo nome que uso no hashmap????
--
Atenciosamente,

Michell Hornung.

Daniel de Sousa

unread,
Aug 31, 2010, 4:02:08 PM8/31/10
to jasperreports-...@googlegroups.com
Sim. pegando como exemplo esse penultimo email seu, seu subrelatorio deveria ter 2 Fields:
 
teste  (String)
asdfteste (String)
 
==========================
Daniel Sousa
Twitter:  www.twitter.com/danielsbarros

Michell Hornung

unread,
Aug 31, 2010, 4:34:03 PM8/31/10
to jasperreports-...@googlegroups.com
Mesmo assim, aconteceu o mesmo erro no debug!
--
Atenciosamente,

Michell Hornung.

Daniel de Sousa

unread,
Sep 1, 2010, 8:43:02 AM9/1/10
to jasperreports-...@googlegroups.com
Alguma coisa você está setando errado. Testei local em casa e funcionou certinho.
Qualquer coisa, manda a classe que você está usando pra gerar o relatório e os jrxml pra gente ver.
 
==========================
Daniel Sousa
Site:  www.danielsousa.com.br
Twitter:  www.twitter.com/danielsbarros

Sent: Tuesday, August 31, 2010 5:34 PM
Subject: Re: [JasperReports / iReport Brasil] Re: SubReport - JasperReport

Michell Hornung

unread,
Sep 1, 2010, 9:16:54 AM9/1/10
to jasperreports-...@googlegroups.com
Segue o anexo.

A parte que se refere ao subrelatório começa na linha 780. Segue um trecho:

                                String path_subrelatorio = getServletContext().getRealPath("/template/");
// Define Parametros do Relatório
HashMap<String, Object> parametros = new HashMap<String, Object>();
parametros.put("SUBREPORT_DIR", path_subrelatorio);
parametros.put("BACKGROUND_TOPO", path_background);
parametros.put("LOGO", getServletContext().getRealPath(image));
parametros.put("SEQUENCIA", data [0][0]);
parametros.put("CAMINHO", data [0][1]);
parametros.put("LOGO", image);
parametros.put("NOME", "CUSTOM");
parametros.put("VALOR", "CUSTOM");
// Define o tipo de retorno no browser
response.setContentType("application/pdf");









--
Atenciosamente,

Michell Hornung.
auditoria.rar

Daniel de Sousa

unread,
Sep 1, 2010, 9:38:34 AM9/1/10
to jasperreports-...@googlegroups.com
No seu auditoria.jrxml você está recebendo um parâmetro CUSTOM, mas na servlet você não está enviando nenhum parâmetro com esse nome.
 
Ainda no seu auditoria.jrxml, você configurou pra gerar o subrelatório usando um JRMapCollectionDataSource, e está passando o $P{CUSTOM} como parametro. Porém seu $P{CUSTOM} está definido como um java.util.Map. o Correto é definí-lo como java.util.List (já falei isso anteriormente).
 
Além disso, vc está dando um new errado no datasource:  new net.sf.jasperreports.engine.JRMapCollectionDataSource($P{CUSTOM})
o correto é: new net.sf.jasperreports.engine.data.JRMapCollectionDataSource($P{CUSTOM})
Também já te alertei quanto a isso anteriormente.
 
Seu auditoria_custom.jrxml está correto.
 
Já na sua servlet, você tem que mandar a lista de maps para o auditoria.jxml
 
Algo assim:
 
// Define Parametros do Relatório
HashMap<String, Object> parametros = new HashMap<String, Object>();    
parametros.put("SUBREPORT_DIR", path_subrelatorio);    
parametros.put("BACKGROUND_TOPO", path_background);
parametros.put("LOGO", getServletContext().getRealPath(image)); 
    
parametros.put("SEQUENCIA", data [0][0]);
parametros.put("CAMINHO", data [0][1]);
parametros.put("LOGO", image);       
   
           
// Cria a lista de Maps (servirá como datasource do subrelatório)
List<Map<String, String>> listaCustomMaps = new HaspMaps<Map<String, String>>();

for (int i = 1; i < data.length; i++) {
                    Map<String, String> customMap = new HashMap<String, String>();
                    customMap.put("NOME", "nome " + i);
                    customMap.put("VALOR", "valor " + i);
                    listaCustomMaps.add(customMap);
}
 
parametros.put("CUSTOM", listaCustomMaps);

Michell Hornung

unread,
Sep 1, 2010, 9:47:04 AM9/1/10
to jasperreports-...@googlegroups.com
CERTO!

Vou fazer as correções e aviso o resultado.

Muito obrigado cara!!!
--
Atenciosamente,

Michell Hornung.

Michell Hornung

unread,
Sep 1, 2010, 10:15:13 AM9/1/10
to jasperreports-...@googlegroups.com
Quase deu certo.

Fiz uma pequena alteração no código que me enviou, ficando assim:

List<Map<String, String>> listaCustomMaps = new ArrayList<Map<String, String>>();

        for (int i = 1; i < data.length; i++) {
               Map<String, String> customMap = new HashMap<String, String>();
               customMap.put("NOME", "nome " + i);
               customMap.put("VALOR", "valor " + i);
               listaCustomMaps.add(customMap);
}
 
parametros.put("CUSTOM", listaCustomMaps);

Criei um ArrayList em vez de HashMap.

Debugando me deparei com este erro:

Error evaluating expression : 
Source text : $P{CUSTOM}

Será algum erro na lógica?
--
Atenciosamente,

Michell Hornung.

Daniel de Sousa

unread,
Sep 1, 2010, 10:32:25 AM9/1/10
to jasperreports-...@googlegroups.com
Posta o traceback completo... apenas "Error evaluating expression" fica dificil saber qual o erro que deu...
 
A parte que você mudou alí para ArrayList, vc fez certo, eu é que tinha colocado HashMap sem querer... escrevi direto no email e não percebi que estava errado.
Bem como aquele "data.length", chutei tmb...
 
Mas assim, verifica com certeza se vc mudou o tipo do parâmetro CUSTOM para java.util.List  (depois que digitar, tem que dar ENTER, senão ele não grava)
 
Nas propriedades do elemento do subrelatorio, tem uma Propriedade "Parameters Map Expression", você está passando o $P{CUSTOM} lá... não precisa...
 
Está quase lá rsrs

Michell Hornung

unread,
Sep 1, 2010, 12:36:15 PM9/1/10
to jasperreports-...@googlegroups.com
No meu try catch acontece apenas este erro e EVALUATING EXPRESSION: Source text : $P{CUSTOM}

Porém, analisando melhor, descobri que:

- java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map

Estou usando Arraylist. Há outra maneira de exibir estes dados mapeando?

Estamos quase!!! uhahuahuauhauhuh
--
Atenciosamente,

Michell Hornung.

Daniel de Sousa

unread,
Sep 1, 2010, 12:44:25 PM9/1/10
to jasperreports-...@googlegroups.com
Assim as cegas não to conseguindo imaginar onde vc está errando... manda seus fonte aí dinovo.

Michell Hornung

unread,
Sep 1, 2010, 12:56:22 PM9/1/10
to jasperreports-...@googlegroups.com
Segue em anexo.

Na linha 794. 

List<Map<String, String>> listaCustomMaps = new ArrayList<Map<String, String>>();

--
Atenciosamente,

Michell Hornung.

Daniel de Sousa

unread,
Sep 1, 2010, 1:35:19 PM9/1/10
to jasperreports-...@googlegroups.com
só faltou o anexo...

Michell Hornung

unread,
Sep 1, 2010, 1:37:21 PM9/1/10
to jasperreports-...@googlegroups.com
Falhou... tá na mao!
--
-----------------------------------------------
Atenciosamente,

Michell Hornung.

Twitter: http://twitter.com/michellhornung
-----------------------------------------------


auditoria.rar

Daniel de Sousa

unread,
Sep 1, 2010, 1:54:15 PM9/1/10
to jasperreports-...@googlegroups.com
No seu auditoria.jrxml, no elemento do subrelatorio, tem a propriedade "Parameters Map Expression". Lá vc está passando o $P{CUSTOM}. Tira isso de lá, vc não está usando. Mesmo se fosse usar, está errado, já que aquela propriedade recebe um MAP, e seu CUSTOM é um List. É por isso que quando você roda o relatório, sobe a exception:
 
- java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map
 
Com isso, acredito que já vai funcionar.
 
Observação: No auditoria_custom.jrxml, vc criou um parametro CUSTOM... pode apagar, não está sendo usado, e nem vai precisar

Michell Hornung

unread,
Sep 1, 2010, 2:52:10 PM9/1/10
to jasperreports-...@googlegroups.com
It doesn't works!

Não funciona! Meu prazo está estourando. Vou usar a tabela por enquanto.

Procedimento da tabela se aplica da mesma maneira?

Daniel de Sousa

unread,
Sep 1, 2010, 2:59:16 PM9/1/10
to jasperreports-...@googlegroups.com
Está dando o mesmo erro?
 
Com a tabela o procedimento seria o mesmo, infelizmente....
 
Explica o que vc está tentando imprimir nessa tabela aí, talvez vemos uma forma diferente de fazer....

Michell Hornung

unread,
Sep 1, 2010, 3:04:52 PM9/1/10
to jasperreports-...@googlegroups.com
Está dando o mesmo erro.

To tentando passar um arraylist. Seria mais ou menos como a figura em anexo.

Isto seria em cima de alguns dados contido no relatório. Posso utilizar uma tabela sem problemas.
lista.JPG

Michell Hornung

unread,
Sep 1, 2010, 4:07:38 PM9/1/10
to jasperreports-...@googlegroups.com
Daniel!

Alterei para lista. Pode me dizer se está correto?
auditoria.jrxml

Michell Hornung

unread,
Sep 1, 2010, 6:16:13 PM9/1/10
to jasperreports-...@googlegroups.com
Daniel,

Cara, tentei seguindo o teu vídeo sobre Table.

Em anexo envio aquela mesma classe e outro arquivo.jrxml com a Table.

Na linha 794 eu faço um teste para gerar dados nessa tabela. Mas até agora todos os teste me aparecem com aquela maravilhosa linha negra da tabela!!!

Obs.: No java tenho duas listas "List<Map<String, String>>" uma contendo as informações para o relatório normal (sequência e caminho) e a outra contendo as informações dos parâmetros do custom (nome e valor)

Me da um HELP ae please!!!!! 

Valeu!!!
20100901.rar

Daniel de Sousa

unread,
Sep 2, 2010, 12:04:29 AM9/2/10
to jasperreports-...@googlegroups.com
Seu jrxml tinha alguns erros... vc não estava recebendo o CUSTOM nos parametros, além de outros erros de configuração no DataSet CUSTOM que você criou.
 
Eu fiz as correções nele (anexo), vc pode usar e ver no que dá.
Fiz uma classe também com dados fictícios que gera esse relatório, vc pode rodar tmb...
E Anexo segue um pdf gerado.

===============================
Daniel de Sousa
Site:  www.danielsousa.com.br
Twitter:  www.twitter.com/danielsbarros
auditoria.jrxml
RelMap.java
auditoria.pdf

Michell Hornung

unread,
Sep 2, 2010, 9:39:22 AM9/2/10
to jasperreports-...@googlegroups.com
Cara deu certo!!!

FINALMENTE!!!

Muito obrigado pela ajuda!!!!!!!!!!!!!!!!!!!!!!!

Valeu mesmo!

Att,

Michell

Daniel de Sousa

unread,
Sep 2, 2010, 10:37:37 AM9/2/10
to jasperreports-...@googlegroups.com
Que bom que este tópico teve um final feliz... rsrs
 
==========================
Daniel Sousa
Site:  www.danielsousa.com.br
Twitter:  www.twitter.com/danielsbarros

Michell Hornung

unread,
Sep 2, 2010, 10:38:40 AM9/2/10
to jasperreports-...@googlegroups.com
huahuahuahuuhaa

Feliz pra Cara***!!!

Valeu

Robson Araujo

unread,
Sep 5, 2010, 9:15:21 PM9/5/10
to jasperreports-...@googlegroups.com
Caro amigo estou viajando, onde consigo este video sobre Table, por favor posta aí.
--
Robson de Araujo.
cel:6515-4318

Daniel de Sousa

unread,
Sep 6, 2010, 7:47:26 AM9/6/10
to jasperreports-...@googlegroups.com

Robson Araujo

unread,
Sep 11, 2010, 8:30:58 PM9/11/10
to jasperreports-...@googlegroups.com
Obrigado amigo, mas se não for pedir muito , é possível disponibilizar este vídeo para download?

Daniel de Sousa

unread,
Sep 11, 2010, 8:51:19 PM9/11/10
to jasperreports-...@googlegroups.com
Claro..
 
 
Costumo hospedar os videos no BlipTv, nesse canal: http://danielsbarros.blip.tv/
Ele já cria uma versão em mp4 e outra em flv pra download direto...
 
===============================
Daniel de Sousa
Site:  www.danielsousa.com.br
Twitter:  www.twitter.com/danielsbarros

Reply all
Reply to author
Forward
0 new messages