Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia!

 

Estou tentando gerar o XML de uma NF-e de Entrada com Declaração de Importação e Adição, porém estou tendo problemas ao inserir as Adições, o erro está ocorrendo na linha: 

with DI.adi.Add do

 

O que devo alterar no código abaixo?

 

                  if not QryDI.IsEmpty then
                  begin
                    QryDI.First;
                    while not QryDI.Eof do
                    begin
                      with Prod.DI.Add do
                      begin
                        nDi         := QryDI.FieldByName('NUM_DOC_IMP'     ).AsString;
                        dDi         := QryDI.FieldByName('DATA_REGISTRO'   ).Value;
                        xLocDesemb  := QryDI.FieldByName('LOCAL_DESEMB'    ).AsString;
                        UFDesemb    := QryDI.FieldByName('UF_DESEMB'       ).AsString;
                        dDesemb     := QryDI.FieldByName('DATA_DESEMB'     ).Value;
                        tpViaTransp := QryDI.FieldByName('VIA_TRANSP'      ).Value;
                        vAFRMM      := QryDI.FieldByName('VLR_AFRMM'       ).Value;
                        tpIntermedio:= QryDI.FieldByName('TIPO_IMPORT'     ).Value;
                        CNPJ        := QryDI.FieldByName('CNPJ_ADQUIRENTE' ).AsString;
                        UFTerceiro  := QryDI.FieldByName('UF_ADQUIRENTE'   ).AsString;
                        cExportador := QryDI.FieldByName('COD_EXPORTADOR'  ).AsString;


                        QryAdicao.Close;
                        QryAdicao.ParamByName('p_id_entrada').Value := QryItensEntr.FieldByName('ID_NF_ENT').Value;
                        QryAdicao.ParamByName('p_id_di'     ).Value :=        QryDI.FieldByName('ID'       ).Value;
                        QryAdicao.Open;

                        if not QryAdicao.IsEmpty then
                        begin
                          QryAdicao.First;
                          while not QryAdicao.Eof do
                          begin
                            with DI.adi.Add do
                            begin
                              Adicao.nAdicao     := QryAdicao.FieldByName('NUMERO'        ).Value;
                              Adicao.nSeqAdi     := QryAdicao.FieldByName('SEQUENCIA'     ).Value;
                              Adicao.cFabricante := QryAdicao.FieldByName('COD_FABRICANTE').AsString;
                              Adicao.vDescDI     := QryAdicao.FieldByName('VLR_DESCONTO'  ).Value;
                              Adicao.nDraw       := QryAdicao.FieldByName('NUM_DRAWBACK'  ).AsString;
                            end;
                          end;
                          QryAdicao.Next;
                        end;
                      end;
                      QryDI.Next;
                    end;
                  end;

 

  • Solution
Postado
20 horas atrás, Fabio Talhiaro disse:

Bom dia!

 

Estou tentando gerar o XML de uma NF-e de Entrada com Declaração de Importação e Adição, porém estou tendo problemas ao inserir as Adições, o erro está ocorrendo na linha: 

with DI.adi.Add do

 

O que devo alterar no código abaixo?

 


                  if not QryDI.IsEmpty then
                  begin
                    QryDI.First;
                    while not QryDI.Eof do
                    begin
                      with Prod.DI.Add do
                      begin
                        nDi         := QryDI.FieldByName('NUM_DOC_IMP'     ).AsString;
                        dDi         := QryDI.FieldByName('DATA_REGISTRO'   ).Value;
                        xLocDesemb  := QryDI.FieldByName('LOCAL_DESEMB'    ).AsString;
                        UFDesemb    := QryDI.FieldByName('UF_DESEMB'       ).AsString;
                        dDesemb     := QryDI.FieldByName('DATA_DESEMB'     ).Value;
                        tpViaTransp := QryDI.FieldByName('VIA_TRANSP'      ).Value;
                        vAFRMM      := QryDI.FieldByName('VLR_AFRMM'       ).Value;
                        tpIntermedio:= QryDI.FieldByName('TIPO_IMPORT'     ).Value;
                        CNPJ        := QryDI.FieldByName('CNPJ_ADQUIRENTE' ).AsString;
                        UFTerceiro  := QryDI.FieldByName('UF_ADQUIRENTE'   ).AsString;
                        cExportador := QryDI.FieldByName('COD_EXPORTADOR'  ).AsString;


                        QryAdicao.Close;
                        QryAdicao.ParamByName('p_id_entrada').Value := QryItensEntr.FieldByName('ID_NF_ENT').Value;
                        QryAdicao.ParamByName('p_id_di'     ).Value :=        QryDI.FieldByName('ID'       ).Value;
                        QryAdicao.Open;

                        if not QryAdicao.IsEmpty then
                        begin
                          QryAdicao.First;
                          while not QryAdicao.Eof do
                          begin
                            with DI.adi.Add do
                            begin
                              Adicao.nAdicao     := QryAdicao.FieldByName('NUMERO'        ).Value;
                              Adicao.nSeqAdi     := QryAdicao.FieldByName('SEQUENCIA'     ).Value;
                              Adicao.cFabricante := QryAdicao.FieldByName('COD_FABRICANTE').AsString;
                              Adicao.vDescDI     := QryAdicao.FieldByName('VLR_DESCONTO'  ).Value;
                              Adicao.nDraw       := QryAdicao.FieldByName('NUM_DRAWBACK'  ).AsString;
                            end;
                          end;
                          QryAdicao.Next;
                        end;
                      end;
                      QryDI.Next;
                    end;
                  end;

 

Use desta forma :  with adi.Add do

  • 10 meses depois ...
  • Este tópico foi criado há 2487 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.

The popup will be closed in 10 segundos...