PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

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




{$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

Fabio 2013

Responder

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

Aceitar