Possivel erro no codigo

Delphi

12/09/2013

Boa noite amigos!


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:
[CODIGO]
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 }
[/CODIGO]
Fabio 2013

Fabio 2013

Curtidas 0
POSTAR