Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Ola Boa Noite

Precisando de uma ajuda, meu sistema tem botão chamado fechar mês o msm esta dado erro seguinte mensagem "Argument out of range" na quando clico.

erro da quando passa por esta procedure apos passar por ela dar a mensagem.

procedure TfrmNFCe.GerarXml;
var
  dia, mes, ano: Word;
begin

  ACBrNFeDANFCeFortesA41.MostraPreview := false;
  ACBrNFeDANFCeFortesA41.MostraStatus := false;
  try
    ACBrNFe.NotasFiscais.Clear;
    if (qryXMLSITUACAO.Value = 'T') then
      ACBrNFe.NotasFiscais.LoadFromString(qryXMLXML.AsString);

    if (qryXMLSITUACAO.Value = 'C') then
      ACBrNFe.NotasFiscais.LoadFromString(qryXMLXML_CANCELAMENTO.AsString);

    ACBrNFe.DANFE := ACBrNFeDANFCeFortesA41;
    ACBrNFe.DANFE.Cancelada := false;
    if qryVendaSITUACAO.Value = 'C' then
      ACBrNFe.DANFE.Cancelada := true;
    ACBrNFe.DANFE.vTribFed := qryXMLTRIB_FED.AsFloat +
      qryXML.FieldByName('TRIB_IMP').AsFloat;
    ACBrNFe.DANFE.vTribEst := qryXMLTRIB_EST.AsFloat;
    ACBrNFe.DANFE.vTribMun := qryXMLTRIB_MUN.AsFloat;
    ACBrNFe.DANFE.PathPDF := Dados.qryConfigPATHPDF.Value;
    ACBrNFe.NotasFiscais.ImprimirPDF;

    if (qryXMLSITUACAO.Value = 'T') or (qryXMLSITUACAO.Value = 'C') then
      ACBrNFe.NotasFiscais.GravarXML();

  finally
   ACBrNFeDANFCeFortesA41.MostraPreview := true;
   ACBrNFeDANFCeFortesA41.MostraStatus := true;
  end;

end;

 

Ele da este mensagem de erro 

 

image.png.d9bcdb50eef5bf57ed8ebdaa4b7f362f.png

 

assim nao executa os demais rotinas do botao.

Pelos teste q venho fazendo quando retiro este codigo abaixo consigo gerar o zipado com xml  dar sequencia do resto do processo, mais nao consigo executar a rotina e Salvar o PDF das notas na pasta.

 ACBrNFe.DANFE.PathPDF := Dados.qryConfigPATHPDF.Value;
    ACBrNFe.NotasFiscais.ImprimirPDF;

 

Postado
procedure TACBrNFeDANFCeFortesA4.ImprimirDANFEPDF(NFE: TNFe);
begin
  if NFe = nil then
   begin
     if not Assigned(ACBrNFe) then
        raise Exception.Create('Componente ACBrNFe não atribuí­do');

     FpNFe := TACBrNFe(ACBrNFe).NotasFiscais.Items[0].NFe;       >>>> NESTE PONTO DA ERRO
   end
  else
    FpNFe := NFE;
  Imprimir(False, fiPDF);
end;

 

 

e para aqui 

 

procedure TWinControl.MainWndProc(var Message: TMessage);
begin
  try
    try
      WindowProc(Message);
    finally
      FreeDeviceContexts;
      FreeMemoryContexts;
    end;
  except
    Application.HandleException(Self);
  end;
end;

  • Moderadores
  • Solution
Postado
17 horas atrás, CHARLESSPOT disse:

Precisando de uma ajuda, meu sistema tem botão chamado fechar mês o msm esta dado erro seguinte mensagem "Argument out of range" na quando clico.

Provavelmente está sendo informando um XML inválido para o método ACBrNFe.NotasFiscais.LoadFromString.

Você pode testar o retorno desse método pra saber se o XML foi carregado ou não.

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Moderadores
Postado
7 minutos atrás, CHARLESSPOT disse:

Ola Bom dia

 

Eu nao tenho muito conhecimento talvez voces me passar como eu poderia fazer o teste do retorno deste metodo. 

var
  CarregouXML: Boolean;
begin
  ACBrNFe.NotasFiscais.Clear;
  CarregouXML := ACBrNFe.NotasFiscais.LoadFromString(XML);
  if not CarregouXML then
    raise Exception.Create('Erro ao carregar o XML');
end;

 

  • Curtir 2
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

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