Jump to content

dev botao

Erro Acbrsintegra Registro 54


Roney Melo
Go to solution Solved by Roney Melo,
  • Este tópico foi criado há 3854 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

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 ?
 

 

Link to comment
Share on other sites

  • Solution

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

Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.