Consulta CEP com Webbroker e JavaScript

Código-Fonte, Delphi, JavaScript, Novidades, Sem categoria dezembro 24th, 2008

Uma das funções mais interessantes hoje em qualquer tipo de cadastro que contenha endereço postal é a busca pelo CEP, para obter o endereço, bairro, cidade e estado; muitos desenvolvedores mantém uma base de dados do CEP local (em cada cliente) para que possa ser usada pela aplicação durante a edição dos endereços no cadastro.

O “buscarcep.com.br” é um WebService de consulta de CEP gratuíto e foi usado nesse exemplo. Esse serviço pode facilitar a vida de muita gente, já que usando o serviço, não mais será necessário manter uma base de dados do CEP local (em cada cliente).

Abaixo dou um exemplo de como implementar isso em uma aplicação WEB usando Delphi Webbroker e Javascript (para dar um toque Web 2.0 na aplicação).

Clique para continuar lendo “Consulta CEP com Webbroker e JavaScript”

Tags: , , ,

Armazenando os dados do Certificado Digital Selecionado

Código-Fonte, Delphi dezembro 22nd, 2008

Sempre que necessário assinar ou enviar dados para o serviço da NF-e; é necessário informar o nome do certificado digital; é interessante, então, armazenar esses dados de forma que sempre que houver necessidade de usar o certificado vc possa informar os dados armazenados evitando assim que tenha que selecionar o mesmo à cada comando;

Como fazer isso então? A primeira coisa a fazer é inserir uma opção de seleção do certificado na sua aplicação e nela, um evento onde após a seleção do certificado onde vc. guarda em um arquivo esses dados; veja abaixo o código que permite armazenar os dados do certificado (usando recursos da NFe_UTIL.dll):

Ex.01: Salvando dados do Certificado Digital Selecionado

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var Util:NFe_Util_Interface;
    i:integer;
    F: TextFile;
begin
  Util := CoUtil.Create;
  Try
  nomeCertificado := '';
  i:= Util.PegaNomeCertificado(nomeCertificado, msg);
 
  if i > 1 then
      MessageDlg( 'Ocorreu uma falha no acesso ao repositório de certificados digitais...'+#13+#13+msg, mtInformation, [mbOk], 0)
  else
      begin
        AssignFile(F, 'CertificadoDigital.res');
        Rewrite(F);
        Write(F,nomeCertificado);
        CloseFile(F);
      end;
  finally
     Util := nil;
  end;

Ex.02 Recuperando dados do certificado digital selecionado

1
2
3
4
5
6
7
8
9
10
11
var F: TextFile;
    nomecertificado: string;
begin
  if FileExists('CertificadoDigital.res') then
  begin
     AssignFile(F, 'CertificadoDigital.res');
     Reset(F);
     Readln(F,nomecertificado); // a variável nomecertificado vai receber os dados armazenados.
     CloseFile(F);
  end;
end;

Com isso, problema resolvido, após ler os dados do certificado na variável “nomecertificado” vc pode passar essa informação, por exemplo, para assinar o XML como abaixo (o exemplo usa uma função da NFE_UTIL.dll):

          i:= Util.Assinar(xmlNaoAssinado, 'infNFe', nomecertificado, 
               xmlAssinado, mensagem);
          // a variável "nomercertificado" já contendo os dados do certificado 
          // conforme obtido no exemplo 02.

Tags: ,

Dados Retorno Consulta Recibo e Status Serviço NF-e com TXMLDocument

Código-Fonte, Sem categoria dezembro 11th, 2008

Muitos ainda têm dúvida de como ler o XML usando o TXMLDocument; publiquei abaixo mais dois códigos exemplo, o primeiro para ler o arquivo de retorno da consulta de Status do Serviço da NF-e e o segundo para ler o arquivo de retorno da consulta do recibo de envio do lote da NF-e. Reparem que são poucas modificações em relação aos exemplos anteriores, usem esses exemplos também para entender melhor como usar o TXMLDocument e ganhe maior liberdade para trabalhar com qualquer arquivo XML.

Clique para continuar lendo “Dados Retorno Consulta Recibo e Status Serviço NF-e com TXMLDocument”

Tags: ,

O que aconteçeu no CodeRage III

Informação dezembro 8th, 2008

O pessoal da CodeGear deu um show com mais de 50 palestras do CodeRage III; pena que em muitas delas eu não consegui obter retorno de áudio (problemas com o live meeting), mas, assisti várias apresentações com o Delphi Prism (acho que vai ser a minha porta de entrada para o Mono), o novo DATASNAP Framework (maior novidade, esqueça programação COM/DCOM). Várias palestras em português (isso ai, o pessoal se lembrou de nós, é mais uma prova de que os brasileiros estão marcando presença!). Vc. podia fazer perguntas em tempo real pelo CHAT e eram respondidas em seguida, no audio pelos palestrantes ou no chat pelos moderadores.

Clique para continuar lendo “O que aconteçeu no CodeRage III”

Tags: ,

Usando TXMLDocument para Ler o Recibo de Envio da NF-e

Código-Fonte dezembro 1st, 2008

No exemplo abaixo usamos o TXMLDocument do Delphi para ler os dados do XML retorno de retorno de envio do lote das NF-e:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var vXMLDoc: TXMLDocument;
    NodeRec: IXMLNode;
    recibo, datahora: WideString;
begin
  vXMLDoc := TXMLDocument.Create(self);
  vXMLDoc.LoadFromFile('0000000000234-rec.xml'); //Le Arquivo Recibo XML');
 
  // Campo memo para o exemplo
  Memo.lines.Add( '-------------------------------------------------');
  Memo.lines.Add( VXMLDoc.XML.Text +#13+#13 );
 
  // Prepara para ler os dados da tag "infRec"
  NodeRec := vXMLDoc.DocumentElement.ChildNodes.FindNode('infRec');
  // Lendo os campos da tag infRec
  recibo := NodeRec.ChildNodes['nRec'].text;     // posso ler assim
  datahora := NodeRec.ChildNodes['dhRecbto'].text;
 
  // adiciona os dados no Memo (apenas exemplo)
  if recibo <> '' then
      begin
      Memo.Lines.Add('-----------------------------------------------');
      Memo.Lines.Add( recibo+' ---- '+datahora );
      end;
 
end;

Tags: , ,