Mensagens enviadas por: pbnf
Índice dos Fóruns » Perfil de pbnf » Mensagens enviadas por pbnf
Autor Mensagem
Esse ano não tem versão Win32 e Java, apenas Java.
Ué, do mesmo jeito que foi feito com o CPF/CNPJ !!! Vc já usou o metodo "subString" qual a duvida ????
O que faltava até mesmo no meu codigo era os parenteses do metodo length
A definição do relatorio é um arquivo XML que por padrao tem e terminação .JRXML e o que pode estar acontecendo é algum lixo de coisas que foram apagadas na hora de definir o layout, pois na mensagem aonde deveria teoricamente aparecer o nome do atributo aparece apenas ""
Vc tem que passar o caminho inteiro do arquivo(path) !! E uma dica, como vc não ta usando uma arquitetura mais elaborada, ta tudo junto a parte de banco e logica, fica mais facil colocar o Select dentro da definição do relatorio e vc evita codigo!
Coloca isso no lugar e me fala o que deu:
($F{PESSOAS_CNPJ_CPF}.length==11) ? "XXXXXXXXX" : "YYYYYYYYYYYYY"
Mas em qual Tag do Jasper que da o erro ? Passe ela inteiro pra ficar mais facil entender.
E pra finalizar, o que é "forma mais sucinta" ??? vc tem um campo que pode conter CPF ou CNPJ tendo o tamanho deles como forma de identificar o tipo do conteudo.

De novo coloco o codigo do meu ultimo post que é o que vai resolver o que vc quer:
($F{PESSOAS_CNPJ_CPF}.length==11)
? "Numero do CPF: " + $F{PESSOAS_CNPJ_CPF}.subString(...Mascara do Cpf...) + "." + $F{PESSOAS_CNPJ_CPF}.subString(...Mascara do Cpf...) // Esse pedaço é um exemplo, aqui vc coloca a mascara. Eu não coloquei por preguiça
: "Numero do CNPJ: " + $F{PESSOAS_CNPJ_CPF}.subString(...Mascara do Cnpj....) + "/" + $F{PESSOAS_CNPJ_CPF}.subString(...Mascara do Cnpj....) // Esse pedaço é um exemplo, aqui vc coloca a mascara. Eu não coloquei por preguiça


Mas pra não ter mais duvidas vai o codigo completo, é copiar e colar !!!!


($F{PESSOAS_CNPJ_CPF}.length==11) // Inicio do IF
? "Numero do CPF: " + $F{PESSOAS_CNPJ_CPF}.substring(0, 3)+ "." + // Sinal de Interrogação indica o THEN
$F{PESSOAS_CNPJ_CPF}.substring(3, 6)+ "." +
$F{PESSOAS_CNPJ_CPF}.substring(6, 9)+ "-" +
$F{PESSOAS_CNPJ_CPF}.substring(9, 11)
: "Numero do CNPJ: " + $F{PESSOAS_CNPJ_CPF}.substring(0, 2)+ "." + // Sinal de DOIS PONTOS indica o ELSE
$F{PESSOAS_CNPJ_CPF}.substring(2, 5)+ "." +
$F{PESSOAS_CNPJ_CPF}.substring(5, + "/" +
$F{PESSOAS_CNPJ_CPF}.substring(8, 12)+ "-" +
$F{PESSOAS_CNPJ_CPF}.substring(12, 14)
Só pra deixar mais claro, quando vc usa $F{PESSOAS_CNPJ_CPF} isso é um Field que é preenchido com os dados de uma fonte externa de dados, se vc definiu esse field com o tipo String vc tem acesso a todos os metodos da classe String, mas quando vc exemplificou a mascara do CNPJ desse jeito:

$F{PESSOAS_CNPJ_CPF}."cnpj" +
$F{PESSOAS_CNPJ_CPF}.substring(0, 2)+ "." +
$F{PESSOAS_CNPJ_CPF}.substring(2, 5)+ "." +
$F{PESSOAS_CNPJ_CPF}.substring(5, + "/" +
$F{PESSOAS_CNPJ_CPF}.substring(8, 12)+ "-" +
$F{PESSOAS_CNPJ_CPF}.substring(12, 14)

a primeira linha[ $F{PESSOAS_CNPJ_CPF}."cnpj" + ] esta errada, pois não existe o metodo "cnpj" na classe String.
babi_underground wrote:Sim!!...
ele ira retornar um cpf ou cnpj no campo $F{PESSOAS_CNPJ_CPF} e como pode ver o verdadeiro(True) eu ja fiz...agora queria saber como faço o False...que no caso : $F{PESSOAS_CNPJ_CPF}.length() == "cpf" ....ele joga o cpf!! se for cnpj a mesma coisa so que assim : $F{PESSOAS_CNPJ_CPF}.length() != "cnpj" ...retorna cnpj(pelo menos era!)...ele nao esta retornando o cnpj..
Sei que é so uma condição a ser feita agora que é o False...ate aqui meu If ta funcionando bacana:

$F{PESSOAS_CNPJ_CPF}.length() == 11 ? "cpf" : // Se tamanho for 11 vai mostras APENAS o texto "cpf". O que vem depois dos "dois-pontos" é o ELSE.
$F{PESSOAS_CNPJ_CPF}.substring(0, 3)+ "." +
$F{PESSOAS_CNPJ_CPF}.substring(3, 6)+ "." +
$F{PESSOAS_CNPJ_CPF}.substring(6, 9)+ "-" +
$F{PESSOAS_CNPJ_CPF}.substring(9, 11)

o cnpj esta assim:

$F{PESSOAS_CNPJ_CPF}."cnpj" + // essa linha com ."cnpj" esta errado, o resto é o bloco que deve estar apos os "dois-pontos" que é o ELSE da condicao.
$F{PESSOAS_CNPJ_CPF}.substring(0, 2)+ "." +
$F{PESSOAS_CNPJ_CPF}.substring(2, 5)+ "." +
$F{PESSOAS_CNPJ_CPF}.substring(5, + "/" +
$F{PESSOAS_CNPJ_CPF}.substring(8, 12)+ "-" +
$F{PESSOAS_CNPJ_CPF}.substring(12, 14)

O que pode estar errado???
Vc ja trocando as bolas, no meu post anterior eu mostrei como funciona uma expressão no Jasper.

Vc fala em retornar o CPF ou CNPJ no Field $F{PESSOAS_CNPJ_CPF}, isso não existe, fields são apenas pra exibição !!!!
Será que não é isso que vc quer fazer:

($F{PESSOAS_CNPJ_CPF}.length==11)
? "Numero do CPF: " + $F{PESSOAS_CNPJ_CPF}.subString(...Mascara do Cpf...) + "." + $F{PESSOAS_CNPJ_CPF}.subString(...Mascara do Cpf...)
: "Numero do CNPJ: " + $F{PESSOAS_CNPJ_CPF}.subString(...Mascara do Cnpj....) + "/" + $F{PESSOAS_CNPJ_CPF}.subString(...Mascara do Cnpj....)


Vc tem um campo que pode ter um CPF(11 posições) ou um CNPJ(14 posições) certo?

Vc quer que a empressão já mostre um texto (Cpf/CNPJ) conforme o tipo do conteudo ?

Mas pelo codigo que vc mandou ele vai mostrar a string "cpf" caso o campo tenha 11 posições $F{PESSOAS_CNPJ_CPF}.length() == 11 ? "cpf" e caso contrario vai mostrar APENAS o conteudo do field formatado. E por que isso ??? Condição logica dentro do Jasper segue a estrutura "(condição) ? Se verdadeiro : Se falso" perceba que tem o simbolo "?" e depois o simbolo ":"(dois pontos)
Expressões no Jasper tem que ter esse formato:
(expr) ? Faça caso verdadeiro : Faça caso falso

Então o que ta errado é logo no inicio aonde vc coloca
"cpf" : ${F...........

O certo é :
($F{PESSOAS_CNPJ_CPF}.length() == 11)
// Se atributo com 11 posições
? "cpf: " + $F{PESSOAS_CNPJ_CPF}.substring( 0, 3 ) + "." +$F{PESSOAS_CNPJ_CPF}.substring( 3, 6 )+ "." + $F{PESSOAS_CNPJ_CPF}.substring( 6, 9 )+ "-" +$F{PESSOAS_CNPJ_CPF}.substring( 9, 11 )
// Não tem 11 posições
: "O CNPJ ou CPF nao tem 11 posições"

Vc não precisa usar o arquivo .war, informe em Propriedades do Projeto/Bibliotecas o outro projeto que vc quer aproveitar as classes !
 
Índice dos Fóruns » Perfil de pbnf » Mensagens enviadas por pbnf
Ir para:   
Powered by JForum 2.1.8 © JForum Team