Ir para conteúdo
  • Cadastre-se

Pesquisar na Comunidade

Showing results for tags 'fast'.

  • Search By Tags

    Digite tags separadas por vírgulas
  • Search By Author

Tipo de Conteúdo


Categorias

Não há resultados

Categorias

  • Notes ACBrLibNFe

Fóruns

  • Fórum Aberto - ACBr
    • Notícias do ACBr
    • Equipamentos testados
    • Base de Conhecimento
    • Dúvidas Gerais sobre o ACBr
    • ACBrSerial
    • ACBrSAT
    • ACBrNFe
    • ACBrDFe
    • Dúvidas sobre TEF
    • Dúvidas sobre PIX
    • ACBrMonitor PLUS
    • ACBrTXT
    • ACBrBoleto
    • ACBrDiversos
    • ACBrTCP
    • ACBrFramework
    • ACBrLIB
  • ACBr Pro
    • Dúvidas gerais
    • ACBrMonitorPLUS
    • NFe/NFCe - Nota Fiscal Eletrônica
    • DFe - Documentos Fiscais Eletrônicos
    • SAT / MFE
    • TEF
    • Boleto
    • ACBrSPED
    • ACBrTXT
    • Paf-ECF
    • Requisitos Fiscais por UF
    • ACBrLIB
  • Outros Assuntos
    • Boteco do ACBr
    • Legislação Fiscal e Tributária
    • Object Pascal - Delphi & Lazarus
    • Banco de Dados
    • Classificados
    • Dúvidas não relacionadas ao ACBr

Categorias

  • ACBr Pro
    • ACBrLib - PRO
    • ACBrMonitorPLUS - PRO
    • Utilitários - PRO
    • Dia do ACBr 1a edição
    • Dia do ACBr 2a edição
  • Download Livre
    • ACBrLib - DEMO
    • ACBrMonitorPLUS - DEMO
    • Demos / Testes / Utilitários
    • Apresentações - Palestras

Calendários

  • Eventos - Palestras - Webinars
  • Prazos SEFAZ
  • Calendário da Comunidade
  • ACBr Papo Pro
  • Feriados Nacionais

Find results in...

Find results that contain...


Data de Criação

  • Início

    End


Data de Atualização

  • Início

    End


Filter by number of...

Data de Registro

  • Início

    End


Grupo


Website URL

Encontrado 19 registros

  1. Boa tarde, estou com problema para encontrar um valor padrão de margem, para utilizar o modo do FAST utilizo a seguinte configuração : Superior, Direita : 7 Inferior 5 Esquerda: 6 Para realizar a configuração do Fortes é necessário seguir as seguintes configurações: Superior, Direita : 7 Inferior 5 Esquerda: 7. Ocorrendo uma diferença apenas na margem esquerda. Existe algum valor padrão para funcionar nos 2 modelos ?
  2. Olá, realizei algumas alterações no layout do DANFCe bobina desenvolvido em Fast. Renomeei o arquivo para "DANFeNFCe5_00.fr3", o adaptando conforme o Manual de Padrões versão 5.0, o último liberado pelo Encat. Foram necessárias algumas alterações na unit ACBrNFeDANFEFRDM.pas também. No seguintes locais: 1) Na geração do valor a pagar, conforme: Antes: FieldByName('ValorApagar').AsFloat := VProd - VDesc - vICMSDeson + VOutro; Agora: FieldByName('ValorApagar').AsFloat := VProd + FNFe.Total.ISSQNtot.vServ; Deixei como já está no modelo EscPos, que imagino ser o mais usado e consequentemente o mais apurado. Não concordo com fazer cálculos na impressão do Danfe, os cálculos já devem ser feitos ao gerar o XML. 2) No preenchimento do nome do cliente: Antes: if EstaVazio(FieldByName('CNPJCPF').AsString) then FieldByName('Consumidor').AsString := ACBrStr('CONSUMIDOR NÃO IDENTIFICADO') else FieldByName('Consumidor').AsString := IfThen(Length(CNPJCPF) = 11, 'CPF: ', 'CNPJ: ') + Trim(FieldByName('CNPJCPF').AsString) + ' ' + trim(FieldByName('XNome').AsString); Agora: if EstaVazio(FieldByName('CNPJCPF').AsString) then FieldByName('Consumidor').AsString := ACBrStr('CONSUMIDOR NÃO IDENTIFICADO') else FieldByName('Consumidor').AsString := IfThen(Length(CNPJCPF) = 11, 'CONSUMIDOR CPF: ', 'CONSUMIDOR CNPJ: ') + Trim(FieldByName('CNPJCPF').AsString) + ' ' + trim(FieldByName('XNome').AsString); Apenas inseri o prefixo "CONSUMIDOR" antes do CPF ou do CNPJ do cliente. 3) Na geração do texto da área de mensagem fiscal: Antes: if (FNFe.Ide.Modelo = 65) then begin FieldByName('DEmi').AsString := FormatDateTimeBr(FNFe.Ide.DEmi); if FNFe.Ide.TpAmb = taHomologacao then FieldByName('MensagemFiscal').AsString := ACBrStr('EMITIDA EM AMBIENTE DE HOMOLOGAÇÃO - SEM VALOR FISCAL') else begin if (FNFe.Ide.tpEmis <> teNormal) and EstaVazio(FNFe.procNFe.nProt) then FieldByName('MensagemFiscal').AsString := ACBrStr('EMITIDA EM CONTINGÊNCIA'+LineBreak+'Pendente de autorização') else FieldByName('MensagemFiscal').AsString := ACBrStr('ÁREA DE MENSAGEM FISCAL'); end; . . . . Agora: if (FNFe.Ide.Modelo = 65) then begin FieldByName('DEmi').AsString := FormatDateTimeBr(FNFe.Ide.DEmi); if (FNFe.Ide.tpEmis <> teNormal) and EstaVazio(FNFe.procNFe.nProt) then FieldByName('MensagemFiscal').AsString := ACBrStr('EMITIDA EM CONTINGÊNCIA'+LineBreak+'Pendente de autorização'); if FNFe.Ide.TpAmb = taHomologacao then FieldByName('MensagemFiscal').AsString := FieldByName('MensagemFiscal').AsString+LineBreak+LineBreak+ACBrStr('EMITIDA EM AMBIENTE DE HOMOLOGAÇÃO - SEM VALOR FISCAL'); if EstaVazio(FieldByName('MensagemFiscal').AsString) then FieldByName('MensagemFiscal').AsString := ACBrStr('ÁREA DE MENSAGEM FISCAL'); . . . . Alterei para que a frase "EMITIDA EM CONTINGÊNCIA Pendente de autorização" seja gerada sempre que a NFCe estiver pendente, independente do ambiente utilizado (produção ou homologação) Se alguém puder validar e encaminhar ao repositório. ACBrNFeDANFEFRDM.pas DANFeNFCe5_00.fr3
  3. Boa tarde a todos. Compilo e instalo tudo sem nenhum erro utilizando o instalador do acbr, porém ao colocar no form um componente ACBrNFeDANFeFR ocorre o erro da imagem abaixo: Imagem do erro pesquisei um forum e já existe um topico com este erro, porem a solução encontrada lá, não resolveu o meu aqui; Alguém já passou por isso e poderia me ajudar?
  4. Encontramos um erro na impressão da Guia da GNRE no campo "Período de Referência" em Fast Report. Está sendo impresso somente o código da referência, ex."0" sem constar a data. Pelo que foi verificado, a impressão em Fortes já está correta. Segue a correção para Fast. GNRE_GUIA.fr3 ACBrGNREGuiaFRDM.pas
  5. Boa noite, Alguém saberia o porque no Layout do Boleto de Fatura com o Fast Report existe Recebemos através do cheque número do banco Esta quitação só terá validade após o pagamento do cheque pelo banco sacado E qual a propriedade para remover essa informação? Obrigado! Obs.: Layout Boleto_Fatura_Novo.fr3
  6. Zottis

    DANFE com erro estranho (FAST)

    Pessoal, alguém sabe como corrigir o Danfe do FAST quando tem muitas parcelas, ele sai com uma tag que não tem nada à ver (Cálculo do ISSQN) depois das parcelas quando deveria aparecer as tags de ICMS, etc.
  7. Olá Bom dia Todos os meus arquivos de Danfe fr3 não mostram os Dados Complementares. Existe alguma propriedade que defina isso? Gostaria de mostralos na NFe. Obrigado
  8. Ola Pessoal, Existe um tópico com este assunto de 2016, porém o mesmo se encontra encerrado e aparentemente sem solução. Migrei o Danfe de Rave para o Fast Report e após a migração não aparece mais a tarja 'NFE CANCELA' nas notas canceladas. i) Estou em ambiente de produção ii) Xml da nota carregado - xml da homolação do evento OK iii) propriedade Danfe.NFeCancelada := true iv) propiedade Danfe.ProtocoloNFe carregado com o protocolo de cancelamento v) propiedade Danfe,MarcaDaguaMsg := 'Nota cancelada' (chute....) Mesmo assim não aparece a tarja. Se alguém puder ajudar agradeço!
  9. Bom dia senhores! Gostaria de saber se a alteração que foi feita no tópico abaixo, foi mantida para a Danfe em FastReport no trunk2. Caso tenha sido mantida, gostaria de saber como proceder para conseguir imprimir as duas unidades (comercial e tributável). Grato!
  10. Caros estou usando o DANFE da NFC-e com Fast Report e não consegui fazer funcionar as propriedades Sistema,Site e campos de tributos (Vtribest,vtribfed,VtribMun) eu preencho os campos porem quando visualizo não encontro eles preenchidos no danfe.
  11. Bom dia colegas, por dias estive buscando uma solução para a situação a seguir (breve história) : com o fim do suporte ao delphi 7, a solução mais viável foi desenvolver um agente (no X10) para ler as instruções e emitir as notas, eventos e afins. Até ai tudo OK, ele fica bonitinho no 'tray' emite as advertências quando necessário, manda as impressões das notas todas corretas. No entanto ao entrar na parte dos eventos, me deparei com a situação que o evento nunca era impresso diretamente, sempre aparecia a seleção da impressora(mostraPreview = False), problema???, nem tanto, a não ser pelo fato de a seleção da impressora não aparecer ao usuário, uma vez que ela fica 'dentro' do agente o qual está minimizado no 'tray'. Fuçando o fonte me deparei com as seguintes situações: na imagem 'passaParametro.png' é mostrado como estava a opção do preview, na imagem 'carregamentodaOpImpressao.png' é onde o parâmetro vinha sempre pra verdadeiro. SOLUÇÃO: após longa pesquisa no processo de impressão da NFe, uma das diferenças era o parâmetro "FdmDanfe.frxReport.PrintOptions.ShowDialog" o qual não era alterado quando executava a procedure 'PrepareReportEvento' da unit "ACBrNFeDANFEFR", isso é mostrado na imagem 'Alteração.pmg'. Após isso a impressão é disparada diretamente para a impressora configurada no componente. Segue o fonte alterado para análise, se a alteração for válida espero que ajude. Desde já obrigado ACBrNFeDANFEFR.pas
  12. Olá pessoal, estou com uma situação aonde eu adiciono 2 ou mais nfe's e quando eu mando efetuar a impressão do danfe pelo fast report o campo FOLHA está mostrando (na minha opinião) errado. Na imagem anexada segue exemplo de 2 nfe's que geram somente 1 página cada uma (FOLHA 1/1), e quando efetuo o procedimento descrito acima o campo FOLHA mostra o total de paginas do relatório, pelo fonte vi que é exibido a variável PAGES do relatório. No meu entendimento como são nfe's distintas, não deveria exibir 1/2 e sim 1/1. Alguém já percebeu isso ? Conto com a ajuda dos nobres colegas. Estou utilizando o arquivo DANFeRetrato.fr3 e DANFeRetratoNovo.fr3 do trunk2 (atualizado) e em ambos acontece a mesma coisa. Grato.
  13. Pessoal, desculpem a ignorância, gostaria de editar meu DANFE da NFCe, antigamente usava o arquivo ACBrNFeDANFEFRDM.pas, carregava o template e editava, mas o arquivo DFM não está mais na pasta ACBr\trunk2\Fontes\ACBrDFe\ACBrNFe\DANFE\NFe\Fast Ainda é por este arquivo que faço a edição ? Teria outra forma ? Desde já obrigado
  14. Bom dia pessoal, estou com um problema na impressão do Danfe da NFCe após atualizar o projeto com o trunk2, ocorre que o danfe é impresso 'cortando' as informações das laterais +- 4 caracteres na esquerda e +- 2 na direita. Já testei alterações na impressora, mas não resolveu. No projeto apenas foram removidas as propriedades extintas dos paths e alguns eventos que não existem mais, no demais o componente é configurado da mesma forma, adicionado impressora, danfe, o path do arquivo fast. Ocorre que com o exe com a versão do trunk imprime normal e do trank2 'corta' a impressão, independente de usar o arquivo do fast que está no repositório ou usar o que já estava no pc. Impressora Epson TM-T20, mas ocorre tbm na Daruma. ImpressãoExeTrunk.pdf ImpressãoExeTrunk2.pdf
  15. Boa tarde pessoal... esse é o primeiro tópico aberto por mim... vamos la... Utilizava o ACBR e Danfe Fast Report para geração de meus NFCe no trunk1 e funcionava perfeitamente com spool e drie do fabricante. Após eu migrar para Trunk2 não consegui mais imprimir desta forma... ao abrir meu transmissor da um erro ao chamar a função de impressão do AcbrDanfe... ai resolvi migrar para o EscPos... li vários outros tópicos... consegui imprimir e o que ocorre de erros: a impressão saiu toda desconfigurada... os itens não cabem em duas linhas e utilizam 3.. os espaçamentos estão todos incorretos... não sai mais o logotipo do cliente... mesmo carregando todos os parâmetros.... e Tb não imprime o QRCODE.... e no final no lugar do mesmo sai o endereço que era para sair no qrcode.... estou perdido... vários clientes meus travados.... preciso de socorroooo!!!!
  16. Pessoal, boa tarde. Gostaria de saber se a propriedade ExpandirLogoMarca para o DANFe no FastReport (Trunk2) funciona? if FilesExists(ExtractFilePath(Application.ExeName) + 'Logos\logo_danfe.jpg') then begin ACBrNFe1.DANFE.ExpandirLogoMarca := true; ACBrNFe1.DANFE.Logo := ExtractFilePath(Application.ExeName) + 'Logos\logo_danfe.jpg'; end; Estou usando a imagem da logo com o endereço do emissor (339 x 114), portanto ela vai ocupar todo o espaço. Quando faço o teste, a imagem está muito pequena e ocupa menos da metade do espaço. Se, no caso, a propriedade não funciona para o FastReport, qual seria então as dimensões corretas da imagem menor? Grato.
  17. Olá estou com um problema e preciso embutir o fast da DANF dentro do meu aplicativo ao invés de chamar o DANFE.fr3 Queria saber se é possível se alguém já fez isso e uma ajuda nessa situação Estive procurando sobre o assunto mas não achei nada que me ajudasse
  18. Olá pessoal, Apenas uma sugestão, ja existe um codigo similiar na função TACBrNFeDANFEFR.PrepareReport para poder fazer o "LoadFromStream", só colocar a mesma opção para a função TACBrNFeDANFEFR.PrepareReportEvento. Segue como ficaria a sugestão: function TACBrNFeDANFEFR.PrepareReportEvento: Boolean; Var wProjectStream: TStringStream; begin if Trim(FastFileEvento) <> '' then begin if not (uppercase(copy(FastFileEvento,length(FastFileEvento)-3,4))='.FR3') then begin wProjectStream:=TStringStream.Create(FastFileEvento); fdmDanfe.frxReport.FileName := ''; fdmDanfe.frxReport.LoadFromStream(wProjectStream); wProjectStream.Free; end else begin if FileExists(FastFileEvento) then fdmDanfe.frxReport.LoadFromFile(FastFileEvento) else raise EACBrNFeDANFEFR.CreateFmt('Caminho do arquivo de impressão do EVENTO "%s" inválido.', [FastFileEvento]); end; end else raise EACBrNFeDANFEFR.Create('Caminho do arquivo de impressão do EVENTO não assinalado.'); FdmDanfe.frxReport.PrintOptions.Copies := NumCopias; // preparar relatorio if Assigned(ACBrNFe) then begin if assigned(TACBrNFe(ACBrNFe).EventoNFe) then begin FdmDanfe.Evento := TACBrNFe(ACBrNFe).EventoNFe; FdmDanfe.CarregaDadosEventos; end else raise EACBrNFeDANFEFR.Create('Evento não foi assinalado.'); if TACBrNFe(ACBrNFe).NotasFiscais.Count > 0 then begin FdmDanfe.frxReport.Variables['PossuiNFe'] := QuotedStr('S'); FdmDanfe.NFe := TACBrNFe(ACBrNFe).NotasFiscais.Items[0].NFe; FdmDanfe.CarregaDadosNFe; end; Result := FdmDanfe.frxReport.PrepareReport; end else raise EACBrNFeDANFEFR.Create('Propriedade ACBrNFe não assinalada.'); end; Obrigado. Fabiano
  19. Boa tarde a todos. Fiz umas alterações no RecuperarXML e inclui a possibilidade de abrir um xml para consulta dos itens e se o usuário quiser imprimir o danfe para conferir ou outras finalidades internas. O problema é que só consigo mostrar o danfe na tela quando executo no meu notebook. Quando rodo o executável em outro pc tenho um erro do tipo "violation access..." bla, bla, bla.... Pesquisei muito no forum para saber se outros usuários do ACBR/FASTREPORT tinham algum problema e vi que os resultados de minha pesquisa apontavam para erros no patch referente ao "FastFile" o que não me ajudou, pois usando patch declarado em variável ou em string para o caminho ocorria o erro do mesmo modo. Vou colocar meu código inteiro para ver se algum amigo pode me auxiliar.... Usando o Delphi XE4 e o projeto foi alterado para rodar a partir de: "C:\XML\". unit principal; interface uses GifImage ,UrlMon, MSHtml, ACBrUtil, pcnAuxiliar, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw, ExtCtrls, ComCtrls, WinInet, Menus, ACBrNFe, Vcl.Grids, Vcl.Buttons, frxClass, ACBrNFeDANFEClass, ACBrNFeDANFEFR, frxExportPDF,ShellAPI,Types; type TfrmPrincipal = class(TForm) WebBrowser1: TWebBrowser; ProgressBar1: TProgressBar; lblStatus: TLabel; Panel2: TPanel; Panel3: TPanel; Panel4: TPanel; Image1: TImage; btnPegarHTML: TButton; btnNovaConsulta: TButton; btnGerarXML: TButton; Label1: TLabel; edtChaveNFe: TEdit; Label2: TLabel; edtCaptcha: TEdit; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; Memo2: TMemo; Panel1: TPanel; WBXML: TWebBrowser; Button1: TButton; Label3: TLabel; TabSheet3: TTabSheet; Label4: TLabel; Label5: TLabel; TabSheet4: TTabSheet; ACBrNFe1: TACBrNFe; Edit1: TEdit; StringGridProdutos: TStringGrid; BtImprimir: TBitBtn; Label6: TLabel; DANFEFR: TACBrNFeDANFEFR; BtAbrirXml: TBitBtn; OpenDialog1: TOpenDialog; frxPDFExport: TfrxPDFExport; EdChave: TEdit; Label7: TLabel; Button2: TButton; procedure btnPegarHTMLClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); procedure WebBrowser1ProgressChange(Sender: TObject; Progress, ProgressMax: Integer); procedure btnNovaConsultaClick(Sender: TObject); procedure btnGerarXMLClick(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button1Click(Sender: TObject); procedure Label3Click(Sender: TObject); procedure BtImprimirClick(Sender: TObject); procedure BtAbrirXmlClick(Sender: TObject); procedure edtChaveNFeKeyPress(Sender: TObject; var Key: Char); procedure Button2Click(Sender: TObject); private { Private declarations } function DownloadFile(SourceFile, DestFile: string): Boolean; function StripHTML(S: string): string; procedure DeleteIECache; procedure PegarHTML; procedure GeraXml; procedure NovaConsulta; procedure carregaItens; public { Public declarations } FPath,caminho,DanfeRetrato,Dirxml,Dirpdf,Dirxmlfor: string; end; var frmPrincipal: TfrmPrincipal; TpcnCSTIcms: string; implementation uses ACBrNFeUtil, ACBrHTMLtoXML, pcnConversao; {$R *.dfm} procedure TfrmPrincipal.DeleteIECache; var lpEntryInfo: PInternetCacheEntryInfo; hCacheDir: LongWord; dwEntrySize: LongWord; begin { DeleteIECache } dwEntrySize := 0; FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize); GetMem(lpEntryInfo, dwEntrySize); if dwEntrySize>0 then lpEntryInfo^.dwStructSize := dwEntrySize; hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize); if hCacheDir<>0 then begin repeat DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName); FreeMem(lpEntryInfo, dwEntrySize); dwEntrySize := 0; FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^), dwEntrySize); GetMem(lpEntryInfo, dwEntrySize); if dwEntrySize>0 then lpEntryInfo^.dwStructSize := dwEntrySize; until not FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize) end; { hCacheDir<>0 } FreeMem(lpEntryInfo, dwEntrySize); FindCloseUrlCache(hCacheDir) end; { DeleteIECache } function TfrmPrincipal.DownloadFile(SourceFile, DestFile: string): Boolean; const BufferSize = 1024; var hSession, hURL: HInternet; Buffer: array[1..BufferSize] of Byte; BufferLen: DWORD; f: File; sAppName: string; begin sAppName := ExtractFileName(Application.ExeName); hSession := InternetOpen(PChar(sAppName),INTERNET_OPEN_TYPE_PRECONFIG,nil, nil, 0); try hURL := InternetOpenURL(hSession,PChar(SourceFile),nil,0,0,0); try AssignFile(f, DestFile); Rewrite(f,1); repeat InternetReadFile(hURL, @Buffer,SizeOf(Buffer), BufferLen); BlockWrite(f, Buffer, BufferLen) until BufferLen = 0; CloseFile(f); Result := True; finally InternetCloseHandle(hURL) end finally InternetCloseHandle(hSession) end; end; procedure TfrmPrincipal.edtChaveNFeKeyPress(Sender: TObject; var Key: Char); begin //Acbrnfe1.NotasFiscais.LoadFromFile := (ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.chNFe); BtImprimir.Enabled:= True; end; {begin try Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0; except Result := False; end; end; } function TfrmPrincipal.StripHTML(S: string): string; var TagBegin, TagEnd, TagLength: integer; begin TagBegin := Pos( '<', S); // search position of first < while (TagBegin > 0) do begin // while there is a < in S TagEnd := Pos('>', S); // find the matching > TagLength := TagEnd - TagBegin + 1; Delete(S, TagBegin, TagLength); // delete the tag TagBegin := Pos( '<', S); // search for next < end; Result := S; // give the result end; procedure TfrmPrincipal.btnPegarHTMLClick(Sender: TObject); begin PegarHTML; end; procedure TfrmPrincipal.PegarHTML; begin //edtChaveNFe.Text := Copy(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID, 4, 44); // EdChave.Text := Copy(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID, 4, 44); if not ValidarChave('NFe'+edtChaveNFe.Text) then begin MessageDlg('Chave Inválida.',mtError,[mbok],0); edtChaveNFe.SetFocus; exit; end; if trim(edtCaptcha.Text) = '' then begin MessageDlg('Digite o valor da imagem.',mtError,[mbok],0); edtCaptcha.SetFocus; exit; end; Memo2.Lines.Clear; Button1.Enabled := False; btnPegarHTML.Enabled := False; btnNovaConsulta.Enabled := False; btnGerarXML.Enabled := False; try WebBrowser1.OleObject.Document.all.Item('ctl00$ContentPlaceHolder1$txtChaveAcessoCompleta', 0).value := edtChaveNFe.Text; WebBrowser1.OleObject.Document.all.Item('ctl00$ContentPlaceHolder1$txtCaptcha', 0).value := edtCaptcha.Text; WebBrowser1.OleObject.Document.all.Item('ctl00$ContentPlaceHolder1$btnConsultar', 0).click; except btnNovaConsulta.Enabled := True; raise; end; PageControl1.ActivePageIndex := 0; end; procedure TfrmPrincipal.FormCreate(Sender: TObject); begin Dirxml := 'C:\XML\'; Dirpdf := 'C:\XML\\PDF\'; Dirxmlfor := 'C:\XML\XML_FORNECEDOR\'; DANFEFR.PathPDF := 'C:\XML\PDF\'; if not DirectoryExists(Dirpdf) then ForceDirectories(Dirpdf); if not DirectoryExists(Dirxmlfor) then ForceDirectories(Dirxmlfor); StringGridProdutos.ColWidths[0] := 20; // vazio StringGridProdutos.ColWidths[1] := 80; // código StringGridProdutos.ColWidths[2] := 100; // barras StringGridProdutos.ColWidths[3] := 260; // produto StringGridProdutos.ColWidths[4] := 30; // unidade StringGridProdutos.ColWidths[5] := 30; // cst StringGridProdutos.ColWidths[6] := 38; // Qtd StringGridProdutos.ColWidths[7] := 80; // valor unitario StringGridProdutos.ColWidths[8] := 80; // valor total StringGridProdutos.ColWidths[9] := 70; // % icms StringGridProdutos.ColWidths[10] := 100; // valor icms StringGridProdutos.ColWidths[11] := 50; // %IPI StringGridProdutos.ColWidths[12] := 70; // valor IPI //inicio do titulo das colunas StringGridProdutos.Cells[1,0] := 'Código'; StringGridProdutos.Cells[2,0] := 'Cód. Barras'; StringGridProdutos.Cells[3,0] := 'Descrição'; StringGridProdutos.Cells[4,0] := 'Und.'; StringGridProdutos.Cells[5,0] := 'CST'; StringGridProdutos.Cells[6,0] := 'Qtd.'; StringGridProdutos.Cells[7,0] := 'Valor Unit.'; StringGridProdutos.Cells[8,0] := 'Valor Total'; StringGridProdutos.Cells[9,0] := '% ICMS ST'; StringGridProdutos.Cells[10,0] := 'Valor ICMS ST'; StringGridProdutos.Cells[11,0] := '% IPI'; StringGridProdutos.Cells[12,0] := 'Valor IPI'; NovaConsulta; //DANFEFR.PathPDF.Empty; //DANFEFR.PathPDF := 'C:\XML\PDF\'; //DANFEFR.FastFile := 'C:\XML\DANFeRetrato_ti.fr3'; end; procedure TfrmPrincipal.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); var k, i: Integer; Source, dest: string; textoNFe : IHTMLDocument2; begin Application.ProcessMessages; if WebBrowser1.LocationURL = 'http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=' then begin for k := 0 to WebBrowser1.OleObject.Document.Images.Length - 1 do begin Source := WebBrowser1.OleObject.Document.Images.Item(k).Src; if (Source = 'http://www.nfe.fazenda.gov.br/scripts/srf/intercepta/captcha.aspx?opt=image') then begin dest := ExtractFilePath(ParamStr(0)) + 'captcha.gif'; DownloadFile(Source, dest); end; end; Image1.Picture.LoadFromFile(dest); btnPegarHTML.Enabled := True; end else if WebBrowser1.LocationURL = 'https://www.nfe.fazenda.gov.br/portal/visualizacaoNFe/completa/Default.aspx' then begin WebBrowser1.Navigate('https://www.nfe.fazenda.gov.br/PORTAL/visualizacaoNFe/completa/impressao.aspx'); end else if WebBrowser1.LocationURL = 'http://www.nfe.fazenda.gov.br/portal/consultaCompleta.aspx?tipoConteudo=XbSeqxE8pl8=' then begin textoNFe := WebBrowser1.Document as IHTMLDocument2; repeat Application.ProcessMessages; until Assigned(textoNFe.body); Memo2.Lines.Text := StripHTML(textoNFe.body.innerHTML); Memo2.Lines.Text := StringReplace(Memo2.Lines.Text,'&nbsp;','',[rfReplaceAll, rfIgnoreCase]); i := 0; while i < memo2.Lines.Count-1 do begin if trim(Memo2.Lines[i]) = '' then begin Memo2.Lines.Delete(i); i := i - 1; end; if pos('function',Memo2.lines[i])>0 then begin Memo2.Lines.Delete(i); i := i - 1; end; if pos('document',Memo2.lines[i])>0 then begin Memo2.Lines.Delete(i); i := i - 1; end; if pos('{',Memo2.lines[i])>0 then begin Memo2.Lines.Delete(i); i := i - 1; end; if pos('}',Memo2.lines[i])>0 then begin Memo2.Lines.Delete(i); i := i - 1; end; i := i + 1; end; Image1.Picture := nil; btnGerarXML.Enabled := True; GeraXml; end else if WebBrowser1.LocationURL = 'https://www.nfe.fazenda.gov.br/portal/inexistente_completa.aspx' then begin MessageDlg('NF-e INEXISTENTE na base nacional, favor consultar esta NF-e no site da SEFAZ de origem.',mtError,[mbok],0); Image1.Picture := nil; btnGerarXML.Enabled := True; btnNovaConsulta.Enabled := True; end else begin MessageDlg('Erro carregando URL: '+WebBrowser1.LocationURL,mtError,[mbok],0); Image1.Picture := nil; btnGerarXML.Enabled := True; btnNovaConsulta.Enabled := True; end; end; procedure TfrmPrincipal.WebBrowser1ProgressChange(Sender: TObject; Progress, ProgressMax: Integer); begin if ProgressMax = 0 then begin ProgressBar1.Visible := False; lblStatus.Visible := False; exit; end else begin ProgressBar1.Visible := True; lblStatus.Visible := True; try ProgressBar1.Max := ProgressMax; if (Progress <> -1) and (Progress <= ProgressMax) then ProgressBar1.Position := Progress else begin ProgressBar1.Visible := False; lblStatus.Visible := False; end; except on EDivByZero do exit; end; end; end; procedure TfrmPrincipal.btnNovaConsultaClick(Sender: TObject); begin NovaConsulta; end; procedure TfrmPrincipal.NovaConsulta; begin btnNovaConsulta.Enabled := False; btnGerarXML.Enabled := False; edtcaptcha.Text:=''; Button1.Enabled := True; // DeleteIECache; Memo2.Lines.Clear; WebBrowser1.Navigate('http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8='); end; procedure TfrmPrincipal.BtImprimirClick(Sender: TObject); begin //if FilesExists Acbrnfe1.NotasFiscais('C:\XML\XML_FORNECEDOR\'+(edtChaveNFe.Text)+'-nfe.xml') then //DANFEFR.FastFile := ''; //DANFEFR.PathPDF := ''; DANFEFR.FastFile := ExtractFileDir(application.ExeName) + '\DANFeRetrato_ti.fr3'; DANFEFR.PathPDF := 'C:\XML\PDF\'; ACBrNFe1.NotasFiscais.ImprimirPDF; //frxReport1.PrepareReport; //frxReport1.ShowPreparedReport; ACBrNFe1.NotasFiscais.Imprimir; ACBrNFe1.DANFE.MostrarPreview:= True; //carregaItens; //Acbrnfe1.NotasFiscais.LoadFromFile(''); //DANFEFR.PathPDF := EmptyStr; end; procedure TfrmPrincipal.BtAbrirXmlClick(Sender: TObject); var I: Integer; begin if OpenDialog1.Execute then begin caminho := ExtractFilePath(ParamStr(0)); ACBrNFe1.NotasFiscais.Clear; Acbrnfe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName); Acbrnfe1.NotasFiscais.SaveToFile('C:\XML\XML_FORNECEDOR\'); BtImprimir.Enabled := True; Edit1.Text := ACBrNFe1.NotasFiscais.Items[0].NFe.Emit.xNome; edtChaveNFe.Text := Copy(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID, 4, 44); EdChave.Text := Copy(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID, 4, 44); //edtChaveNFe.Text := caminho+'PDF\'; DANFEFR.PathPDF := 'C:\XML\PDF\'; //DANFEFR.dmDanfe.frxPDFExport.Start; //frxPDFExport.Start; DANFEFR.FastFile := ExtractFileDir(application.ExeName) + '\DANFeRetrato_ti.fr3'; //DANFEFR.FastFile := 'C:\XML\DANFeRetrato_ti.fr3'; //ACBrNFe1.NotasFiscais.Imprimir; carregaItens; end; end; procedure TfrmPrincipal.btnGerarXMLClick(Sender: TObject); var L: Integer; begin ACBrNFe1.NotasFiscais.Clear; GeraXML; ACBrNFe1.NotasFiscais.LoadFromFile(FPath); Acbrnfe1.NotasFiscais.SaveToFile(Dirxmlfor); Edit1.Text := ACBrNFe1.NotasFiscais.Items[0].NFe.Emit.xNome; edtChaveNFe.Text := Copy(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID, 4, 44); EdChave.Text := Copy(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID, 4, 44); carregaItens; end; procedure TfrmPrincipal.GeraXml; var i: integer; begin FPath:=GerarXML(Memo2.Lines.Text); WBXML.Navigate(FPath); MessageBox(0,PChar('XML '+FPath+' gerado com sucesso!'),'Informação', MB_ICONINFORMATION+MB_TASKMODAL); btnNovaConsulta.Enabled := True; btnPegarHTML.Enabled := True; ACBrNFe1.NotasFiscais.LoadFromFile(FPath); Edit1.Text := ACBrNFe1.NotasFiscais.Items[0].NFe.Emit.xNome; edtChaveNFe.Text := Copy(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID, 4, 44); EdChave.Text := Copy(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID, 4, 44); carregaItens; PageControl1.ActivePageIndex := 3; end; procedure TfrmPrincipal.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key=vk_escape then Close; end; procedure TfrmPrincipal.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmPrincipal.Button1Click(Sender: TObject); begin PegarHTML; BtImprimir.Enabled := True; DANFEFR.PathPDF := 'C:\XML\PDF\'; DANFEFR.FastFile := ExtractFileDir(application.ExeName) + '\DANFeRetrato_ti.fr3'; ACBrNFe1.DANFE.MostrarPreview:= True; { frxPDFExport.Creator := 'Ti Management'; frxPDFExport.Producer := 'Ti Management'; frxPDFExport.Title := 'DANFE PDF'; frxPDFExport.Subject := 'DANFE PDF'; frxPDFExport.Keywords := 'DANFE PDF'; frxPDFExport.ShowDialog := False; } end; procedure TfrmPrincipal.Button2Click(Sender: TObject); var lerpdf: string; ler: WideChar; begin //lerpdf:= ExtractFileDir(application.ExeName) + '\PDF\'+(EdChave.Text)+'.pdf'; //ReadState('\PDF\'+(EdChave.Text)+'.pdf'); {ler:= StringToWideChar('C:\XML\PDF\'+(EdChave.Text)+'.pdf'); lerpdf:= (ler); ShellExecute(Handle, nil, (lerpdf), nil, nil, SW_SHOWNORMAL);} end; procedure TfrmPrincipal.carregaItens; var i: integer; orig,cst,x: string; peripi,valipi,valpro,vcem,a,b,c: Double; begin //s := IntToStr(n); StringGridProdutos.RowCount := ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Count+1; for i := 0 to ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Count - 1 do begin orig := OrigToStr(ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Imposto.ICMS.orig); cst := CSTICMSToStr(ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Imposto.ICMS.CST); peripi:= (ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Imposto.IPI.pIPI); valipi:= (ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Imposto.IPI.vIPI); valpro:= (ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Prod.vProd); vcem:=100; StringGridProdutos.Cells[1,i+1] := ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Prod.cProd; StringGridProdutos.Cells[2,i+1] := ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Prod.cEANTrib; StringGridProdutos.Cells[3,i+1] := ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Prod.xProd; StringGridProdutos.Cells[4,i+1] := ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Prod.uCom; StringGridProdutos.Cells[5,i+1] := (orig+cst); StringGridProdutos.Cells[6,i+1] := FormatFloat('###,###,###0', ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Prod.qCom); StringGridProdutos.Cells[7,i+1] := FormatFloat('R$ ###,###,###0.00', ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Prod.vUnCom); StringGridProdutos.Cells[8,i+1] := FormatFloat('R$ ###,###,###0.00', ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Prod.vProd); StringGridProdutos.Cells[9,i+1] := FormatFloat('###,###,###0.00 %', ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Imposto.ICMS.pICMSST); StringGridProdutos.Cells[10,i+1] := FormatFloat('R$ ###,###,###0.00', ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Imposto.ICMS.vICMSST); //StringGridProdutos.Cells[10,i+1] := FormatFloat('###,###,###0.00', ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Imposto.IPI.pIPI); StringGridProdutos.Cells[12,i+1] := FormatFloat('R$ ###,###,###0.00', ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Imposto.IPI.vIPI); if ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Imposto.IPI.vIPI > 0 then a:= (valipi / valpro); b:= (a * vcem); x:= (FloatToString( ); if ( > Trunc(b ) then x:= FloatToStr(Trunc(b )) else x:= FloatToStr(Trunc(b )); //c:= (a / ; //peripi:= b; StringGridProdutos.Cells[11,i+1] := x+' %'; //if not ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Imposto.IPI.vIPI > 0 then //StringGridProdutos.Cells[10,i+1] := FormatFloat('###,###,###0.00', ACBrNFe1.NotasFiscais.Items[0].NFe.Det[i].Imposto.IPI.pIPI); BtImprimir.Enabled := True; end; end; procedure TfrmPrincipal.Label3Click(Sender: TObject); begin NovaConsulta; end; end. Desde já agradeço e peço desculpas, caso tenha infringido alguma das regras do forum. RecuperarXML.rar
×
×
  • 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.