Jump to content

click.png

click.png

click.png

click.png click.png click.png

click.png

click.png

click.png

click.png

click.png

click.png

Bloco D Nao Gera


automacaosamos
  • Este tópico foi criado há 2882 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 to comment
Share on other 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 to comment
Share on other 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
Ajude o Projeto ACBr crescer - Assine o SAC

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 to comment
Share on other sites

  • 2 months later...

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 to comment
Share on other sites

  • Consultores

F9 compila, F8 roda linha a linha, F7 vai entrar nos procedimentos debugando, F5 marca linha com break

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to comment
Share on other 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 to comment
Share on other 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
Ajude o Projeto ACBr crescer - Assine o SAC

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 to comment
Share on other sites

  • Consultores

De nada. Se tiver problemas posta aí.

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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 to comment
Share on other 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 to comment
Share on other sites

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