Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   como validar un dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=23763)

Shidalis 27-07-2005 21:29:13

como validar un dbgrid
 
Ante todo gracias por la ayuda que puedan prestarme, sera que si me pueden ayudar a como validar un dbgrid. Se los agradeceria de verdad. Gracias.

marcoszorrilla 27-07-2005 22:19:22

Bueno supongo que te estás refiriendo a validar los datos que se introduzcar en una rejilla conectada a una fuente de datos?

Si es así dinos que campos intervienen y cuales vas a someter a validación.

Un Saludo.

Shidalis 27-07-2005 22:56:30

el primer campo es tipo entero, el segundo campo es tipo fecha, el 3 campo es tipo string, y el resto de los campo son tipo decimal. Como haria para que si un usuario se equivoca al escribir no me de un error

Shidalis 29-07-2005 17:26:59

Quisiera saber si no entendieron mi pregunta para hacerla de otra manera. Gracias!!

vtdeleon 29-07-2005 17:30:02

Saludos

Dinos:
base de datos
Version de Delphi
Componentes qeu usas
tabla y campo de la qeu tiene dudas
un poco de codigo
y, Que deseas hacer?

Shidalis 01-08-2005 21:23:46

estoy trabajando con:
- MySQL 4.018
- Delphi 7.0
- No uso ningun componente en mi aplicacion
- Las Tablas son: Orden de Compra y Detalle Orden de Compra
- Los campos campos que quiero validar son nº orden, fecha, descripcion, cantidad, precio unitario, total precio.
*El campo nº orden es autonemrico,
*El campo fecha es tipo date,
*El campo descripcion es varchar (en esta columna se escribe todo lo que el usuario desee),
*El campo cantidad es tipo entero,
*El campo precio unitario es tipo decimal,
*El campo total precio es tipo decimal.

Entonces, lo que quisiera hacer es que cuando el usuario coloque valores por ejemplo en la columna fecha que no permita colocarle letras por decir algo y que arroje un mensaje para que el usuario sepa no se puede colocar letras en un capo fecha es decir que tiene que colocar una fecha valida. Por que si no es asi la aplicacion me arroja una exepcion donde no se puede colocar valores no validos a la fecha.
Ademas que al momento de generar el valor del campo total precio que eso lo hago como (cantidad*precio unitario) se guarde el valor.

Gracias por la ayuda que puedan prestarme y espero que me hayan entendido

Torreblanca 01-08-2005 21:53:34

prueba esto
 
Hola:

lo que yo hago en esos casos es validar el evento onKeypress del edit u otro elemento mediante el sigueinte codigo

para que solo ingrese letras mayusculas o minusculas
Código:

if not (((key >= 'a') and (key <= 'z')) or ((key >= 'A') and (key <= 'Z')))  and (key <> #8) and (key <> #32) then begin
  key := #0;
  Beep;
 end;


y para que solo ingrese numeros

Código:

if(((key >= 'a') and (key <= 'z')) or ((key >= 'A') and (key <= 'Z')))  and (key <> #8) and (key <> #32) then begin
  key := #0;
  Beep;
 end;

Espero te sirva.

Saludos

vtdeleon 02-08-2005 01:22:39

Saludos

Código Delphi [-]
//solo numeros
 if not (key in ['0'..'9',#13,#8]) then 
   key:=#0;
Código Delphi [-]
//solo letras
 if not (key in ['a'..'z','A'..'Z',#13,#8]) then 
   key:=#0;

Nt: Con esto no quiero decir que el codigo de TorreBlanca este mal (aunque no le analizado)

Lepe 02-08-2005 12:03:30

Algunos apuntes:

- la tecla Ñ y ñ estan fuera de A..Z y a..z, por tanto hay que tenerlo en
cuenta si estamos en españa.
- Personalmente me gusta dejar más teclas de control, la 8 era retroceso
no??, pero y la tecla Supr, la estamos quitando.

Código Delphi [-]
if key > 31 then
if not (key in ['0'..'9']) then 
   key:=#0;

También está la posibilidad de usar el portapapeles, y en ese caso, no se
realiza corrección ninguna. Los que han usado este método ya lo saben, pero
Shidalis puede sorprenderse.


Además estamos en un grid, aunque nosotros le digamos que el campo es de
2 decimales, el usuario puede escribir 30 decimales, al tiempo de salir de la
celda se redondeará a 2 decimales.


Por todo, pondría un botón de añadir nuevo registro, y hacer una ventana de
altas, donde tendrá más control sobre cada dato.

Un saludo.

Shidalis 03-08-2005 15:48:04

Muchisimas Gracias a todos era lo que necesitaba.


La franja horaria es GMT +2. Ahora son las 05:02:49.

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