Ir para conteúdo
  • Cadastre-se

dev botao

dev botao

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

Recommended Posts

  • Membros Pro
Postado

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;

 

  • Consultores
Postado
  Em 18/03/2019 at 17: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 ?

Expandir  

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.
  • Membros Pro
Postado
  Em 20/03/2019 at 14:01, 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.

 

 

Expandir  

BOM DIA...

 

problema que eu nao guardei a versao anterior...

nem sei como proceder agora...

  • Consultores
Postado
  Em 20/03/2019 at 14:08, tiagopassarella disse:

BOM DIA...

 

problema que eu nao guardei a versao anterior...

nem sei como proceder agora...

Expandir  

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.
  • Membros Pro
Postado
  Em 20/03/2019 at 19:37, nicolasbraz disse:

Conseguiu resolver algo? eu estou com o mesmo problema. 

Expandir  

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

Postado
  Em 20/03/2019 at 19:55, tiagopassarella disse:

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

Expandir  

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

  • Membros Pro
Postado
  Em 20/03/2019 at 19:58, 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). 

Expandir  

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

Postado
  Em 20/03/2019 at 20:01, tiagopassarella disse:

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

Expandir  

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

Postado

Acompanhando, também estou com o mesmo problema;

Não consta no Log, nada referente a isso; nem mesmo a função da VT100 do curso é chamada;

Se tiveram novidades, avisem pf!

Postado

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]

 

Postado

Na ACBrMTer > TACBrMTer.DoRecebeDados tem um case, quando eu removi ele, parou de voltar o cursor para o inicio; estou vendo ainda oque ocorre; pois ele é necessário, pois sem ele o microterminal não exibe oque foi digitado :D

Postado (editado)

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
  • Membros Pro
Postado
  Em 28/03/2019 at 00:38, 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!

Expandir  

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
  • Consultores
Postado

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.
  • Membros Pro
Postado
  Em 28/03/2019 at 14:51, EMBarbosa disse:

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

Expandir  

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

  • Consultores
Postado
  Em 28/03/2019 at 15:04, 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

Expandir  

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

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; 

  • Membros Pro
Postado
  Em 28/03/2019 at 15:29, 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; 

Expandir  

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

ufa...rssss

  • Curtir 1
  • Este tópico foi criado há 2296 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.