Fórum Não consigo entender este codigo #454591

09/09/2013

0

Boa tarde amigos

Este este código é de um exemplo de um microterminal com este codigo eu consigo dar a quantidade de passos que o usuário irá visualizar no DISPLAY originalmente
vêm 5 passos mas eu preciso reduzir para apenas 2 mas não estou sabendo a lógica deste codigo para mudar!



Var

display : array [1..10] of integer;




Begin
display[canal+1]:=display[canal+1]+1;
if display[canal+1]=5 then display [canal+1]:=1;
end;
end.




Então para manipular as mensagens ficaria assim


if display [canal+1]=3 then
Begin
envtsmg:=('TESTE');consigo
Fabio 2013

Fabio 2013

Responder

Posts

09/09/2013

Deivison Melo

Por favor, coloque o código completo!!!

mas essa variável declarada é um array com 10 (dez) posições que vai do 1 ao 10...

O resto do código temos q visualizar para poder ajudar...

Responder

Gostei + 0

12/09/2013

Fabio 2013

Então a duvida é basicamente que estou enviando dados de um microterminal para o meu sistema esta dando certo até a parte da abertura pesquisa e inserção de nova comanda ou busca por um já existente.

O Erro: quando vou inserir os produtos não dá nenhuma erro no display mostra a mensagem PRODUTO no entanto quando vou ver no BD lá só está gravada a comanda mas não os produtos que inseri


Imagino que o código só esteja indo até a parte da comanda por alguma razão que eu ainda não sei se alguém puder da uma olhada se por acaso errei em alguma coisa tipo se coloquei ends demais ou algo assim.


desde já muito obrigado




Código:

procedure TForm1.Timer2Timer(Sender: TObject);
begin
for conjunto:= 0 to 0 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then // getcnt é a function da DLL do terminal que ficará escutando tudo que vier após o then //
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
if ted[canal+1]=2 then
begin
If not datamodule1.QData.Locate('comanda',dado,[loPartialKey]) then
datamodule1.QData.Append;
datamodule1.QData.Edit;
datamodule1.QDatatipodve.Text:=('1');
datamodule1.QDatacomanda.Text:= dado;
datamodule1.QDatadata.Text:=DateToStr(now);
datamodule1.QDatahora.Text:=TimeToStr(now);
datamodule1.QDataCliente.Text:=('ATENDIMENTO COMANDA');
if datamodule1.QData.State in [dsedit,dsinsert] then
datamodule1.QData.Post
else
begin
envtmsg (conjunto,canal,'Nao cadastrado');
envbeep (conjunto,canal,2);
envcldisp (conjunto,canal);
envtmsg (conjunto,canal,(mensagem[ted[canal+1]-1]));
end;


// ATÉ AQUI ESTA TUDO OK //

begin
if ted[canal+1]=3 then // A PARTIR DAQUI APESAR DE NÃO DAR NENHUM ERRO NÃO ENVIA NADA PARA O MICROTERMINAL //
begin
If not datamodule1.QData.Locate('codigo_barras',dado,[loPartialKey]) then
Begin
envtmsg (conjunto,canal,'Nao cadastrado');
envbeep (conjunto,canal,2);
envcldisp (conjunto,canal);
envtmsg (conjunto,canal,(mensagem[ted[canal+1]-1]));
end
else
begin
datamodule1.QVenda.Append;
datamodule1.QVenda.Edit;
if datamodule1.QVendaquant.IsNull then
datamodule1.QVendaquant.Text:=('1');
datamodule1.QVendacodigo_barras.Text :=dado;
datamodule1.QVendadescricao.Text := datamodule1.QEstoquedescricao.AsString;
datamodule1.QVendarevisa2.Text:=datamodule1.QEstoquerevisar.Text;
datamodule1.QVendavalorunit.AsCurrency:= datamodule1.QEstoquevalor_venda.AsCurrency;
datamodule1.QVendaaliq.Text := datamodule1.QEstoquealiq.Text;
datamodule1.QVendaaliqnac.Text:=datamodule1.QEstoquealiqnacion.Text;
datamodule1.QVendavendedor.Text:=datamodule1.QLoginusuario.Text;
datamodule1.QVendadatav.Text:=DateToStr(now);
datamodule1.QVendaqtdvend.Text:=datamodule1.QEstoquetotal_vendido.Text;
datamodule1.QVendagrupo.Text:=datamodule1.QEstoquegrupo.Text;
datamodule1.QVendaunidade.Text:=datamodule1.QEstoqueunidade.Text;
datamodule1.QVendavalorTotal.AsCurrency :=
datamodule1.QVendaquant.AsCurrency *
datamodule1.QVendavalorUnit.AsCurrency;
if datamodule1.QVenda.State in [dsedit,dsinsert] then
datamodule1.QVenda.Post;
datamodule1.QSum.Close;
datamodule1.QSum.Open;
end;
end;
end;
end;
envtmsg (conjunto,canal,(mensagem[ted[canal+1]]));




envbeep ( conjunto,canal,1);
ted[canal+1]:=ted[canal+1]+1;
if ted[canal+1]=3 then ted [canal+1]:=1;
end;
end;



end; {rel ao for }
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar