Subrelatorio - The supplied java.sql.Connection object is null

Pessoal,

tenho um relatorio com 4 subrelatorios. Quando eu chamo o relatorio pela aplicação,
o meu cabeçalho é preenchido corretamente, mas os subs não aparecem e o pdf é carregado.

O erro é esse:

WARN [JRJdbcQueryExecuter] The supplied java.sql.Connection object is null.

Alguém poderia me ajudar a configurar os subs no Ireport?
Tenho que usar DataSource?

Obrigado.

Boa tarde!

Na propriedade dos subs vc deve colocar “Usar mesma conexão do relatório”, dai quando chama-los serão preenchidos com as informações do seu DS.

Att.

Boa tarde.

Mano já está configurado assim.
Veja a tela tela das propriedades.

Existe outra maneira?

Obrigado


Bom dia mpcastro

Nas propriedades em Expression Class do subrelatorio vc deve colocar “java.io.File” ao inves de “java.lang.String”.

Att.

Bom dia…

Eu fiz a mudança, mas aí fica imcompatível com o caminho passado:

$P{SUBREPORT_DIR} + “itens.jasper”

Mensagem de erro:

[color=red]Cannot cast from String to File[/color]

Na propriedade subreport expression, como deve ser o caminho do subreport para java.io.File ?

Obrigado.

[quote=mpcastro]Bom dia…

Eu fiz a mudança, mas aí fica imcompatível com o caminho passado:

$P{SUBREPORT_DIR} + “itens.jasper”

Mensagem de erro:

[color=red]Cannot cast from String to File[/color]

Na propriedade subreport expression, como deve ser o caminho do subreport para java.io.File ?

Obrigado.

[/quote]

Olá.
$P{SUBREPORT_DIR} é um File ou uma String?
Como é preenchida $P{SUBREPORT_DIR}?

[]'s
JL

Bom dia

Nos meus subrelatórios em Subreport Expression esta assim:

JasperUtil.getSubReport(
$P{SUBREPORT_DIR}, “pasta/nome_relatório”)

Expression class: java.io.File

Connection type: use a connection expression

Connection Expression: $P{REPORT_CONNECTION}

Nesse caso sim deve ser passado o caminho do subreport, e também o subreport é um File e não uma String.

Att.

[quote=mpcastro]Bom dia…

Eu fiz a mudança, mas aí fica imcompatível com o caminho passado:

$P{SUBREPORT_DIR} + “itens.jasper”

Mensagem de erro:

Cannot cast from String to File

Na propriedade subreport expression, como deve ser o caminho do subreport para java.io.File ?

Obrigado.

[/quote]

Olá.
Bem, acredito que você esta realmente passando um File, ou invés de uma String.
Então, na propriedade Expression Class você deve voltar para File novamente.

Como você está executando esse relatório? Esta passando alguma conexão com o banco?

[]'s
JL

Sim, utiliza a mesma conexão do relatório principal [color=red]Connection Expression: $P{REPORT_CONNECTION} [/color]
e vc deve setar a propriedade Expression class para java.io.File

Att

[quote=ManoJava]Bom dia

Nos meus subrelatórios em Subreport Expression esta assim:

JasperUtil.getSubReport(
$P{SUBREPORT_DIR}, “pasta/nome_relatório”)

Expression class: java.io.File

Connection type: use a connection expression

Connection Expression: $P{REPORT_CONNECTION}

[/quote]

Mano, segui suas alterações, agora ele não encontra:

[color=red]JasperUtil cannot be resolved [/color]

Como faço o import?

Pessoal… desculpe ficar perguntando… mas eu to apredendo isso aqui é com vocês e na marra mesmo!

Obrigado.

Sem problema amigo, estamos aqui pra isso vamos lá então…

Quando utilizamos um subreport, temos que importar um Scriptlet, vc encontra essa importação na janela propriedades do relatório em Scriptlet class, no meu caso uso minha classe mm.util.JasperHeaderScriptlet, que esta dentro de mm(meu projeto) e faz parte do meu pacote util, se vc ja tem essa classe criada no Java, faça a importação dela em propriedades e rode o relatório, lembrando que sem essa classe os subrelatórios não irão executar. ok.

Att

Boa noite!

eu tive esse problema que o amigo mencionou

consegui resolver …
fiz o seguinte informei para o parâmetro REPORT_CONNECTION a minha conexão como segue o código abaixo:

[code]
import java.sql.Connection;
Connection con = null;
try
{
con = DriverManager.getConnection(“jdbc:postgresql://localhost:5432/MEUBANCO”,“postgres”,“minhasenha”);
}
catch(SQLException erro)
{

    }

      Map parametros = new HashMap();
      parametros.put("REPORT_CONNECTION",con);
    
      JasperPrint jasperPrint = JasperFillManager.fillReport(
      "src/br/com/jotacont/Seguranca/Teste.jasper", parametros,new JRBeanCollectionDataSource(lista));
    
      JasperViewer visualiza = new JasperViewer(jasperPrint,false);[/code]

ta aí o link de onde peguei a informação… http://www.guj.com.br/java/285686-subrelatorio-ireport-por-aplicacaoresolvido#1607353

espero ajudar quem ainda tiver o problema! um abraço…