Ir para conteúdo
  • Cadastre-se

dev botao

Erro Acbrsintegra Registro 54


Ver Solução Respondido por Roney Melo,
  • Este tópico foi criado há 3933 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa noite pessoal, estou implementando em meu sistema a rotina para geração de arquivo sintegra, porém estou enfrentando um problema no registro 54, bom oque acontece é o seguinte, os registros são passados para o componente sem problemas, porém quando manda a função ACBrSintegra.GeraArquivo, ele me retorna um erro "Invalid Pointer Operation", fui a busca desse erro, percebi que no arquivo "ACBrSintegra.pas" na linha 2445 dentro da procedure "LimparRegistros" o erro ocorre no seguinte trecho:

 

 

FRegistros50.Clear;
FRegistros51.Clear;
FRegistros53.Clear;
FRegistros54.Clear;>>>>>>>>> Quando chega aqui é que ocorre o erro.
FRegistros55.Clear;
FRegistros56.Clear;
FRegistros60M.Clear;
 
 
minha rotina de geração do arquivo:
var wregistro54:= TRegistro54;
wregistro54:= TRegistro54.Create;
 
wregistro54.CPFCNPJ:= wregistro50.CPFCNPJ;
wregistro54.Modelo:= wregistro50.Modelo;
wregistro54.Serie:= wregistro50.Serie;
wregistro54.Numero:= wregistro50.Numero;
wregistro54.Cfop:= Trim(qryS54EID_CFOP.AsString);
wregistro54.CST:= Trim(qryS54ECST.AsString);
wregistro54.NumeroItem:= SeqItem;
wregistro54.Codigo:= Trim(qryS54EID_PRODUTO.AsString);
wregistro54.Descricao:= '';
wregistro54.Quantidade:= qryS54EQUANTIDADE.AsFloat;
wregistro54.Valor:= qryS54EVALOR_TOTAL_BRUTO.AsFloat;
wregistro54.ValorDescontoDespesa:= qryS54EDESCONTO_VALOR.AsFloat;
wregistro54.BasedeCalculo:= qryS54EBC_ICMS.AsFloat;
wregistro54.BaseST:= qryS54EBC_ICMS_ST.AsFloat;
wregistro54.ValorIpi:= qryS54EVALOR_IPI.AsFloat;
wregistro54.Aliquota:= qryS54EALIQUOTA_ICMS.AsFloat;
ACBrSintegra.Registros54.Add(wregistro54);
 
Alguém já passou por situação parecida ?
 

 

  • Solution
Postado

Pessoal desconsiderem, o problema é que eu estou usando um laço While e estava dando o create na variavel somente uma vez, o create tem que ocorrer a cada nova passada no laço tipo estava:

 

wregistro54:= TRegistro54.Create;

while not qryitemnota.eof do

begin

   comandos......

end;

 

o correto é

while not qryitemnota.eof do

begin

  wregistro54:= TRegistro54.Create;

  comandos......

end;

 

coloquei dessa forma funcionou perfeitamente........

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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