Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

consultoria_sticker.png

Conteúdo para desenvolvedores
 ao vivo de terça a quinta!
Saiba mais

dev.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


Saiba mais

beneficios.png

bylaardt

Membros
  • Content Count

    27
  • Joined

  • Last visited

Community Reputation

25 Excellent

1 Follower

About bylaardt

  • Rank
    Membro
  • Birthday 11/10/1973

Profile Information

  • Sexo
    Masculino
  • Location
    Balneário Camboriú-SC

Recent Profile Visitors

743 profile views
  1. Qual distro? algumas distros já vêm com o FPC pré-instalado que conflita com a compilação do ppcx recomendo instalar o lazarus através do fpcupdeluxe, ele já reconfigura o fpc.cfg e você pode instalar todos os compiladores cruzados que precisar, sem alterar o fpc instalado em /usr/bin ou /usr/local/bin, não conflitando com a distro e permitindo instalar várias versões diferentes do lazarus e dp FPC em diretórios distintos. A versão mais atual você pode baixar daqui: https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases
  2. A divisão decimal sempre deve ser evitada, não importa a linguagem! E quando possível, primeiro multiplique, depois divida, veja o exemplo teórico: 3*(10/3) = 3* (3.33333333333) = 9.99999999999 3*10/3 = 30 / 3 = 10 creio que você resolveria o problema sem gambiarras se removesse os parêntese e apenas multiplicasse: 11000,00 * 0.022215 É importante também você converter para o formato correto do número, preferencialmente usando Currency ao invés de Extended: Lembre-se que a estrutura do Currency é basicamente um Int64 com quatro casas decimais
  3. procedure SetControlUpperCase(MyComponent:TWinControl); Var i:Integer; begin if MyComponent is TCustomComboBox then TCustomComboBox(MyComponent).CharCase:=ecUppercase else if MyComponent is TCustomEdit then TCustomEdit(MyComponent).CharCase:=ecUppercase; for i:=0 to MyComponent.ControlCount-1 do if MyComponent.Controls[i] is TWinControl then SetControlUpperCase(TWinControl(MyComponent.Controls[i])); end; depois é só chamar a procedure uma vez, exemplo: procedure TForm1.FormCreate(Sender: TObject); begin SetControlUpperCase(Self); end; com a vantagem de
  4. porque utf8 não é apenas 8bits (note que você usa [1] para limitar ao primeiro byte). não use OnKeyPress, caso queira colocar no evento apropriado, coloque em OnUTF8KeyPress e não limite à um byte a alteração com Uppercase Mas ainda acredito que apenas setar corretamente a propriedade Charcase deve resolver no seu caso.
  5. O Bug já foi corrigido em versões posteriores (trunk review 62806), mandei o patch em março. https://bugs.freepascal.org/view.php?id=36815 O problema só ocorre com compilação GTK2, se compilar para Qt não ocorre o erro.
  6. Outra opção é setar ecUpercase na propriedade Charcase de qualquer objeto derivado de TCustomEdit
  7. Eu entendi um evento para cada fornecedor, limitado à 100 eventos por lote. Tem certeza que é um arquivo para cada fornecedor / cliente?
  8. Eu estou usando Linux e resolvi o único problema de validação alterando o nome do arquivo "envioLoteEventos-v1_03_02.xsd" para "EnvioLoteEventos-v1_03_02.xsd".
  9. Quanto ao estudo da ACBrNFe, a minha intenção é realmente verificar como ocorre a evolução do componente, os remendos, as gambiarras, os processos de revisão: o desenvolvimento em si, não apenas o estudo do código fonte. Ainda vejo deficiência na documentação: acharia muito mais interessante comentar o código para poder gerar a documentação por aplicativos como o pasdoc, mas isso é opinião. Imagino que possa haver muito mais contribuições quando o material está documentado, mas ao mesmo tempo, sei que isso demanda recursos. A documentação ajudaria muito no processo de revisão. Quanto à
  10. Com certeza! eu apenas tive dificuldades em entender o que LoadFromString deveria fazer, e a rotina não fazia sentido (aliás, ainda não faz) para mim. Eu ainda não me sinto apto a ajudar por enquanto já que, como eu disse, ainda estou estudando os fontes e entendendo a dinâmica dos desenvolvedores. Quando digo que sou muito fã do ACBr, não o digo porque os componentes são bons ou fáceis de usar. Digo isso pela filosofia de trabalho compartilhado. Pessoalmente ainda não usei os componentes, e nem vejo necessidade imediata de fazê-lo, mas isso não significa que eu não possa contribuir nu
  11. Oi Italo, Grato! Era isso que eu precisava saber. Presumo que o componente será revisto, certo?
  12. Oi Juliomar, pronto, esvaziei a mente e me deparo com um código assim: Abaixo o do arquivo ACBrReinf.pas function TEventos.LoadFromString(AXMLString: String): Boolean; var AXML: AnsiString; P, N: integer; function PosReinf: integer; begin Result := pos('</Reinf>', AXMLString); end; begin Result := False; N := PosReinf; while N > 0 do begin P := pos('</Reinf>', AXMLString); if P > 0 then begin AXML := copy(AXMLString, 1, P + 9); AXMLString := Trim(copy(AXMLString, P + 10, length(AXMLString))); end else begi
  13. Oi Rafael, não vou poder ajudar enquanto não entender a metodologia. Como você pode ver, a falta de documentação e os fontes pouco comentados me impedem de saber o que vocês já têm pronto. Minha dúvida específica era em relação à função LoadFromString presente em Teventos e TloteEventos, que ainda não foi solucionada: não sei qual o objetivo dessa função. só isso! ela me parece confusa: veja os fontes, as variáveis N e P não fazem sentido. meu objetivo não é usar o reinf, e sim estudar os fontes. Escolhi o Reinf justamente por ser uma tecnologia que precisa ser implantada agora e estou a
  14. Oi Italo, na verdade eu ainda estou estudando os componentes, não exatamente usando-os ainda. E eu sou muito fã do ACBr, mas também sou muito fã de projetos OpenSource porque permitem à você adaptar, melhorar, personalizar. Acho que nada não possa ser melhorado e a rigidez de um componente pode não ser a melhor forma de evoluir. Acho importante ter todos os recursos, mas nem sempre eu preciso de um caminhão para ir à panificadora para trazer apenas um pãozinho... Minha dificuldade está em entender o que a função LoadFromString deveria fazer. pelo nome parece-me que deveria ler um event
  15. estudando os fontes, eu simplesmente não consigo entender as funções derivadas de TEventos.LoadFromString(AXMLString: String): Boolean; (linha 224 de acbrreinfeventos.pas e seguintes) explico: qual a função das variáveis N e P já que ambos procuram pela mesma posição com a função "pos('</Reinf>', AXMLString)" ? cada evento não deveria estar entre as posições de <Reinf> e </Reinf>? Eu já possuo um gerador de XML, caso eu gere os eventos por essa rotina que não faz parte do tAcbrReinf, seria essa função (TEventos.LoadFromString) que eu devo usar para enviá-los?
×
×
  • Create New...