Ir para conteúdo
  • Cadastre-se

O número de campos informado no registro difere do número de campos especificado no leiaute do arquivo.


Ver Solução Respondido por Juliomar Marchetti,
  • Este tópico foi criado há 3398 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Consultores
Postado

Na validação do arquivo Sped Fiscal está apresentando erro de leiaute:

No registro E310 era pra ser gerado 14 campos e está sendo gerado 22. 

O erro está na unit "ACBrEFDBloco_E_Class" linha 1060. Não pode comparar a data atual para gerar os registros E310 novos e sim a data final do período informado.

* Código antigo: if (Date <= EncodeDate(2016, 12, 31)) then begin

* Código correto: if (DT_FIN <= EncodeDate(2016, 12, 31)) then begin

 

Por favor corrijam.

Valter Patrick
Gerente de Projetos na empresa CTEC
Consultor ACBr
(33)98400-0936
GitHub: https://github.com/valterpatrick

Ajude o Projeto ACBr crescer - Assine o Clube PRO                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

  • Consultores
Postado

Por favor, anexe o arquivo alterado.

  • Curtir 1

[]'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.
  • Consultores
Postado

Boa tarde

está no svn a correção

 

  • Curtir 1

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado
15 horas atrás, Juliomar Marchetti disse:

Boa tarde

está no svn a correção

 

Pessoal, o campo DT_FIN é do tipo TDateTime, dessa forma ao gerar o arquivo ele vai cair no else e gerar o arquivo com 22 campos. Em vez de usar EncodeDate, deve ser usado EncodeDateTime. Pra gerar com 14 campos deve ser feita a seguinte alteração:

*Código incorreto: if (DT_FIN <= EncodeDate(2016, 12, 31)) then begin

 *Código correto: if (DT_FIN <= EncodeDateTime(2016, 12, 31, 23, 59, 59, 999)) then begin

Pelo menos foi dessa forma que consegui gerar corretamente aqui. Segue o arquivo com a correção.

ACBrEFDBloco_E_Class.pas

  • Consultores
Postado

Vai uma pergunta, você está usando o delphi 7?

 

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado

O correto seria a gente gerar ele como TDate certo?

acho que vou passar revendo pois não é necessário a hora em diversos e assim fica correto.

 

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado
Em 05/01/2017 at 14:25, Ubirajara disse:

Ok. Fico no aguardo. Obrigado.

Boa tarde

Tente aplicar a mudança sugerida em seu código, recompilar os componentes e gerar o sped pra ver se ele vai ficar ok!

pois não tenho nada gerando hoje o sped pra testar.

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado
16 horas atrás, Juliomar Marchetti disse:

Boa tarde

Tente aplicar a mudança sugerida em seu código, recompilar os componentes e gerar o sped pra ver se ele vai ficar ok!

pois não tenho nada gerando hoje o sped pra testar.

Juliomar, bom dia.

Fazendo a compilação com o arquivo que postei acima a geração fica OK. Ele entra no IF onde tem que gerar o registro com 14 campos e assim o faz. Da outra forma ele cai no else por causa da comparação da string gerada pela data e gera o registro com 22 campos. Eu vou gerar aqui assim e aguardo por updates no svn.

  • Consultores
  • Solution
Postado

Boa tarde

 o  erro está porque você está passando a data e a hora para o campo!

passe somente a data ou se passa um campo do banco onde tem as duas informações informe tipo

DT_FIN := DateOf(fieldata.value);

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado
1 hora atrás, Juliomar Marchetti disse:

Boa tarde

 o  erro está porque você está passando a data e a hora para o campo!

passe somente a data ou se passa um campo do banco onde tem as duas informações informe tipo

DT_FIN := DateOf(fieldata.value);

Fiz dessa forma no DT_FIN do bloco 0 e funcionou. Muito obrigado.

  • 1 mês depois ...
  • Consultores
Postado
2 horas atrás, Guilherme Lourenço disse:

Bom dia!

Onde corrijo essas informações 

 

*Código incorreto: if (DT_FIN <= EncodeDate(2016, 12, 31)) then begin

 *Código correto: if (DT_FIN <= EncodeDateTime(2016, 12, 31, 23, 59, 59, 999)) then begin

No próprio arquivo?

Boa tarde

você está informando errado se tu está precisando passar até mesmo a hora minutos e segundos!

o campo é somente para Data! 

se tu passa .AsDateTime coloque um DateOf( ) 

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • 2 semanas depois ...
Postado

Felipe Mello,

No botão que você passa a Data Inicial e Final pro componente:

  ACBrSpedFiscal1.DT_INI := _DataInicial;
  ACBrSpedFiscal1.DT_FIN := DateOf(_DataFinal);

DateOf só vai mandar a data sem o horário.

 

Espero ter ajudado.

 

 

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