Jump to content

Delphi Enterprise 
pela METADE DO PREÇO

botao_delphi.png

 

 

tp_550_logo.png Homologação ACBr Apresenta:
Nova  Impressora
TP-550

botao_saibamais.png

 

 

Curso Dominando o ACBrMonitor
Novo Módulo Soluções de Varejo
Assine o SAC ACBr em qualquer plano e tenha acesso

Saiba Mais

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba Mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Isaque Pinheiro

Sped ECF Disponibilizado do Trunk2

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

Recommended Posts

*Aguarde um pouco para baixar os arquivos, está com erro ao gerar, estou corrigindo-os e posto novamente

 

Segue os blocos X e Y, com os métodos para criar cada um no mesmo padrão dos outros blocos, com os contadores dos outros blocos.

Os blocos, U e T apenas para poder gerar.

 

 

 

 

 

 

 

 

Edited by arielguareschi
Erro encontrado.

Share this post


Link to post
Share on other sites

Segue Bloco P.

1) Criados métodos "RegistroxxxNEW"

2) Os registros P300, P400, P500 estavam como listas mas pelo manual a ocorrência é única, dessa forma, observando os outros Sped, alterei os mesmos

3) Testei e está compilando, agora creio que a classe já pode ser alimentada com dados para gerar o registro, isso ainda não testei mas irei fazer hoje

Então falta os arquivos

:( agora com arquivos ...

ACBrECFBloco_P.pas

ACBrECFBloco_P_Class.pas

Share this post


Link to post
Share on other sites

*Postando de novo com as correções.

Segue os blocos X e Y, com os métodos para criar cada um no mesmo padrão dos outros blocos, com os contadores dos outros blocos.

Os blocos, U e T apenas para poder gerar.

ACBrECFBloco_U_Class.pas

 

ACBrECFBloco_T_Class.pas

ACBrECFBloco_Y.pas

ACBrECFBloco_Y_Class.pas

ACBrSpedECF.pas

 

ACBrECFBloco_X.pas

ACBrECFBloco_X_Class.pas

Edited by arielguareschi
Correção do arquivo X

Share this post


Link to post
Share on other sites

Segue Bloco P.

1) Criados métodos "RegistroxxxNEW"

2) Os registros P300, P400, P500 estavam como listas mas pelo manual a ocorrência é única, dessa forma, observando os outros Sped, alterei os mesmos

3) Testei e está compilando, agora creio que a classe já pode ser alimentada com dados para gerar o registro, isso ainda não testei mas irei fazer hoje

Então falta os arquivos

:( agora com arquivos ...

ACBrECFBloco_P.pas

ACBrECFBloco_P_Class.pas

Está no SVN as alterações


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

Share this post


Link to post
Share on other sites

Boa tarde Senhores,

 

Ao gerar o registro M300 e M350, o campo IND_RELACAO, está tratando como se fosse um campo data, ai para forçar ele ser inteiro usei o código dessa maneira:

LFill(IND_RELACAO, 1, true, '0')

 

 

 

Edited by arielguareschi

Share this post


Link to post
Share on other sites

*Postando de novo com as correções.

Segue os blocos X e Y, com os métodos para criar cada um no mesmo padrão dos outros blocos, com os contadores dos outros blocos.

Os blocos, U e T apenas para poder gerar.

ACBrECFBloco_U_Class.pas

 

ACBrECFBloco_T_Class.pas

ACBrECFBloco_Y.pas

ACBrECFBloco_Y_Class.pas

ACBrSpedECF.pas

 

ACBrECFBloco_X.pas

ACBrECFBloco_X_Class.pas

Está no SVN para que possam trabalhar mas!

por favor queira seguir o padrão dos fontes do ACBr!

depois terei que voltar pois tem indentações erradas no código!


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

Share this post


Link to post
Share on other sites

boa tarde Pessoal fui gerar um arquivo para teste e validação, encontrei dois problemas,

um no campo Registro0020New.IND_QTE_SCP que não sei o pq mesmo informando a quantidade de 4 ele grava uma qtd absurda de 03011900

outro é o registro Registro0035, que mesmo sendo informado não é gerado no arquivo.

infelizmente não manjo muito para ajudar a arrumar isto.

Share this post


Link to post
Share on other sites

boa tarde Pessoal fui gerar um arquivo para teste e validação, encontrei dois problemas,

um no campo Registro0020New.IND_QTE_SCP que não sei o pq mesmo informando a quantidade de 4 ele grava uma qtd absurda de 03011900

outro é o registro Registro0035, que mesmo sendo informado não é gerado no arquivo.

infelizmente não manjo muito para ajudar a arrumar isto.

Bom dia Carlos,

Onde escreve o arquivo altere a função Lfill que deve estar assim

lfill(IND_QTD_SCP) -> lfill(IND_QTD_SCP, 1) 

pois ele esta interpretando como data.

Share this post


Link to post
Share on other sites

bom dia o IND_QTE_SCP deu certo, agora só não estou entendendo o pq não esta gravando o Registro0035, sendo que está sendo alimentado.

e vi o trecho que escreve, aparentemente esta feito tb.

procedure  TBloco_0.WriteRegistro0035;
var intfor : Integer;
begin
  if Assigned(FRegistro0035) then
  begin
    for intfor := 0 to  fRegistro0035.Count - 1 do
      begin
         with FRegistro0035.Items[intfor] do
         begin
                Add( LFill('0035') +
                     LFill(COD_SCP) +
                     LFill(NOME_SCP) );
           FRegistro0990.QTD_LIN_0 := FRegistro0990.QTD_LIN_0 + 1;
         end;
      end;
     FRegistro0035Count := FRegistro0035Count + Registro0035.Count;
  end;
end;
 

Share this post


Link to post
Share on other sites

Bom dia!

Alguém que está diretamente envolvido com o Projeto ECF poderia informar quais os registros faltam ?

o componente já atende a todos?

Pergunto pois não estou utilizando ele


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

Share this post


Link to post
Share on other sites

sobre o registro0035, fiz um ajuste no meu aqui e agora funcionou.

ficou assim :procedure  TBloco_0.WriteRegistro0035;
var intfor : Integer;
begin
  if Assigned(Registro0001.Registro0035) then
  begin
    for intfor := 0 to  Registro0001.Registro0035.Count - 1 do
      begin
         with Registro0001.Registro0035.Items[intfor] do
         begin
                Add( LFill('0035') +
                     LFill(COD_SCP) +
                     LFill(NOME_SCP) );
           FRegistro0990.QTD_LIN_0 := FRegistro0990.QTD_LIN_0 + 1;
         end;
      end;
     FRegistro0035Count := FRegistro0035Count + Registro0001.Registro0035.Count;
     Registro0001.Registro0035.Clear;
  end;
end;
onde está Registro0001.Registro0035 estava FRegistro0035

Share this post


Link to post
Share on other sites

Bom dia!

Alguém que está diretamente envolvido com o Projeto ECF poderia informar quais os registros faltam ?

o componente já atende a todos?

Pergunto pois não estou utilizando ele

Bom dia, parece-me que ainda faltam os blocos U e T que são para empresas de lucro arbitrado e imunes ou isentas.

Share this post


Link to post
Share on other sites

Certo!

alguém implementando?

Carlos se queres sugerir correção anexe os fontes aqui pra mim fazer o merge!


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

Share this post


Link to post
Share on other sites

Qual o motivo de ter a linha

  end;
  FRegistro0020.IND_QTE_SCP := 0;
end;

e esse trecho?

procedure  TBloco_0.WriteRegistro0035;
var intfor : Integer;
begin
  if Assigned(Registro0001.Registro0035) then
  begin
    for intfor := 0 to  Registro0001.Registro0035.Count - 1 do
      begin
         with Registro0001.Registro0035.Items[intfor] do
         begin
                Add( LFill('0035') +
                     LFill(COD_SCP) +
                     LFill(NOME_SCP) );
           FRegistro0990.QTD_LIN_0 := FRegistro0990.QTD_LIN_0 + 1;
         end;
      end;
     FRegistro0035Count := FRegistro0035Count + Registro0001.Registro0035.Count;
     Registro0001.Registro0035.Clear;
  end;
end;

esse clear

      end;
     FRegistro0930Count := FRegistro0930Count + Reg0001.Registro0930.Count;
     Reg0001.Registro0930.Clear;
  end;
end;

e zerar

            LFill(QTD_LIN_0,0) );
       QTD_LIN_0 := 0;
     end;
  end;

 


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

Share this post


Link to post
Share on other sites

Uma pergunta, os blocos que não são informados não deveria gerar nada certo? Nem o registro de abertura nem o de fechamento certo?

Share this post


Link to post
Share on other sites

Os blocos X e Y estavam com implementação erradas dos create / destroy e a memória não era devidamente liberada --> memory leak. Foi efetuada a correção, vou dar uma olhada nos outros blocos, tem alguns com problema também.

ACBrECFBloco_X.pas

ACBrECFBloco_X_Class.pas

ACBrECFBloco_Y.pas

ACBrECFBloco_Y_Class.pas

Você tem arquivos diferentes em seu micro!!!!

porque remover os overloads?

percebeu que por exemplo esse evento abaixo é chamado no overload da classe pai?

e assim não precisa ficar distribuindo free em diversos locais?

procedure TBloco_Y.LiberaRegistros;
begin
   inherited;

   FRegistroY001.Free;
   FRegistroY990.Free;
end;

o que tu passou aqui está removendo as referencias da classe pai que já faz a liberação e no caso é você que está com os arquivos diferentes!

observe o arquivo ACBrSped.pas de seu micro e do svn! e tente entender ele!


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

Share this post


Link to post
Share on other sites

Estou fazendo com base no que tem no SpedPisCofins que creio tem as modificações corretas para estarem no Trunk2. Esse por exemplo é o que está no ACBrEPCBloco_M_Class.

"    procedure CriaRegistros;
    procedure LiberaRegistros;
  public
    constructor Create ;                                      /// Create
    destructor  Destroy; override;                            /// Destroy
    procedure LimpaRegistros;"

 

Quanto a atualização fiz antes de começar as alterações ....

Talvez fosse o caso de criar uma unit template para que pudéssemos ter como referência. De qualquer forma antes, com o overload, estava dando memory leak e agora não. Como fazer então ?

Share this post


Link to post
Share on other sites

Boa noite, tentei baixar e não consegui, voce poderia me passar o endereço por favor.

Está no svn! trunk2

já migrou ? senão migrou sugiro começar logo

Estou fazendo com base no que tem no SpedPisCofins que creio tem as modificações corretas para estarem no Trunk2. Esse por exemplo é o que está no ACBrEPCBloco_M_Class.

"    procedure CriaRegistros;
    procedure LiberaRegistros;
  public
    constructor Create ;                                      /// Create
    destructor  Destroy; override;                            /// Destroy
    procedure LimpaRegistros;"

 

Quanto a atualização fiz antes de começar as alterações ....

Talvez fosse o caso de criar uma unit template para que pudéssemos ter como referência. De qualquer forma antes, com o overload, estava dando memory leak e agora não. Como fazer então ?

Sim pode se basear ma já prestou atenção que expliquei? tentou abrir os fontes? os demais colegas conseguiram entender!

na unit que falei já possui os métodos descritos e os  mesmos chamando dentro de cada .. por isso existe um overload (um pouco de orientação a objeto)!

então sugiro olhar o código dos colegas, seus arquivos não serão subidos, se estiver com vazamento de memória é por que o arquivo que mencionei não está devidamente atualizado!


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

Share this post


Link to post
Share on other sites
  • Este tópico foi criado há 1432 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...