Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-02-2004
davidgaldo davidgaldo is offline
Miembro
 
Registrado: nov 2003
Posts: 220
Poder: 21
davidgaldo Va por buen camino
dbgrid

Hola a todos, llevo mucho tiempo intentando hacer esto pero no lo doy hecho.
En un dbgrid tengo la información de una tabla:
CODIGO-NOMBRE_PRODUCTO-CANTIDAD-.....-.....-....
y en otra tabla tengo :
CODIGO-NOMBRE_PRODUCTO

pues bien, quiero que cuando estoy metiendo el dato correspondiente al código en el dbgrid, al pulsar el tabulador y que se mueva a la casilla de NOMBRE_PRODUCTO, este se rellene con el nombre automáticamente, el
pb es que no sé como hacerlo, podeis ayudarme?
Responder Con Cita
  #2  
Antiguo 20-02-2004
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 22
andres1569 Va por buen camino
Hola:

Entiendo que NOMBRE_Producto es un campo LookUp ¿No? puesto que escribirlo de nuevo en la tabla sería tener información duplicada (para eso está el CODIGO). Si es así, o bien tienes el campo NOMBRE_PRODUCTO como LookUp y te sale automáticamente si estableces los nexos necesarios con la tabla Productos (la que sirve de LookUp), o bien defines ese campo como Calculated, y en el OnCalcFields haces la busqueda a "a mano" en la tabla de productos (ten en cuenta que esta opción puede ser algo lenta si tiene AutoCalcFields a TRU, pues repetirá muchas veces la búsqueda).

En caso de que el campo NOMBRE_PRODUCTO fuera un campo persistente dentro de la tabla (cosa no recomendable porque como dije supone duplicar información y facilitar alguna inconsistencia), tendrías que hacer esa búsqueda en el evento OnChange del campo CODIGO y ahí asignar el valor encontrado.

Fíjate que todas las operaciones que propongo son a nivel de tabla, o DataSet, independientemente de que edites desde un DBGrid o desde otro control DBAware.

Un saludo
__________________
Guía de Estilo
Responder Con Cita
  #3  
Antiguo 20-02-2004
davidgaldo davidgaldo is offline
Miembro
 
Registrado: nov 2003
Posts: 220
Poder: 21
davidgaldo Va por buen camino
si, la información es redundante, aparece el código y el nombre, me lo han pedido así, bueno entonces, lo que no me queda claro, es el mejor método a usar, y además, como identifico el campo que estoy insertando?
Responder Con Cita
  #4  
Antiguo 20-02-2004
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 22
andres1569 Va por buen camino
Hola:

En ese caso, sobre el campo CODIGO, en su evento OnChange(*) haces algo así:

Código:
procedure CampoCodigoChange ;
begin

// Buscar en tabla de Productos (mediante SQL, o con los métodos 
// Locate o FindKey) el nombre del produto que se acaba de introducir.

// Obtenido el valor de NOMBRE_PRODUCTO, lo asignas al campo 
// correspondiente:

Tabla.FieldByName('NOMBRE_PRODUCTO').AsString := ResultadoBusqueda;

end;
(*) Si has definido los campos de la tabla como persistentes, de modo que los puedas ver en diseño mediante el editor que lleva el TTable, verás ese evento OnChange en cada campo.

Espero que te sirva esta explicación por encima ...
__________________
Guía de Estilo
Responder Con Cita
  #5  
Antiguo 20-02-2004
davidgaldo davidgaldo is offline
Miembro
 
Registrado: nov 2003
Posts: 220
Poder: 21
davidgaldo Va por buen camino
gracias por todo. Te lo agradezco.
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 04:46: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
Copyright 1996-2007 Club Delphi