Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado (editado)

Boa tarde.

Realizando testes com a geração do arquivo do Livro Caixa do Produtor Rural (LCDPR), verifiquei que o componente não está gerando o arquivo com codificação UTF-8 conforme consta no manual do LCDPR no "Capítulo 2 – Dados Técnicos para Geração do Arquivo do LCDPR" página 4.

Como no momento o componente não está utilizando a classe "TACBrTXTClass" pra geração da estrutura, eu fiz uma pequena e rápida alteração na unit "\Fontes\ACBrTXT\ACBrLCDPR\UACBrLCDPR.pas" para que o arquivo sempre seja gerado com codificação UTF-8. 

Obs.: Eu não vi a respeito, até porque o manual não fala nada sobre, mas caso seja necessário manter o BOM (Byte Order Marker) podem remover a linha adicionada no Create ou então passar o valor da propriedade WriteBOM para True.

// Alteração no Create
constructor TACBrLCDPR.Create(AOwner: TComponent);
begin
  inherited;

  FBloco0000      := TRegistro0000.Create;
  FBloco0010      := TRegistro0010.Create;
  FBloco0030      := TRegistro0030.Create;
  FBloco0040      := TBlocos0040.Create;
  FBloco0050      := TBloco0050.Create;
  FBlocoQ         := TBlocoQ.Create;
  FBloco9999      := TRegistro9999.Create;
  FDadosContador  := TContador.Create;

  FConteudo     := TStringList.Create;
  FConteudo.WriteBOM := False; // Salvar sem BOM
  FDelimitador  := '|';
  FArquivo      := 'LCDPR'; 
end;

//...

// Alteração em SalvarBlocos
procedure TACBrLCDPR.SalvarBlocos;
begin
  FConteudo.SaveToFile(Path + Arquivo, TEncoding.UTF8); // Salvar com condificação UTF-8
end;

Segue em anexo a unit "UACBrLCDPR.pas" com as alterações.

Se puderem verificar para ser adicionado no svn, ok?

Obrigado!

UACBrLCDPR.pas

Editado por Leandro Araújo
Anexar arquivo de modificação para ser enviado ao svn/Alteração no texto
  • Curtir 1

Leandro Araújo, Analista de Sistemas.

  • Administradores
Postado

Boa tarde.

Obrigada pela contribuição, adicionada para validação.

Att.

  • Curtir 1
Consultora ACBr Pro

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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 02/03/2020 at 16:51, Leandro Araújo disse:

Boa tarde.

Realizando testes com a geração do arquivo do Livro Caixa do Produtor Rural (LCDPR), verifiquei que o componente não está gerando o arquivo com codificação UTF-8 conforme consta no manual do LCDPR no "Capítulo 2 – Dados Técnicos para Geração do Arquivo do LCDPR" página 4.

Como no momento o componente não está utilizando a classe "TACBrTXTClass" pra geração da estrutura, eu fiz uma pequena e rápida alteração na unit "\Fontes\ACBrTXT\ACBrLCDPR\UACBrLCDPR.pas" para que o arquivo sempre seja gerado com codificação UTF-8. 

Obs.: Eu não vi a respeito, até porque o manual não fala nada sobre, mas caso seja necessário manter o BOM (Byte Order Marker) podem remover a linha adicionada no Create ou então passar o valor da propriedade WriteBOM para True.


// Alteração no Create
constructor TACBrLCDPR.Create(AOwner: TComponent);
begin
  inherited;

  FBloco0000      := TRegistro0000.Create;
  FBloco0010      := TRegistro0010.Create;
  FBloco0030      := TRegistro0030.Create;
  FBloco0040      := TBlocos0040.Create;
  FBloco0050      := TBloco0050.Create;
  FBlocoQ         := TBlocoQ.Create;
  FBloco9999      := TRegistro9999.Create;
  FDadosContador  := TContador.Create;

  FConteudo     := TStringList.Create;
  FConteudo.WriteBOM := False; // Salvar sem BOM
  FDelimitador  := '|';
  FArquivo      := 'LCDPR'; 
end;

//...

// Alteração em SalvarBlocos
procedure TACBrLCDPR.SalvarBlocos;
begin
  FConteudo.SaveToFile(Path + Arquivo, TEncoding.UTF8); // Salvar com condificação UTF-8
end;

Segue em anexo a unit "UACBrLCDPR.pas" com as alterações.

Se puderem verificar para ser adicionado no svn, ok?

Obrigado!

UACBrLCDPR.pas 14 kB · 0 downloads

Bom dia Leandro,

   Infelizmente não podemos enviar a alteração da forma como está. Ela não é compatível nem com o Delphi 7, nem com o Lazarus.

[]'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.
Postado
1 hora atrás, EMBarbosa disse:

Bom dia Leandro,

   Infelizmente não podemos enviar a alteração da forma como está. Ela não é compatível nem com o Delphi 7, nem com o Lazarus.

Bom dia @EMBarbosa, entendido...

Realmente, vi que na verdade o componente e os fontes ainda não estão compatibilizados com Delphi 7 e Lazarus.

Agora estou trabalhando em outras questões, mas caso eu consiga posso adicionar as diretivas de compilação e ajustar a função de salvar os blocos para ficar compatível, e talvez até trocar na implementação para usar a "TACBrTXTClass" se for necessário, só não posso garantir isso agora, até porque a entrega do arquivo é em Abril ainda.

Caso sobrar um tempo eu posso alterar e postar o as alterações novamente dentro de alguns dias.

Obrigado.

Leandro Araújo, Analista de Sistemas.

  • Consultores
Postado
14 minutos atrás, Leandro Araújo disse:

Bom dia @EMBarbosa, entendido...

Realmente, vi que na verdade o componente e os fontes ainda não estão compatibilizados com Delphi 7 e Lazarus.

Agora estou trabalhando em outras questões, mas caso eu consiga posso adicionar as diretivas de compilação e ajustar a função de salvar os blocos para ficar compatível, e talvez até trocar na implementação para usar a "TACBrTXTClass" se for necessário, só não posso garantir isso agora, até porque a entrega do arquivo é em Abril ainda.

Caso sobrar um tempo eu posso alterar e postar o as alterações novamente dentro de alguns dias.

Obrigado.

   Não tem problema Leandro. Agradecemos sua ajuda e disposição desde já. 

   Já foi útil ter apontado o problema, mas se conseguir fazer o ajuste vamos ficar ainda mais gratos.

   Bom trabalho por aí.

  • Curtir 2

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

OBS.: as mensagens do usuário Luis Ricardo, estavam relacionadas com outro problema e por isso foram movidas para o seguinte tópico:

 

  • 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.
  • 2 anos depois...
  • Administradores
Postado

Tópico fechado por falta de retorno do usuário

Consultora ACBr Pro

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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 !!

  • Este tópico foi criado há 870 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...
The popup will be closed in 10 segundos...