Ir para conteúdo
  • Cadastre-se

Marciano da Rocha

Membros
  • Total de ítens

    11
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que Marciano da Rocha postou

  1. Bom dia, compreendo a necessidade de estar em ANSI, os arquivos anexados mantive dessa forma, porém não consegui fazer funcionar no FPC mesmo utilizando a diretiva -dDisableUTF8RTL na compilação. A única forma que consegui fazer funcionar foi convertendo pra UTF-8. Se puder subir as outras alterações que são layout e salvar para o TStream, agradeço, ai mantenho somente essa aqui separado.
  2. Boa noite Identificado o erro Arithmetic exception ao inicializar a LibXml2: O erro ocorre devido que os projetos console que herdam de TCustomApplication não possuem o mesmo código no método Initialize que as aplicações desktop que herdam de TApplication. Para correção, é necessário adicionar ao uses do projeto a unit Math e adicionar o código abaixo, com isso o erro não ocorre mais. SetExceptionMask(GetExceptionMask + [exInvalidOp, exZeroDivide, exOverflow]); Obs.: Esse código existe no método TApplication.Initialize das aplicações desktop. Aqui eu coloquei ele no arquivo lpr do projeto, e a primeira linha a executar é essa.
  3. Boa noite Estou implementando a impressão da NFSeX usando o componente FPDF no Linux e me deparei com algumas situações: 1ª: Problema no encoding do PDF gerado, onde todos os caracteres com acentuação eram impressos como "?" ou algum outro símbolo, para correção precisei mudar a função TFPDF.ConvertTextToAnsi da unit ACBr_fpdf.pas. Não sei se é uma particularidade do FPC para Linux, mas o método Utf8ToAnsi usado nessa função retorna a mesma string (em UTF-8) passada para ele sem nenhuma alteração, fiz algumas pesquisas e tudo o que falavam para fazer eu testei, e a única forma de conseguir gerar o PDF com os caracteres em ANSI foi converter a string para o encoding 1252 e depois apenas "dizer" para o sistema que ela está em UTF8, sem que faça a conversão, conforme o código abaixo, caso contrário, sempre que há uma concatenação com qualquer outra string, essa que está com encoding 1252 é convertida novamente para UTF-8. Na unit em anexo eu mantive o código original para outros sistemas (usando $IFDEF), pois testei apenas no FPC/Linux. var S: RawByteString; begin S := AText; SetCodePage(S, 1252, True); SetCodePage(S, CP_UTF8, False); Result := S; end; Obs.: Para quem for utilizar com FPC/Linux, além da alteração acima, é necessário converter o encoding do arquivo ACBr.DANFSeX.FPDFA4Retrato.pas para UTF-8 utilizando o comando abaixo. Caso não seja convertido, as strings fixas (títulos e cabeçalhos) que estão salvas no arquivo com encoding ANSI serão carregadas em UTF-8 na memória, sem converter, ai ao passar por esse código de conversão, vão ficar um símbolo de "?" da mesma forma (mesmo no código original). Não consegui resolver de outra forma, se souberem de algo, aceito sugestões. iconv -f "windows-1252" -t "UTF-8" ACBr.DANFSeX.FPDFA4Retrato.pas -o ACBr.DANFSeX.FPDFA4Retrato.pas 2ª: Coluna VALOR TOTAL com título errado. Alterado texto na unit ACBr.DANFSeX.FPDFA4Retrato.pas. 3ª: Não imprimia informação SEM VALOR FISCAL em notas canceladas ou em homologação. Essa parte do código do componente (unit ACBrNFSeXDANFSeFPDFClass.pas) estava comentada, alterei com base na unit do FastReport. 4ª: Impressão de PDF direto para TStream não estava implementada, apesar do componente TFPDFEngine possuir o método. Implementei com base nos outros componentes. Obs: As 3 units alteradas estão no arquivo units.zip, não consegui anexar o arquivo ACBr_fpdf.pas diretamente pois gerava um erro ao enviar. units.zip
  4. Boa tarde @Victor H. Gonzales - Panda atualizei os fontes e está tudo certo, obrigado. @Juliomar Marchetti obrigado pela dica, irei verificar.
  5. Boa noite Estou trabalhando em um projeto com o ACBrNFSe em modo console (o qual requer que seja recompilado o acbr usando a diretiva NOGUI) para linux e me deparei com o seguinte erro ao compilar o projeto seguindo os passos do tópico abaixo: Erro: ACBrNFSe.pas(35,14) Error: Illegal unit name: ACBrNFSe (expecting ACBRNFSEDANFSECLASS) Tópico: Após análise identificado que o erro ocorre quando o fpc tenta buscar o arquivo ACBrNFSeDANFSeClass.pas e acaba não encontrando devido que a unit que usa ele (ACBrNFSe.pas) faz referência como "ACBrNFSeDANFS****E****Class," com a letra "e" maíuscula. Devido ao fato de no linux o nome dos arquivos ser case sensitive, o mesmo não é encontrado. Ao compilar o pacote ACBrNFSe.lpk usando o lazbuild, o erro não ocorre, acredito que seja devido ao arquivo (ACBrNFSeDANFSeClass.pas) estar sendo referenciado estáticamente dentro dele. Para correção é necessário apenas trocar a letra "e" para minúscula no uses do arquivo ACBrNFSe.pas. Como é: Como deve ser: Em anexo o arquivo ACBrNFSe.pas alterado. Desde já agradeço a compreensão. ACBrNFSe.pas
  6. Obs.: Não identifiquei nenhuma situação em que a string já possua o delimitador em um local que deve ficar, por isso deixei padrão para remover no arquivo com as sugestões.
  7. Bom dia, vi que o post é antigo mas não achei nenhum recente sobre o assunto. A validação Result := FDelimitador + Result; /// Se a propriedade TrimString = true, Result retorna sem espaços em branco /// iniciais e finais. if FTrimString then Result := Trim(Result); está sendo feita após adicionar o delimitador ao result, dessa forma se Value possuir um espaço no início, o mesmo não será removido. Fiz um teste com o registro C170 do SPED Fiscal, onde a informação ref. a descrição do produto possuía espaços no início e no fim, no final ele remove normal, mas do início ele ignora pois a string possui antes dos espaços o delimitador. Sugestão: mudar para: /// Se a propriedade TrimString = true, Result retorna sem espaços em branco /// iniciais e finais. if FTrimString then Result := Trim(Result); Result := FDelimitador + Result; Esqueci de mencionar que os testes fiz apenas com o LFill, porém no RFill também ocorre. Outra sugestão é remover o delimitador da string antes de adicioná-lo na posição correta, dessa forma evita que a informação final possua delimitador em local incorreto. Em anexo arquivo com as mudanças propostas. ACBrTXTClass.pas
  8. Bom dia, segue em anexo a unit que faltou. ACBrBAL.pas
  9. Boa tarde @Juliomar Marchetti é possível adicionar a unit no projeto?
  10. Boa tarde Em anexo unit criada para comunicar com a balança Libratek WT3000-I para inclusão no projeto do ACBr. No equipamento utilizado para testes, a comunicação é configurada com Baud = 4800 e Data = 7. Link para o manual: http://www.weightech.com.br/manuais/indicador-wt3000i-manual.pdf ACBrBALLibratek.pas
×
×
  • 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...