Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Busqueda en DBGRID (https://www.clubdelphi.com/foros/showthread.php?t=2963)

andrestsas 14-08-2003 18:48:46

Busqueda en DBGRID
 
Hola amigos del foro

Nuevamente me ha surgido un reto, que es el siguiente:

-Visualizo 2 campos en un DBGRID, (Codigo)y(Descripcion), y quiero que cuando el usuario inserte un numero en (Codigo), pueda buscar en una tabla dicho numero y si existe colocar en (descripcion) el nombre de dicho articulo, y si no lo encuentra avisar.

Las opciones de busquedas Locate, y Findnearest, ya las se usar, lo que no me doy cuenta es cuando capturar el momento en que ingresa el codigo y luego de un ENTER, verificar los datos.

desde ya muchas gracias. y saludos Andres.-

__cadetill 14-08-2003 20:03:17

las columnas del TDBGrid tienen la propiedad ButtonStyle. Ponla a cbsAuto. Cuando este en edicion le aparecera un boton con 3 puntitos el cual puedes aprovechar para mostrar una pantalla de busqueda (codificando el evento del TDbGrid OnEditButtonClick

Si quieres montarte una pantalla de consultas estandar, en mi web tienes un componente (el TDBSearchDialog) que te lo hace (via consultas SQL que el monta)

Espero te sirva

andrestsas 15-08-2003 14:28:43

hola cadetill

me fije en la propiedad ButtonStile como me dijiste, pero a mi me aparecen los 3 puntitos cuando pongo en cbsEllipsis, debe ser porque tengo delphi 3, lo importante es que funciona y pude adaptar una ventana de ayuda con el evento oneditbuttonclik, hasta ahi todo barbaro.

Ahora, como hago si el cliente por ejemplo se sabe el codigo del producto, que a veces es lo que sucede y no quiere ingresar a la ayuda y inserta directamente el codigo?.

Como tendria que hacer yo para que cuando ingrese dicho codigo, ver si existe en la tabla X por ejemplo. lo tendria que manejar a nivel tabla?

desde ya muchas gracias. Andres--

__cadetill 15-08-2003 21:32:36

Bien. El campo Descripcion es un campo físico o calculado?

Si es calculado (que seria lo normal para no tener datos duplicados en las tablas), tienes que utilizar el evento OnClacField del Dataset

Si es un campo físico (te recomiendo que lo quites y crees un calculado), tendrias que utilizar el evento OnValidate del TField

Espero te sirva


La franja horaria es GMT +2. Ahora son las 14:21:51.

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