Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa noite.

Estou gerando o sintegra e o registro 50 está repetindo a mesma NF.

Ocorre o erro "Projeto elevou classe exceção External:SIGSEGV". Quando eu mando os dados só uma Nota Fiscal, o erro não ocorre.

PS: Eu uso o Lazarus.

Grato,

Tércio Lins.

  • Consultores
Postado

Como ou que código você está usando para gerar os registros 50?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Como ou que código você está usando para gerar os registros 50?

Boa noite.

Eu segui o exemplo do componente. (em Delphi pois não tem com Lazarus).

Conferi passo a passo e o loop está mudando a NF porém, quando ele gera o .txt os dados da primeira é repetido nas demais.

Quando eu desabilito o while, não ocorre a mensagem de erro e gera correto o registro.

if Result then

begin

Dm.Tabela.First;

while not Dm.Tabela.EOF do

begin

wregistro50.CPFCNPJ:=Dm.Tabela.FieldByName('CNPJ').Value;

wregistro50.Inscricao:=Dm.Tabela.FieldByName('IE').Value;

wregistro50.DataDocumento:=Dm.Tabela.FieldByName('DATA').Value;

wregistro50.UF:=Dm.Tabela.FieldByName('UF').Value;

wregistro50.Modelo:=Dm.Tabela.FieldByName('MODELO').Value;

wregistro50.Serie:=Dm.Tabela.FieldByName('SERIE').Value;

wregistro50.Numero:=Dm.Tabela.FieldByName('NUMERO').Value;

wregistro50.Cfop:=Dm.Tabela.FieldByName('CFOP').Value;

wregistro50.EmissorDocumento:=Dm.Tabela.FieldByName('EMITENTE').Value;

wregistro50.ValorContabil:=Dm.Tabela.FieldByName('TOTAL').Value;

wregistro50.BasedeCalculo:=Dm.Tabela.FieldByName('BASEICMS').Value;

wregistro50.Icms:=Dm.Tabela.FieldByName('VALORICMS').Value;

wregistro50.Isentas:=Dm.Tabela.FieldByName('ISENTO').Value;

wregistro50.Outras:=Dm.Tabela.FieldByName('OUTROS').Value;

wregistro50.Aliquota:=Dm.Tabela.FieldByName('ALICMS').Value;

wregistro50.Situacao:='N';

Registros50.Add(wregistro50);

Dm.Tabela.Next;

end;

end;

Grato pela disposição,

Tércio Lins.

  • Moderadores
Postado

Você precisa criar "wregistro50", setar os dados e fazer o "Registro50.add".


if Result then
begin
Dm.Tabela.First;
while not Dm.Tabela.EOF do
begin
wregistro50 := TRegistro50.Create;

wregistro50.CPFCNPJ:=Dm.Tabela.FieldByName('CNPJ').Value;
wregistro50.Inscricao:=Dm.Tabela.FieldByName('IE').Value;
wregistro50.DataDocumento:=Dm.Tabela.FieldByName('DATA').Value;
wregistro50.UF:=Dm.Tabela.FieldByName('UF').Value;
wregistro50.Modelo:=Dm.Tabela.FieldByName('MODELO').Value;
wregistro50.Serie:=Dm.Tabela.FieldByName('SERIE').Value;
wregistro50.Numero:=Dm.Tabela.FieldByName('NUMERO').Value;
wregistro50.Cfop:=Dm.Tabela.FieldByName('CFOP').Value;
wregistro50.EmissorDocumento:=Dm.Tabela.FieldByName('EMITENTE').Value;
wregistro50.ValorContabil:=Dm.Tabela.FieldByName('TOTAL').Value;
wregistro50.BasedeCalculo:=Dm.Tabela.FieldByName('BASEICMS').Value;
wregistro50.Icms:=Dm.Tabela.FieldByName('VALORICMS').Value;
wregistro50.Isentas:=Dm.Tabela.FieldByName('ISENTO').Value;
wregistro50.Outras:=Dm.Tabela.FieldByName('OUTROS').Value;
wregistro50.Aliquota:=Dm.Tabela.FieldByName('ALICMS').Value;
wregistro50.Situacao:='N';

Registros50.Add(wregistro50);

Dm.Tabela.Next;
end;
end;
[/code]

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Postado

Você precisa criar "wregistro50", setar os dados e fazer o "Registro50.add".


if Result then

begin

  Dm.Tabela.First;

  while not Dm.Tabela.EOF do

  begin

    wregistro50 := TRegistro50.Create;


    wregistro50.CPFCNPJ:=Dm.Tabela.FieldByName('CNPJ').Value;

    wregistro50.Inscricao:=Dm.Tabela.FieldByName('IE').Value;

    wregistro50.DataDocumento:=Dm.Tabela.FieldByName('DATA').Value;

    wregistro50.UF:=Dm.Tabela.FieldByName('UF').Value;

    wregistro50.Modelo:=Dm.Tabela.FieldByName('MODELO').Value;

    wregistro50.Serie:=Dm.Tabela.FieldByName('SERIE').Value;

    wregistro50.Numero:=Dm.Tabela.FieldByName('NUMERO').Value;

    wregistro50.Cfop:=Dm.Tabela.FieldByName('CFOP').Value;

    wregistro50.EmissorDocumento:=Dm.Tabela.FieldByName('EMITENTE').Value;

    wregistro50.ValorContabil:=Dm.Tabela.FieldByName('TOTAL').Value;

    wregistro50.BasedeCalculo:=Dm.Tabela.FieldByName('BASEICMS').Value;

    wregistro50.Icms:=Dm.Tabela.FieldByName('VALORICMS').Value;

    wregistro50.Isentas:=Dm.Tabela.FieldByName('ISENTO').Value;

    wregistro50.Outras:=Dm.Tabela.FieldByName('OUTROS').Value;

    wregistro50.Aliquota:=Dm.Tabela.FieldByName('ALICMS').Value;

    wregistro50.Situacao:='N';


    Registros50.Add(wregistro50);


    Dm.Tabela.Next;

  end;

end;

Bom dia Regys.

No início da função a variável é criada - desculpe-me, eu não coloquei.

Você colocou o registro dentro do loop. para cada NF será criado um wregistro50?

Vou alterar e retorno o resultado.

Grato,

Tércio Lins.

Postado

Isso mesmo, porque veja no Add, ele adiciona o ponteiro da variavel criada a lista de registros, se fizer uma vez só, na verdade você estará alterando o já criado.

Boa tarde.

Eu fiz a alteração e resolveu o problema.

Agradeço a ajuda,

Tércio Lins.

  • Este tópico foi criado há 4555 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.