-
Total de ítens
610 -
Registro em
-
Última visita
-
Days Won
4
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Waldir Paim postou
-
Remoção de Hints e Warning do ACBr
Waldir Paim replied to Waldir Paim's tópico in Dúvidas Gerais sobre o ACBr
@hleorj A função proposta não está certa, irei refazer. -
Remoção de Hints e Warning do ACBr
Waldir Paim replied to Waldir Paim's tópico in Dúvidas Gerais sobre o ACBr
@hleorj Sem problemas, acredito que o código que sugeri não está fora do padrão da linguagem que utilizamos e foi a primeira alternativa que me veio a mente. Fique a vontade para mudar para função proposta sem qualquer problema, tanto que o código é uma proposta e sempre vale a implementação final aplicado pelos mantenedores. -
Remoção de Hints e Warning do ACBr
Waldir Paim replied to Waldir Paim's tópico in Dúvidas Gerais sobre o ACBr
@Daniel Simoes Conseguimos chegar num acordo sobre as outras units do post anterior e já foram aplicadas. Segue mais algumas untis para remoção de avisos. Na unit pcnLeitor.pas removi um retorno desnecessário na function TLeitor.CarregarArquivo. Na function CRTTocRegTrib da unit pcnConversao troquei um case por um array. Precisei herdade de TPersistent a classe TRetInfEvento da unit pcnEventoNFe isso remove os hints. fiz o mesmo para TDFeSSL da unit ACBrDFeSSL. E fazendo um resumo geral sobrou alguns avisos perdidos e a pasta ACBrSerial com a grande maioria, posso trabalhar nela com sua permissão. ACBrDFeSSL.pas pcnConversao.pas pcnLeitor.pas pcnEventoNFe.pas -
Melhorias nos arquivos ACBrEPCBloco_0 e ACBrEPCBloco_M
Waldir Paim replied to Waldir Paim's tópico in ACBrSPEDPisCofins
Obrigado @Isaque Pinheiro Verifiquei que você manteve a função StrToIndNatPJImporta. Só mais essa alteração e te prometo que não te incomodo mais com isso. Poderia por favor aplicar essa alteração na função que você não removeu? Da forma como ela está esta com duplicação de código e ainda retorna avisos na IDE. function StrToIndNatPJImporta(const AValue: string): TACBrIndNatPJ; begin Result := StrToIndNatPJ( AValue ); end; -
Remoção de Hints e Warning do ACBr
Waldir Paim replied to Waldir Paim's tópico in Dúvidas Gerais sobre o ACBr
Oi Daniel, Sim adicionei as units, estou ajustando elas nesse post http://www.projetoacbr.com.br/forum/topic/25503-melhorias-nos-arquivos-acbrepcbloco_0-e-acbrepcbloco_m/#comment-191813 com o @Isaque Pinheiro. Ele já aplicou uma delas de vou verificar com ele o que devemos fazer. -
Melhorias nos arquivos ACBrEPCBloco_0 e ACBrEPCBloco_M
Waldir Paim replied to Waldir Paim's tópico in ACBrSPEDPisCofins
@Isaque Pinheiro, Achei pertinente continuar nesse post pelo motivo que descrevei abaixo. Fiz a inclusão do campo Vazio no array por motivo dessa informação aqui na unit ACBrEPCBlocos Nela possui essa função : function CstIcmsToStr(AValue: TACBrCstIcms): string; begin Result := CstIcms[ Integer( AValue ) ]; end; Onde a conversão estaria errado sem a inclusão proposta na unit que ele não aplicou. A alteração foi aplicada para contemplar o resultado para essa função : function StrToCstIcms(AValue: String): TACBrCstIcms; var ifor: Integer; begin Result := sticmsNenhum; <<<<retorno para remover avisos da IDE. for ifor := 0 to High(CstIcms) do begin if AValue = CstIcms[ifor] then begin Result := TACBrCstIcms( ifor ); Break; end; end; end; -
Melhorias nos arquivos ACBrEPCBloco_0 e ACBrEPCBloco_M
Waldir Paim replied to Waldir Paim's tópico in ACBrSPEDPisCofins
Muito obrigado @Isaque Pinheiro. Vou criar um outro post para gente discutir a necessidade ou não dessa alteração. -
Remoção de Hints e Warning do ACBr
Waldir Paim replied to Waldir Paim's tópico in Dúvidas Gerais sobre o ACBr
Oi Daniel, Ficou muito bom e com isso conseguimos resolver praticamente todos os avisos da pasta do ACBBoleto. Aproveitando para não perder o costume fiz a remoção de alguns avisos nas units abaixo. Na unit ACBrEPCBlocos inclui retorno em algumas funções que permitiram e possuíam enumeradores que indicavam Vazio ou Nenhum. Em outras funções da mesma unit precisei gerar uma exceção para remover os avisos e com isso aquetar a minha IDE. Tambem removi a função StrToIndNatPJImporta que possui a mesma funcionalidade da StrToIndNatPJ e nesse caso pode ser utilizado sem problemas. Na unit ACBrTXTUtils apenas adicionei um valor no array para identificar o valor vazio. Estou a disposição se precisar de mais esclarecimentos e fique a vontade para corrigir algum equivoco que possa ter passo. ACBrEPCBloco_0.pas ACBrTXTUtils.pas -
Melhorias nos arquivos ACBrEPCBloco_0 e ACBrEPCBloco_M
Waldir Paim replied to Waldir Paim's tópico in ACBrSPEDPisCofins
Fiz uma atualização nas melhorias e também resolvi alguns avisos de função sem retorno. Gostaria que um dos responsáveis e ou mantenedores analisassem as units em questão e se por algum motivo o código em si não colaborar ou não atender os critérios de qualidade exigidos pelo projeto me apontasse para que eu consiga corrigir e colaborar de forma objetiva e produtiva. Agora simplesmente não aplicar ou ignorar é uma falta de respeito com os usuários e colaboradores comprometidos com o crescimento do projeto. Vou anexar aqui as units das melhorias e no tópico referente a remoção de avisos postarei apenas as units que removem os avisos. Se precisar de algum esclarecimento sobre o código estou a disposição e com muita disposição para sanar quaisquer tipo duvidas que ainda pairam no código. ACBrEFDBloco_0.pas ACBrEPCBlocos.pas ACBrEPCBloco_M.pas ACBrEPCBloco_0.pas ACBrTXTUtils.pas -
Remoção de Hints e Warning do ACBr
Waldir Paim replied to Waldir Paim's tópico in Dúvidas Gerais sobre o ACBr
@Daniel Simoes Conforme descrito no post anterior, não me detive aos avisos de conversão do tipo W1057 e W1058 e com isso consegui remover todos das units da pasta ACBrBoleto. Fiz o máximo para manter as units o mais inalteradas possíveis. Num resumo breve vou tentar descrever as alterações: Remoção de variáveis não utilizadas. Inicialização de variáveis não inicializadas. Adicionei uma função para conseguir override na classe base. Acredito que essas alterações não devam gerar efeitos colaterais algum no funcionamento atual. Segue anexo. ACBrBoleto.zip -
@Pedro_Manoel Verifica se sua variável local é do mesmo tipo da variável esperada pela função. Eu estou usando aqui no Delphi Seatle e funciona tudo certinho, inclusive muito mais rápido em alguns casos. Estou a disposição se precisar de ajuda para resolver. Mas antes nos conte de seu ambiente. Qual sua versão de Delphi?
-
Access Violation - ACBrBoletoFCFortesFr
Waldir Paim replied to Marcelo Carvalho's tópico in ACBrBoleto
Ok, Vou tentar ser mais especifico. Qual banco está testando? Qual modelo do boleto utilizado? Qual numero da carteira? Enfim passe todos os dados para simular o seu problema. Se puder preencher o exemplo e anexar ele aqui eu simulo para você, eu tenho Delphi 7 e posso tentar te ajudar. Suas informações são vagas e não tem como simular sem os dados para teste. Eu uso o componente e já testei aqui e não consegui simular o problema. Eu já tive problemas com o Delphi 7 usando objetos, acredito que você também pode fazer um teste adicionando o FastMM no teste do ACBr e tentar gerar novamente. Segue link para download caso resolva fazer os teste e não possua https://sourceforge.net/projects/fastmm/. Lembre-se de adicionar na primeira unit do projeto. Ainda se sobrar alguma duvida posta ai.- 7 replies
-
- 1
-
- acbrboletofcfortesfr
- access
- (e 1 mais)
-
Access Violation - ACBrBoletoFCFortesFr
Waldir Paim replied to Marcelo Carvalho's tópico in ACBrBoleto
Oi @Marcelo Carvalho, Se você conseguir anexar um exemplo eu posso tentar te ajudar a resolver isso. Anexo somente os fontes sem o exe, pode ser o do próprio do ACBr mas preenchido com os dados que causam o problema. Dessa forma podemos sugerir a correção especifica ou uma que possa até prevenir essa situação numa outra ocasião.- 7 replies
-
- acbrboletofcfortesfr
- access
- (e 1 mais)
-
Remoção de Hints e Warning do ACBr
Waldir Paim replied to Waldir Paim's tópico in Dúvidas Gerais sobre o ACBr
Oi Daniel, Alem da noticia do adiamento da obrigatoriedade do CEST, que achei bem oportuna, sua noticia eu curti muito. Como pode observar em quase sua totalidade os casts são aplicados pela IDE e serão feitos mesmo se a gente não os fizer. Eu já tinha adotado outra estratégia, aqui na minha base local fiz essa alteração para limpar minha lista de avisos: Apliquei isso no arquivo ACBr.inc, fiz o mesmo para o Fortes Report, com isso posso me focar apenas nos avisos mais importantes do projeto e de minha aplicação. Como já estou com meu ambiente configurado vou seguindo com essa nova tática e tentar contribuir com o crescimento e qualidade do código sempre que possível. Devo me deter a outros tipos de avisos, pois os W0157 e W1058 não são mais listados aqui pra mim nos fontes que uso o ACBr. Fique a vontade para sugerir uma nova forma de enfrentar essa tarefa que ainda estou empenhado em te ajudar a resolver o mais breve possível. -
Erro ao re-compilar acbr trunk2 ACBR_Serial.dpk
Waldir Paim replied to claudemirbenedito's tópico in ACBrSerial
Aproveitei e já removi umas variáveis não utilizadas e alguns outros ajustes nas units; ACBrBALMuller.pas ACBrBALRinnert.pas ACBrBALToledo2090.pas -
Erro ao re-compilar acbr trunk2 ACBR_Serial.dpk
Waldir Paim replied to claudemirbenedito's tópico in ACBrSerial
Segue duas unit que podem te ajudar a compilar seu projeto. Acredito que em breve os mantenedores da unit ou do projeto devem lançar uma correção definitiva. Salva elas na pasta ACBrSerial e tenta instalar o componente novamente. ACBrBALMuller.pas ACBrBALRinnert.pas -
Perda de informação no corpo do relatorio gerencial
Waldir Paim replied to Intelliware's tópico in ACBrSerial
Quem, seguimos desse ponto. Vou voltar contigo as funções usadas na quebra da string. Até chegar ao ponto onde o ACBr entrega para o ECF. Não tenho a impressora aqui para testar por isso preciso de sua ajuda para gente resolver isso. -
Perda de informação no corpo do relatorio gerencial
Waldir Paim replied to Intelliware's tópico in ACBrSerial
@Intelliware Veja pra mim por favor se com essa função o problema ocorre! Essa função é a original sem alterações. function AjustaLinhas(Texto: AnsiString; Colunas: Integer ; NumMaxLinhas: Integer = 0; PadLinhas: Boolean = False): AnsiString; Var Count,P,I : Integer ; Linha, CurrLineBreak : AnsiString ; begin { Trocando todos os #13+#10 por #10 } CurrLineBreak := sLineBreak ; if (CurrLineBreak <> #13+#10) then Texto := AnsiString(StringReplace(String(Texto), #13+#10, #10, [rfReplaceAll])) ; if (CurrLineBreak <> #10) then Texto := AnsiString(StringReplace(String(Texto), String(CurrLineBreak), #10, [rfReplaceAll])) ; { Ajustando a largura das Linhas para o máximo permitido em "Colunas" e limitando em "NumMaxLinhas" o total de Linhas} Count := 0 ; Result := '' ; while ((Count < NumMaxLinhas) or (NumMaxLinhas = 0)) and (Length(Texto) > 0) do begin P := pos(#10, String( Texto ) ) ; if P > (Colunas + 1) then P := Colunas + 1 ; if P = 0 then P := min( Length( Texto ), Colunas ) + 1 ; // somar 2 quando encontrar uma tag para não quebrar ela if (Copy(Texto, P-1, 1) = '<') or (Copy(Texto, P-2, 2) = '</') then inc(P, 2); I := 0 ; if copy(Texto,P,1) = #10 then // Pula #10 ? I := 1 ; Linha := copy(Texto,1,P-1) ; // Remove #10 (se hover) if PadLinhas then Result := Result + PadRight( Linha, Colunas) + #10 else Result := Result + Linha + #10 ; Inc(Count) ; Texto := copy(Texto, P+I, Length(Texto) ) ; end ; { Permitir impressão de uma linha em branco } if Result = '' then Result := Result + #10; end; Ela é da unit ACBrUtil. Precisa remover o const da declaração anterior. Vou rever a logica da versão que atual. -
Perda de informação no corpo do relatorio gerencial
Waldir Paim replied to Intelliware's tópico in ACBrSerial
@Intelliware Vamos fazer um teste? Na linha 4397 da unit ACBrECFClass.pas inclui por favor esse código abaixo: Relatorio.SaveToFile('c:\relatorio_gerencial.txt'); Mude o caminho para o destino que preferir ai. Confira pra gente se o conteúdo está correto ou se foi cortado antes desse ponto. Vou continuar dai pra frente se ele estiver certo ou dai pra traz se ele já chegou cortado. Continuo aqui nos testes -
Perda de informação no corpo do relatorio gerencial
Waldir Paim replied to Intelliware's tópico in ACBrSerial
@Intelliware, Obrigado pelo retorno, me ajuda bastante na tarefa que estou determinado a concluir. Depois de sua resposta ainda ficou algumas duvidas: Pelo que entendi o problema já ocorria antes dessas alterações? Você está usando impressora fiscal ECF? Qual o trecho que ele perde? Qual sua versão de Delphi ou está usando o Free Pascal/Lazarus? Pra mim essas respostas ajudam a tentar compreender melhor o que ocorre. -
Graça, boa tarde. Você tem os fontes do Fortes ai nessa maquina? Se sim o caminho dessa pasta está no path do seu delphi? Da uma conferida nesses dois pontos que pode ser esse o motivo.
-
Remoção de Hints e Warning do ACBr
Waldir Paim replied to Waldir Paim's tópico in Dúvidas Gerais sobre o ACBr
Oi Daniel, Sem problemas, fazemos da forma que você sugeriu. Fazendo uma analise geral já foi removido grande parte dos avisos. A grande maioria agora se concentra nas pastas do Serial, TEF e Boleto e DF-e PCN (esses dois eu já anexei as units) e como te falei nos projetos de terceiros principalmente no Fortes. Como trata-se de a grande maioria de código mantido por ti eu vou tentar te mandar tudo zipado no inicio da semana que vem. Mas grande parte dos usuários poderiam se manifestar e relatar possíveis anomalias decorrente das alterações, mas isso é de cada um e não tenho como julgar. Estamos ai dispostos a limpar todos esses monte de avisos e você ta com o pé no acelerador controla ai. -
Eu gostei da iniciativa. Mas minha ideia será utilizar REST mesmo na rede local, estou trabalhando nessa semana para resolver a questão do CEST, mas semana que vem pretendo me dedicar 100% do tempo para terminar o nosso HttpServer para responder as requisições. Depois do server rodando acredito que os clientes não serão tão complicados assim e podemos ir trocando ideias de qual logica é mais aplicada.
-
Que bom, Na semana que vem quando passar o período da inclusão do CEST vou dar uma organizado aqui no que tenho e o que você liberou. Você não respondeu esse trecho: Se puder usar vou converte ele para Postgress para conseguir usar na nossa Api. Trabalho com clientes de supermercado e alguns chegam ter mais de 40 mil itens no mix e uma ferramenta dessa ajuda muito manter as coisas organizadas.