Como implantar um contador de STRING?

Delphi

03/09/2013

Boa tarde meus amigos!


Então estou implantando um sistema de microteminal em meu sistema já consigo enviar e receber mensagens dele e pesquisar produtos mas
Preciso fazer um contador para saber em que parte da tarefa estou.

Por exemplo ao receber uma infromação do dado eu iria conta la informação 1

dai ao digitar mais uma coisa no terminal ele iria contar como 2 ai ia para o passo dois e assim por diante
contador 1 ai ficaria assim


if contador = 1 then

procedure TForm1.Timer2Timer(Sender: TObject);
begin
conjunto:=0;
canal:=100;
if (getcnt (  dado,canal,conjunto ))=1 then
Begin
with datamodule1.QData do begin
     datamodule1.QData.SQL.Clear;
     datamodule1.QData.SQL.Add('select * from data Where comanda Like '+''''+Trim(dado)+'%'+''''+'');
     datamodule1.QData.SQL.Add('Order By comanda');
     datamodule1.QData.Open;
end;
end;
end;
end.
Fabio 2013

Fabio 2013

Curtidas 0

Respostas

Ricardo Araujo

Ricardo Araujo

03/09/2013

caro amigo,


Já pensou usar desta forma, criando uma function que retorna um "integer";
Usando a mesma rotina que você tem, só mudei adicionei um "count" no seu SELECT.

Espero que ajude.

with datamodule1.QData do
begin
datamodule1.QData.SQL.Clear;
datamodule1.QData.SQL.Add('select count(*) as QTD from data Where comanda Like '+''''+Trim(dado)+'%'+''''+'');
datamodule1.QData.SQL.Add('Order By comanda');
datamodule1.QData.Open;

result := datamodule1.FieldByName('QTD').AsInteger;
end;


GOSTEI 0
Fabio 2013

Fabio 2013

03/09/2013

Então amigo meu problema é contar o dado que veio do microterminal por exemplo:



Eu pego e difito no microterminal a comanda 82 ai esse dado é enviado para o meu sistema ao chegar lá é contada esta STRING como 1

dai eu envio a seguinte mensagem: 'PRODUTO' que é para o usuario saber que agora ele deve digitar o codigo do produto dai quando o usuario envia esse dado para o microterminal se o produto existir na tabela é somado esse dado ao contador como + 1 dai iremos para o passo 3 pq 1+ 1=2 certo?


Estou usando um microterminal da COLLETER http://www.colleter.com.br/monta.asp?link=downloads
la têm um exemplo, já conmsegui fazer a comunicação e tudo mais só estou quebrando a cabeça para implantar o contador para que assim o usuario possa saber em que nivel ele esta e assim eu tb possa setar conforme o nivel por exemplo:

O MICROTERMINAL FUNCIONARÁ ASSIM:

O cara digita a comanda por exemplo 60

1 dai se a comanda estiver aberta ja vai para produto se não estiver é aberta dai manda a mensagem para o usuario:

SE contador = 2 then

QUANT = ai o cara digita dai vai para o TERCEIRO passo:

SE contador = 3 then

PRODUTO = Ai o cara digita o codigo de barras ou coodigo do produto ai vai para o 4 passso

SE contador = 4 then

Salva comanda e zera display do terminal enendeu o que quero é isso amigo se puder me ajuda ficarei muito grato




GOSTEI 0
Ricardo Araujo

Ricardo Araujo

03/09/2013

Cara,

Fiz um exemplo simples usando Delphi 7, não consigo anexo no forum pode passar seu email.

assim posso enviar o exemplo para seu email pessoal.

Espero ter ajudado.
GOSTEI 0
Fabio 2013

Fabio 2013

03/09/2013

Amigo meu e-mail é: platesoftware@hotmail.com
GOSTEI 0
Douglas

Douglas

03/09/2013

Então amigo meu problema é contar o dado que veio do microterminal por exemplo:



Eu pego e difito no microterminal a comanda 82 ai esse dado é enviado para o meu sistema ao chegar lá é contada esta STRING como 1

dai eu envio a seguinte mensagem: 'PRODUTO' que é para o usuario saber que agora ele deve digitar o codigo do produto dai quando o usuario envia esse dado para o microterminal se o produto existir na tabela é somado esse dado ao contador como + 1 dai iremos para o passo 3 pq 1+ 1=2 certo?


Estou usando um microterminal da COLLETER http://www.colleter.com.br/monta.asp?link=downloads
la têm um exemplo, já conmsegui fazer a comunicação e tudo mais só estou quebrando a cabeça para implantar o contador para que assim o usuario possa saber em que nivel ele esta e assim eu tb possa setar conforme o nivel por exemplo:

O MICROTERMINAL FUNCIONARÁ ASSIM:

O cara digita a comanda por exemplo 60

1 dai se a comanda estiver aberta ja vai para produto se não estiver é aberta dai manda a mensagem para o usuario:

SE contador = 2 then

QUANT = ai o cara digita dai vai para o TERCEIRO passo:

SE contador = 3 then

PRODUTO = Ai o cara digita o codigo de barras ou coodigo do produto ai vai para o 4 passso

SE contador = 4 then

Salva comanda e zera display do terminal enendeu o que quero é isso amigo se puder me ajuda ficarei muito grato






Olá Fábio,
Pelo que entendi o seu microterminal manda um código para o seu sistema, onde o mesmo interpreta como string 1.
A partir deste momento você dispara o passo que ele tem que realizar. Você pode resolver esse problema incrementado ao final de cada passo uma variável do tipo integer, porém se o produto não existir ele exibe uma mensagem tenta pesquisar um outro e a variável incrementada receberá 1 novamente.

Espero que esta seja a resposta de que precisa.
GOSTEI 0
Fabio 2013

Fabio 2013

03/09/2013

Valeu Douglas, desde já muito obrigado por sua ajuda vou por em pratica dica, depois posto o codigo para a comunidade!
GOSTEI 0
Douglas

Douglas

03/09/2013

Valeu Douglas, desde já muito obrigado por sua ajuda vou por em pratica dica, depois posto o codigo para a comunidade!


Meu amigo, aguardo a sua resposta!
GOSTEI 0
Fabio 2013

Fabio 2013

03/09/2013

Olá caro colega vc já programou para microterminal?


Eu estou tentando fazer um sistema para comanda eletrônica para padaria mas estou tendo dificuldades não na comunicação mas na manipulação dos dados.

procedure TForm1.Timer2Timer(Sender: TObject);
Begin
conjunto:=0;
canal:=100;
if (getcnt (  dado,canal,conjunto )) = 1 then
begin
   datamodule1.QData.Append;
   datamodule1.QData.Edit;
   datamodule1.QDatacomanda.Text:=dado;
   datamodule1.QDatadata.Text:=DateToStr(Now);
   datamodule1.QDatahora.Text:=TimeToStr(Time);
   datamodule1.QVenda.Edit;
   datamodule1.QVendaquant.Text:=('1');
   datamodule1.QDatatipodve.Text:=('1');
   datamodule1.QDataCliente.Text:=('VENDA AVULSA');
   datamodule1.QData.Post;
   envtmsg (conjunto,canal,'PRODUTO' +inttostr(canal)+'!');
end;
end;
GOSTEI 0
Fabio 2013

Fabio 2013

03/09/2013

Olá caro colega vc já programou para microterminal?


Eu estou tentando fazer um sistema para comanda eletrônica para padaria mas estou tendo dificuldades não na comunicação mas na manipulação dos dados.

procedure TForm1.Timer2Timer(Sender: TObject);
Begin
conjunto:=0;
canal:=100;
if (getcnt (  dado,canal,conjunto )) = 1 then
begin
   datamodule1.QData.Append;
   datamodule1.QData.Edit;
   datamodule1.QDatacomanda.Text:=dado;
   datamodule1.QDatadata.Text:=DateToStr(Now);
   datamodule1.QDatahora.Text:=TimeToStr(Time);
   datamodule1.QVenda.Edit;
   datamodule1.QVendaquant.Text:=('1');
   datamodule1.QDatatipodve.Text:=('1');
   datamodule1.QDataCliente.Text:=('VENDA AVULSA');
   datamodule1.QData.Post;
   envtmsg (conjunto,canal,'PRODUTO' +inttostr(canal)+'!');
end;
end;
GOSTEI 0
POSTAR