-
Total de ítens
27.046 -
Registro em
-
Última visita
-
Days Won
758
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Daniel Simoes postou
-
Edson, Acompanhe os históricos de atualização através dos arquivos ACBrxxx-Chage-Log.txt (em cada pasta dos fontes) Você tb pode usar o TortoiseSVN para comparar os fontes atuais com a qq outra versão anterior...
-
Tela PAF-ECF de acordo coma resolução
Daniel Simoes replied to Pedrourbano's tópico in Object Pascal - Delphi & Lazarus
Vc poderia ancorar os componentes Left/Right para que eles se ajustem ao tamanho da tela... mas isso não mudaria a fonte... No meu caso, fiz um editor de Skins, onde posiciono os componentes visualmente, e esse programa gera um .INI com as coordenadas e características de cada componente (uma re-invenção do .DFM ) -
Pré-Homologação - Sequencia 66
Daniel Simoes replied to Renan Camaforte's tópico in Dúvidas sobre TEF
Isso realmente ocorre... Vc precisa cancelar a transação TEF independente de ter tido sucesso na comunicação com o ECF... O que geralmente é feito... e verificar o estado do ECF antes de iniciar uma nova venda... Ou seja, apenas quando realmente for necessário vc se preocupa com o estado do ECF... E se o estado não for livre, vc trata o documento em aberto... No ACBrECF o método CorrigeEstadoErro já faz isso -
Como subir os arquivos .SO no sistema para tirar MFD
Daniel Simoes replied to brasizza's tópico in ACBrSerial
- Experimente remover o Path do nome do arquivo... Deixe apenas: "nomearquivo.so" - O que é "SharedSuffix" ? Lembre-se que o Linux é CaseSensitive, ou seja, o nome deve ser idêntico ao do arquivo - No Lazarus/FPC, Tenho usado o método: dynlibs.LoadLibrary(LibName) ; - Tenha certeza de que a Lib está em algum diretório do LibPath do Linux (apenas os .SO existente nos diretórios previamente autorizados são carregados) (provavelmente /usr/lib é correto) - Verifique se essa LIB depende de outras (que ainda não foram instaladas)... tente o comando: ldd "nomearquivo.so" -
Isso realmente acontece... (pois os dados foram lidos antes)... o mesmo será verdade para o CRZ... basta vc lembrar disso e adicionar +1
-
Acho que é a hora de aposentar essa IF do código function TACBrECFBematech.GetTotalPago: Double; begin { O Bug no comando 35 + 22 ainda persiste na versao 010101... Enquanto nao obter uma correção da Bematech vou ignorar o uso do 35+22 na MPTH e MP25 } if fs25MFD then // if NumVersao = '010000' then Result := fsTotalPago else Result := StrToFloatDef( RetornaInfoECF( '22' ),0 ) / 100 ; end;[/code] para simplesmente: [code] function TACBrECFBematech.GetTotalPago: Double; begin Result := StrToFloatDef( RetornaInfoECF( '22' ),0 ) / 100 ; end;
-
Consegui resolver o problema, lendo direto o Flag de Tipo de documento... function TACBrECFBematech.GetSubTotal: Double; Var RetCmd : AnsiString ; B2 : Integer ; ENaoFiscal : Boolean ; begin ENaoFiscal := False; if fpMFD then begin RetCmd := RetornaInfoECF( '65' ) ; B2 := ord( RetCmd[1] ) ; ENaoFiscal := TestBit( B2 ,0) ; end ; if not ENaoFiscal then begin BytesResp := 7 ; RetCmd := BcdToAsc( EnviaComando( #29 ) ) ; end else RetCmd := RetornaInfoECF('66') ; Result := StrToFloatDef( RetCmd, 0) / 100 ; end; [/code] O problema porém agora foi transferido para o método [b]GetTotalPago[/b]... ao que parece a Bematech não tem um registrador que informe o total já pago em um comprovante não fiscal
-
Em um IF acima ele faz o teste de Visible... deve ser o suficiente para o Delphi.. mas no caso do FPC, ainda é possível saber se o controle está realmente sendo pintado... Por exemplo: IsVisible pode ser False, se um TTabShet está oculto...
-
Realmente essa propriedade não existe no Delphi.. deve ser exclusiva do lazarus/FPC... Inseri um IFDEF... por favor atualize e verifique se resolve...
-
A modificação é recente... estou verificando se no Delphi não existe essa propriedade (IsVisible)
-
podemos usar uma variável private... (na Daruma é usado isso pois em alguns casos não é possível detectar o estado de pagamento) Mas isso só funciona enquanto o Flag estiver na memória... ou seja, sair e carregar novamente o programa, o flag perderá o valor...
-
Estranho, pois não há modificação no tipo de código de Barras usado pelo Gerador em Quick por Banco... Ou seja, todos os Bancos usam o mesmo formato de código de barras.... e não temos reclamação semelhante de outros bancos Imprima um boleto com outro programa, com os mesmos dados, e verifique se realmente há diferença Tente tb em outra impressora...
-
Por favor tente mudar para: ANossoNumero := OnlyNumber(NossoNumero);
-
Em qual linha do código, e de qual Unit ocorre o erro ? Qual banco / carteira, etc ?? Não há uma homologação do componente... cada conta de cliente em que vc solicitar a impressão do Boleto precisará solicitar a homologação novamente diretamente com o banco...
-
Pode ser que ajude... O método abaixo calcula um Hash baseado em todos os campos de um DataSet, menos os campos informados na lista de Campos a ignorar Uses ACBrUtil ; ... function CalcHashDataSet(const ADataSet : TDataSet ; Chave : AnsiString = ''; IgnoreFields : TSetOfByte = [] ) : Word ; var NFields, I : Integer; Buffer : AnsiString ; begin Buffer := ''; Result := 0; NFields := ADataSet.FieldCount - 1 ; For I := 0 to NFields do begin if (not (I in IgnoreFields)) and (LowerCase( ADataSet.Fields[I].FieldName ) 'hash') then Buffer := Buffer + ADataSet.Fields[I].AsString; end ; if Chave '' then Buffer := StrCrypt( Buffer, Chave ); Result := StringCrc16( Buffer ) ; end; [/code] Exemplo: sqlDocumento.FieldByName('HASH').AsInteger := CalcHashDataSet(DataSet, 'SuaChave' );
-
Comunicação com Microterminal TECSYM TS3000 TCP/IP
Daniel Simoes replied to Uslei's tópico in ACBrTCP
Não... Atualmente o ACBr não faz comunicação com nenhum micro-terminal por TCP/IP -
Veja na Unit ACBrBoleto.pas o seguinte método: procedure TACBrBanco.SetNumero(const AValue: Integer); begin if fNumeroBanco = AValue then exit; fBancoClass.Free; case AValue of 001 : fBancoClass := TACBrBancoBrasil.create(Self); 033,353,008 : fBancoClass := TACBrBancoSantander.create(Self); 041 : fBancoClass := TACBrBanrisul.create(Self); 104 : fBancoClass := TACBrCaixaEconomica.create(Self); 237 : fBancoClass := TACBrBancoBradesco.create(Self); 341 : fBancoClass := TACBrBancoItau.Create(self); 389 : fBancoClass := TACBrBancoMercantil.create(Self); 748 : fBancoClass := TACBrBancoSicredi.Create(self); 756 : fBancoClass := TACBrBancoob.create(self) else fBancoClass := TACBrBancoClass.create(Self); end; fNumeroBanco := AValue; end; [/code]
-
Veja as instruções de instalação do Fortes... Acredito que a página oficial seja: http://sourceforge.net/projects/fortesreport/
-
Cada banco tem suas próprias peculiaridades.... Por favor seja mais específico no problema... O componente não lê um arquivo de Retorno que é lido com sucesso por outro programa ?
-
Por favor seja mais específico... se possível escreva passos para reproduzirmos o erro usando o demo do ACBrBoleto
-
Impressão boleto Banco do Brasil carteia 6 digitos
Daniel Simoes replied to Jéter Rabelo Ferreira's tópico in ACBrBoleto
Provavelmente isso será realmente necessário... Vou estudar com a Juliana como podemos implementar... É um saco esse tal de "padrão" FEBRABAN... simplesmente não existe padrão -
Já deste uma olhada no Manual do ACBrMonitor ?? http://acbr.sourceforge.net/ACBrMonitor ... dente.html
-
Controle de Foco da Aplicação
Daniel Simoes replied to Earmarques's tópico in Object Pascal - Delphi & Lazarus
A unit sndkey32 sempre funcionou para mim... Veja esse post: viewtopic.php?f=16&t=116&p=592&hilit=sndkey32#p592 -
Por favor anexe as Units modificadas... trataremos suas modificações comparando as Units com um programa de Merge, como por exemplo o WinMerge
-
Qual numero de Banco vc está atribuindo... Observe os fontes em ACBrBoleto.pas com os Bancos implementados procedure TACBrBanco.SetNumero(const AValue: Integer); begin if fNumeroBanco = AValue then exit; fBancoClass.Free; case AValue of 001 : fBancoClass := TACBrBancoBrasil.create(Self); 033,353,008 : fBancoClass := TACBrBancoSantander.create(Self); 041 : fBancoClass := TACBrBanrisul.create(Self); 104 : fBancoClass := TACBrCaixaEconomica.create(Self); 237 : fBancoClass := TACBrBancoBradesco.create(Self); 341 : fBancoClass := TACBrBancoItau.Create(self); 389 : fBancoClass := TACBrBancoMercantil.create(Self); 748 : fBancoClass := TACBrBancoSicredi.Create(self); 756 : fBancoClass := TACBrBancoob.create(self) else fBancoClass := TACBrBancoClass.create(Self); end; fNumeroBanco := AValue; end;[/code]