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é?