Ir para conteúdo
  • Cadastre-se

dev botao

Bloco D Nao Gera


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

Recommended Posts

tem que verificar a hierarquia e começar como no demo

   with ACBrSPEDPisCofins1.Bloco_D do
   begin
      with RegistroD001New do
      begin
        IND_MOV := imComDados; <<<<=== Atenção aqui...
 
 
        //Estabelecimento
        with RegistroD010New do
        begin
          CNPJ := '11111111000191';
 

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Isaque Pinheiro o meu codigo é este":

 

 

  Abre_CadEmpSql('SELECT * FROM CADEMP WHERE ((EMPCOD = ' + QuotedStr('00001') +
                                        ') or (EMPCOD = ' + QuotedStr('00002') +
                                        ')) order by EMPCNP');
 
  with ACBrSPEDPisCofins1.Bloco_D do
   begin
    with RegistroD001New do
      begin
        F_DATMOD.TB_CADEMP.First;
        while not F_DATMOD.TB_CADEMP.Eof do
          begin
            QueryMestre.Close;
            QueryMestre.Unprepare;
            QueryMestre.sql.Text := 'select caden1.*,cadtri.* from CADEN1 ' +
                                    'join CADTRI on CADTRI.TRICOD = CADEN1.ENTTRI ' +
                                                        ' where entemp = ' + QuotedStr(F_DATMOD.TB_CADEMP.FindField('EMPCOD').AsString) + ' and ENTTIP = ' +
                                                                             QuotedStr('NFE') + ' and ENTDTR between ' +
                                                                             QuotedStr(DataPonto(dxDateEditEMIPISCOF.Text)) + ' and ' +
                                                                             QuotedStr(DataPonto(dxDateEditATEPISCOF.Text)) + ' and ' +
                                                                             '((entcan <> ' + QuotedStr('C') + ') or (ENTCAN IS NULL))' +
                                                                             ' and ((tricfo = ' + QuotedStr('1.353') + ') OR (tricfo = ' + QuotedStr('2.353') + '))' +
                                                                             ' order by ENTNUM,ENTDTR ';
            QueryMestre.Open;
 
            if QueryMestre.IsEmpty then
              IND_MOV := imSemDados
            else
              begin
                IND_MOV := imComDados;
 
                with RegistroD010New do
                  begin
                    CNPJ := F_DATMOD.TB_CADEMP.FindField('EMPCNP').AsString;
 
                    QueryMestre.First;
                    M_REGISTROS := QueryMestre.RecordCount;
                    while not QueryMestre.Eof do
                     begin
                       with RegistroD100New do
                         begin
                           IND_OPER      := '0';
                           IND_EMIT      := iedfTerceiro;
                           COD_PART      := 'F' + QueryMestre.FindField('ENTFOR').AsString;
                           if not StrEmpty(QueryMestre.FindField('ENTNFE').AsString) then
                             COD_MOD     := '57'
                           else
                             COD_MOD     := '08';
                           COD_SIT       := sdfRegular;
                           SER           := QueryMestre.FindField('ENTSER').AsString;
                           SUB           := '';
                           NUM_DOC       := QueryMestre.FindField('ENTDIG').AsString+QueryMestre.FindField('ENTNUM').AsString;
                           CHV_CTE       := QueryMestre.FindField('ENTNFE').AsString;
                           DT_DOC        := StrToDate(QueryMestre.FindField('ENTDTE').AsString);
                           DT_A_P        := StrToDate(QueryMestre.FindField('ENTDTR').AsString);
                           TP_CT_e       := '0';
                           CHV_CTE_REF   := QueryMestre.FindField('ENTNFE').AsString;
                           VL_DOC        := QueryMestre.FindField('ENTVLN').AsFloat;
                           VL_DESC       := QueryMestre.FindField('ENTDSC').AsFloat;
                           IND_FRT       := tfPorContaDestinatario;
                           VL_SERV       := QueryMestre.FindField('ENTVLN').AsFloat;
                           VL_BC_ICMS    := QueryMestre.FindField('ENTBIC').AsFloat;
                           VL_ICMS       := QueryMestre.FindField('ENTVIC').AsFloat;
                           VL_NT         := 0;
                           COD_INF       := '';
                           COD_CTA       := '';
                         end;
 
 
                       QueryItens.Close;
                       QueryItens.Unprepare;
                       QueryItens.sql.Text := 'select CADEN2.*,CADPRO.*,CADTRI.*,CADSLD.* from CADEN2 ' +
                                              'join CADPRO on CADPRO.PROCOD = CADEN2.ENTPRO ' +
                                              'join CADTRI on CADTRI.TRICOD = CADEN2.ENTTRI ' +
                                              'join CADSLD on CADSLD.SLDEMP = CADEN2.ENTEMP AND CADSLD.SLDPRO = CADEN2.ENTPRO' +
                                                                  ' where ENTEMP = ' + QuotedStr(QueryMestre.FindField('ENTEMP').AsString) + ' and ' +
                                                                         'ENTTIP = ' + QuotedStr(QueryMestre.FindField('ENTTIP').AsString) + ' and ' +
                                                                         'ENTNUM = ' + QuotedStr(QueryMestre.FindField('ENTNUM').AsString) + ' and ' +
                                                                         'ENTSER = ' + QuotedStr(QueryMestre.FindField('ENTSER').AsString) + ' and ' +
                                                                         'ENTFOR = ' + QuotedStr(QueryMestre.FindField('ENTFOR').AsString) + ' order by ENTORD ';
                       QueryItens.Open;
 
                       M_REGISTROS1 := QueryItens.RecordCount;
                       QueryItens.First;
                       while not QueryItens.Eof do
                         begin
                           with RegistroD101New do   //Inicio Adicionar os Itens:
                             begin
                               VL_ITEM       := QueryItens.FindField('ENTVLI').AsFloat;
                               IND_NAT_FRT   := nfcCompraGeraCred;
                               CST_PIS       := stpisOperCredExcRecTribMercInt;         //50
                               VL_BC_PIS     := QueryItens.FindField('ENTVLI').AsFloat;
                               ALIQ_PIS      := QueryItens.FindField('PROAPI').AsFloat;
                               VL_PIS        := MRound(QueryItens.FindField('ENTVLI').AsFloat * (QueryItens.FindField('PROAPI').AsFloat * 0.01),2);
                               NAT_BC_CRED   := bccAqServUtiComoInsumo;
                               COD_CTA       := '';
                             end;
                           with RegistroD105New do   //Inicio Adicionar os Itens:
                             begin
                               VL_ITEM       := QueryItens.FindField('ENTVLI').AsFloat;
                               IND_NAT_FRT   := nfcCompraGeraCred;
                               CST_COFINS    := stcofinsOperCredExcRecTribMercInt;         //50
                               VL_BC_COFINS  := QueryItens.FindField('ENTVLI').AsFloat;
                               ALIQ_COFINS   := QueryItens.FindField('PROACO').AsFloat;
                               VL_COFINS     := MRound(QueryItens.FindField('ENTVLI').AsFloat * (QueryItens.FindField('PROACO').AsFloat * 0.01),2);
                               NAT_BC_CRED   := bccAqServUtiComoInsumo;
                               COD_CTA       := '';
                             end;
                           dxfProgressBarPisCof_2.Position:= trunc((QueryItens.Recno / M_REGISTROS1)*100);
                           QueryItens.Next;
                         end;
                       dxfProgressBarPisCof_3.Position:= trunc((QueryMestre.Recno / M_REGISTROS)*100);
                       QueryMestre.Next;
                     end;
                  end;
              end;
            F_DATMOD.TB_CADEMP.Next;
          end;  
      end;
   end;
Link para o comentário
Compartilhar em outros sites

  • Consultores

E ele está preenchendo o IND_MOV como imComDados ou como imSemDados? Faz o debug e verifique. Depois veja no arquivo gerado qual valor está saindo.

[]'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.
Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...

Tambem estou com o mesmo problma, já debuguei e o indicador de movimento está com dados, alem de a hierarquia dos registros D501 e D505 também estarem corretas. O interessante é que no arquivo gerado consta: |D001|0|  porém não estão ali os dados. Alguem pode dar uma dica de como debugar isso no fonte em Delphi, já que sou programador xHarbour?

 

Grato a todos.

Link para o comentário
Compartilhar em outros sites

Obrigado Juliomar, mas é que a minha aplicação não é em Delphi, no Delphi é gerada uma dll que posteriormente é carregada na minha aplicação, ai não tem como debugar on line como se fosse um exe. Pensei em colocar um aviso mostrando na tela os valores de entrada das funções, mas como faz muitos anos que não programava mais em Delphi to re-aprendendo ainda as funções.

Grato.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Logo no início deste link abaixo explica como fazer para deugar como a dll se fosse um exe. Só que está em Inglês...

http://francois-piette.blogspot.com.br/2013/07/breakpoint-not-honored-while-debugging.html

 

Basicamente você adiciona o caminho do seu executável no Delphi / Menu / Run / Parameters.

Daí executa o projeto normalmente.

[]'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.
Link para o comentário
Compartilhar em outros sites

  • Consultores

De nada. Se tiver problemas posta aí.

[]'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.
Link para o comentário
Compartilhar em outros sites

Boa noite, não sei se servirá para mais alguém, mas através de debug consegui descobrir que não gerava o bloco D porque o campo SUB ( Sub-série ) do registro D500 estava passando "   ", passei "000" e conseguiu gerar.

Agora o validador está reclamando do registro M201 que não está sendo informado, mas vou pesquisar.

Abraços.

Link para o comentário
Compartilhar em outros sites

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