Ir para conteúdo
  • Cadastre-se

dev botao

AcbrMter Cursor volta sempre para o Inicio


tiagopassarella
  • Este tópico foi criado há 1827 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Boa Tarde...

estou com um problema que nao consigo resolver...

sempre que eu recebo uma resposta nova o CURSOR volta para o inicio da palavra...

e isso aconteceu apos eu atualziar o ACBR antes nao estava fazendo isso...

alguem pode me ajudar ? se alterou alguma coisa nesse sentido ?

 

no codigo abaixo eu leio o estado do microterminal e vou setando no display... porem o cursor nao esta respeitando...

eu percebi fazendo passo a passo no codigo que tudo acontece perfeitamente ATE entrar no Echo que seria o final do recebe dados...

ai ele volta o cursor para o inicio do texto...

 

Result := True;
      try
            ACBrMTer1.LimparDisplay(aIP);
            Sleep(250);
            Application.ProcessMessages;
            IF cdsEst.Locate('IP',aIP,[loCaseInsensitive,loPartialKey])=False then
            begin
              cdsEst.Append;
              cdsEstIP.AsString     := aIP;
              cdsEstESTADO.AsString := '1';
              cdsEst.Post;
              cdsEst.Locate('IP',aIP,[loCaseInsensitive,loPartialKey]);
            end;

            case cdsEstESTADO.AsInteger of
                  0: Exit;
                  1:
                  begin
                      ACBrMTer1.EnviarTexto(aIP, 'Operador: ');
                  end;
                  2:
                  begin
                      ACBrMTer1.EnviarTexto(aIP, 'Comanda: ');
                  end;
                  3:
                  BEGIN
                     Qry := TSQLQuery.Create(nil);
                     Qry.SQLConnection := DataModule1.Conexao;

                     Qry.SQL.Text := 'SELECT Sum(TOTAL+ACRESCIMO) As Total FROM TBCOMANDA_DETALHE WHERE STATUS=:p1 AND MESA=:p2';
                     Qry.ParamByName('p1').AsString  := 'A';
                     QRY.ParamByName('p2').AsInteger := Comanda;
                     qry.Open;
                     if not Qry.IsEmpty then
                     begin
                           ACBrMTer1.EnviarTexto(aIP, 'Valor : ' + FormatFloat('#,##0.00',QRY.FieldByName('TOTAL').AsFloat));
                     end else begin
                           ACBrMTer1.EnviarTexto(aIP, 'Valor : ' + FormatFloat('#,##0.00',0));
                     end;
                     qry.Close;
                     qry.Free;
                     ACBrMTer1.PosicionarCursor(aIP,2,1);
                     ACBrMTer1.EnviarTexto(aIP, 'Item: ');
                  END;
                  4:
                  begin
                        ACBrMTer1.EnviarTexto(aIP,Copy(P.DESCRICAO,1,15));
                        ACBrMTer1.PosicionarCursor(aIP,2,1);
                        ACBrMTer1.EnviarTexto(aIP,'Qtde: ');
                  end;
            end;
      finally
            Result := false;
            Application.ProcessMessages;
      end;

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
Em 18/03/2019 at 14:51, tiagopassarella disse:

estou com um problema que nao consigo resolver...

sempre que eu recebo uma resposta nova o CURSOR volta para o inicio da palavra...

e isso aconteceu apos eu atualziar o ACBR antes nao estava fazendo isso...

alguem pode me ajudar ? se alterou alguma coisa nesse sentido ?

O ACBrMTER passou por um amplo refactoring na revisão 16602. Eu sugiro você verificar as alterações.

Para investigar o caso você poderia ligar o log e comparar as duas versões, antes e depois da atualização, pra analisar o que está acontecendo de diferente.

Eu faria isso.

 

 

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
6 minutos atrás, EMBarbosa disse:

O ACBrMTER passou por um amplo refactoring na revisão 16602. Eu sugiro você verificar as alterações.

Para investigar o caso você poderia ligar o log e comparar as duas versões, antes e depois da atualização, pra analisar o que está acontecendo de diferente.

Eu faria isso.

 

 

BOM DIA...

 

problema que eu nao guardei a versao anterior...

nem sei como proceder agora...

Link para o comentário
Compartilhar em outros sites

  • Consultores
38 minutos atrás, tiagopassarella disse:

BOM DIA...

 

problema que eu nao guardei a versao anterior...

nem sei como proceder agora...

Essa é uma dúvida comum. Acabei de criar um tópico sobre o assunto. Dá uma olhada por favor:

 

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
17 minutos atrás, nicolasbraz disse:

Conseguiu resolver algo? eu estou com o mesmo problema. 

nao consegui resolver nao...

pior qeu estou com situação dificil com cliente pois estava funcionando e preciso entregar uma atualização...

agora complicou...

 

se alguem conseguir nos ajude por favor...

 

att

Tiago Passarella

Link para o comentário
Compartilhar em outros sites

1 minute ago, tiagopassarella said:

nao consegui resolver nao...

pior qeu estou com situação dificil com cliente pois estava funcionando e preciso entregar uma atualização...

agora complicou...

 

se alguem conseguir nos ajude por favor...

 

att

Tiago Passarella

Eu tinha um código que evitava apagar o titulo do status "vendedor:", "Comanda:" e afins, com essa atualização não é mais respeitado o meu código (que capturava o tamanho da resposta de cada terminal, agora ele sai simplesmente apagando tudo), eu subi um novo post que eu também não consigo debuggar a aplicação (trava o .exe gerado), estou pensando em fazer o rollback da versão (só do microterminal). 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
2 minutos atrás, nicolasbraz disse:

Eu tinha um código que evitava apagar o titulo do status "vendedor:", "Comanda:" e afins, com essa atualização não é mais respeitado o meu código (que capturava o tamanho da resposta de cada terminal, agora ele sai simplesmente apagando tudo), eu subi um novo post que eu também não consigo debuggar a aplicação (trava o .exe gerado), estou pensando em fazer o rollback da versão (só do microterminal). 

pensei nisso mas e complicado... pois eu ja estou com a versao nova do acbr rodando com outras coisas que preciso... entao pra mim e inviavel voltar a versao...

vou esperar alguem nos ajudar com essa questao mesmo...

 

att

Tiago passarella

Link para o comentário
Compartilhar em outros sites

2 minutes ago, tiagopassarella said:

pensei nisso mas e complicado... pois eu ja estou com a versao nova do acbr rodando com outras coisas que preciso... entao pra mim e inviavel voltar a versao...

vou esperar alguem nos ajudar com essa questao mesmo...

 

att

Tiago passarella

Creio que se você só voltar a versão do "acbrMTer" não terá problemas. 

Link para o comentário
Compartilhar em outros sites

Eu fiz alguns teste, a unica coisa que consegui localizar, se incluir 1 botão fixo com o comando de reposicionar funciona, mas se o codigo estiver sendo exultado dentro de uma procedure ou timer; ele volta para o inicio; 
Notem que gerou um [CR], ainda não descobri oque ele faz; mas foi uma das diferenças 


Log que funcionou o reposicionamento (utilizando um botão solto)
---------FUNCIONA-----------------------
 -- 27/03 17:36:42:842 -- LimparDisplay( 192.168.0.101 )
 -- 27/03 17:36:42:850 -- PosicionarCursor( 192.168.0.101, 1, 1 )
 -- 27/03 17:36:42:858 -- EnviarTexto( 192.168.0.101, "LINHA 1" )
 -- 27/03 17:36:42:865 -- PosicionarCursor( 192.168.0.101, 2, 1 )
 -- 27/03 17:36:42:873 -- EnviarTexto( 192.168.0.101, "Qtde.:" )
 -- 27/03 17:36:42:879 -- PosicionarCursor( 192.168.0.101, 2, 10 )
 -- 27/03 17:36:42:882 -- Terminal: 192.168.0.101 - TX -> 6 bytes -> [ESC][H[ESC][J
 -- 27/03 17:36:42:887 -- Terminal: 192.168.0.101 - TX -> 8 bytes -> [ESC][01;01H
 -- 27/03 17:36:42:891 -- Terminal: 192.168.0.101 - TX -> 7 bytes -> LINHA 1
 -- 27/03 17:36:42:894 -- Terminal: 192.168.0.101 - TX -> 8 bytes -> [ESC][02;01H
 -- 27/03 17:36:42:897 -- Terminal: 192.168.0.101 - TX -> 6 bytes -> Qtde.:
 -- 27/03 17:36:42:906 -- Terminal: 192.168.0.101 - TX -> 8 bytes -> [ESC][02;10H

 
-------UTILIZANDO A PROCEDURE 
 -- 27/03 17:37:29:092 -- LimparDisplay( 192.168.0.101 )
 -- 27/03 17:37:29:099 -- PosicionarCursor( 192.168.0.101, 1, 1 )
 -- 27/03 17:37:29:105 -- EnviarTexto( 192.168.0.101, "Colar" )
 -- 27/03 17:37:29:112 -- PosicionarCursor( 192.168.0.101, 2, 1 )
 -- 27/03 17:37:29:116 -- EnviarTexto( 192.168.0.101, "Qtde.:" )
 -- 27/03 17:37:29:120 -- Terminal: 192.168.0.101 - TX -> 6 bytes -> [ESC][H[ESC][J
 -- 27/03 17:37:29:126 -- Terminal: 192.168.0.101 - TX -> 6 bytes -> [ESC][H[ESC][J
 -- 27/03 17:37:29:133 -- Terminal: 192.168.0.101 - TX -> 8 bytes -> [ESC][01;01H
 -- 27/03 17:37:29:139 -- Terminal: 192.168.0.101 - TX -> 5 bytes -> Colar
 -- 27/03 17:37:29:144 -- Terminal: 192.168.0.101 - TX -> 8 bytes -> [ESC][02;01H
 -- 27/03 17:37:29:153 -- Terminal: 192.168.0.101 - TX -> 6 bytes -> Qtde.:
 -- 27/03 17:37:29:159 -- PosicionarCursor( 192.168.0.101, 2, 10 )
 -- 27/03 17:37:29:175 -- Terminal: 192.168.0.101 - TX -> 8 bytes -> [ESC][02;10H
 -- 27/03 17:37:29:181 -- Terminal: 192.168.0.101 - TX -> 1 bytes -> [CR]

 

Link para o comentário
Compartilhar em outros sites

Pessoal, na ACBrMTerClass > LimparConteudoParaEnviar > 

Se vocês alteraram o IF que tem de  if not CharInSet(aChar, [#32..#126,#13,#10,#8]) then  para  if not CharInSet(aChar, [#32..#126,#10,#8]) then

@Daniel Simoes , Daniel, acho que isso passou batido no refactoring do mter, saberia nos dizer se está ok? Encima desse IF tem um comentário de "Mantem apenas Letras/Numeros/Pontos/Sinais "; como só tenho disponível o microterminal VT100, não sei se isso pode afetar negativamente os demais;

 

Obrigado!

Editado por Renan S
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
11 horas atrás, Renan S disse:

Pessoal, na ACBrMTerClass > LimparConteudoParaEnviar > 

Se vocês alteraram o IF que tem de  if not CharInSet(aChar, [#32..#126,#13,#10,#8]) then  para  if not CharInSet(aChar, [#32..#126,#10,#8]) then

@Daniel Simoes , Daniel, acho que isso passou batido no refactoring do mter, saberia nos dizer se está ok? Encima desse IF tem um comentário de "Mantem apenas Letras/Numeros/Pontos/Sinais "; como só tenho disponível o microterminal VT100, não sei se isso pode afetar negativamente os demais;

 

Obrigado!

eu tenho um microterminal com outro modelo pra testar... vou fazer isso aki pra ver se resolve...

e logo mais posto aki..

 

att

Tiago Passarella

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Consultores

Se resolver, por favor, anexem o arquivo alterado para que seja avaliado.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
10 minutos atrás, EMBarbosa disse:

Se resolver, por favor, anexem o arquivo alterado para que seja avaliado.

boa tarde...

 

pra mim com a alteração ficou perfeita.;...

tudo voltou a funcionar perfeitamente alterando apenas a classe 

ACBrMTerClass > LimparConteudoParaEnviar > 

altearar o IF que tem de  if not CharInSet(aChar, [#32..#126,#13,#10,#8]) then  para  if not CharInSet(aChar, [#32..#126,#10,#8]) then

feito isso tudo se resolveu...

 

@EMBarbosa da uma analisada pra gente nisso se e possivel efetuar essa alteração ai no ABRMter pra que a gnete possa ja baixar direto do SVN na proxima versao...

att

Tiago Passarella

Link para o comentário
Compartilhar em outros sites

  • Consultores
4 minutos atrás, tiagopassarella disse:

boa tarde...

 

pra mim com a alteração ficou perfeita.;...

tudo voltou a funcionar perfeitamente alterando apenas a classe 

ACBrMTerClass > LimparConteudoParaEnviar > 

altearar o IF que tem de  if not CharInSet(aChar, [#32..#126,#13,#10,#8]) then  para  if not CharInSet(aChar, [#32..#126,#10,#8]) then

feito isso tudo se resolveu...

 

@EMBarbosa da uma analisada pra gente nisso se e possivel efetuar essa alteração ai no ABRMter pra que a gnete possa ja baixar direto do SVN na proxima versao...

att

Tiago Passarella

Já está no radar do Daniel para resolver. Mas se um de vocês puderem anexar o arquivo alterado facilitaria a análise.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Ae boa;

@EMBarbosa, foi apenas, a linha comentada mesmo (removido o #13); para uma analise mais detalhada, seria interessante descobrir oque levou ela a gerar o #13, pessoalmente procurei bastante mais não localizei nada; até a onde entendi seria o "Enter" recebido do próprio microterminal; em algum requisição; porém não consegue identificar outro problema não;

Mas reforçando esse #13, só aparece se o código for exultado atras de uma procedure que demore um pouco a ser concluída, se for um botão com pouca coisa, sem se quer é gerado o #13 / #$D;

 

@tiagopassarella, obrigado pelo retorno; 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
15 minutos atrás, Renan S disse:

Ae boa;

@EMBarbosa, foi apenas, a linha comentada mesmo (removido o #13); para uma analise mais detalhada, seria interessante descobrir oque levou ela a gerar o #13, pessoalmente procurei bastante mais não localizei nada; até a onde entendi seria o "Enter" recebido do próprio microterminal; em algum requisição; porém não consegue identificar outro problema não;

Mas reforçando esse #13, só aparece se o código for exultado atras de uma procedure que demore um pouco a ser concluída, se for um botão com pouca coisa, sem se quer é gerado o #13 / #$D;

 

@tiagopassarella, obrigado pelo retorno; 

opa Disponha @renan testei em 2 microterminais... e funcionou perfeitamente...

ufa...rssss

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1827 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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