-
Total de ítens
620 -
Registro em
-
Última visita
-
Days Won
4
Tudo que Waldir Paim postou
-
@GRUPOAZUR Vamos trabalhar juntos com certeza nessa tarefa. Estou terminado uma tarefa que já me comprometi, mas assim que concluir posso me dedicar a essa nova empreitada e conto contigo. Devo contribuir com aproximadamente uns 20 mil itens do ramo de supermercado, pretendo mesclar com os registros da sua base de dados sim.
-
Remoção de Hints e Warning do ACBr
Waldir Paim replied to Waldir Paim's tópico in Dúvidas Gerais sobre o ACBr
Valeu Daniel, Estou bem contente o resultado dessas alterações, em alguns projetos já não tenho avisos (exceto os que desativei os W1057 e W1058) decorrentes do ACBr. Segue mais algumas units. Nas 03 units anexadas removi avisos do tipo W1000. ACBrDFeUtil.pas ACBrDFeOpenSSL.pas ACBrHTTPReqResp.pas Daniel, Observando aqui boa parte dos avisos da pasta ACBrSerial tambem são do tipo W1000 e com isso acredito que devo mexer neles essa semana ainda. -
Minha pequena contribuição. Segue anexo. ACBrBALSaturno.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
Segue mais algumas units para analise. Nas units ACBrETQEpl2 e ACBrETQPpla fiz o cast de PChar para PAnsiChar; Nas unit ACBrZLibExGZ uma conversão para AnsiString na saida da função. Na pcnAuxiliar da forma que a unit está escrita ela causa a mensagem do tipo W1010 é uma proposta e se aceita temos algumas outras units com o mesmo problema. ACBrETQEpl2.pas ACBrETQPpla.pas ACBrZLibExGZ.pas pcnAuxiliar.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
Segue função proposta: function CRTTocRegTrib(const t: TpcnCRT): TpcnRegTrib; var Ok : Boolean; begin result := StrToEnumerado(ok, CRTToStr(t), ['','1', '2', '3'],[RTRegimeNormal,RTSimplesNacional,RTRegimeNormal, RTRegimeNormal]); end; Mas para manter o padrão precisei passar por dois loops, mas padrão é padrão e não se discute. A variável local é um parâmetro obrigatório e não tem como não utilizar. Ainda sou muito mais a função proposta usando array e uma conversão direta pelo compilador e nativa da linguagem. Proponho também alterar para: function CRTTocRegTrib(const t: TpcnCRT): TpcnRegTrib; begin case t of crtSimplesExcessoReceita, crtRegimeNormal: Result := RTRegimeNormal; else Result := RTSimplesNacional; end; end; Muito mais rápida e com uma leitura mais agradável. Tambem podemos usar essa outra: function CRTTocRegTrib(const t: TpcnCRT): TpcnRegTrib; begin Result := RTSimplesNacional; if t in ([crtSimplesExcessoReceita, crtRegimeNormal]) then Result := RTRegimeNormal; end; Um leitura mais simples e também resolve as mensagens da IDE. Da forma que a função está escrita hoje a IDE gera avisos. -
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.