Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
23 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 23 Visitantes :: 2 Motores de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Como preencher campos vazios

9/2/2017, 11:55 por Linghston

Pessoal boa tarde,

É o seguinte, eu preciso preencher os campos de uma coluna da tabela DBF que …

Comentários: 2

Enviar msg para WhatsAPP via VFP

7/2/2017, 10:31 por Eliana

Olá Pessoal!

Alguém sabe se é possível enviar mensagem para o WhatsAPP via VFP?


Grata


Comentários: 0

Tudo dá errado

3/2/2017, 16:50 por Douglas Pascini

Troquei de maquina, achei que seria uma boa, [Você precisa estar registrado e conectado para ver esta imagem.]  pois passei para uma maquina melhor.

Instalei o …

Comentários: 1

URGENTE - Instalação do aplicativo

24/1/2017, 08:51 por Douglas Pascini

Bom dia. Estou com um problema, ao fazer a instalação (colocar os arquivo) do aplicativo na …

Comentários: 0

USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 3

Estatísticas
Temos 7014 usuários registrados
O último usuário registrado atende pelo nome de Jhoniker Braulio (IOTech)

Os nossos membros postaram um total de 20 mensagens em 11 assuntos

Funcao at para resolver um cadastro de cliente

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido Funcao at para resolver um cadastro de cliente

Mensagem por alceu11 em 27/7/2010, 23:21

Preciso pegar o numero da rua e colocar no campo Nr_rua

campo endereco tem 50 caracteres
Rua Jose Alencar,5646 Casa 2
outra rua Almeida, 3 terreo
Exemplo como fazer isto
Código:

STORE 'Rua Jose Alencar,5646 Casa 2' TO gcString
STORE ',' TO gcFindString
CLEAR
? AT(gcFindString,gcString)  && Displays 17
STORE '5' TO gcFindString
? AT(gcFindString,gcString)  && Displays 18, case-sensitive
**nao estou conseguindo fazer o racionio depois da virgula , como descobrir qto digitos tem o nr, da rua.

A pergunta como eu pegar o numero certo 5646 nesta string?
Eu tenho 600 clientes, hora o nr. vai ser 215, ou 15,ou 08 entederao,?
hora tera andar

O objetivo e so este.:
para depois replace na tabela.Nr_rua &&5646

alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Funcao at para resolver um cadastro de cliente

Mensagem por mfelis em 28/7/2010, 08:16

Você pode usar o GetWordNum e pegar assim:
Código:
STORE 'Rua Jose Alencar,5646 Casa 2' TO gcString
STORE ',' TO gcFindString
CLEAR
LStringNum = GETWORDNUM(gcString,2,gcFindString)
?  GETWORDNUM(LStringNum,1," ")

** ou colo que ao invés de espaço um traço aonde está o numero assim:
STORE 'Rua Jose Alencar,5646-Casa-2' TO gcString
LStringNum = GETWORDNUM(gcString,2,gcFindString)
?  GETWORDNUM(LStringNum,1,"-")

mfelis
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Funcao at para resolver um cadastro de cliente

Mensagem por Nelson Arcas em 28/7/2010, 08:20

Alceu veja se o comando abaixo resolve o seu problema, eu precisei realizar para atualização de beneficios

Código:

scan
Sua_tabela
m.endereco=Sua_tabela.campo_endereco
m.loc1=alltrim(substr(m.endereco,at(',',m.endereco,1)+1,100))
m.nender=int(val(alltrim(substr(m.loc1,1,at(' ',m.loc1)))))
replace Sua_tabela.numero_endereco with m.nender
endscan

Veja se ajuda voce

Nelson Arcas
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Funcao at para resolver um cadastro de cliente

Mensagem por alceu11 em 28/7/2010, 08:37

Agradeco a ajuda dos Companheiros.
muito obrigado mesmo ""!!!

Nelson o seu codigo esta quase la , falta 2 detalhes
Ele so pegar o nr se tiver complemto, tipo casa 2
Entao se nao tiver complemeto tb tera que pegar

o primeiro é se apos a virgula nao tiver,1 espaco vazio
rua almeida,45 casa 2
ele esta pegando correto qdo a rua almeida, 45 casa 2 no caso aqui tem 1 espaco

o codigo
apos isto vou deixar o endereco sem o nr. veja a figura,,,,, abaixo, como tirar o nr apos a virgula
Código:

IF NOT USED('cliente')
USE cliente IN 0 ALIAS cliente
ENDIF
SELECT cliente
GO top
IF NOT EOF()
scan
 
m.endereco=cliente.endereco
m.loc1=alltrim(substr(m.endereco,at(',',m.endereco,1)+1,100))
m.nender=int(val(alltrim(substr(m.loc1,1,at(' ',m.loc1)))))
replace cliente.ordem with STR(m.nender)
endscan
endif
[Você precisa estar registrado e conectado para ver esta imagem.]

alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Funcao at para resolver um cadastro de cliente

Mensagem por alceu11 em 28/7/2010, 09:09

quase resolvido
falta separa o complemento tb que no caso aqu casa 2, e jogar no campo complto
Código:

IF NOT USED('cliente')
USE cliente IN 0 ALIAS cliente
ENDIF
SELECT cliente
GO top
IF NOT EOF()
scan
 
m.endereco=cliente.endereco
m.loc1=alltrim(substr(m.endereco,at(',',m.endereco,1)+1,100))
WAIT WINDOW m.loc1 TIMEOUT 0.2
IF alltrim(substr(m.loc1,1,at(' ',m.loc1)))=' '
m.nender=int(val(alltrim(substr(m.loc1,1,at(' ',m.loc1)))))
ELSE
m.nender= INT(VAL(alltrim(substr(m.endereco,at(',',m.endereco,1)+1,100))))
endif
replace cliente.ordem with LTRIM(STR(m.nender))
endscan
ENDIF
GO TOP
BROWSE FIELDS endereco,ordem

alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Funcao at para resolver um cadastro de cliente

Mensagem por Nelson Arcas em 28/7/2010, 10:09

Alceu, aproveitando o seu código fiz uma implementação veja se isso resolve, fiz um teste por aqui e funcionou.
Código:

IF NOT USED('cliente')
   USE cliente IN 0 ALIAS cliente
ENDIF
SELECT cliente
GO TOP
IF NOT EOF()
   SCAN

      m.endereco=cliente.endereco
      m.loc1=ALLTRIM(SUBSTR(m.endereco,AT(',',m.endereco,1)+1,100))
      m.loc2=ALLTRIM(SUBSTR(loc1,AT(' ',loc1,1)+1,100))

      WAIT WINDOW m.loc1 TIMEOUT 0.2
      IF ALLTRIM(SUBSTR(m.loc1,1,AT(' ',m.loc1)))=' '
         m.nender=INT(VAL(ALLTRIM(SUBSTR(m.loc1,1,AT(' ',m.loc1)))))
      ELSE
         m.nender= INT(VAL(ALLTRIM(SUBSTR(m.endereco,AT(',',m.endereco,1)+1,100))))
      ENDIF
      REPLACE cliente.ordem WITH LTRIM(STR(m.nender))

      IF ALLTRIM(SUBSTR(m.loc2,1,AT(' ',m.loc2)))=' '
         m.complement=SUBSTR(m.loc2,1,AT(' ',m.loc2))
      ELSE
         m.complement= INT(VAL(ALLTRIM(SUBSTR(m.loc1,AT(',',m.loc1,1)+1,100))))
      ENDIF
      REPLACE cliente.compl WITH LTRIM(STR(m.complement))

   ENDSCAN
ENDIF

GO TOP
BROWSE FIELDS endereco,ordem,complement

Nelson Arcas
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Funcao at para resolver um cadastro de cliente

Mensagem por Marcos Guedes em 28/7/2010, 10:28

Caso não resolva... pegando o trem andando pergunto o seguinte:
haverá apenas uma vírgula em todo o endereço?

Veja se este exemplo ajuda:

Código:
CREATE CURSOR TESTE (CAMPO C(50))

INSERT INTO TESTE VALUES('Rua Jose Alencar,5646 Casa 2 ')
INSERT INTO TESTE VALUES('outra rua Almeida, 3 terreo')

SELECT GETWORDNUM(GETWORDNUM(campo,2,','),1) FROM teste

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Funcao at para resolver um cadastro de cliente

Mensagem por alceu11 em 28/7/2010, 10:47

irregular vai de usuario para usuario ,,,,,,,,,,tem unsque nem colocam virgula,
E A DUVIDA, E SE nao tiver virgula? como fazer,?

mais Ainda preciso pegar o que vem depois do numero , seria o complemento casa 2 ou apto2,sl4 , para jogar no complement do endereco,,,,,,,esta complicando, nao sei desisto.

O nr. ok Nelson resolveu,,,,,,e nao posso usar a sua funcao acima pq vfp60
Nelson
no seu codigo, complemento, esta gravando o numero novamente no campo complem.
Código:


IF NOT USED('cliente')
  USE cliente IN 0 ALIAS cliente
ENDIF
SELECT cliente
GO TOP
IF NOT EOF()
  SCAN

      m.endereco=cliente.endereco
      m.loc1=ALLTRIM(SUBSTR(m.endereco,AT(',',m.endereco,1)+1,100))
      m.loc2=ALLTRIM(SUBSTR(loc1,AT(' ',loc1,1)+1,100))

      WAIT WINDOW m.loc1 TIMEOUT 0.2
      IF ALLTRIM(SUBSTR(m.loc1,1,AT(' ',m.loc1)))=' '
        m.nender=INT(VAL(ALLTRIM(SUBSTR(m.loc1,1,AT(' ',m.loc1)))))
      ELSE
        m.nender= INT(VAL(ALLTRIM(SUBSTR(m.endereco,AT(',',m.endereco,1)+1,100))))
      ENDIF
      REPLACE cliente.ordem WITH LTRIM(STR(m.nender))

      IF ALLTRIM(SUBSTR(m.loc2,1,AT(' ',m.loc2)))=' '
        m.complement=SUBSTR(m.loc2,1,AT(' ',m.loc2))
      ELSE
        m.complement= INT(VAL(ALLTRIM(SUBSTR(m.loc1,AT(',',m.loc1,1)+1,100))))
      ENDIF
      REPLACE cliente.compl WITH LTRIM(STR(m.complement))

  ENDSCAN
ENDIF

GO TOP
BROWSE FIELDS endereco,ordem,complement


alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Funcao at para resolver um cadastro de cliente

Mensagem por Nelson Arcas em 28/7/2010, 11:14

Alceu veja agora. fiz alguns ajustes
Código:


IF NOT USED('cliente')
  USE cliente IN 0 ALIAS cliente
ENDIF
SELECT cliente
GO TOP
IF NOT EOF()
  SCAN

      m.endereco=cliente.endereco
      m.loc1=ALLTRIM(SUBSTR(m.endereco,AT(',',m.endereco,1)+1,100))
      m.loc2=ALLTRIM(SUBSTR(loc1,AT(' ',loc1,1)+1,100))

      WAIT WINDOW m.loc1 TIMEOUT 0.2
      IF ALLTRIM(SUBSTR(m.loc1,1,AT(' ',m.loc1)))=' '
        m.nender=INT(VAL(ALLTRIM(SUBSTR(m.loc1,1,AT(' ',m.loc1)))))
      ELSE
        m.nender= INT(VAL(ALLTRIM(SUBSTR(m.endereco,AT(',',m.endereco,1)+1,100))))
      ENDIF
      REPLACE cliente.ordem WITH LTRIM(STR(m.nender))

      IF ALLTRIM(SUBSTR(m.loc2,1,AT(' ',m.loc2)))=' '
        m.complement=SUBSTR(m.loc2,1,AT(' ',m.loc2))
      ELSE
        m.complement= ALLTRIM(SUBSTR(m.loc2,AT(',',m.loc1,1)+1,100))
      ENDIF
      REPLACE cliente.compl WITH LTRIM(STR(m.complement))

  ENDSCAN
ENDIF

GO TOP
BROWSE FIELDS endereco,ordem,complement

Nelson Arcas
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Funcao at para resolver um cadastro de cliente

Mensagem por alceu11 em 28/7/2010, 11:29

Nelson ainda nao so traz o nr no complemento precisava trazer casa 2 ou se tiver algo apos ao nr da rua.
Nelson
Como pegar at(do right(do primeiro espaco em branco antes do numero)
ai encontraria o complemento da rua.?

alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Funcao at para resolver um cadastro de cliente

Mensagem por lardecristo em 29/7/2010, 00:22

Eu tenho um conhecido que tinha um cadastro com +-200.000 nomes e passou vários dias para resolver, fez parte por parte.
Exemplo:
Executou primeiro a rotina para endereços que tinham virgula e criou um flag no endereço dizendo que já estava convertido, e assim para cada detalhe novo que ele encontrava.

Acho que solução definitiva você não vai encontrar, exatamente pela quantidade de variações na forma da digitação.

Mas torço que ache e disponibilize para nós.

Luiz Alexandre Ruiz
Desenvolvedor

lardecristo
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Funcao at para resolver um cadastro de cliente

Mensagem por Marcos Guedes em 29/7/2010, 07:16

Estou pensando aqui... que o ideal seria um padrão, mas não estou encontrando como fazê-lo, visto que o nome da rua pode ser composto por número, também.

Ex.
Código:
Av. 14 Nº 115, cidade UF
Sad

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Funcao at para resolver um cadastro de cliente

Mensagem por Nelson Arcas em 29/7/2010, 08:01

Alceu,
Acho que o caminho mais correto seria seguir a dica do Lardecristo

Exemplo:
Executou primeiro a rotina para endereços que tinham virgula e criou um flag no endereço dizendo que já estava convertido, e assim para cada detalhe novo que ele encontrava.

Acho que solução definitiva você não vai encontrar, exatamente pela quantidade de variações na forma da digitação

Nelson Arcas
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Funcao at para resolver um cadastro de cliente

Mensagem por alceu11 em 29/7/2010, 08:08

Amigos
Agora com ajuda do Nelson, e as Consideracoes do LardeCristo

Cheguei a este resultado

Nelson o sua ajuda foi de grande valia,,,,,
qdo vc criou a variavel = m.loc2
para pegar o complemento. é que como tem um espaco apos o nr. da rua Onze,12 " " e complem. casa 2 ,,,aqui estava se perdendo, ou jeito foi por um tracinho apos o complemento.....
e olha que estou desde da 5 de la matina e ja postei video no forum sobre debug,
mas acho que pro fim de semana vou estudar mais ainda.
Código:




IF NOT USED('cliente')
  USE cliente IN 0 ALIAS cliente
ENDIF
SELECT cliente
GO TOP
IF NOT EOF()
  SCAN

      m.endereco=cliente.endereco
            m.virg=','
            m.pos=AT(m.virg,m.endereco)-1
      m.loc1=ALLTRIM(SUBSTR(m.endereco,AT(',',m.endereco,1)+1,100))
      m.qtd=LEN(ALLTRIM(SUBSTR(m.endereco,AT(',',m.endereco,1)+1,100)))
      m.loc2=ALLTRIM(SUBSTR(loc1,AT(' ',loc1,1)+1,100))

    * WAIT WINDOW m.loc1 TIMEOUT 0.1
*      WAIT WINDOW  m.qtd TIMEOUT 0.1

*      WAIT WINDOW m.pos TIMEOUT 0.2
     
      IF ALLTRIM(SUBSTR(m.loc1,1,AT(' ',m.loc1)))=' '
       
        m.nender=INT(VAL(ALLTRIM(SUBSTR(m.loc1,1,AT(' ',m.loc1)))))
      ELSE
        m.nender= INT(VAL(ALLTRIM(SUBSTR(m.endereco,AT(',',m.endereco,1)+1,100))))
      ENDIF
      REPLACE cliente.ordem WITH LTRIM(STR(m.nender))

      IF m.pos > 0
            REPLACE n_ende WITH LEFT(m.endereco,m.pos)
      endif
 
********Nelson o problema esta aqui no m.loc2
      IF  ALLTRIM(SUBSTR(loc1,AT(' ',loc1,1)+1,100))=' ' OR ALLTRIM(SUBSTR(loc1,AT(' ',loc1,1)+1,100))='-'
            REPLACE    CLIENTE.COMPTO WITH ''

            REPLACE cliente.compto WITH ' '+ m.loc2
            M.COMPTO=ALLTRIM(CLIENTE.COMPTO)
          IF  VAL(ALLTRIM(CLIENTE.COMPTO))>0
                REPLACE CLIENTE.COMPTO WITH ''
          ENDIF
      ENDIF
  ENDSCAN
ENDIF


GO TOP
BROWSE FIELDS endereco,ordem,compto,n_ende


Mas considero resolvido ,,,,,o topico e obrigado.......a todos....pelo empenho e dedicacao......
segue o link do arquivo
[Você precisa estar registrado e conectado para ver este link.]

alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum