Fórum Como implantar um contador de STRING? #454038
03/09/2013
0
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
Curtir tópico
+ 0Posts
03/09/2013
Ricardo Araujo
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
03/09/2013
Fabio 2013
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
04/09/2013
Ricardo Araujo
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
04/09/2013
Fabio 2013
Gostei + 0
04/09/2013
Douglas
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
04/09/2013
Fabio 2013
Gostei + 0
05/09/2013
Douglas
Meu amigo, aguardo a sua resposta!
Gostei + 0
05/09/2013
Fabio 2013
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
05/09/2013
Fabio 2013
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
Clique aqui para fazer login e interagir na Comunidade :)