Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-05-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Poder: 23
mRoman Va por buen camino
Una solución no muy optima

Bueno hasta el momento funciona asi: (UNA SOLUCION NO MUY OPTIMA Y MUCHO MENOS PROFESIONAL!!)

Código Delphi [-]
                       if qryValidaInv.fieldByName('KAR_M_EXISTENCIAS').AsInteger<=qryValidaInv.FieldByName('KAR_M_STOCK_MINIM  O').AsInteger then
                       begin
                           Application.MessageBox('Este producto esta por acabarse, favor de realizar pedido','Advertencia',mb_Ok+mb_IconExclamation);
                           Application.MessageBox('Este producto esta por acabarse, favor de realizar pedido','Advertencia',mb_Ok+mb_IconExclamation);
                       end;

Repitiendo 2 veces la linea de código....solo asi me muestra el mensaje...pero cuando se usa el teclado lo muestra -obvio- 2 VECES!!!...q joda!

(Código completo)
Código Delphi [-]
procedure TfrmVentas.mskCodProdExit(Sender: TObject);
begin
    if NOT(mskCodProd.Text='') then
    begin
        qryProductos.Close;
        qryProductos.ParamByName('COD_BAR').AsString:=mskCodProd.Text;
        qryProductos.Open;
        if qryProductos.IsEmpty then
        begin
             Application.MessageBox('Este código de producto no existe en el catálogo, o bien, aún no ha sido activado','Error',MB_OK+MB_ICONERROR);
             Application.MessageBox('Este código de producto no existe en el catálogo, o bien, aún no ha sido activado','Error',MB_OK+MB_ICONERROR);
//             mskCodProd.SetFocus;
             FormShow(Sender);
        end Else
        begin
            qryValidaInv.Close;
            qryValidaInv.ParamByName('PROD_ID').AsString:=mskCodProd.Text;
            qryValidaInv.Open;
            if qryValidaInv.IsEmpty then
            begin
                 Application.MessageBox('Este PRODUCTO no tiene KARDEX creado','Aviso',mb_Ok+mb_IconInformation);
                 Application.MessageBox('Este PRODUCTO no tiene KARDEX creado','Aviso',mb_Ok+mb_IconInformation);
                 FormShow(Sender);
            end Else
            begin
               if not(qryValidaInv.FieldByName('KAR_M_EXISTENCIAS').IsNull) then
               begin
                   if qryValidaInv.fieldByName('KAR_M_EXISTENCIAS').AsInteger=0 then
                   begin
                       Panel8.Visible:=True;
                       Application.MessageBox('Este producto esta AGOTADO, no tiene existencias','Aviso',mb_Ok+mb_IconWarning);
                       Application.MessageBox('Este producto esta AGOTADO, no tiene existencias','Aviso',mb_Ok+mb_IconWarning);
                       Limpiar();
                   end Else
                   begin
                       if qryValidaInv.fieldByName('KAR_M_EXISTENCIAS').AsInteger<=qryValidaInv.FieldByName('KAR_M_STOCK_MINIM  O').AsInteger then
                       begin
                           Application.MessageBox('Este producto esta por acabarse, favor de realizar pedido','Advertencia',mb_Ok+mb_IconExclamation);
                           Application.MessageBox('Este producto esta por acabarse, favor de realizar pedido','Advertencia',mb_Ok+mb_IconExclamation);
                       end;
                       sBtnAdd.Enabled:=True;
                       mskCant.Text:=IntToStr(1);
                   end;
               end Else
               begin
                   Application.MessageBox('Este producto aún NO TIENE EXISTENCIAS registradas','Aviso',mb_Ok+mb_IconInformation);
                   Application.MessageBox('Este producto aún NO TIENE EXISTENCIAS registradas','Aviso',mb_Ok+mb_IconInformation);
                   FormShow(Sender);
               end;
            end;
        end;
    end;
end;

Lo q hace FormShow:
Código Delphi [-]
procedure TfrmVentas.FormShow(Sender: TObject);
begin
    BD.trsBDWine.Active:=false;
    bd.trsBDWine.StartTransaction;
    Limpiar();
    IniciaRegNvo();
end;

Lo q hace Limpiar():
Código Delphi [-]
procedure TfrmVentas.Limpiar;
begin
    mskCodProd.Text:='';
    mskCant.Text:='';
    mskCodProd.SetFocus;
    sBtnAdd.Enabled:=False;
    qryProductos.Close;
    Panel8.Visible:=False;
//    btnImprimir.Enabled:=False;
end;

Lo q hace IniciaRegNvo():
Código Delphi [-]
procedure TfrmVentas.IniciaRegNvo;
begin
    nRegNvo:=0;
    qryUltimoTCK.Close;
    qryUltimoTCK.Open;
    nTicket:=qryUltimoTCK.fieldByName('ULTIMO_TCK').AsInteger;
//*************************************************************************
    dsVentaM.Open;
    dsVentaM.Append;
    dsVentaM.FieldByName('VENTA_NUM_TICKET').AsInteger:=nTicket+1;
    dsVentaM.FieldByName('ESTATUS_VENTA_ID').AsInteger:=1;
    dsVentaM.Post;

    dsVentaD.Open;
//*************************************************************************
    sbtnBorrar.Enabled:=False;
    qryVentaID.Close;
    qryVentaID.Open;
    nVentaID:=qryVentaID.fieldByName('ID').AsInteger;
    nConsec:=0;
    nTotImporte:=0;
    Label8.Caption:='';
end;
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por mRoman fecha: 06-05-2021 a las 02:28:55.
Responder Con Cita
  #2  
Antiguo 06-05-2021
Arturo.Molina Arturo.Molina is offline
Miembro
 
Registrado: feb 2018
Posts: 32
Poder: 0
Arturo.Molina Va por buen camino
Cita:
Empezado por mRoman Ver Mensaje
Bueno hasta el momento funciona asi: (UNA SOLUCION NO MUY OPTIMA Y MUCHO MENOS PROFESIONAL!!)

Código Delphi [-] if qryValidaInv.fieldByName('KAR_M_EXISTENCIAS').AsInteger<=qryValidaInv.FieldByName('KAR_M_STOCK_MINIM O').AsInteger then begin Application.MessageBox('Este producto esta por acabarse, favor de realizar pedido','Advertencia',mb_Ok+mb_IconExclamation); Application.MessageBox('Este producto esta por acabarse, favor de realizar pedido','Advertencia',mb_Ok+mb_IconExclamation); end;


Repitiendo 2 veces la linea de código....solo asi me muestra el mensaje...pero cuando se usa el teclado lo muestra -obvio- 2 VECES!!!...q joda!

Hola mRoman,
otra posible solución menos "repetitiva" podría ser insertar un retardo justo al principio del procedimiento, tal que así:


Código Delphi [-]
procedure TfrmVentas.mskCodProdExit(Sender: TObject);
begin
  sleep( 500 );   <--- Esto le da medio segundo al procedimiento para limpiar la cola de mensajes de windows
  if NOT(mskCodProd.Text='') then
Responder Con Cita
  #3  
Antiguo 07-05-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Poder: 23
mRoman Va por buen camino
Cita:
Empezado por Arturo.Molina Ver Mensaje
Hola mRoman,
otra posible solución menos "repetitiva" podría ser insertar un retardo justo al principio del procedimiento, tal que así:


Código Delphi [-]
procedure TfrmVentas.mskCodProdExit(Sender: TObject);
begin
  sleep( 500 );   <--- Esto le da medio segundo al procedimiento para limpiar la cola de mensajes de windows
  if NOT(mskCodProd.Text='') then
Ok...lo intento.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #4  
Antiguo 07-05-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Poder: 23
mRoman Va por buen camino
Cita:
Empezado por Arturo.Molina Ver Mensaje
Hola mRoman,
otra posible solución menos "repetitiva" podría ser insertar un retardo justo al principio del procedimiento, tal que así:


Código Delphi [-]
procedure TfrmVentas.mskCodProdExit(Sender: TObject);
begin
  sleep( 500 );   <--- Esto le da medio segundo al procedimiento para limpiar la cola de mensajes de windows
  if NOT(mskCodProd.Text='') then
Lo siento amigo Arturo, no me funcionó, siguió teniendo el mismo comportamiento.

De todas maneras gracias.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #5  
Antiguo 15-06-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Poder: 23
mRoman Va por buen camino
Hola...que tal.

Solo para no dejar sin conclusión este hilo....resulta que el problema del DOBLE ENTER del lector óptico, estaba en la propia configuración del lector. Utilice el manual de códigos de barra que viene junto con el dispositivo y escanea el que reinicia a la configuración de fábrica...y listo!, quedó solucionado.

Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Lector RFID petercat Varios 9 07-04-2016 20:52:19
Lector huellas newtron Varios 6 26-03-2016 08:55:10
Busqueda Con Lector Optico. ingmichel Internet 9 12-02-2008 22:45:54
Lector de Biometria APC JerS Varios 3 02-11-2006 15:29:31
Es imposible un lector de DVD???? gandalf_27 Varios 2 15-06-2006 16:07:40


La franja horaria es GMT +2. Ahora son las 07:12:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi