Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Tenho neste link um exemplo de como consultar a situação do CPF e neste outro outras consultas consumindo webservice. Fiz um pequeno teste:
>
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
//Passando valores para campos da web.
WebBrowser1.OleObject.Document.all.Item('login', 0).value := 'teste';
WebBrowser1.OleObject.Document.all.Item('senha', 0).value := 'teste';
WebBrowser1.OleObject.Document.all.Item('cpf', 0).value := TxtCPF.Text;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://ws.fontededados.com.br/consulta.asmx?op=SituacaoCadastralPF');
end;
Ele está funcionando perfeitamente, mas não sei como clicar no botão, pois não existe um ID ou um Name para o botão para implementar o click
>
WebBrowser1.OleObject.Document.all.Item('Button', 0).Click;
Contudo, isso não é o principal motivo deste post, este é apenas um teste. O principal motivo deste post é utilizar este webservice para, ao digitar o CPF meu campo receber o nome do dono deste CPF, pois é gerada em outra página um XML contendo o nome da pessoa.
Alguém sabe como posso resolver esse problema?
Grato,
Ilano.
Como posso pegar o nome da pessoa da consulta no Consulta CPF Web Service e jogá-lo para o meu campo TxtNome? Só preciso descobrir como implemento isso e montar o XML. Por favor, me ajudem meu tempo está expirando e ainda não consegui implementar isso.
Sou uma negação com XMLs e tal mas tive uma idéia:
function TForm1.DownloadFile(Source, Dest: string): Boolean;
begin
try
Result:= UrlDownloadToFile(nil, PChar(source),PChar(Dest), 0, nil) = 0;
except
Result:= False;
end;
end;
procedure TForm1.Button1Click(Sender: TObject); ShowMessage('Falha no donwload!');
end;
Você faz o download do arquivo XML e faz a leitura do arquivo.
meu código está com erro, como não sei nada sobre leitura de XML através de componentes que não sejam decendentes do TextFile, não consigo corrigir o problema:
procedure TForm1.ExibeSituacao;
var
XMLFile : TXMLDocument;
NodePai : IXMLNode;
I : Integer;
{SituacaoCadastral}
{RetornoSituacaoCadastralPF} XMLFile := TXMLDocument.Create(Application);
XMLFile.LoadFromFile('C:\Users\William Ferreira\Arquivo.XML');
XMLFile.Active := True;
NodePai := XMLFile.DocumentElement.ChildNodes['RetornoSituacaoCadastralPF'];
ShowMessage(NodePai.Text);
end;
---------------
Correção: Consegui fazer a leitura do XML:
procedure TForm1.ExibeSituacao;
var
XMLFile : TXMLDocument;
NodePai : IXMLNode;
I : Integer;
{SituacaoCadastral}
{RetornoSituacaoCadastralPF} XMLFile := TXMLDocument.Create(Application);
XMLFile.LoadFromFile('C:\Users\William Ferreira\Arquivo.XML');
XMLFile.Active := True;
// NodePai := XMLFile.DocumentElement.ChildNodes['SituacaoCadastral'];
ShowMessage(XMLFile.DocumentElement.ChildNodes['SituacaoCadastral'].Text);
end;
Não é a situação ideal mas consegui realizar a verificação.
Engraçado bdexterholland, a "ideia" que voce teve é praticamente igual a esta aqui ó http://scriptbriasil.com.br/forum/index.php?showtopic=130463
Voce não teve nem o trabalho de mudar o nome da função. Alias, não só dessa mas de outros lugares tambem, voce montou essa função de varios pontos na net e não citou nenhuma fonte e ainda assumiu a ideia para voce? Isso é uma falta gravíssima, voce como moderador trainee não deveria dar exemplo quanto a isto?
>
Sou uma negação com XMLs e tal mas tive uma idéia:
function TForm1.DownloadFile(Source, Dest: string): Boolean;
begin
try
Result:= UrlDownloadToFile(nil, PChar(source),PChar(Dest), 0, nil) = 0;
except
Result:= False;
end;
end;
procedure TForm1.Button1Click(Sender: TObject); ShowMessage('Falha no donwload!');
end;
Você faz o download do arquivo XML e faz a leitura do arquivo.
meu código está com erro, como não sei nada sobre leitura de XML através de componentes que não sejam decendentes do TextFile, não consigo corrigir o problema:
procedure TForm1.ExibeSituacao;
var
XMLFile : TXMLDocument;
NodePai : IXMLNode;
I : Integer;
{SituacaoCadastral}
{RetornoSituacaoCadastralPF} XMLFile := TXMLDocument.Create(Application);
XMLFile.LoadFromFile('C:\Users\William Ferreira\Arquivo.XML');
XMLFile.Active := True;
NodePai := XMLFile.DocumentElement.ChildNodes['RetornoSituacaoCadastralPF'];
ShowMessage(NodePai.Text);
end;
---------------
Correção: Consegui fazer a leitura do XML:
procedure TForm1.ExibeSituacao;
var
XMLFile : TXMLDocument;
NodePai : IXMLNode;
I : Integer;
{SituacaoCadastral}
{RetornoSituacaoCadastralPF} XMLFile := TXMLDocument.Create(Application);
XMLFile.LoadFromFile('C:\Users\William Ferreira\Arquivo.XML');
XMLFile.Active := True;
// NodePai := XMLFile.DocumentElement.ChildNodes['SituacaoCadastral'];
ShowMessage(XMLFile.DocumentElement.ChildNodes['SituacaoCadastral'].Text);
end;
Não é a situação ideal mas consegui realizar a verificação.
Me desculpe mas o código copiado foi apenas o código do Download, se você considera esta falha grave, por favor, sinta-se a vontade de denunciar. Só gostaria que dizer que o fato de dizer que tive a idéia não necessariamente quer dizer que sou o dono do script. Minha idéia era realizar o download o XML resultante buscar os dados direto em localhost, sem usar componentes SOAP.
Gostaria também que, se você souber o real autor da função, me informe que eu citarei como fonte.
Nenhuma sugestão? :(
Estou precisando agora para CNPJ, trazer os dados da empresa.