Ir para conteúdo
  • Cadastre-se

douglas_k

Membros
  • Total de ítens

    189
  • Registro em

  • Última visita

  • Days Won

    1

Posts postados por douglas_k

  1. Em 30/08/2024 at 23:18, Junior Dias disse:

    Depois de bater cabeça, pesquisando, testando, descobri uma forma de resolver esse problema e outros como a lentidão eventual na consulta no DB. No meu caso o cliente abria o sistema, deixava parado por alguns minutos e no primeiro Insert ou Select o tempo de resposta demorava 30 segundos, somente na primeira consulta, depois funcionava perfeitamente, não apresentava erro. Verifique nas propriedades do FDConnection em ResourceOptions, AutoReconnect está marcada como True, no seu Form principal coloque um Timer para executar a cada 30 segundos o FDConnection.Ping. Quando uma conexão está inativa, o método Ping tenta abrir uma conexão.

    Observações: banco PostgresSQL remoto, isso acontecia quando a latência entre o cliente e o servidor passava de 20ms

    Fontes do que estou explicando: 

    https://docwiki.embarcadero.com/Libraries/Athens/en/FireDAC.Comp.Client.TFDCustomConnection.Ping

    @Junior Dias muito obrigado pelo retorno. Na época usava o componente dbexpress via odbc agora migrei para o firedac com comunicação direta por dll e melhorou bastante. Utilizo isso em um PDV e o postgres seria o banco da retaguarda. Oque vejo ainda é que em determinados momentos que o banco fica muito lento por algum problema no servidor, a aplicação fica sem resposta e trava, parece que não respeita o timeout. 

    Vou verificar essa questão do Ping para ver se atende oque preciso.

     

  2. Em 24/07/2024 at 13:43, douglas_k disse:

    uhum, to fazendo assim: ACBrTEFD.DesInicializar(TACBrTEFDTipo(GerenciadorPadraoTEF)) e depois de capturar oque preciso Inicializo novamente: ACBrTEFD.Inicializar(TACBrTEFDTipo(GerenciadorPadraoTEF))
    Vou tentar dar uma olhada no tefd se encontro algo trabalhando com clisitef capturando dados. 

    Obrigado Juliomar.

    Bom dia Pessoal,

        Só para reportar caso alguém venha utilizar, estou trabalhando com o TEFD e o ACBrAbecsPinPad juntos na aplicação, sempre que preciso requisitar algo para o pinpad chamo ACBrAbecsPinPad e quando preciso transacionar operação tef trabalho com o ACBrTEFD. Fiz alguns tratamentos na parte de quando tem transação TEF pendente e faço o DesInicializar e Inicializar do tefd para não tratar essa transação e sim só no final da venda, tirando isso ja estou com as aplicações a mais de um mês em produção funcionando sem problemas.

    • Curtir 1
  3. Boa tarde pessoal,

       Quando efetuado uma venda em ECF com produto e serviço e após isso o pessoal tenta fazer uma NF-e conforme cupom esta retornando esse erro 374. Estamos mandando os dois itens com CFOP 5929, mas o serviço vai com as tags de serviço, nesse caso teria que ir sem essas tags de serviço? Talvez enviar como Isento?

      Isso até um tempo atrás não retornava erro, alguém com a mesma situação que já tenha contornado a situação?

  4. 1 minuto atrás, Juliomar Marchetti disse:

    na verdade se tu começar a inicializar e desinicializar vai dar problemas em algum momento

    por que carregar e descarregar a dll´s no windows vai ter anota ai.

    e sobre o pinpad é só trocando não tem update

    uhum, to fazendo assim: ACBrTEFD.DesInicializar(TACBrTEFDTipo(GerenciadorPadraoTEF)) e depois de capturar oque preciso Inicializo novamente: ACBrTEFD.Inicializar(TACBrTEFDTipo(GerenciadorPadraoTEF))
    Vou tentar dar uma olhada no tefd se encontro algo trabalhando com clisitef capturando dados. 

    Obrigado Juliomar.

    • Curtir 1
  5. 1 hora atrás, Juliomar Marchetti disse:

    Se tu usar o TEF ele não vai deixar tu mexer no pinpad pois ele vai segurar a porta do pinpad pra ele.

    não tem , tu deverá comprar um novo com as novas bibliotecas, sem elas não deixa acessar.

    sitef tem algo diretamente está implementado no componente ACBrTEFD então poderia testar ele que funciona

    Na verdade eu consegui trabalhar com os dois, quando necessário capturar algum dado do pinpad desconecto o sitef e conecto com o 'acbrabecspinpad' isso sem problema, só com pinpad em versão anteriores essa captura da erro pois o pinpad não reconhece o parâmetro.

  6. Bom dia pessoal, fiz umas alterações no PDV para capturar dados do pinpad usando o componente 'ACBrAbecsPinPad' mas acabei tendo problema pois temos pinpads com versão da especificação 2.03 e pelo que pesquisei nessa versão do pinpad não a compatibilidade para algumas capturas.

    Qual caminho pode ser seguido? Alguém tem conhecimento se é possível atualizar esses pinpads para uma versão superior? Ou até mesmo usar a mesa versão e de alguma forma fazer funcionar no ACBrAbecsPinPad?

    Utilizamos o TEFD também para integração com Sitef e utilizando a clisitef, alguém ja fez alguma solicitação no pinpad usando clisitef pelo tefd? é tranquilo fazer, tem algo no acbr ja?

     

    Obrigado pela ajuda, caso alguém já tiver efetuado algo nesse sentido

  7. Bom dia pessoal,

    Tenho uma balança rodoviária lider que esta configurada para ser utilizada na rede, estou efetuando testes com o ACBrBal, colocando na porta 'TCP:192.168.1.138:3500' mas o retorno do peso sempre vem com o valor 0.

    A parte de ativar parece estar ok, pois se coloco um ip invalido da erro, mas a captura acaba sempre retornando 0.

     

    --------------------------------------------------------------------------------
    ATIVAR - 30/01/23 10:40:05:163 - Modelo: Lider - Porta:          Device: BAUD=2400 DATA=8 PARITY=N STOP=1 HANDSHAKE= MAXBANDWIDTH=0 SENDBYTESCOUNT=0 SENDBYTESINTERVAL=0
    --------------------------------------------------------------------------------

     - 10:40:07:491 RX <- 
                  UltimoPesoLido: 0 , Resposta: 
     - 10:40:08:646 RX <- 
                  UltimoPesoLido: 0 , Resposta: 
     - 10:40:09:281 RX <- 
                  UltimoPesoLido: 0 , Resposta: 
     

  8. 20 horas atrás, leandroaoa disse:

    Mas é so voce criar os style estou deduzindo que voce saiba trabalhar com htm

    var
      Doc: Variant;
    begin
      if not Assigned(WebBrowser1.Document) then
        WebBrowser1.Navigate('about:blank');

      Doc := WebBrowser1.Document;
      Doc.Clear;
      Doc.Write('<html>');
      Doc.Write('<head>');
      Doc.Write('<style>');
      Doc.Write('.important {background-color: blue; color: white; border: 2px solid black; margin: 2px; padding: 2px;}');
      Doc.Write('</style>');
      Doc.Write('</head>');
      Doc.Write('<body>');
      Doc.Write('<h1 class="important">Isto é um cabeçalho</h1>');
      Doc.Write('<p class="important">Isto é um parágrafo.</p>');
      Doc.Write('</body>');
      Doc.Write('</html>

    Boa tarde, obrigado pelas dicas

  9. Em 21/01/2023 at 10:45, leandroaoa disse:

    bom dia

    porque voce não usa WebBrowser no lugar do RichEdit exemplo:

    var
      Doc: Variant;
    begin
      if not Assigned(WebBrowser1.Document) then
        WebBrowser1.Navigate('about:blank');

      Doc := WebBrowser1.Document;
      Doc.Clear;
      Doc.Write('<b>Erro:</b>Forma de pagamento inválida.');
      Doc.Close;
     

    Bom dia @leandroaoa

    Na verdade quero usar para fazer uma tela padrão de mensagens, poderia ser também um webbrowser pois ai já interpreta html, só teria que fazer ele ficar da mesma cor do form. Peguei uma procedure e adaptei aqui, consegui assim formatar o richedit interpretando o html, agora só vou fazer pra tratar as tags que passo, fiz com o negrito um exemplo. Abaixo tem uma tela como ficaria com o richedit e com o webbroser

    procedure TForm1.ApplyStyleWhenMatchPattern(Edit: TRichEdit; const TokenStart,
      TokenEnd: string);
    var
      StartPos, EndPos, OffSet, Len: Integer;
    begin
      Len:= Length(Edit.Text);
      StartPos:= Edit.FindText(TokenStart, 0, Len, []);
      EndPos:= Edit.FindText(TokenEnd, Succ(StartPos), Len, []);
      while EndPos <> -1 do
      begin
        {Tirando a tag inicial}
        Edit.SelStart:= StartPos;
        Edit.SelLength:= Length(TokenStart);
        Edit.SelText :='';

        EndPos := EndPos - Length(TokenStart);

        {Atribuindo estilo}
        Edit.SelStart:= StartPos;
        Edit.SelLength:= EndPos - StartPos;
        if TokenStart = '<b>' then
          Edit.SelAttributes.Style:= [fsBold];

        {Tirando a tag final}
        Edit.SelStart:= EndPos;
        Edit.SelLength:= Length(TokenEnd);
        Edit.SelText :='';

        OffSet:= Succ(EndPos);
        StartPos:= Edit.FindText(TokenStart, OffSet, Len, []);
        EndPos:=   Edit.FindText(TokenEnd,   Succ(OffSet), Len, []);
      end;
    end;
     

      RichEdit1.Lines.Text :=  '<b>Erro:</b> Forma pagamento invalida '+ #10 +'<b>Erro:</b> Forma pagamento invalida' + #10 + '<b>Erro:</b> Forma pagamento invalida';
      ApplyStyleWhenMatchPattern(RichEdit1, '<b>','</b>');

    image.png.07d5f856a9b6d7a0a1c0df18cc7dd279.png

  10. 42 minutos atrás, Élviro Cavalcanti disse:

    Pelo que entendi, você está querendo pegar algo dentro de um html ou xml por exemplo, você poderia usar o seguinte:

     

    function TfrmExemplo.obterNroResultado(const aXML: XMLString; aTag,
      aEndTag: string): string;
    var
      _Posini, _Posfim  : integer;
    Begin
      Result := '';
      _Posini:= Pos(aTag,aXML);
      _Posfim:= Pos(aEndTag,aXML);
      if  ( _Posini > 0 ) then
        begin
          inc(_PosIni, Length(aTag));
          Result:=Copy(aXML,_Posini+1,(_PosFim-_PosIni)-1);
        end;
    end;
     

    E no botão seria esse comando pra chamar o campo desejado, seria isso ?

      EditResultado.Text := obterNroResultado(mmXML.Text, '<nRec','</nRec');
     

    na verdade eu quero que no RichEdit eu mostre o texto conforme uma string com html que vou passar, que tipo o texto seja exibido com a formação

    Eu to montando umas mensagens para usuário e to ja montando essa msg usando html, ai abro uma tela pra mostrar pro usuário e nessa tela quero mostrar essa mensagem formatada conforme a string que montei.

  11. 53 minutos atrás, douglas_k disse:

    Bom dia Pessoal,

       Tenho a seguinte questão, utilizando o sitef com clisitef e carteiras digitais. Quando seleciono um meio de pagamento no cliente que seria para pagamento com 'Pix'  o Sitef me retorna as carteiras digitais que estão habilitadas no clisitef.ini na sessão [CarteirasDigitais] e tag CarteirasHabilitadas=027160110024.... 

      Eu gostaria que não fosse feito essa seleção, que já fosse direto para exibição do qrcode já que eu sei a forma de pagamento que estou trabalhando. Uma forma que acredito que funcionaria seria alterar esse .ini conforme preciso, só habilitando a carteira digital que estou transacionando no momento, alguém já trabalha alterando o clisitef.ini em tempo de execução? como aplicar a alteração depois de alterar o arquivo? Ou alguém tem outra forma que trabalha para contornar essa situação?

     

    Até mais.

    Resolvido.. é só antes de iniciar a transação incluir juntamente com as restrições ACBrTEFD1.TEFCliSiTef.Restricoes o texto {CarteirasDigitaisHabilitadas=027160110024} ai habilitando oque é vc deseja.

  12. Bom dia Pessoal,

       Tenho a seguinte questão, utilizando o sitef com clisitef e carteiras digitais. Quando seleciono um meio de pagamento no cliente que seria para pagamento com 'Pix'  o Sitef me retorna as carteiras digitais que estão habilitadas no clisitef.ini na sessão [CarteirasDigitais] e tag CarteirasHabilitadas=027160110024.... 

      Eu gostaria que não fosse feito essa seleção, que já fosse direto para exibição do qrcode já que eu sei a forma de pagamento que estou trabalhando. Uma forma que acredito que funcionaria seria alterar esse .ini conforme preciso, só habilitando a carteira digital que estou transacionando no momento, alguém já trabalha alterando o clisitef.ini em tempo de execução? como aplicar a alteração depois de alterar o arquivo? Ou alguém tem outra forma que trabalha para contornar essa situação?

     

    Até mais.

  13. Em 11/05/2022 at 16:23, Juliomar Marchetti disse:

    Veja que interessante é algo da regra de negócio que tu vai colocar em seu sistema.

    tudo é possível, mas geralmente se fechou o valor o máximo que deixa de troco era um valor inferior que o valor em dinheiro lançado.

    hoje já não tu pode usar para sacar grana e entregar a pessoa como muitos  estabelecimentos fazem

    Show, obrigado @Juliomar Marchetti

  14. Boa tarde Pessoal,

       Tenho uma duvida no momento de fazer um pix troco... eu tenho uma venda de 5,00 reais e faço o pagamento em pix de 5,00 reais mais 2,00 reais que informei em troco... como vcs tratam esses dois reais de troco, vcs jogam junto no valor recebido e enviam para venda 7,00 reais de pagamento, gerando os 2,00 reais de troco? 

       Agora pensamos que a venda seja 7,00 reais ele paga 5,00 no pix e informa 2,00 no troco, então se seguir a mesma logica da forma anterior ele vai enviar 7,00 reais para o pagamento e fechar a venda pois atingiu o total.

     

     

  15. 14 horas atrás, Juliomar Marchetti disse:

    Exatamente pois pra rodar no Win64 não é instalado na IDE 64 pois a IDE do delphi é Win32.

    o que ele precisa é de diretivas e estar na win32 pra dai funcionar.

    Pelo instalador deu os mesmos erros que abrindo pelo delphi e compilando.

    image.thumb.png.7d335f8a8fcfe6cb0789141c160418ec.png

    Ele gerou uma pasta LibD27x64 vazia.

    Oque acho estranho é assim, se eu crio um projeto vcl com o acbrboleto e o acbrboletofcfortes, ele compila win32 e win64, inclusive o exemplo utilizando o acbrboleto que vem junto com o projeto compilou corretamente para os dois.

    Agora se faço a criação de um projeto delphimvcframework ele só compila win32 se tentar compilar win64 gera aqueles erros do primeiro tópico. 

    image.thumb.png.da4c3d7903ba23d972159f383549e49b.png

    Esse diretório libD27x64, tentei substituir para o libD27 e tambem deixar sem ele, e de todos jeitos ocorreram os mesmos erros.

    image.png

  16. Boa tarde, 

       Estou tentando instalar o fortes para windows 64. Tanto usando o instalador quanto compilando pelo delphi, ocorre o seguinte erro ao compilar 'e2202 required package 'designide' not found'.

     

    image.thumb.png.566e0bfeb2b68762b132d93dd05778cc.png

      Estamos iniciando um projeto utilizando delphi mvc e o acbrboleto e gostaríamos de utilizar win64. Compilando win32 vai sem problema mas compilando win64, ocorrem vários erros na compilação.

    image.thumb.png.f1fc8ab433776bc40716d299fb350a59.png

×
×
  • 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.