Prezados, alguém já fez rotina para pesquisar o andamento de um objeto pelo site
dos Correios ? Tenho uma rotina que busca o endereço através do cep, no site dos
Correios, mas não consegui adaptar para fazer essa nova tarefa.
Abraços
Marcelo Neves
Rastrear objeto no site dos Correios
Moderador: Moderadores
- software_facil
- Usuário Nível 3

- Mensagens: 211
- Registrado em: 23 Fev 2005 12:19
- Localização: Curitiba/PR
- Contato:
Re: Rastrear objeto no site dos Correios
Olá Marcelo,
Eu não tenho, mas fiquei interessado na rotina de consulta do endereço pelo cep no site dos correios, você poderia publicar aqui no forúm?
[]´s
Eu não tenho, mas fiquei interessado na rotina de consulta do endereço pelo cep no site dos correios, você poderia publicar aqui no forúm?
[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- software_facil
- Usuário Nível 3

- Mensagens: 211
- Registrado em: 23 Fev 2005 12:19
- Localização: Curitiba/PR
- Contato:
Re: Rastrear objeto no site dos Correios
Bom dia Asimoes,
Estou enviando a rotina, e se não me engano, quem passou foi o Sygecom, portanto, não são meus os créditos.
Eu uso xHarbour e MiniGUI, se vc usa outra lib gráfica, é bem fácil portar, só mudar as chamadas de tela.
Como vc vê no código, basta chamar a função no action de um botão por exemplo, que ele faz o serviço, se estiver tudo ok, usando o setproperty, eu preencho os respectivos campos com as informações encontradas.
Abaixo segue o código da função inetestaconectada()
Abraços
Marcelo Neves
Estou enviando a rotina, e se não me engano, quem passou foi o Sygecom, portanto, não são meus os créditos.
Código: Selecionar todos
static function buscar_endereco()
Local oUrl,opg,cUrl:=cBuf:=aUF:=aCID:=aBAI:=aLOG:=aCEP:="",nPos:=0
Local aRet := {}
local x_cep := form_registro.gbox_cep_remext.value
local cCEP := space(08)
if Inetestaconectada() == .F.
msgexclamation('Este computador não possui acesso a Internet','Atenção')
return(nil)
endif
if empty(x_cep)
msgexclamation('Primeiro digite um CEP','Atenção')
form_registro.gbox_cep_remext.setfocus
return(nil)
endif
cCEP := alltrim(x_cep)
oUrl:=turl():New("http://www.correios.com.br/servicos/dnec/consultaLogradouroAction.do?Metodo=listaLogradouro&CEP="+ cCEP + "&TipoConsulta=cep")
cUrl:="http://www.correios.com.br/servicos/dnec/consultaLogradouroAction.do?Metodo=listaLogradouro&CEP=" + cCEP + "&TipoConsulta=cep"
opg := TipClientHttp():New( oUrl ,.t.)
opg:nConnTimeout := 20000
if opg:Open( cUrl )
oPg:Post("?Metodo=listaLogradouro&CEP=" + cCEP + "&TipoConsulta=cep") //ResponseText
cUrl:="http://www.correios.com.br/servicos/dnec/detalheCEPAction.do?Metodo=detalhe&Posicao=1&TipoCep=2&CEP=$query"
opg:Open( cUrl )
oPg:Post("?Metodo=detalhe&Posicao=1&TipoCep=2&CEP=$query") //ResponseText
cBuf := opg:readAll()
cBuf = Stuff(cBuf,1,at('Logradouro:',cBuf)-87,"")
cBuf = Stuff(cBuf,at('</table>',cBuf)+8,len(cBuf),"")
nPos := at("value",cBuf)+7
aLOG := substr(cBuf, nPos, at('</td>', cBuf, nPos) - nPos)
nPos := at("value",cBuf,nPos)+7
aBAI := substr(cBuf, nPos, at('</td>', cBuf, nPos) - nPos)
nPos := at("value",cBuf,nPos)+7
aCID := substr(cBuf, nPos, at('/', cBuf, nPos) - nPos)
aUF := substr(cBuf, at('/', cBuf, nPos)+1, 2)
nPos := at("value",cBuf,nPos)+7
aCEP := substr(cBuf, nPos, at('</td>', cBuf, nPos) - nPos)
opg:close()
if cCEP == strtran(aCEP,'-')
aadd( aRet, aLOG )
aadd( aRet, aBAI )
aadd( aRet, aCID )
aadd( aRet, aUF )
aadd( aRet, aCEP )
endif
endif
if len(aRet) = 0
msgexclamation('Cep não encontrado','Atenção')
else
setproperty('form_registro','gbox_endereco_remext','value',aRet[1])
setproperty('form_registro','gbox_bairro_remext','value',aRet[2])
setproperty('form_registro','gbox_cidade_remext','value',aRet[3])
setproperty('form_registro','gbox_uf_remext','value',aRet[4])
endif
return(nil)
Como vc vê no código, basta chamar a função no action de um botão por exemplo, que ele faz o serviço, se estiver tudo ok, usando o setproperty, eu preencho os respectivos campos com as informações encontradas.
Abaixo segue o código da função inetestaconectada()
Código: Selecionar todos
function inetestaconectada( cAddress )
LOCAL aHosts
LOCAL cName
InetInit()
IF cAddress == NIL
cAddress := "www.google.com.br"
ENDIF
aHosts := InetGetHosts( cAddress )
IF aHosts == NIL .or. len(aHosts)=0
InetCleanup()
RETURN .f.
endif
InetCleanup()
RETURN .t.
Marcelo Neves
messenger : software_facil@hotmail.com
Re: Rastrear objeto no site dos Correios
Marcelo,
Obrigado pela dica.
Onde eu encontro esta função setproperty?
[]´s
Obrigado pela dica.
Onde eu encontro esta função setproperty?
[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Re: Rastrear objeto no site dos Correios
software_facil escreveu:função setproperty
Honório
