Fórum Ajuda com implantação de comanda eletrônica #454147
04/09/2013
0
Bom dia amigos
Abaixo é o codigo que utilizo para ENVIAR e RECEBER mensagens de um MICROTERMINAL COLLETER estou conseguindo até agora inserir uma nova COMANDA e também localizar uma COMANDA mas preciso inserir PRODUTOS QUANT
PARA ISTO SEGUNDO O MANUAL DA COLLETER PRECISO FAZER UM CONTADOR QUE VÁ DEMONSTRANDO PARA O TECLADO O PASSO EM QUE ESTOU:
TIPO ABRIR OU PESQUISEI UMA COMANDA = 1
DEPOIS IRÁ PASSO O PASSO DOIS PESQUISAR PRODUTO 2
DEPOIS INSERIR 3 E DEPOIS SALVAR COMANDA E ITENS 4
a variável contador existe, mas não sei como fazer esse procedimento se algum amigo puder me ajudar ficarei muito grato
Abaixo é o codigo que utilizo para ENVIAR e RECEBER mensagens de um MICROTERMINAL COLLETER estou conseguindo até agora inserir uma nova COMANDA e também localizar uma COMANDA mas preciso inserir PRODUTOS QUANT
PARA ISTO SEGUNDO O MANUAL DA COLLETER PRECISO FAZER UM CONTADOR QUE VÁ DEMONSTRANDO PARA O TECLADO O PASSO EM QUE ESTOU:
TIPO ABRIR OU PESQUISEI UMA COMANDA = 1
DEPOIS IRÁ PASSO O PASSO DOIS PESQUISAR PRODUTO 2
DEPOIS INSERIR 3 E DEPOIS SALVAR COMANDA E ITENS 4
a variável contador existe, mas não sei como fazer esse procedimento se algum amigo puder me ajudar ficarei muito grato
{$R *.dfm}
function abreip ( porta :shortstring):integer;
external ''''sockdelp.dll''''
function getcnt ( var dado:shortstring ; var canal:integer ; conj : integer ): integer;
external ''''sockdelp.dll''''
function envtmsg ( cnj,can :integer ; da : shortstring ):integer;
external ''''sockdelp.dll''''
function envtimp ( cnj,can :integer ; da : string ):integer;
external ''''sockdelp.dll''''
function envcldisp ( cnj,can:integer ):integer;
external ''''sockdelp.dll''''
function envbeep ( cnj,can,n :integer ):integer;
external ''''sockdelp.dll''''
function envlmtec ( cnj,can,n :integer ):integer;
external ''''sockdelp.dll''''
function envcmbeep ( cnj,can:integer ):integer;
external ''''sockdelp.dll''''
function envldig ( cnj,can:integer ):integer;
external ''''sockdelp.dll''''
function envddig ( cnj,can:integer ):integer;
external ''''sockdelp.dll''''
function envasenha ( cnj,can:integer ):integer;
external ''''sockdelp.dll''''
function envdsenha ( cnj,can:integer ):integer;
external ''''sockdelp.dll''''
public
{ Public declarations }
end;
// Inserindo Intens //
var
WndHandle: hwnd;
WndTitle: string;
ted : array [1..10] of integer;
mensagem : array [1..10] of string;
zzz : integer;
sconjunto : shortstring ;
conjunto : integer;
contador : integer;
ligdes : integer;
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;
if datamodule1.QData.RecordCount > 0 then
envtmsg (conjunto,canal,''''PRODUTO'''') else
Begin
datamodule1.Qdata.Append;
datamodule1.QDatacomanda.Text:=dado;
if datamodule1.QData.State in [dsedit,dsinsert] then
datamodule1.QData.Post;
Begin
with datamodule1.QEstoque do begin
datamodule1.QEstoque.SQL.Clear;
datamodule1.QEstoque.SQL.Add(''''select * from produtos Where codigo_barras ''''+''''''''''''''''+Trim(dado)+''''%''''+''''''''''''''''+'''''''');
datamodule1.QEstoque.SQL.Add(''''Order By codigo_barras'''');
datamodule1.QEstoque.Open;
if datamodule1.QData.RecordCount = 0 then
envtmsg (conjunto,canal,''''COD ERRADO'''') else
Begin
datamodule1.QVenda.Append;
if datamodule1.QVendaquant.IsNull then
datamodule1.QVendaquant.Text:=(''''1'''');
datamodule1.QVenda.FieldByName(''''codigo_barras'''').Value:= datamodule1.QEstoquecodigo_barras.AsString;
datamodule1.QVenda.FieldByName(''''descricao'''').Text := datamodule1.QEstoquedescricao.AsString;
datamodule1.QVenda.FieldByName(''''revisa2'''').Text:=datamodule1.QEstoquerevisar.Text;
datamodule1.QVenda.FieldByName(''''valorunit'''').AsCurrency:= datamodule1.QEstoquevalor_venda.AsCurrency;
datamodule1.QVenda.FieldByName(''''aliq'''').Text := datamodule1.QEstoquealiq.Text;
datamodule1.QVenda.FieldByName(''''aliqnac'''').Text:=datamodule1.QEstoquealiqnacion.Text;
datamodule1.QVenda.FieldByName(''''vendedor'''').Text:=datamodule1.QLoginusuario.Text;
datamodule1.QVenda.FieldByName(''''datav'''').Text:=DateToStr(now);
datamodule1.QVenda.FieldByName(''''qtdvend'''').Text:=datamodule1.QEstoquetotal_vendido.Text;
datamodule1.QVenda.FieldByName(''''grupo'''').Text:=datamodule1.QEstoquegrupo.Text;
datamodule1.QVenda.FieldByName(''''unidade'''').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;
end;
end;
end;
Fabio 2013
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)