Ir para conteúdo
  • Cadastre-se

douglas_k

Membros
  • Total de ítens

    181
  • Registro em

  • Última visita

  • Days Won

    1

Posts postados por douglas_k

  1. 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: 
     

  2. 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

  3. 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

  4. 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.

  5. 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.

  6. 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.

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

  8. 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.

     

     

  9. 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

  10. 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

  11. Bom dia,

        Estamos iniciando o desenvolvimento com o ACBrBoletos e fazendo alguns testes para ver se conseguimos trabalhar com Linux, porem estamos com erro ao compilar o projeto adicionando apenas um form com o componente ACBrBoleto

        O erro ocorre no mesmo local que o amigo teve nesse post: 

    Minha dúvida é, ainda não esta 100 % compatível essa questão? O Fortes reports para geração do boleto em PDF também não esta compatível com linux 64? 

  12. Em 28/05/2021 at 17:56, fabio disse:

    Não tinha nem percebido isso, mas a url que consta no xml é https://hom.sat.sef.sc.gov.br/nfce/consulta?p=42210503934293000172650010000000171228673680|2|2|1|8D8374EEC25363FB0F7BF3DD85C60D95C2BEC904

    quando copio esta url para o navegador ela se altera e fica igual esta informada acima

    Estou com a mesma situação, ele mostra certinho na Danfe e no xml da NFC-e, mas quando colo a URL no browser ou faço a leitura pelo qr-code ele altera para https://hom.sat.sef.sc.gov.br/tax.net/ e da erro 999-qr-code inválido

  13. Em 23/04/2021 at 15:48, Juliomar Marchetti disse:

    Já a um tempo no ACBrPAF mesmo. olhou e atualizou o componente?

    Boa tarde @Juliomar Marchetti, na verdade atualizei sim, a parte dos registros do PAF-NFC-e vi que foi colocado um tipo para geração onde é possível gerar para PAF-ECF e PAF-NFC-e. 

    A parte que não encontrei foi o seguinte requisito:

    I – “Identificação do PAF-NFC-e”, que apresentará na tela as seguintes informações:

    a) identificação da empresa desenvolvedora, contendo:

    1. CNPJ;

    2. razão social;

    3. endereço;

    4. telefone; e

    5. contato.

    b) identificação do PAF-NFC-e, contendo:

    1. nome comercial do PAF-NFC-e; e

     

    Hoje o identificação do PAF-ECF é chamado por ACBrECF.PafMF_RelIdentificacaoPafECF mas não encontrei algo já desenvolvido para PAF-NFC-e.

  14. Boa tarde Pessoal,

       Tive um caso semelhante com o do colega do seguinte post: https://www.projetoacbr.com.br/forum/topic/59916-mensagem-estranha-pelo-acbrmail/?tab=comments#comment-393386

       e gostaria de compartilhar com quem eventualmente tenha o mesmo problema. O email ficava sem assunto e o corpo vinha com o conteúdo da imagem abaixo.

       Em testes encontrei que a causa era o timeout muito baixo, se deixo sem timeout ou com um valor alto a mensagem é enviada corretamente.

    1.jpg

    • Curtir 2
    • Obrigado 1
  15. 8 minutos atrás, douglas_k disse:

    Na verdade se salvo outros valores ele faz corretamente, se por exemplo mover o valor 'Teste' ele salva corretamente, agora o .Clear, simplesmente não altera o valor, fica o mesmo que ja estava.

    Só para exemplificar, nessa sequencia de testes todos executam e tem o resultado esperado, menos o ultimo que seria o .clear. Ele chega executar só não altera a base de dados.

      dmSupervisor.cldsTeste.Active := False;
      dmSupervisor.cldsTeste.CommandText := 'SELECT * ' +
                                             'FROM sis_usuarios ' +
                                             'WHERE login_siusua=:P1';
      dmSupervisor.cldsTeste.Params[0].DataType := ftString;
      dmSupervisor.cldsTeste.Params[0].AsString := '0';
      dmSupervisor.cldsTeste.Active := True;
      while not dmSupervisor.cldsTeste.Eof do
        begin
          dmSupervisor.cldsTeste.Edit;
          dmSupervisor.cldsTeste.FieldByName('nome_siusua').AsString := 'Teste';
          dmSupervisor.cldsTeste.post;
          dmSupervisor.cldsTeste.ApplyUpDates(-1);
          dmSupervisor.cldsTeste.Next;
        end;

      dmSupervisor.cldsTeste.Active := False;
      dmSupervisor.cldsTeste.CommandText := 'UPDATE sis_usuarios ' +
                                            'SET nome_siusua=null ' +
                                            'WHERE login_siusua=:P1';
      dmSupervisor.cldsTeste.Params[0].DataType := ftString;
      dmSupervisor.cldsTeste.Params[0].AsString := '0';
      dmSupervisor.cldsTeste.Execute;

      dmSupervisor.cldsTeste.Active := False;
      dmSupervisor.cldsTeste.CommandText := 'SELECT * ' +
                                            'FROM sis_usuarios ' +
                                            'WHERE login_siusua=:P1';
      dmSupervisor.cldsTeste.Params[0].DataType := ftString;
      dmSupervisor.cldsTeste.Params[0].AsString := '0';
      dmSupervisor.cldsTeste.Active := True;
      while not dmSupervisor.cldsTeste.Eof do
        begin
          dmSupervisor.cldsTeste.Edit;
          dmSupervisor.cldsTeste.FieldByName('nome_siusua').AsString := 'Outro Teste';
          dmSupervisor.cldsTeste.post;
          dmSupervisor.cldsTeste.ApplyUpDates(-1);
          dmSupervisor.cldsTeste.Next;
        end;

      dmSupervisor.cldsTeste.Active := False;
      dmSupervisor.cldsTeste.CommandText := 'SELECT * ' +
                                            'FROM sis_usuarios ' +
                                            'WHERE login_siusua=:P1';
      dmSupervisor.cldsTeste.Params[0].DataType := ftString;
      dmSupervisor.cldsTeste.Params[0].AsString := '0';
      dmSupervisor.cldsTeste.Active := True;
      while not dmSupervisor.cldsTeste.Eof do
        begin
          dmSupervisor.cldsTeste.Edit;
          dmSupervisor.cldsTeste.FieldByName('nome_siusua').Clear;
          dmSupervisor.cldsTeste.post;
          dmSupervisor.cldsTeste.ApplyUpDates(-1);
          dmSupervisor.cldsTeste.Next;
        end;

     

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

The popup will be closed in 10 segundos...