Página 1 de 1

TWBROWSE

Enviado: 13 Jul 2006 14:18
por Zeca Roque
Boa tarde !!!

Estou iniciando no FIVEWIN e tentando mudar meu sistema que é em CLIPPER e estou tendo alguns problemas. por exemplo:

tenho uma rotina que formata retorna o numero do CEP formatado e gera um BROWSE com todos os clientes que tem este CEP.
faço da seguinte forma

DIGITO 02176040 (SOMENTE OS NUMEROS)
O SISTEMA ME RETORNA 02176-040(FORMATADO) E LOGO ABAIXO UM BROWSE
COM TODOS OS CLIENTES QUE TEM O CEP 02176-040.

A parte de retorno FORMATADO -> 02176040 -> 02176-040 consegui fazer o problema é retornar o BROWSE(no caso TWBROWSE) com todos os clientes com CEP 02176-040

Esclarecimentos: No meu sistema CNPJ/CIC, CEP e TELEFONE são formatados desta maneira para evitar que haja divergencias no arquivo e facilitar a consulta.

Gostaria de ter um retalho de PRG que me explicasse como fazer isto.


Grato

Enviado: 07 Nov 2006 14:59
por rochinha
Amiguinho

Fiquei muito tempo sem internet e confesso que passei batido em muita coisa, vc recebeu resposta sobre o solicitado?

Enviado: 08 Nov 2006 10:01
por Zeca Roque
rochinha escreveu:Amiguinho

Fiquei muito tempo sem internet e confesso que passei batido em muita coisa, vc recebeu resposta sobre o solicitado?
Bom dia ROCHINHA !!!

Até o presente momento não recebi nenhuma resposta. :(Neg

Enviado: 08 Nov 2006 12:27
por rochinha
Amiguinho

Em primeiro lugar faça o seguinte:

1 - Crie um indice pelo campo CEP pois voce passará a usa-lo.
2 - Pegue o CEP em um GET formatado com a picture 99999-999
3 - Filtre os dados usando o seguinte escopo:

M->CEP2 := IIF( EMPTY(M->CEP2), M->CEP1, M->CEP2 )
dbSelextArea( "CLIENTES" )
OrdSetFocus( 2 ) // Ordem pelo cep
OrdScope( 0, M->CEP1 ) // inicio do range
OrdScope( 1, M->CEP2 ) // final do range pode ser o mesmo cep ou outro
dbGoTop()

No browse mude a linha assim:

@ 0,0 LISTBOX oLbx FIELDS ..., FormataCEP( CLIENTES->CEP ), ... HEADERS ..., "CEP", ... OF ...

...
Function FormataCEP( cep )
return substr(str(cep,8),1,5)+"-"+substr(str(cep,8),6,3)

Se voce colocou a pesquisa dentro do browse acionada via menu de contexto coloque após o OrdScope( 1, M->CEP2 )

oLbx:Refresh()
oLbx:UpStable()

Se voce colocou um segundo GET para pegar o CEP2 a rotina irá filtrar do CEP1 até o CEP2.

O fato de voce usar indice pelo CEP torna mais rapida sua filtragem e pode permitir que voce coloque o CEP como uma critica para o endereco, ou seja, no momento que seu usuario cadastrar o cliente o mesmo precisará apenas do CEP e numero da residencia e voce fara uma rotina que verifique o cep em um cadastro de CEP( pode ser adquirido no Correio ) e traz o endereco completo.