Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-07-2005
Avatar de dmagui
dmagui dmagui is offline
Miembro
 
Registrado: may 2005
Posts: 168
Poder: 22
dmagui Va por buen camino
Exclamation DBGrid

Buenas Tardes:

Mi pregunta es la siguiente ¿existe algena manera que un DBGrid en un campo como por ejemplo que diga proveedor cuando me pare alli me despliege los nombres existentes que hay en la base de datos de proveedores y pueda seleccionar uno?

si la hay como se podria hace.
Gracias Por la ayuda
__________________
El espiritu humano no se acaba cuando es derrotado se termina cuando se rinde.
Responder Con Cita
  #2  
Antiguo 26-07-2005
Avatar de hector.roma
hector.roma hector.roma is offline
Miembro
 
Registrado: jul 2005
Ubicación: a caballo entre Galicia y Portugal
Posts: 58
Poder: 21
hector.roma Va por buen camino
Yo creo que no

Es decir, con un TDBGrid normal no conozco la forma de hacerlo, puedes buscar por los foros hilos en los que se habla de componentes avanzados que hagan eso que tu quieres...si no tambien los tienes por internet.

En cualquier caso, donde está tu espíritu aventurero... hazlo tú. No quedará muy profesional, es decir, va a quedar una chapuza pero mira el lado positivo, vas a aprender un monton.

Una posible idea:
  • No muestres los datos directamente de la tabla pásalos a una tabla intermedia donde puedas jugar con ellos sin miedos...
Así cuando te pares en el registro que tu quieras, mediante los eventos vas a saberlo, podrás lanzar un evento que te modifique la tabla intermedia, colocando como nuevos registros entre el que tu quieres modificar y el siguiente, tantas filas como valores posibles... y cuando hagas clic sobre una de esas filas te quedas con el nombre asociado, se lo metes al campo que te interesa, eliminas las filas esas y refrescas el grid. Antes dije chapuza o fricada???

Ejemplo:
Código SQL [-]
Codigo Nombre Tipo
------ ------ ----
1      Luis   Cliente
2      Pepe   Proveedor
3      Julio
4      Carlos Proveedor 
y asi cuando hagas click sobre el "Tipo" de (3, Julio), la tabla te quedará:
Código SQL [-]
Codigo Nombre Tipo
------ ------ ----
1      Luis   Cliente
2      Pepe   Proveedor
3      Julio
              Cliente
              Proveedor
              Empleado
              Otros
4      Carlos Proveedor 
y al hacer click sobre una linea que no tiene un codigo asociado recoges el valor lo cargas en tu tabla REAL y vueves a crear la tabla intermedia.

Venga a programar... y a pasarlo bien.

PD: Cuando no duermo me vuelvo algo friki
Responder Con Cita
  #3  
Antiguo 26-07-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 26
vtdeleon Va por buen camino
Saludos

Si mal no recuerdo, las columnas de un DBGrid tiene una propiedad llamada PickList, en la qe puede (en modo dise~o o Ejecucion) aderir datos y estos seran desplegados (en modo de ejecucion) en la celda como un ComboBox.
Puedes intentar hacer un bucle que recorrar la tabla de proveedor* e ir agregando al PickList de la columnas que decidas

Suerte
(*)Una vez no tuve que hacer eso y se agregaron los datos solo, pero estas tablas estaban relacionadas Maestro-Detalles
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #4  
Antiguo 26-07-2005
Avatar de hector.roma
hector.roma hector.roma is offline
Miembro
 
Registrado: jul 2005
Ubicación: a caballo entre Galicia y Portugal
Posts: 58
Poder: 21
hector.roma Va por buen camino
Disculpas

Cita:
El desconocimiento de una ley no exime de su cumplimiento.
Aquí pasa lo mismo, que yo no conozca algo, no implica que no exista o que no se pueda hacer. Antes de convertir mis palabras en dogma de fé, seguir buscando un poco más, por lo menos hasta tener una segunda opinión...

Desde estás líneas pido disculpas a quien haya podido desmoralizar...

Un saludo, y para otra vez antes de contestar instalaré delphi y haré alguna comprobación en vez de hacerlo de memoria...

Última edición por hector.roma fecha: 26-07-2005 a las 01:39:16. Razón: Cambio tipo de letra
Responder Con Cita
  #5  
Antiguo 26-07-2005
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 295
Poder: 22
afxe Va por buen camino
Te sirve un lookup field ???

Hola.No sé si es lo que estás buscando, pero prueba a crear un campo del tipo lookup en el editor de campos persistentes del dataset asociado al DBGrid. En el momento en que metas ese campo como una columna del Grid y entres en modo edición se creará automáticamente un dblookupcombobox.

Saludos.
Responder Con Cita
  #6  
Antiguo 26-07-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Otra solución puede ser incrustar un DbLookUpCombobox en la Rejilla y si te parece dificil esta opción, a parte de las mentadas por mis compañeros de Foro, puedes hacer que al hacer doble clic sobre una linea de la rejilla se abra un formulario de diálogo con los proveedores (modal) para que se ejija uno.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 26-07-2005
Avatar de dmagui
dmagui dmagui is offline
Miembro
 
Registrado: may 2005
Posts: 168
Poder: 22
dmagui Va por buen camino
Cita:
Empezado por vtdeleon
Saludos

Puedes intentar hacer un bucle que recorrar la tabla de proveedor* e ir agregando al PickList de la columnas que decidas
Como se puede hacer esto?? tienes por hay si no es mucha molestia un hilo en donde yo me pueda guiar para hacer mi bucle??
__________________
El espiritu humano no se acaba cuando es derrotado se termina cuando se rinde.
Responder Con Cita
  #8  
Antiguo 26-07-2005
Avatar de dmagui
dmagui dmagui is offline
Miembro
 
Registrado: may 2005
Posts: 168
Poder: 22
dmagui Va por buen camino
Cita:
incrustar un DbLookUpCombobox en la Rejilla
Y como se puede hacer esto??? cuando se este dibujando la rejilla dibujar en esa columna un dblookup o como???

Besos chupos y abrazos para todos gracias por la ayuda
__________________
El espiritu humano no se acaba cuando es derrotado se termina cuando se rinde.
Responder Con Cita
  #9  
Antiguo 26-07-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 26
vtdeleon Va por buen camino
Saludos

De memoria:
Código Delphi [-]
procedure Cualquiera;
begin
  With TbProveedor do begin
    Open;
//  First;
    While not Eof do begin
      DbGrid.Column[0].PickList.Append(FieldByName('campo').AsString;
      Next;
    End;
  End;
end;
Aunque creo que lo dicho por
Cita:
Empezado por vtdeleon
*)Una vez no tuve que hacer eso y se agregaron los datos solo, pero estas tablas estaban relacionadas Maestro-Detalles
Puedes hacerlo con
Cita:
Empezado por afxe
prueba a crear un campo del tipo lookup en el editor de campos persistentes del dataset asociado al DBGrid. En el momento en que metas ese campo como una columna del Grid y entres en modo edición se creará automáticamente un dblookupcombobox.
Suerte
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #10  
Antiguo 26-07-2005
Avatar de dmagui
dmagui dmagui is offline
Miembro
 
Registrado: may 2005
Posts: 168
Poder: 22
dmagui Va por buen camino
Hola gracias con respecto a este codigo:

Código:
procedure Cualquiera;
   begin 
	  With TbProveedor do begin 
		 Open;// First; 
		   While not Eof do 
			  begin 
				 DbGrid.Column[0].PickList.Append(FieldByNam('campo').AsString; 
			Next;
		 End; 
	 End;
end;
Código:
With TbProveedor do begin
En esta parte va el nombre de la tabla cierto??pero el problema es que aqui me dice que no esta definido Proveedor que es mi tablahay que agregarle algo?? gracias por su ayuda
__________________
El espiritu humano no se acaba cuando es derrotado se termina cuando se rinde.

Última edición por dmagui fecha: 26-07-2005 a las 16:07:16.
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 05:06:08.


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