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]
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.

 

 

<<image001.gif>>

Responder a