Contador não esta passando indo para a variável 2 porque??
Bom dia, Amigos!
Estou precisando mesmo de uma ajuda no codigo abaixo existe um contador que recebe e soma a varivável [canal] para saber em que passo está o microterminal
Por exemplo se recebo um dado esse dado virá com o valor 1 para enviado ou 0 para nenhum processo executado ou seja ninguem usou o microterminal
Esta acontecendo que quando envio um dado consigo envia rno caso só a parte d abertura de comanda ou pesquisa o passo 1
quando no display mostra para digitar o PRODUTO ou seja o passo 2 dai eu digito o codigo não acontece nada! não é enviado o dado para o bd e nem mesmo dá um erro
a parte aonde começa a não acontecer nada eu comentei abaixo se algum amigo puder me auxiliar serei grato por isso
Estou precisando mesmo de uma ajuda no codigo abaixo existe um contador que recebe e soma a varivável [canal] para saber em que passo está o microterminal
Por exemplo se recebo um dado esse dado virá com o valor 1 para enviado ou 0 para nenhum processo executado ou seja ninguem usou o microterminal
Esta acontecendo que quando envio um dado consigo envia rno caso só a parte d abertura de comanda ou pesquisa o passo 1
quando no display mostra para digitar o PRODUTO ou seja o passo 2 dai eu digito o codigo não acontece nada! não é enviado o dado para o bd e nem mesmo dá um erro
a parte aonde começa a não acontecer nada eu comentei abaixo se algum amigo puder me auxiliar serei grato por isso
procedure TForm1.Timer2Timer(Sender: TObject);
begin
for conjunto:= 0 to 0 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
if ted[canal+1]=1 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]));
if ted[canal+1]=2 then // A PARTIR DAQUI NÃO ACONTECE NADA //
begin
If not datamodule1.QData.Locate('codigo_barras',dado,[loPartialKey]) then
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;
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; {rel ao for }
end;
Fabio 2013
Curtidas 0
Respostas
Marcos Oliveira
16/09/2013
Fábio, pelo que entendi, você teria que executar dois passos no seu processo.
Porém, pelo loop que você fez, vai executar só uma vez.
Veja:
Att,
Marcos
Porém, pelo loop que você fez, vai executar só uma vez.
Veja:
// Está assim for conjunto:= 0 to 0 do // Por acaso não deveria estar assim? for conjunto:= 0 to 1 do
Att,
Marcos
GOSTEI 0
Fabio 2013
16/09/2013
Oi amigo!
Então eu fiz a mudança mas mesmo assim acontece a mesma coisa: Teclo e no microterminal ai aparece DIGITE COMANDA ai digito o numero da comanda tipo 82
ai essa informação aparece no BD e no sistema, ai APARECE NO DISPLAY: PRODUTO ai digito o codigo 162 por exemplo só que ai ja não acontece nada
Há uma váriavel chamada TED coloquei lá embaixo como eu a implementei será que o erro esta lá? nãoi tenho muita experiência ainda se puder dar mais uma olhada será de grande ajuda
[CODIGO]
procedure TForm1.Timer2Timer(Sender: TObject);
begin
for conjunto:= 0 to 2 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
if ted[canal+1]=1 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]));
if ted[canal+1]=2 then // NÃO ACONTECE NADA A APARTIR DAQUI //
begin
If not datamodule1.QData.Locate('codigo_barras',dado,[loPartialKey]) then
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;
envtmsg (conjunto,canal,(mensagem[ted[canal+1]]));
envbeep ( conjunto,canal,1);
ted[canal+1]:=ted[canal+1]+1; //CONTADOR //
if ted[canal+1]=3 then ted [canal+1]:=1;
end;
end; {rel ao for }
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
mensagem[1]:='DIGITE A COMANDA';
mensagem[2]:='*** PRODUTO ****';
contador:=0;
for zzz:=1 to 3 do
begin
ted[zzz]:=1;
end;
end;
[/CODIGO]
Então eu fiz a mudança mas mesmo assim acontece a mesma coisa: Teclo e no microterminal ai aparece DIGITE COMANDA ai digito o numero da comanda tipo 82
ai essa informação aparece no BD e no sistema, ai APARECE NO DISPLAY: PRODUTO ai digito o codigo 162 por exemplo só que ai ja não acontece nada
Há uma váriavel chamada TED coloquei lá embaixo como eu a implementei será que o erro esta lá? nãoi tenho muita experiência ainda se puder dar mais uma olhada será de grande ajuda
[CODIGO]
procedure TForm1.Timer2Timer(Sender: TObject);
begin
for conjunto:= 0 to 2 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
if ted[canal+1]=1 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]));
if ted[canal+1]=2 then // NÃO ACONTECE NADA A APARTIR DAQUI //
begin
If not datamodule1.QData.Locate('codigo_barras',dado,[loPartialKey]) then
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;
envtmsg (conjunto,canal,(mensagem[ted[canal+1]]));
envbeep ( conjunto,canal,1);
ted[canal+1]:=ted[canal+1]+1; //CONTADOR //
if ted[canal+1]=3 then ted [canal+1]:=1;
end;
end; {rel ao for }
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
mensagem[1]:='DIGITE A COMANDA';
mensagem[2]:='*** PRODUTO ****';
contador:=0;
for zzz:=1 to 3 do
begin
ted[zzz]:=1;
end;
end;
[/CODIGO]
GOSTEI 0
Fabio 2013
16/09/2013
Oi amigo!
Então eu fiz a mudança mas mesmo assim acontece a mesma coisa: Teclo e no microterminal ai aparece DIGITE COMANDA ai digito o numero da comanda tipo 82
ai essa informação aparece no BD e no sistema, ai APARECE NO DISPLAY: PRODUTO ai digito o codigo 162 por exemplo só que ai ja não acontece nada
Há uma váriavel chamada TED coloquei lá embaixo como eu a implementei será que o erro esta lá? nãoi tenho muita experiência ainda se puder dar mais uma olhada será de grande ajuda
[CODIGO]
procedure TForm1.Timer2Timer(Sender: TObject);
begin
for conjunto:= 0 to 2 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
if ted[canal+1]=1 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]));
if ted[canal+1]=2 then // NÃO ACONTECE NADA A APARTIR DAQUI //
begin
If not datamodule1.QData.Locate('codigo_barras',dado,[loPartialKey]) then
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;
envtmsg (conjunto,canal,(mensagem[ted[canal+1]]));
envbeep ( conjunto,canal,1);
ted[canal+1]:=ted[canal+1]+1; //CONTADOR //
if ted[canal+1]=3 then ted [canal+1]:=1;
end;
end; {rel ao for }
end;
[/CODIGO]
procedure TForm1.FormCreate(Sender: TObject);
begin
mensagem[1]:='DIGITE A COMANDA';
mensagem[2]:='*** PRODUTO ****';
contador:=0;
for zzz:=1 to 3 do
begin
ted[zzz]:=1;
end;
end;
[/CODIGO]
Então eu fiz a mudança mas mesmo assim acontece a mesma coisa: Teclo e no microterminal ai aparece DIGITE COMANDA ai digito o numero da comanda tipo 82
ai essa informação aparece no BD e no sistema, ai APARECE NO DISPLAY: PRODUTO ai digito o codigo 162 por exemplo só que ai ja não acontece nada
Há uma váriavel chamada TED coloquei lá embaixo como eu a implementei será que o erro esta lá? nãoi tenho muita experiência ainda se puder dar mais uma olhada será de grande ajuda
[CODIGO]
procedure TForm1.Timer2Timer(Sender: TObject);
begin
for conjunto:= 0 to 2 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
if ted[canal+1]=1 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]));
if ted[canal+1]=2 then // NÃO ACONTECE NADA A APARTIR DAQUI //
begin
If not datamodule1.QData.Locate('codigo_barras',dado,[loPartialKey]) then
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;
envtmsg (conjunto,canal,(mensagem[ted[canal+1]]));
envbeep ( conjunto,canal,1);
ted[canal+1]:=ted[canal+1]+1; //CONTADOR //
if ted[canal+1]=3 then ted [canal+1]:=1;
end;
end; {rel ao for }
end;
[/CODIGO]
procedure TForm1.FormCreate(Sender: TObject);
begin
mensagem[1]:='DIGITE A COMANDA';
mensagem[2]:='*** PRODUTO ****';
contador:=0;
for zzz:=1 to 3 do
begin
ted[zzz]:=1;
end;
end;
[/CODIGO]
GOSTEI 0
Fabio 2013
16/09/2013
Oi amigo!
Então eu fiz a mudança mas mesmo assim acontece a mesma coisa: Teclo e no microterminal ai aparece DIGITE COMANDA ai digito o numero da comanda tipo 82
ai essa informação aparece no BD e no sistema, ai APARECE NO DISPLAY: PRODUTO ai digito o codigo 162 por exemplo só que ai ja não acontece nada
Há uma váriavel chamada TED coloquei lá embaixo como eu a implementei será que o erro esta lá? nãoi tenho muita experiência ainda se puder dar mais uma olhada será de grande ajuda
procedure TForm1.FormCreate(Sender: TObject);
begin
mensagem[1]:='DIGITE A COMANDA';
mensagem[2]:='*** PRODUTO ****';
contador:=0;
for zzz:=1 to 3 do
begin
ted[zzz]:=1;
end;
end;
[/CODIGO]
Então eu fiz a mudança mas mesmo assim acontece a mesma coisa: Teclo e no microterminal ai aparece DIGITE COMANDA ai digito o numero da comanda tipo 82
ai essa informação aparece no BD e no sistema, ai APARECE NO DISPLAY: PRODUTO ai digito o codigo 162 por exemplo só que ai ja não acontece nada
Há uma váriavel chamada TED coloquei lá embaixo como eu a implementei será que o erro esta lá? nãoi tenho muita experiência ainda se puder dar mais uma olhada será de grande ajuda
procedure TForm1.Timer2Timer(Sender: TObject);
begin
for conjunto:= 0 to 2 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
if ted[canal+1]=1 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]));
if ted[canal+1]=2 then // NÃO ACONTECE NADA A APARTIR DAQUI //
begin
If not datamodule1.QData.Locate('codigo_barras',dado,[loPartialKey]) then
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;
envtmsg (conjunto,canal,(mensagem[ted[canal+1]]));
envbeep ( conjunto,canal,1);
ted[canal+1]:=ted[canal+1]+1; //CONTADOR //
if ted[canal+1]=3 then ted [canal+1]:=1;
end;
end; {rel ao for }
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
mensagem[1]:='DIGITE A COMANDA';
mensagem[2]:='*** PRODUTO ****';
contador:=0;
for zzz:=1 to 3 do
begin
ted[zzz]:=1;
end;
end;
[/CODIGO]
GOSTEI 0
Marcos Oliveira
16/09/2013
Fábio, analisei com mais calma seu fonte, e reparei algumas situações. O problema pode estar no fechamento do "end" no seu código.
Fiz uma indentação diferente para facilitar a visualização. Veja nos comentários que eu fiz, e faça um teste para ver se o problema é isso mesmo.
Att,
Marcos
Fiz uma indentação diferente para facilitar a visualização. Veja nos comentários que eu fiz, e faça um teste para ver se o problema é isso mesmo.
for conjunto:= 0 to 2 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
// Este IF está correto. Pelo jeito está passando por ele.
if ted[canal+1]=1 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]));
// Este IF está dentro do outro IF. Você teria que colocar um "END" antes, para que após o primeiro IF, o segundo seja questionado.
if ted[canal+1]=2 then // NÃO ACONTECE NADA A APARTIR DAQUI //
begin
If not datamodule1.QData.Locate('codigo_barras',dado,[loPartialKey]) then
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;
envtmsg (conjunto,canal,(mensagem[ted[canal+1]]));
envbeep ( conjunto,canal,1);
ted[canal+1]:=ted[canal+1]+1; //CONTADOR //
if ted[canal+1]=3 then
ted [canal+1]:=1;
end;
end; {rel ao for }
Att,
Marcos
GOSTEI 0
Fabio 2013
16/09/2013
Olá Marcos!
Então teve uma mudança sim só que olha que estranho antes quando aparecia comanda no display eu inseria um numero qualquer e este numero ia para p sistema e era gravado no bd normalmente
Agora esta invertendo quando aparece comanda no display eu insiro um numero e não aparece nada no sistema e nem no bd no entanto quando teclo E e aparece PRODUTO
insiro qualquer outro numero e ele aparece no BD mas na tabela de comandas! E não na de venda, que estranho poderia ver para mim por gentileza porque imagino que seja realmente alguma falha no meu entendimento do codigo desde já muito obrigado
Então teve uma mudança sim só que olha que estranho antes quando aparecia comanda no display eu inseria um numero qualquer e este numero ia para p sistema e era gravado no bd normalmente
Agora esta invertendo quando aparece comanda no display eu insiro um numero e não aparece nada no sistema e nem no bd no entanto quando teclo E e aparece PRODUTO
insiro qualquer outro numero e ele aparece no BD mas na tabela de comandas! E não na de venda, que estranho poderia ver para mim por gentileza porque imagino que seja realmente alguma falha no meu entendimento do codigo desde já muito obrigado
GOSTEI 0
Fabio 2013
16/09/2013
[CODE]
procedure TForm1.Timer2Timer(Sender: TObject);
begin
for conjunto:= 0 to 0 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
// Este IF está correto. Pelo jeito está passando por ele.
if ted[canal+1]=1 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]));
// Este IF está dentro do outro IF. Você teria que colocar um "END" antes, para que após o primeiro IF, o segundo seja questionado.
if ted[canal+1]=2 then // NÃO ACONTECE NADA A APARTIR DAQUI //
begin
If datamodule1.QEstoque.Locate('codigo_barras',dado,[loPartialKey]) then
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; //CONTADOR //
if ted[canal+1]=3 then
ted [canal+1]:=1;
end;
end; {rel ao for }
end;
[/CODIGO]
procedure TForm1.Timer2Timer(Sender: TObject);
begin
for conjunto:= 0 to 0 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
// Este IF está correto. Pelo jeito está passando por ele.
if ted[canal+1]=1 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]));
// Este IF está dentro do outro IF. Você teria que colocar um "END" antes, para que após o primeiro IF, o segundo seja questionado.
if ted[canal+1]=2 then // NÃO ACONTECE NADA A APARTIR DAQUI //
begin
If datamodule1.QEstoque.Locate('codigo_barras',dado,[loPartialKey]) then
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; //CONTADOR //
if ted[canal+1]=3 then
ted [canal+1]:=1;
end;
end; {rel ao for }
end;
[/CODIGO]
GOSTEI 0
Fabio 2013
16/09/2013
[CODE]
procedure TForm1.Timer2Timer(Sender: TObject);
begin
for conjunto:= 0 to 0 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
// Este IF está correto. Pelo jeito está passando por ele.
if ted[canal+1]=1 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]));
// Este IF está dentro do outro IF. Você teria que colocar um "END" antes, para que após o primeiro IF, o segundo seja questionado.
if ted[canal+1]=2 then // NÃO ACONTECE NADA A APARTIR DAQUI //
begin
If datamodule1.QEstoque.Locate('codigo_barras',dado,[loPartialKey]) then
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; //CONTADOR //
if ted[canal+1]=3 then
ted [canal+1]:=1;
end;
end; {rel ao for }
end;
[/CODIGO]
procedure TForm1.Timer2Timer(Sender: TObject);
begin
for conjunto:= 0 to 0 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
// Este IF está correto. Pelo jeito está passando por ele.
if ted[canal+1]=1 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]));
// Este IF está dentro do outro IF. Você teria que colocar um "END" antes, para que após o primeiro IF, o segundo seja questionado.
if ted[canal+1]=2 then // NÃO ACONTECE NADA A APARTIR DAQUI //
begin
If datamodule1.QEstoque.Locate('codigo_barras',dado,[loPartialKey]) then
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; //CONTADOR //
if ted[canal+1]=3 then
ted [canal+1]:=1;
end;
end; {rel ao for }
end;
[/CODIGO]
GOSTEI 0
Fabio 2013
16/09/2013
procedure TForm1.Timer2Timer(Sender: TObject);
begin
for conjunto:= 0 to 0 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
// Este IF está correto. Pelo jeito está passando por ele.
if ted[canal+1]=1 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]));
// Este IF está dentro do outro IF. Você teria que colocar um "END" antes, para que após o primeiro IF, o segundo seja questionado.
if ted[canal+1]=2 then // NÃO ACONTECE NADA A APARTIR DAQUI //
begin
If datamodule1.QEstoque.Locate('codigo_barras',dado,[loPartialKey]) then
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; //CONTADOR //
if ted[canal+1]=3 then
ted [canal+1]:=1;
end;
end; {rel ao for }
end;
GOSTEI 0
Fabio 2013
16/09/2013
Esta dando a seguinte mensagem no compilador:
For loop control varieable must be simple local variable
For loop control varieable must be simple local variable
GOSTEI 0
Marcos Oliveira
16/09/2013
É porque você deve declarar a variável do For, como local.
procedure TForm1.Timer2Timer(Sender: TObject);
var
conjunto: Integer;
begin
for conjunto:= 0 to 0 do
begin
// (...)
end;
GOSTEI 0
Fabio 2013
16/09/2013
Bom dia meu amigo!
Então tá osso aqui srsrs eu tentei colocar aquele END mas não compila com ele dá erro.
Então tá osso aqui srsrs eu tentei colocar aquele END mas não compila com ele dá erro.
procedure TForm1.Timer2Timer(Sender: TObject);
Var
conjunto:integer;
begin
for conjunto:= 0 to 1 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
if ted[canal+1]=1 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;
// aqui não aceita o end //
begin
if ted[canal+1]=2 then
begin
If datamodule1.QEstoque.Locate('codigo_barras',dado,[loPartialKey]) then
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; {rel ao for }
end;
GOSTEI 0
Marcos Oliveira
16/09/2013
Fábio, fica complicado eu tentar corrigir seu fonte, porque pode ser que eu atrapalhe ainda mais.
Mas, tentei reorganizar os ifs, begins e ends. Não é garantia que vá funcionar, mas tenta aí.
Att,
Marcos
Mas, tentei reorganizar os ifs, begins e ends. Não é garantia que vá funcionar, mas tenta aí.
procedure TForm1.Timer2Timer(Sender: TObject);
Var
conjunto:integer;
begin
for conjunto:= 0 to 1 do
begin
canal:=100;
if (getcnt (dado,canal,conjunto ))=1 then
begin
str (canal,scanal );
str (conjunto,sconjunto);
str (canal,stcan);
if ted[canal+1]=1 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;
end;
if ted[canal+1]=2 then
begin
If datamodule1.QEstoque.Locate('codigo_barras',dado,[loPartialKey]) then
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;
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; {rel ao for }
end;
Att,
Marcos
GOSTEI 0