Ir para conteúdo
  • Cadastre-se

dev botao
  • Este tópico foi criado há 2355 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado (editado)

Pessoal, estou com um pequeno problema.. mais um

 

Eu gravo o XML gerado no Banco de dados, e quando vou fazer o cancelamento no demo do ACBR tem a opção

 

   ACBrSAT1.CFe.LoadFromFile( OpenDialog1.FileName );
    ACBrSAT1.CFe2CFeCanc;
 
porém eu precisava carregar o XML que está no Banco de dados...
 
estou tentando dessa forma..
 
   ACBrSAT1.CFe.AsXMLString   := Vendas.FieldbyName('arquivoXML').asstring;
    ACBrSAT1.CFe2CFeCanc;
 
desta forma da um erro...
 
aproveitando este post, no caso do Cancelamento eu devo carregar o XML que gerei ou o XML que o SAT me retornou??

 

Editado por netsolutions
Postado (editado)

desta forma da um erro...
 

Que erro? Aqui eu uso e é de boa.

deve sempre carregar o xml que o sat retornou pra vc

Editado por sossystem
Postado (editado)

Segue anexo o erro, fala que não tem nenhum XML carregado na memoria, mas se eu fizer um showmessage(Vendas.FieldbyName('arquivoXML').asstring)

 

ele está trazendo o XML corretamente.. como você fez para carregar o arquivo XML ?

post-1567-0-68270700-1434744782_thumb.jp

Editado por netsolutions
Postado

aqui eu fiz um exemplo pratico para impressao na verdade. Coloquei 2 editbox e carreguei para o componente o conteudo deles antes de mandar imprimir. Quando vc faz um showmessage, o xml nao aparece truncado nem nada?

Vc nao consegue debugar e ver o valor dos campos do componente depois de carregar, para ver se realmente carregou?

Postado
sossystem , Aparece o XML na Integra no showmessage não trunca não.. aparentemente tudo OK

 

Daniel, nesse caso ele procura o caminho do Arquivo, se eu passar a string com o XML não vai funcionar vai??

e se usar o metodo CancelarUltimaVenda vai cancelar a última?? eu gostaria de deixar o usuario escolher a venda que quer cancelar, por isso precisava carregar o xml para cancelar a respeciva venda.

Postado

Tenta fazer o que o Daniel falou. Acredito que vc esteja achando que isso vai cancelar a ultima venda, mas na verdade nao, o nome que a sefaz deu ao metodo é CancelarUltimaVenda, mas na verdade ele cancela o XML que vc carregou no componente (desde que seja de até 30min atras)

  • Curtir 1
  • 3 semanas depois ...
Postado

Também estou com problemas para ler o Xml do BD.
Por vários motivos, tive que implementar à parte toda a lógica de impressão dos extratos de Venda e Cancelamento.
O meu problema é no extrato de cancelamento.  Como optei por não depender de I/O em disco para ficar lendo
arquivos xml, eu faço a carga do componente a partir dos campos de meu BD, usando XXX.AsXMLString.
Funciona para carregar o xml de venda, mas não para o de cancelamento:

ACBrSAT.CFe.AsXMLString     := Qcupons.FieldByName ('XMLV').asAnsiString;  => Funciona
ACBrSAT.CFeCanc.AsXMLString := Qcupons.FieldByName ('XMLC').asAnsiString;  (usando este comando, as tags do componente vêm em branco)

Para contornar o problema, tive que momentâneamente usar o arquivo em disco, como mostrado abaixo:

ACBrSAT.CFe.AsXMLString     := Qcupons.FieldByName ('XMLV').asAnsiString;  => Funciona
ACBrSAT.CFeCanc.LoadFromFile ('C:\S@T\XML\Cancelamento\CFe35150711111111111111591234567890000477620232-can.xml');  => Funciona

Observação:  o comando abaixo também não teve efeito:

ACBrSAT.CFe.AsXMLString     := Qcupons.FieldByName ('XMLV').asAnsiString;  => Funciona
ACBrSAT.CFeCanc.SetXMLString (Qcupons.FieldByName ('XMLC').asAnsiString);  (usando este comando, as tags do componente vêm em branco)


Resumindo:  CFeCanc.LoadFromFile funciona, e CFeCanc.AsXMLString não!

  • 2 meses depois ...
Postado

Retomando o assunto:
Quando de uma reimpressão do cupom de cancelamento, estou carregando o xml da venda:

ACBrSAT.CFe.AsXMLString := Qcupons.FieldByName ('XMLV').asAnsiString;

ACBrSAT.CFeCanc.LoadFromFile ('E:\EXE\xxx\Cancelamentos\201509\ADC35150908930755000105590000518170000081399960.XML');

Deste jeito está funcionando, mas tenho também o xml de cancelamento armazenado no meu BD, e quando tento carregá-lo pelo comando:

ACBrSAT.CFeCanc.AsXMLString := Qcupons.FieldByName ('XMLC').asAnsiString;

os "Dados do Cupom Fiscal de Cancelamento" saem em branco no cupom.

  • Fundadores
Postado

Testei aqui, e tudo está funcionando a contento...

Provavelmente você está carregando com o AsXMLString, a versão de envio (sem o ID)...

Verifique se o XML de Cancelamento que você está armazenando, é o XML de Resposta do SAT.. (ele deve conter a Tag ID)

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • 4 semanas depois ...
Postado

Bom  desculpem retomar esse assunto, mas  estou com um problema.. e acho que cai bem aqui.

Todo mês precisaremos enviar os Xmls gerados pelo SAT para o contador, até ai tudo bem, bom gravei os XMLs no BD, alguém sabe como eu faria para exportar esses XMLs?? para gerar os arquivos referentes a cada cupom emitido?

é possível carrega-los no acbr para gerar tudo de uma vez??

  • 1 mês depois ...
Postado

Jugger72

Para carregar o XML no ACBrSAT.CFeCanc você deve usar:

ACBrSAT.CFeCanc.SetXMLString( StringXML );
ACBrSAT.CFeCanc.Gerar( True );

Quando você carrega a string do XML sem ser pelo LoadFromFile ele só armazena, mas não lê e distribui para as suas propriedades o conteúdo do XML, para isso você deve usar o Gerar.

 

Sei que faz tempo que você mandou, mas sou novo aqui e vi só hoje esse tópico.
Valeu, falou... 

  • Curtir 1
  • 2 anos depois...
Postado

  With tb512 do begin
         First;
         prog.Properties.Max := tb512.RecordCount;
         While not Eof do begin
            DtmFisco.NFE.NotasFiscais.Clear;
            DtmFisco.NFE.NotasFiscais.LoadFromString(tb512.fieldByName('XML').AsString);
            If somentegerar.Checked then
               DtmFisco.NFE.NotasFiscais.Items[0].GravarXML()
            Else Begin
               DtmFisco.NFe.NotasFiscais.Assinar;
               DtmFISCO.NFE.Consultar;
               SRetorno := DtmFisco.NFE.WebServices.Consulta.cStat;
               If ((SRetorno = 100) Or (SRetorno = 101) Or (SRetorno = 150)) then
                  DtmFisco.NFE.NotasFiscais.Items[0].GravarXML()
               Else lista.Items.Add(tb512.fieldByName('NOTFIS').AsString+' Motivo - '+DtmFisco.NFE.WebServices.Consulta.XMotivo);
            End;
            prog.Position := prog.Position + 1;
            Application.ProcessMessages;
            Next;
         End;
         prog.Positio

  • Moderadores
Postado
35 minutos atrás, Sergio Back disse:

  With tb512 do begin
         First;
         prog.Properties.Max := tb512.RecordCount;
         While not Eof do begin
            DtmFisco.NFE.NotasFiscais.Clear;
            DtmFisco.NFE.NotasFiscais.LoadFromString(tb512.fieldByName('XML').AsString);
            If somentegerar.Checked then
               DtmFisco.NFE.NotasFiscais.Items[0].GravarXML()
            Else Begin
               DtmFisco.NFe.NotasFiscais.Assinar;
               DtmFISCO.NFE.Consultar;
               SRetorno := DtmFisco.NFE.WebServices.Consulta.cStat;
               If ((SRetorno = 100) Or (SRetorno = 101) Or (SRetorno = 150)) then
                  DtmFisco.NFE.NotasFiscais.Items[0].GravarXML()
               Else lista.Items.Add(tb512.fieldByName('NOTFIS').AsString+' Motivo - '+DtmFisco.NFE.WebServices.Consulta.XMotivo);
            End;
            prog.Position := prog.Position + 1;
            Application.ProcessMessages;
            Next;
         End;
         prog.Positio

Boa tarde, Sergio Back.

Tópico antigo. Sugiro que crie um novo, relatando sua dúvida ou problema.

  • Curtir 1
Equipe ACBr

Felipe Eduardo Resende Mesquita

Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

 

 

 

  • Este tópico foi criado há 2355 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...