Manipular dados DBF

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

betovox
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 28 Abr 2010 14:19
Localização: minas gerais

Manipular dados DBF

Mensagem por betovox »

boa tarde a todos,
nao possuo conhecimento de programação em clipper somente me informatica, mas no meu trabalho exige que tenha conhecimento no banco de dados DBF; por causa de progrmas antigos ainda em DOS.
Entao hoje aconteceu o seguinte; no programa os dados de telefone estao assim:
011-1111-1111 outros assim (11)00000000
eu nescessito que fique padronizado no formato:
(00)0000-0000
Tempo atras eu consegui fazer isso com o CPf de clientes que estavam com o mesmo problema usando o DBU mas por infelicidade perdi o .doc onde tinha salvo os passos.
Se alguem puder me ajudar ficaria muito grato.
Utilizo tambem CBDF caso seja possivel nele tambem.
Abraço e muito obrigado pela atenção de todos.
Humberto oliveira.
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Manipular dados DBF

Mensagem por gvc »

Faça uma cópia do arquivo atual, por segurança.
Entre no DBU.
Selecione o arquivo em questão.
Aperte o ESC para fechar o browse.
Aperte a tecla F6.
Selecione a opção REPLACE.
Selecione o campo que vc quer trabalhar.
Ele vai aparecer em FIELD.
Em WITH escreve: strtran(<nome do campo>, '-')
Vá até a opção OK e aperte o ENTER.
(Isso irá tirar o sinal de menos do campo)

Use o mesmo para tirar ( e ) do campo.

Para colocar todos formatados, use:

Aperte a tecla F6.
Selecione a opção REPLACE.
Selecione o campo que vc quer trabalhar.
Ele vai aparecer em FIELD.
Em WITH escreve: transforme(<nome do campo>, '@R (99) 9999-9999')
Vá até a opção OK e aperte o ENTER.

Verifique se atendeu a sua necessidade.
Lembrando que vc poderá ter problema com o DDD de alguns lançamentos.

Boa sorte. Espero ter ajudado.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
betovox
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 28 Abr 2010 14:19
Localização: minas gerais

Re: Manipular dados DBF

Mensagem por betovox »

boa tarde GVC,
funcionou sim ate a parte:
"Em WITH escreve: transforme(<nome do campo>, '@R (99) 9999-9999')
Vá até a opção OK e aperte o ENTER."
deu erro de expressao.
os outros comandos foram 100%, so esse transforme que nao deu certo.
mas eu me lembro de ter que copiar campos de 3 a 3 no formato cpf.
mas era mais simples tinha colocado o cpf no campo isento dai ficou mais facil, esse caso agora esta mais complicado mesmo.
Abraço e muito obrigado pela informação dada e se puder me auxiliar na parte restante agradeço.
Humberto
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Manipular dados DBF

Mensagem por alxsts »

Olá!

Não funcionou pois o colega GVC, sem querer, digitou Transforme ao invés de Transform.

Segundo o exemplo dado pelo Humberto, os dados não estão num padrão. Ora temos "011-1234-5678", ora temos "11-1234-5678".
Assim, após o

Código: Selecionar todos

StrTran( cVar, "-", "" )
teremos dados de comprimentos diferentes. Então, sugiro que o Transform seja assim:

Código: Selecionar todos

Transform( VAL( cVar ), "@R (99) 9999-9999" )
,
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Manipular dados DBF

Mensagem por alxsts »

Olá!

Em tempo: seja bem-vindo ao fórum Humberto!

Você pediu a máscara (31)1234-5678. Então, retifico o comando:

Código: Selecionar todos

Transform( VAL( cVar ), "@R (99)9999-9999" )
[]´s
Alexandre Santos (AlxSts)
betovox
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 28 Abr 2010 14:19
Localização: minas gerais

Re: Manipular dados DBF

Mensagem por betovox »

bom dia a todos,
primeiramente muito obrigado a todos.
esta indo tudo bem com o:
strtran(<nome do campo>, '-') e tambem da mesma forma com o StrTran( cVar, "-", "" ), retirei todos os "-", ".", "(", ")", e espaços no campo fone.
Mas o comando: Transform( VAL( cVar ), "@R (99) 9999-9999" ) nao esta funcionando dando o seguinte erro:
Imagem
desde ja muito obrigado novamente.
Humberto oliveira
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Manipular dados DBF

Mensagem por alxsts »

Olá!

Humberto:
aparentemente você apenas colou o exemplo de código que postei. Troque a variável exemplo que coloquei (cVar) pelo nome do campo que você precisa alterar (creio que seja o campo FONE).

Código: Selecionar todos

Transform( VAL( FONE ), "@R (99)9999-9999" )
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Manipular dados DBF

Mensagem por gvc »

alxsts escreveu:Não funcionou pois o colega GVC, sem querer, digitou Transforme ao invés de Transform.
Ops! Faglia Nostra!

[alxsts]
StrTran( cVar, "-", "" ) = StrTran( cVar, "-")
Se vc não colocar o 3º parâmetro, será removido o ceracter selecionado no 2º parâmetro.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Manipular dados DBF

Mensagem por alxsts »

Olá!

Funciona sim, tenho certeza.
[]´s
Alexandre Santos (AlxSts)
betovox
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 28 Abr 2010 14:19
Localização: minas gerais

Re: Manipular dados DBF

Mensagem por betovox »

Boa tarde a todos,
o meu muito obrigado a todos pela atenção, funcionou 100% aqui.
Me desculpe pelo erro de interpretação nos codigos enviados com relação ao (cVar), é que realmente nao sabia do que se tratava.
Novamente muito obrigado pela ajuda.
Humberto oliveira.
Ps.: caso o moderador quiser retirar esse topico fique a vontade porque solucionou totalmente minha duvida.
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Manipular dados DBF

Mensagem por gvc »

[betovox]
O moderador não vai retirar seu tópico do forum.
É uma informação que ficará disponível para outros membros do forum, para consulta futura.
alxsts escreveu:Funciona sim, tenho certeza.
Se vc esta falando de colocar ou não o 3º parâmetro, eu falei que não é necessário colocar. A função vai remover o caracter da mesma forma que usando o que vc apresentou.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Manipular dados DBF

Mensagem por alxsts »

Olá!

GVC:
eu quis dizer que você está certo, que concordo com o que você escreveu. O terceiro parâmetro realmente é opcional e, se omitido, não há substituição e sim remoção do caracter informado no segundo parâmetro.

Humberto:
reforçando o que o GVC escreveu, o fórum é um grande repositório de informações, sobre diversos assuntos, que pode ser acessado internamente, através de seu recurso de busca ou por um buscador como o Google.
[]´s
Alexandre Santos (AlxSts)
Responder