Você pode então passar o SQL que esta capturando do banco?

            Como eu disse, passo todo o Select como um único parâmetro, uso a clausula in com mais de um valor e nunca tive problema.

            Valeu!

 

 

-----Mensagem original-----
De: Peterson Pinheiro [mailto:[EMAIL PROTECTED]
Enviada em: quinta-feira, 10 de março de 2005 10:56
Para: [EMAIL PROTECTED]org
Assunto: RES: [cejug-discussao] Passagem de Parametro - IReport

 

Deisimar,

 

     No item 1, foi erro de digitação mesmo, estou usando { }. Quanto ao uso do debug do java, estou verificando direto no banco o SQL passado. Creio eu, que o problema, esteja na API do JASPER que passa o SQL, de forma que o Banco de Dados, considera o parametro $P{parUf} = “(‘CE’,’SP’)”, como sendo uma string só, ou seja, ele procura por 'CE','SP' ao invés de 'CE' ou 'SP' e não retorna nada. Se usar o IN passando como parametro, por exemplo, "CE", ele funciona. Se pegar o SQL que estou passando por dentro do iReport e executar direto no modo de comando do banco, tmb funciona, usando atributo IN ('CE','SP')

    Quanto a passar o SQL todo como parametro, caio no mesmo problema..., pois a consulta passa pelo interpretador do jasperReports. Toda a dificuldade esta em tratar os delimitadores ( ' ' ) .

 

Concorda ?

 

Muito obrigado pela ajuda.

 

Peterson.

 

 

-----Mensagem original-----
De: Francisco Deisimar Nobre Júnior [mailto:[EMAIL PROTECTED]
Enviada em: quinta-feira, 10 de março de 2005 10:20
Para: [EMAIL PROTECTED]org
Assunto: RES: [cejug-discussao] Passagem de Parametro - IReport

 

            Bom dia!

            Sugiro que você faça três coisas:

            1 – Não sei se o teu xml esta assim, mas no e-mail você passou x.UF in $P(parUF) e o correto seria x.UF in $P{parUF}

            2 – Gere uma saída no out(System.out) do valor passado por parâmetro e verifique se é o que você espera.

            3 – Eu acho que passando a string “(‘CE’,’SP’)” deve dar certo, até sugiro que você passe esse valor forçadamente no  programa para ver se funciona. Mas o que acho mais prático é definir todo o SQL no programa e passá-lo todo como um único parâmetro.

            Valeu!

 

 

-----Mensagem original-----
De: Peterson Pinheiro [mailto:[EMAIL PROTECTED]
Enviada em: quarta-feira, 9 de março de 2005 12:01
Para: Cejug
Assunto: [cejug-discussao] Passagem de Parametro - IReport

 

Srs. Bom dia,

Estou tentando passar para um parametro criado no iReport, $parUf, e a dificuldade que estou tendo, é fazer o mesmo, enteder o seguinte parametro : " ('CE','SP') " , passado dinamicamente.

Vejam o fragmento do SQL, abaixo:

WHERE ( ( $P{parUf} IS NOT NULL) AND (  x.UF IN $P(parUf)  ) ) OR ($P{parUf} IS NULL ) ) 

compiling E:\Relatorios\ListagemAcompanhamentoOs_Ok.jaspernet.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. Syntax error on token ",", invalid AssignmentOperator                 value = (java.lang.String)((" 'CE' "," 'SP' "));

Assim funciona !!!, escrevendo direto no Report Query do IReport.

WHERE ($P{parUf} IS NOT NULL) AND ( x.UF IN ('CE','SP') )) OR ($P{parUf} IS NULL ) ) 

 

Grato por qualquer ajuda.

 

 

<<inline: image001.gif>>

Responder a