Ir para conteúdo
  • Cadastre-se

dev botao

Inserir produtos na NFE


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

Recommended Posts

Boa noite, meu primeiro post, tenho meu sistema de vendas funcionando, consigo gerar a nfe com os dados da venda, ou quase, minha logica para inserir os produtos não funciona, ele até insere a quantidade de itens, porém sempre o primeiro item do dataset. Exemplo se vendo um carro um barco e um avião e um helicoptero, ele lança 4 carros na nfe.


for Produto := 1 to TotalItens do

  begin

      with Det.Add do


       begin

         Prod.nItem    := Produto; 

         Prod.cProd    := DM.CDS.FieldByName('PRODUTO').Value;

Não quero o codigo, somente entender esta logica, pois pego o total de itens da venda por um comando recordcount que me traz o toal de itens da nota numero tal. Jogo nesse for, porém não sei como na segunda volta do loop ele enviar o segundo item do dataset. Espero que entendam minha duvida.

Link para o comentário
Compartilhar em outros sites

- Mande o dataset ir para o primeiro registro e zere a variável "Produto":

=====================================================

DM.CDS.First;

Produto := 0;

=====================================================

- Substitua o "for" por um "while not DM.CDS.Eof"

=====================================================

while not DM.CDS.Eof do // for Produto := 1 to TotalItens do

begin

with Det.Add do

begin

Produto := Produto + 1; // Ou inc(Produto)

Prod.nItem := Produto;

Prod.cProd := DM.CDS.FieldByName('PRODUTO').Value;

=====================================================

- Linha imprescindível para evitar um "Loop eterno"

=====================================================

DM.CDS.Next;

=====================================================

- Código "Completo"

=====================================================

DM.CDS.First;

Produto := 0;

while not DM.CDS.Eof do

begin

with Det.Add do

begin

Produto := Produto + 1;

Prod.nItem := Produto;

Prod.cProd := DM.CDS.FieldByName('PRODUTO').Value;

end; // with Det.Add do

DM.CDS.Next;

end; // while not DM.CDS.Eof

Peterson de Cerqueira Matos
[email protected]
Vivo: (11) 97197-1474 / Oi: (11) 98059-4055

Link para o comentário
Compartilhar em outros sites

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