|
 |
 |
 |
. Introdução .
O Mr. PostMan é um
software desenvolvido para acessar o Diretório Nacional de
Endereços (DNE) distribuido pela Empresa de Correios e Telégrafos
(ECT). Você pode imaginar o Mr. PostMan como o livro de CEPs que
você consulta quando envia cartas, malas diretas, cobranças,
encomendas. As principais diferenças entre o Mr. PostMan e o livro de
CEPs é que você encontra um endereço muito mais
rápido, e pode transferir as informações (endereço,
bairro, cidade, estado e CEP) para sua aplicação ao invés
de transcrevê-las.
Nós pensamos no Mr.
PostMan não só como uma aplicação isolada, mas
também como uma extensão de sua aplicação. Como ele
suporta o protocolo Windows DDE (Dynamic Data Exchange), sua
aplicação desenvolvida em DataEase, Visual Basic, Fox Pro,
Delphi/C++Builder, C/C++, Power Builder, Access, Word, Excel, e vários
outros ambientes de desenvolvimento poderá ser rapidamente modificada
para integrar o Mr. PostMan. Sua aplicação "passa" para o Mr.
PostMan o endereço desejado, e o Mr. PostMan "encontra" e "devolve" o
CEP, ou apresenta a si mesmo e permite que o endereço seja selecionado
manualmente antes dele ser devolvido. O conjunto de funções DDE
do Mr. PostMan é pequeno e simples, portanto fácil de usar, tanto
em Windows 3.1 (16 bits) quando em Win95/NT (32 bits).
. Como
Funciona o Mr. PostMan
.
Pesquisando
Localidades: Você pode
pesquisar uma Localidade clicando o botão Pesquisar Localidade na Barra
de Ferramentas ou pressionando as teclas Ctrl+L. A pesquisa terá como
parâmetros o que foi digitado na Caixa de Edição de
Pesquisa.
Por exemplo, para verificar o Município de São
Paulo, SP, digite São Paulo na Caixa de Edição de
Pesquisa, e clique o botão Pesquisar Localidade, utilize o caracter
coringa "*" para substituir o inicio o fim da informação
pesquisada.
Pesquisando
Logradouros: Você pode
pesquisar um Logradouro clicando o botão Pesquisar Logradouro na Barra
de Ferramentas ou pressionando as teclas Ctrl+G. A pesquisa terá como
parâmetros o que foi digitado na Caixa de Edição de
Pesquisa.
A pesquisa por Logradouros só está
ativa quando a Janela de Logradouros contém elementos.
Pesquisando por
CEP: Apenas digite um CEP na Caixa
de Edição de Pesquisa e clique no botão CEP, o Mr. PostMan
apresenta o resultado e permite que você posicione a Janela de
Logradoouros na Rua seleconada.
. Disponibilidade .
O Mr. PostMan está
dispoível nas seguintes versões:
-
monousuário
- 005 usuários
concorrentes em rede local
- 010 usuários
concorrentes em rede local
- 050 usuários
concorrentes em rede local
- 100 usuários
concorrentes em rede local
Outras
configurações podem ser montadas sob consulta.
. Integração Através de
DDE .
O Que É DDE?
DDE, ou Dynamic Data
Exchange é um protocolo definido pela Microsoft para
intercâmbio dinâmico de informações entre aplicativos
Windows. Em poucas palavras, duas ou mais aplicações (um
Servidor e um ou mais Clientes) conversam entre si através
de mensagens padronizadas (WM_DDE_INITIATE, WM_DDE_EXECUTE, WM_DDE_REQUEST,
etc). A aplicação servidora cria uma janela escondida, que passa
a ser responsável pela conversação com a janela da
aplicação cliente. A conversação pode compreender a
passagem de parâmetros da aplicação Cliente para o
Servidor, execução de comandos no servidor e retorno de
informações do Servidor. O padrão é robusto o
suficiente para que aplicações Clientes em 16 bits (Windows 3.1)
e 32 bits (Windows 95/NT) funcionem exatamente da mesma maneira, usando a mesma
aplicação Servidor (Mr. PostMan).
A linguagem BASIC implementada
pela Microsoft encapsulou este protocolo dentro de funções,
tornando a criação de aplicações clientes DDE algo
muito simples. Por exemplo, para fazer com que o Mr. PostMan estabeleça
uma conversação com a sua aplicação, basta a
seguinte linha (BASIC será usado como linguagem exemplo):
Dim
dcl dcl = DDEInitiate("MRPOST",
"SCREEN")
DDEInitiate envia uma
mensagem WM_DDE_INITIATE para o Windows (broadcast), procurando por uma
aplicação que atenda pelo nome MRPOST e que possua um
tópico de conversação SCREEN. Quando o Mr. PostMan
receber esta mensagem, um manipulador para a conversação
será retornado à aplicação cliente (na
variável dcl). De maneira semelhante, para
terminar a conversação, basta o seguinte:
DDETerminate
dcl
Você pode fazer com que o
Mr. PostMan encontre o CEP de um determinado endereço, ou o
endereço de um CEP determinado. O mecanismo é mais ou menos o
seguinte: envie para o Mr. PostMan as informações que você
possui sobre o endereço (ou o CEP do endereço desejado) usando o
comando DDEPoke, e execute a função 'achaCEP' ou
'achaPeloCEP' através da função DDEExecute.
Por exemplo, para encontrar o CEP de 'Avenida Paulista, 900':
DDEExecute dcl, "[novaPesquisa]" DDEPoke dcl, "Tipo", "AV" DDEPoke
dcl, "Logradouro", "PAULISTA" DDEPoke dcl,
"Numero", "900" DDEPoke dcl, "Cidade",
"SAO PAULO" DDEPoke dcl, "Estado",
"SP" DDEExecute dcl,
"[achaCEP]"
Para encontrar o
endereço que corresponde ao CEP '01156-000':
DDEExecute dcl, "[novaPesquisa]" DDEPoke dcl, "CEP", "01156000" DDEExecute dcl, "[achaPeloCEP]"
O comando novaPesquisa
limpa os buffers do Mr. PostMan, assegurando que nada de uma pesquisa anterior
possa afetar a pesquisa atual. DDEPoke passa os valores desejados para
os buffers do Mr.PostMan, e achaCEP e achaPeloCEP fazem o Mr.
PostMan procurar o endereço de acordo com o conteúdo dos buffers.
A pesquisa pelo endereço leva em conta o lado (par ou
ímpar), faixa de numeração, e CEPs especiais
(quando um edifício possui um CEP exclusivo), portanto, quando um CEP ou
endereço for encontrado, você poderá ter certeza de que ele
é apropriado.
Se o endereço foi
encontrado, achaCEP ou achaPeloCEP retornarão sucesso.
Para obter o CEP e Bairro do endereço encontrado, basta executar a
função DDERequest:
MeuCEP$ = DDERequest(dcl, "voltaCEP") MeuBairro$ = DDERequest(dcl,
"voltaBairro")
Se mais de um endereço
(ou nenhum) satisfaz o critéiro de seleção, um erro
será retornado. É então necessária a
intervenção humana para encontrar o endereço correto.
Você pode fazer com que o Mr. PostMan apresente seus diálogos de
Localidades, Logradouros ou CEPs, posicionado no endereço mais
apropriado encontrado a partir dos critérios fornecidos, usando as
funções mostraDialogo e mostraDialogoCEP. O
operador pode então selecionar da lista o endereço encontrado,
inclusive iniciando uma nova pesquisa, ou abandoná-la. Se o operador
selecionar uma entrada da lista e clicar OK, o endereço poderá
ser retornado para a aplicação através de
DDERequest.
A API DDE do Mr. PostMan
é descrita a seguir:
| Tópico |
Comentários |
| DDEInitiate |
Inicializa uma conversação DDE com o Mr.
PostMan.Retorna o manipulador da conversação, ou 0 em caso de
erro. |
|
Comandos
Suportados Através de DDEExecute
(Retorna 1 em
caso de sucesso, ou 0 em fracasso) |
| [novaPesquisa] |
Limpa os buffers do Mr. PostMan,
preparando-o para uma nova pesquisa por endereço ou por CEP. |
| [achaCEP] |
Acha o CEP correspondente ao
endereço passado através de DDEPoke Tipo, Logradouro, Numero,
Bairro, Cidade e Estado (Bairro não é obrigatório, todos
os outros são) |
| [achaPeloCEP] |
Acha o endereço correspondente
ao CEP passado através de DDEPoke no Buffer CEP |
| [mostraDialogo] |
Se a combinação
Cidade/Estado estiver incorreta, ou a cidade não possuir CEPs por ruas,
apresenta o diálogo de Localidades, senão apresenta o
diálogo de Logradouros da Localidade. O Mr. PostMan sempre estará
apontando para o mais próximo possível do passado através
de DDEPoke. Se o operador fizer uma seleção e clicar OK, o
retorno será 1, caso contrário será 0. |
| [mostraDialogoCEP] |
Mostra o diálogo de CEPs
apontando para o mais próximo possível do passado através
de DDEPoke. Se o operador fizer uma seleção e clicar OK, o
retorno será 1, caso contrário será 0. |
|
Buffers Mantidos
pelo Mr. PostMan Valorizáveis Através de
DDEPoke
(Retorna 1 em
caso de sucesso, ou 0 em fracasso) |
| Estado |
Contém a porção
Estado do endereço sendo passado ou retornado. |
| Cidade |
Contém a porção
Cidade do endereço sendo passado ou retornado. |
| Tipo |
Contém a porção
Tipo (R, AV, LG, PC, etc) do endereço sendo passado ou
retornado. |
| Logradouro |
Contém a porção
Nome da Rua do endereço sendo passado ou retornado. |
| Numero |
Contém a porção
Número da Rua do endereço sendo passado ou retornado. |
| Bairro |
Contém a porção
Bairro do endereço sendo passado ou retornado. |
| CEP |
Contém a porção
CEP do endereço sendo passado ou retornado. |
|
Valores
Retornados pelo Mr. PostMan Através de DDERequest
(Retorna 1 em caso de sucesso, ou 0 em
fracasso) |
| voltaCEP |
Retorna o armazenado no Buffer CEP na
forma 99999999. |
| voltaCEPHifen |
Retorna o armazenado no Buffer CEP na
forma 99999-999. |
| voltaEstado |
Retorna o armazenado no Buffer
Estado |
| voltaCidade |
Retorna o armazenado no Buffer
Cidade |
| voltaBairro |
Retorna o armazenado no Buffer
Bairro |
| voltaNumero |
Retorna o armazenado no Buffer
Numero |
| voltaLogradouro |
Retorna o armazenado no Buffer
Logradouro |
| voltaTipo |
Retorna o armazenado no Buffer
Tipo |
| voltaEndereco |
Retorna o endereço completo
(Tipo + Logradouro + Número) Exemplo: R SANTA ISABEL
137 |
| voltaTudo |
Retorna todos os campos separados por
uma barra vertical. Exemplo: R|SANTA ISABEL|137|VL
BUARQUE|SAO PAULO|SP |
| ultimoErro |
Retorna um texto identificando o
resultado da última operação DDE executada. Exemplo:
"Nenhum Erro Encontrado" |
|