Pesquisar na Comunidade
Showing results for tags 'loadfromstream'.
Encontrado 5 registros
-
Problema ao carregar um XML pelo LoadFromString - Trunk2
um tópico no fórum postou leandroksc ACBrNFe
A rotina de leitura do XML TNotasFiscais.LoadFromString possui a seguinte verificação: function PosNFe: integer; begin Result := pos('</NFe>', AXMLString); end; O problema é que anteriormente os arquivos XML eram gerados com a tag "</Nfe>" (com o F minúsculo), fazendo com que essa rotina de Pos não encontre a tag e a leitura do XML acaba não acontecendo... O mesmo problema ocorre na NFSe. É possível converter essa verificação para algo em Case Insensitive? Obrigado a todos! -
Sugestão de alteração na função PrepareReportEvento da unit ACBrNFeDANFEFR
um tópico no fórum postou Fabiano Ribeiro ACBrNFe
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 -
O trecho abaixo: Do nada ao passar para o RAD Studio XE2, passou dar problema que o arquivo está sendo cortado. O erro acontece ao repassar o valor para ArquivoXML.Text, nessa linha o texto já vem cortado. A solução paliativa que fiz, foi usar o comando LoadFromString direto do meu campo onde está o RPS, na ocasião estou lendo meu xml direto de um camo BLOB do banco de dados, segue exemplo: if cdsNFS.FieldByName('XMLRPS_NFS_NOTA').AsString <> '' then dmComercial.ACBrNFSe1.NotasFiscais.LoadFromString(cdsNFS.FieldByName('XMLRPS_NFS_NOTA').AsString) else if cdsNFS.FieldByName('XMLNFSE_NFS_NOTA').AsString <> '' then dmComercial.ACBrNFSe1.NotasFiscais.LoadFromString(cdsNFS.FieldByName('XMLNFSE_NFS_NOTA').AsString) else raise Exception.Create('XML da NFS-e ou RPS não pode ser lido. Favor verificar a emissão da NFS-e.'); Tenho isso gravado no banco pelo fato de cliente perder xml, logo, fica tudo la registrado, e ao emitir é gravado o campo, e para transmitir passo para outra tela... (isso aqui não importa muito, estou dizendo a titulo de explicar...) O estranho é a variavel LocNFSeR.Leitor.Arquivo ter o corte já logo no inicio. Em anexo segue o rps que fiz o load. (note que troquei apenas os dados do emissor e cliente) function TNotasFiscais.LoadFromStream(Stream: TStringStream): boolean; var LocNFSeR : TNFSeR; ArquivoXML: TStringList; XML : AnsiString; Tipo: Integer; {$IFDEF DELPHI2009_UP} Encoding : TEncoding; {$ENDIF} CodigoMunicipio, Prestador, RazaoSocial, CNPJ, IM, NumeroRPS, SerieRPS, TipoRPS: String; ok: Boolean; begin try Result := True; LocNFSeR := TNFSeR.Create(Self.Add.NFSe); ArquivoXML := TStringList.Create; LocNFSeR.Leitor.CarregarArquivo(Stream); ArquivoXML.Text := LocNFSeR.Leitor.Arquivo; ArquivoXML.Text := StringReplace(StringReplace( ArquivoXML.Text, '<', '<', [rfReplaceAll]), '>', '>', [rfReplaceAll]); ArquivoXML.Text := NotaUtil.RetirarPrefixos(ArquivoXML.Text); 2015000000161021-Rps.xml 2015000000161021-Rps.xml
-
Adicionar Parâmetro Agerarnfe Nos Métodos Loadfrom...
um tópico no fórum postou Daniel Sonda ACBrNFe
Utilizo o componente TACBrNFe para importar ler os dados das notas que o usuário recebe e então importá-la para o ERP. Utilizo o método LoadFromStream da classe TNotasFiscais para carregar o conteúdo do XML. Esse método, além do LoadFromFile e LoadFromString, executam o método GerarNFe após carregar os dados, fazendo com que a chave da NFe seja remontada. Entretanto, no caso de NFe avulsa, o CNPJ do emitente presente na chave é o CNPJ da SEFAZ e não da empresa que emitiu a nota. Então após carregar o XML, a chave acaba sendo alterado porque é remontada usando o CNPJ da empresa emitente. Verifique os métodos idênticos no CTe e eles possuem um parâmetro adicional para não executar o GerarCTe, criado a pedido deste post Implementei a mesma lógica nos métodos da NFe na minha working copy, mas acredito que poderiam ser incorporados ao trunk.- 6 replies
-
- LoadFromFile
- LoadFromString
- (e 1 mais)
-
Boa tarde. Diante de uma necessidade, estou fazendo carregando o XML de CTe gerado há vários meses atrás. Como foi alterado a forma de Gerar Chave pela PL_104, Acredito ser desnecessário a chamada da função "GerarCTe;" dentro da função LoadFromStream da unit ACBrCTeConhecimentos. Essa chamada, faz com que a Chave seja gerada novamente, e o digito acaba não sendo igual, ou seja, a chave é gerada com numeração diferente. Abs.
- 21 replies
-
- cte
- loadfromstream
-
(e 1 mais)
Tags: