Formatação

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
mclpaltrin
Usuário Nível 1
Usuário Nível 1
Mensagens: 26
Registrado em: 24 Set 2007 15:17
Localização: Amparo-SP

Formatação

Mensagem 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
Marcelo
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

O código DDD é separado? O usual é que seja.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Formatação

Mensagem 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.
Avatar do usuário
mclpaltrin
Usuário Nível 1
Usuário Nível 1
Mensagens: 26
Registrado em: 24 Set 2007 15:17
Localização: Amparo-SP

Mensagem 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
Marcelo
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
mclpaltrin
Usuário Nível 1
Usuário Nível 1
Mensagens: 26
Registrado em: 24 Set 2007 15:17
Localização: Amparo-SP

Mensagem 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?
Marcelo
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
Editado pela última vez por Maligno em 09 Out 2007 18:11, em um total de 1 vez.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Mensagem 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.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem 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?
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem 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! :-))
Editado pela última vez por Stanis Luksys em 10 Out 2007 00:20, em um total de 1 vez.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

ddd=space(2)
@ 1,1 say "DDD" get ddd pict "99"
read
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem 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é?
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Responder