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...