Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Control de datos al ingresar mediante grilla (https://www.clubdelphi.com/foros/showthread.php?t=76570)

lbidi 09-11-2011 19:59:34

Control de datos al ingresar mediante grilla
 
Hola foristas.

Resulta que tengo una grilla en la cual ingreso datos de una factura.

"Codigo, Descripcion ( no se ingresa ), cantidad, Precio....."

Se me dificulta validar dichos ingresos porque no me queda claro en cual evento queda mas practico la validacion. Si en el evento "oncolexit" de la grilla testeando en que columna estoy para validar el campo correcto o en el "onkeypress" y si la tecla presionada es enter, hacer los mismos.

El problema surge cuando por ej. si ingreso un codigo que existe debo mostrar la descripcion y moverme a la columna de cantidad, pero cuando no existe, muestro un mensaje que el codigo no es valido e "intento" que el cursor quede en la misma columna pero igualmente se mueve a la columna de cantidad..

Igualmente cuando valido por cantidades <= 0.

Como hacen ustedes y cual creen que es el mejor o mas efectivo metodo o evento para controlar estos casos?? Ademas de que si todos valores son correctos , el foco debe seguir avanzando por las columnas siguientes..

Espero haber sido claro..

Gracias y saludos.

Leo

oscarac 09-11-2011 20:07:38

y necesariamente debe ser en la grilla?
no puedes crear un formulario adicional y agregar dbedits?

ecfisa 09-11-2011 21:45:31

Hola Ibidi.

Cita:

Se me dificulta validar dichos ingresos porque no me queda claro en cual evento queda mas practico la validacion. Si en el evento "oncolexit" de la grilla testeando en que columna estoy para validar el campo correcto o en el "onkeypress" y si la tecla presionada es enter, hacer los mismos.
Si el ingreso tiene que ser echo desde la grilla, me parece que lo más simple es usar el evento OnSetText del campo involucrado:
Código Delphi [-]
procedure TtuForm.CodigoSetText(Sender: TField; const Text: String);  
begin
  if ExisteCodigo(Text) then   // Una función que verifique la existencia del código
  begin 
    TField(Sender).Value := Text;
    // demás acciones...
  end
  else 
  begin
    ShowMessage('Codigo inválido');
    ...
  end;
end;

Saludos.

Caminante 10-11-2011 00:03:20

Podrias usar el evento validate de los objetos de campo.
Pero me parece mejor usar un formulario adicional para ingresar las lineas de detalle.
Echale un ojo a la cara oculta de delphi. Ahi encontraras un ejemplo de como hacerlo.

Saludos

lbidi 10-11-2011 13:46:22

Ok. Gracias a todos por las respuestas.

Saludos


La franja horaria es GMT +2. Ahora son las 13:25:16.

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