Página 1 de 1
Transformar uma variavel numerica, em texto sem (.) e (,)
Enviado: 01 Mai 2005 20:46
por Ricardo Sales Ribeiro
Boa Noite amigos clipeiros.
Gostaria de uma ajuda, acho q é bem simples, más no momento não estou conseguindo fazser. É o seguinte:
Preciso transformar uma variavel numerica de duas casas decimais em uma tipo texto sem o ponto flutuante e sem a virgula.
Tipo 123.456,78 numerica valor
Quero q fique 12345678 texto
Um cliente estar me pedindo para gerar um relatorio para Secretaria da fazendo, e uma das exegencias e esta os valores não podem ser separados por (,) ou (.) a Sefaz exige um campo com 13 caracteres e 2 decimais, no formato texto.
Como fazer ?
Ricardo Sales Ribeiro
Fortaleza-Ce
Enviado: 01 Mai 2005 21:40
por Toledo
Ricardo,
Segue abaixo um exemplo do que você pode fazer:
No caso acima, o valor vai ficar alinhado à direita e com espaços em branco à esquerda.
Agora uma observação, geralmente os layout dos arquivos textos enviados para a Secretaria da Fazenda, os campos numéricos tem que ter zeros à esquerda, se este for o seu caso, você então tem que fazer o seguinte:
Abraços,
Enviado: 01 Mai 2005 21:58
por Ricardo Sales Ribeiro
Amigo Toledo
Boa Noite
Obrigado pela ajuda, já vou fazer as alterações.
Ricardo Sales :xau
Transformar numero em texto.
Enviado: 01 Mai 2005 22:03
por gavel
Muito simples
Ex.:
Código: Selecionar todos
clea
numero=0 // UM NUMERO QUALQUER
clea
numero=0
Do while .t.
@ 01,01 say "Digite um Valor:" get numero pict "@E 999,999.99"
Setcursor(1); read; setcursor(0)
If lastkey()=27
exit
Endif
If !empty(numero) // CASO O NUMERO NÃO ESTEJA VAZIO
numero=alltrim(str(numero)) // TRANSFORME EM TEXTO
numnovo="" // VARIAVEL QUE RECEBERA O TEXTO
For conta=1 to len(numero) // CONTO O TAMANHO DO NUMERO
If subst(numero,conta,1)="," .or. subst(numero,conta,1)="." // SE
EXISTIR UM PONTO OU UM VÍRGULA
numnovo=numnovo+subst(numero,conta+1,1)
Else // SE NAO ELE PEGA OS CARACTERES
numnovo=numnovo+subst(numero,conta,1)
Endif
Next
? numnovo // AQUI ESTÁ O NUMERO NOVO
numero=0 // AQUI COMEÇA TUDO DE NOVO
Endif
Enddo
Enviado: 01 Mai 2005 22:20
por Ricardo Sales Ribeiro
Amigo Toledo!
Deu certo em parte, esqueci de falar q tb pego um campo de quantidade, com 3 casas decimais ou seja
Tipo 18,000 numerica
18000 caractere
Da maneira q fiz, deu certinho para valores em dinheiro com 2 casas decimais, com a quantidade 18,000 gerou 1800.
Precisa de alguma modificação ?
Ricardo Sales
Enviado: 01 Mai 2005 23:28
por Toledo
Ricardo,
Note que no exemplo anterior eu multiplico o valor por 100 (nValor*100), que serve para valores com 2 casas decimais. Agora, para 3 casas decimais, você teria que multiplicar por 1000.
Exemplo:
Abraços,
Enviado: 02 Mai 2005 00:23
por ANDRIL
Ola Pessoal,
Para Valores:
nValor:=1852.33
cValor:=padl( strtran( ltrim(str(nValor,13,2)),"."), 13, "0")
Para Qtd:
nQtd:=18.000
cQtd:=padl( strtran( ltrim(str(nValor,13,3)),"."), 13, "0")
** Apenas para mostrar o grande leque de possibilidade do nosso Clipper.**
Abracos