Página 1 de 2
Formatação
Enviado: 09 Out 2007 16:49
por mclpaltrin
Prezados Amigos
- Tenho um campo numérico como DDD , Como faço na exibição "caixa" para entrada do numero ficar com o tamanho de três dígitos , sendo que no get não posso usar esse o formato "999" .
Grato
Enviado: 09 Out 2007 16:57
por Maligno
O código DDD é separado? O usual é que seja.
Re: Formatação
Enviado: 09 Out 2007 16:58
por Itamar M. Lins Jr.
mclpaltrin escreveu:Prezados Amigos
- Tenho um campo numérico como DDD , Como faço na exibição "caixa" para entrada do numero ficar com o tamanho de três dígitos , sendo que no get não posso usar esse o formato "999" .
Grato
Porque não pode?
Se é numérico sobe pode aceitar numeros...
Saudações
Itamar M. Lins Jr.
Enviado: 09 Out 2007 17:11
por mclpaltrin
Amigos
VDDDCEL = SPACE(3) <<< pode assim , não da erro
@ 17,6 SAY "DDD :" GET VDDDTEL PICT "999"
No Arquivo .DBF esse campo esta como Numérico
Enviado: 09 Out 2007 17:39
por Maligno
Regra comum, não tão seguida: nunca faça um campo ser numérico se com ele nunca será feito qualquer cálculo numérico.
Enviado: 09 Out 2007 17:44
por mclpaltrin
Prezado
Grato pela informação passei para carácter. campo DDD
mas uma questão em relação a validação
- Se acaso o usuario informar apenas "um carácter" ou deixar um branco campo DDD como seria essa validação?
Enviado: 09 Out 2007 18:01
por Maligno
Se a expressão de teste Val(DDD) < 100 retornar TRUE, avise o usuário do erro. Se bem que, o ideal seria utilizar apenas dois dígitos. Acho que quase todos os códigos do país já mudaram. Eu só uso 2.
Enviado: 09 Out 2007 18:10
por Itamar M. Lins Jr.
mclpaltrin escreveu:Prezado
Grato pela informação passei para carácter. campo DDD
mas uma questão em relação a validação
- Se acaso o usuario informar apenas "um carácter" ou deixar um branco campo DDD como seria essa validação?
Código: Selecionar todos
If empty(DDD)
... PREENCHA O DDD
endif
For n:= 1 to 3
if substr(n,1) $ '0123456789'
else
...Erro o DDD ESTÁ ERRADO, COLOQUE '073´,'011' ETC...
endif
next
Saudações
Itamar M. Lins Jr.
Enviado: 09 Out 2007 18:20
por Maligno
É, isso está certo, se o código utilizado tiver 3 dígitos, o que é raro. Acabei de ver na lista telefônica. Dá pra contar nos dedos as cidades que ainda usam 3 dígitos.
Além do quê, não é necessário testar cada dígito. A máscara utilizada já cuida para que sejam inseridos apenas dígitos numéricos.
E sendo apenas 2 dígitos, o teste que indiquei resolve: Val(DDD) < 10. Talvez seja necessário apenas adicionar um teste de DDD vazio, pra não obrigar o usuário a informá-lo. Eu, por exemplo, não obrigo.
Enviado: 09 Out 2007 18:23
por Maligno
Aliás, uma correção: eu tinha visto a lista telefônica antiga. Na nova, não consegui encontrar um único DDD com 3 dígitos no Brasil todo. Todos são de 2.

Enviado: 09 Out 2007 19:27
por Stanis Luksys
Complementando,
Evidente que deve ser usado campo alfa, mas se fosse mesmo numérico, seria simples com GET PICT "999"...
Num é isso?
Enviado: 09 Out 2007 20:44
por Maligno
Evidente que deve ser usado campo alfa, mas se fosse mesmo numérico, seria simples com GET PICT "999"...
Numérico ou não, a máscara "999" só permitirá a digitação de números.
Enviado: 10 Out 2007 00:16
por Stanis Luksys
Uma maneira legal, sendo alfa, seria essa:
a = space(13)
@ 10, 10 get a pict "(99)9999-9999""
Aliás, esta clausula picture é uma das coisas que realmente me faz ter de admitir de como o clipper é legal e eu adoro essa linguagem!

)
Enviado: 10 Out 2007 00:19
por Luciano Bonfim
ddd=space(2)
@ 1,1 say "DDD" get ddd pict "99"
read
Enviado: 10 Out 2007 00:21
por Stanis Luksys
Opa
Tenta do jeito que coloquei acima, ja fica tudo junto no banco... Afinal você nunca vai usar uma coisa sem a outra né?