Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-12-2008
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
Con los calcfields creo que no te funcionara porque estos se resetearan cada vez que se ejecute el evento. podrias probar talvez on el componente de las Jedi el jvMemoryData que es una tabla en memoria.
Responder Con Cita
  #2  
Antiguo 23-12-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
¿No se puede hacer con el TDBGrid sin más o cómo mucho usando alguna estructura de datos tipo array dinámico?
Responder Con Cita
  #3  
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
Cita:
Empezado por noob Ver Mensaje
¿No se puede hacer con el TDBGrid sin más o cómo mucho usando alguna estructura de datos tipo array dinámico?
No necesitas hacer nada de eso, la vida es muy sencilla con delphi. Lo que tienes que hacer en primer lugar es olvidarte del Picklist, eso no sirve para lo que quieres, lo que necesitas es un lookup combo box, en el cual expecifiques las columnas que quieres visualizar (Código y descripción).

Antes que nada, si de lo que hablo no entiendes algo, busca en la ayuda de delphi las palabras en negrita.

Empecemos, primero tienes que crear los TField de la tabla "Producto", una vez creados, posicionado en el campo "Codigo" y pulsa F11 para mostrar las prompiedades del TField, veras las propiedades "LookupDataSet, LookupKeyFields y LookupResultField)

Segundo, añade un dataset nuevo que devuelva los datos del código y descripción que quieres visualizar. Añade un dataSource y asociale el DataSet creado.

Tercero asocia el dataSource creado a la propiedad TField.LookupDataSet del campo "Codigo". En la propiedad TField.LookupKeyFields pones los campos del DataSet creado separados por ";" ejemplos: "CODIGO;DESCRIPCION". En la propiedad TField.LookupResultField poner el campo del que tomará el valor a guardar en tu tabla por ejemplo: 'CODIGO'.

Cuarto, tienes que abrir el DataSet creado con el resto de los DataSet.

Fin, ahora cuando en el dbgrid pulses sobre el botón del campo "CODIGO"SE mostrará el código y descripción, justo lo que quieres.

un saludo
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
Responder Con Cita
  #4  
Antiguo 24-12-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Gracias, estoy en el paso de crear los TField de la tabla Producto pero he visto en la ayuda que pone esto:

Cita:
Do not create instances of TField. TField descendants are created automatically each time a dataset is activated.
La duda es ¿qué dataset he de utilizar?
Responder Con Cita
  #5  
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
Cita:
Empezado por noob Ver Mensaje
Gracias, estoy en el paso de crear los TField de la tabla Producto pero he visto en la ayuda que pone esto:
La duda es ¿qué dataset he de utilizar?
Creo que me he liado con los nombres de tus tablas

Tienes un DataSet que tienes conectado al DBGrid, de ese dataset tienes que crear los TField. En el TField "Producto" asignar las propiedades lookup como te he comentado anteriormente.

Del dataset que has de crear nuevo no es necesario crear lo TField.

un saludo.
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
Responder Con Cita
  #6  
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
  #7  
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
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

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 23:33:45.


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