Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-12-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Ya te entiendo, he sacado un TDBGrid, dos TDataSource y dos dataset, mi estructura es la siguiente:

DBGrid1 --> DataSourceVentas --> DataSetVentas
DataSourceProductos --> DataSetProductos

he hecho esto pero no ocurre nada de nada, simplemente están todos los campos de la tabla Ventas pero no hay ningún botón en el campo Producto:

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  with DatasetVentas do
    begin
      Open;
      FieldByName('Producto').LookupDataSet := DatasetProductos;
      FieldByName('Producto').LookupKeyFields := 'Codigo; Descripcion';
      FieldByName('Producto').LookupResultField := 'Codigo';
    end;
end;

¿Falta algo?

Un saludo.

Última edición por noob fecha: 24-12-2008 a las 04:33:34.
Responder Con Cita
  #2  
Antiguo 24-12-2008
Avatar de PepeLolo
PepeLolo PepeLolo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Fuenlabrada - Madrid - Espagna
Posts: 265
Poder: 22
PepeLolo Va por buen camino
Cuando piensa abrir DataSetProductos, supongo que has añadido los campos de DataSetVentas al dbgrid. Por último cuando en el DBGrid pulses sobre el botón del campo "Producto" se desplegará el lookup.

un saludo.
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
Responder Con Cita
  #3  
Antiguo 24-12-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Cita:
Empezado por PepeLolo
Cuando piensa abrir DataSetProductos
Lo abro antes de asignar las propiedades Lookup.

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  with DatasetVentas do
    begin
      Open;
      DatasetProductos.Open;
      FieldByName('Producto').LookupDataSet := DatasetProductos;
      FieldByName('Producto').LookupKeyFields := 'Codigo; Descripcion';
      FieldByName('Producto').LookupResultField := 'Codigo';
    end;
end;

Cita:
Empezado por PepeLolo
supongo que has añadido los campos de DataSetVentas al dbgrid
Sí, están añadidos.

Cita:
Empezado por PepeLolo
Por último cuando en el DBGrid pulses sobre el botón del campo "Producto" se desplegará el lookup.
No sale ningún botón en el campo Producto.

¿Qué está fallando?

Saludos.

Última edición por noob fecha: 24-12-2008 a las 04:50:05.
Responder Con Cita
  #4  
Antiguo 24-12-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡Hola!

Hace varios años que no creo campos de búsqueda (lookup fields), pero trataré de orientar un poco.

Son cuatro las propiedades especiales involucradas en la definición de un campo de búsqueda: KeyFields (el campo "apuntador" en la tabla de captura), LookupDataSet (la tabla en donde se buscará), LookupKeyFields (el campo de LookupDataSet que debe coincidir con el campo KeyFields de la tabla de captura) y LookupResultField (el campo de LookupDataSet cuyo valor es el que se "verá").

Además la propiedad FieldKind del campo de búsqueda debe tener un valor de fkLookup.

En el cuadro de diálogo New Field (cuyo caption debería ser "New field" ) de Delphi 7 y otras versiones, hay cinco controles que representan a las cinco anteriores propiedades que mencioné. En Field type debes seleccionar la opción "Lookup" y luego rellenar los cuatro cuadros contenidos en el grupo "Lookup definition".

El botón Help que ahí se encuentra te permite llegar con relativa facilidad al tema "Defining a lookup field" de la ayuda de Delphi, el cual está ampliamente explicado.

De cualquier forma en estos foros ya se ha tratado con anterioridad el tema de los campos lookup, así que, buscando un poco más, haciendo pruebas y retroalimentando este hilo, llegarás pronto a buen puerto.

Ante cualquier duda no dejes de preguntar.

Saludos.

Al González.

Última edición por Al González fecha: 24-12-2008 a las 07:33:09.
Responder Con Cita
  #5  
Antiguo 25-12-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
En el cuadro de diálogo New Field (cuyo caption debería ser "New field" ) de Delphi 7 y otras versiones, hay cinco controles que representan a las cinco anteriores propiedades que mencioné. En Field type debes seleccionar la opción "Lookup" y luego rellenar los cuatro cuadros contenidos en el grupo "Lookup definition".
El problema es que debo de hacerlo todo por código porque mi dataset no me permite hacerlo de otro modo. ¿Se puede hacer por código?
Responder Con Cita
  #6  
Antiguo 25-12-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por noob Ver Mensaje
El problema es que debo de hacerlo todo por código porque mi dataset no me permite hacerlo de otro modo. ¿Se puede hacer por código?
Eso cuesta trabajo creerlo, ¿qué componente es? ¿Qué pasa cuando le das doble clic en tiempo de diseño? (al data set, no a la rejilla)
Responder Con Cita
  #7  
Antiguo 25-12-2008
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
a mi tambien me cuenta creerlo que no tenga esa opcion, conste que es dataset y no datasource y el dataset puede ser un TTable, TQuery, AdoQuery, ZQuery, IBQuery, etc, etc, es la parte donde le das la instruccion SQL o le dices que tabla va a abrir
Responder Con Cita
  #8  
Antiguo 25-12-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
Eso cuesta trabajo creerlo, ¿qué componente es?
Es un componente TSQlite3Dataset.

Cita:
Empezado por Al González Ver Mensaje
¿Qué pasa cuando le das doble clic en tiempo de diseño? (al data set, no a la rejilla)
Me sale un editor de tablas Sqlite para cree una tabla.

Última edición por noob fecha: 25-12-2008 a las 14:27:03.
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
Seleccionar multiples columnas en TDbGrid Leandro Ferrara OOP 1 01-11-2008 23:02:29
TDBGrid caperucitaazul C++ Builder 10 07-02-2006 23:27:30
TDBGrid didier Varios 1 05-04-2005 21:58:15
Componentes adicionales para kylix 3 OE. inexperto Lazarus, FreePascal, Kylix, etc. 13 13-12-2004 05:33:30
Problemas con TDBGrid Novás Varios 0 30-01-2004 10:32:20


La franja horaria es GMT +2. Ahora son las 21:42:37.


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