Ir para conteúdo
  • Cadastre-se

EdmarFrazao

Membros
  • Total de ítens

    484
  • Registro em

  • Última visita

  • Days Won

    6

Tudo que EdmarFrazao postou

  1. não é uma alteração e sim uma maneira de pegar o xml. alias este codigo precisa ser melhorado estou enferrujado no delphi
  2. consegui com o codigo abaixo tem que ter o certificado da empresa vai abrir a janela do IE digite o captch confirme o certificado mande salvar o xml o IE salva na pasta do usuario. procedure TForm1.Button7Click(Sender: TObject); Var mUsuario,sArquivo:string; Size1 : DWord; pCompName : array [0..MAX_COMPUTERNAME_LENGTH] of char; var FormItem: Variant; FieldA,Field: Variant; F,FieldName: String; X,A,T,I,J: Integer; bEsperandoDown:Boolean; sChaveNfe,sUsuario:String; begin Try Size1 := SizeOf(pCompName); GetComputerName(pCompName, Size1); ///cOMPUTADOR := pCompName; GetUserName(pCompName,Size1); sUsuario := pCompName; sChaveNfe := '35111202078313000198550010000087361405008687'; sArquivo := 'C:\Users\'+sUsuario+'\Downloads\'+sChaveNfe+'.xml'; IEApp := CreateOLEObject('InternetExplorer.Application'); IEApp.visible := true; IEApp.Top := 0; IEApp.Left := 0; // IEApp.Width := Screen.Width; IEApp.Height := Screen.Height; IEApp.Navigate('http://www.nfe.fazenda.gov.br/PORTAL/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8='); repeat Application.ProcessMessages; until (IEApp.ReadyState >= READYSTATE_COMPLETE); repeat Application.ProcessMessages; until (IEApp.ReadyState >= READYSTATE_COMPLETE); if FileExists(sArquivo) then DeleteFile(sarquivo); T:=0; while True do BEGIN Memo1.Lines.Clear; T:= T+1; if T>300 then BREAK; if FileExists(sArquivo) then BREAK; Try FormItem := IEApp.Document.forms.Item(I); for j := 0 to FormItem.Length - 1 do begin if FileExists(sArquivo) then BREAK; //Identifica o campo e seu nome no formulário Field := FormItem.Item(j); FieldName := Field.Name; Memo1.Lines.Add(FieldName); if FieldName = 'ctl00$ContentPlaceHolder1$txtChaveAcessoCompleta' then // nome do input para o campo CNPJ bEGIN Field.Value := sChaveNfe; end else Begin if FieldName = 'ctl00$ContentPlaceHolder1$btnDownload' then // nome do input para o campo CNPJ begin repeat Application.ProcessMessages; until (IEApp.ReadyState >= READYSTATE_COMPLETE); IEApp.Document.all.Item('ctl00$ContentPlaceHolder1$btnDownload', 0).click; repeat Application.ProcessMessages; until (IEApp.ReadyState >= READYSTATE_COMPLETE); while (X<30) do begin Sleep(100); bEsperandoDown:=false; for a := 0 to FormItem.Length - 1 do begin Fielda := FormItem.Item(j); F := Fielda.Name; if F = 'ctl00$ContentPlaceHolder1$btnDownload' then // nome do input para o campo CNPJ Begin bEsperandoDown:=true; End; end; if not bEsperandoDown then break ; X := X+1; Application.ProcessMessages; if FileExists(sArquivo) then begin BREAK; end; end; end else Begin if FieldName = 'ctl00$ContentPlaceHolder1$btnNovaConsulta' then // nome do input para o campo CNPJ begin IEApp.Document.all.Item('ctl00$ContentPlaceHolder1$btnNovaConsulta', 0).click; end; End; end; end; except try IEApp.Document.all.Item('ctl00$ContentPlaceHolder1$btnNovaConsulta', 0).click; except ShowMessage('erro'); IEApp.Navigate('http://www.nfe.fazenda.gov.br/PORTAL/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8='); end; End; repeat Application.ProcessMessages; if FileExists(sarquivo) then break; until (IEApp.ReadyState >= READYSTATE_COMPLETE); Sleep(100); END; Finally End; IEApp.Quit; Memo1.Lines.LoadFromFile(sarquivo); end;
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...