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 01-06-2011
mblascog mblascog is offline
Miembro
 
Registrado: may 2006
Posts: 131
Poder: 19
mblascog Va por buen camino
DbLookup

Buenas, quisiera implementar algo que veo a menudo y nunca he encontrado la manera de hacerlo. Me gustaría que al posicionarme en un lookup se autodesplegara y conforme vaya introduciendo texto se fuera posicionando en el desplegable para poderlo seleccionar.
Es algo parecido a un AutoComplete, pero lo he intentado en un dbLookUpComboBox del propio Delphi, con el dbLookUpComboEdit de la Jedi, y no soy capaz ni de editar ni de autodesplegarse.

Muchas gracias
Responder Con Cita
  #2  
Antiguo 01-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola mblascog.

El TDBLookupComboBox no es muy complicado de usar, sólo tenés que asignar ciertas propiedades:

ListSource: Va el DataSource que apunta al DataSet cuyos datos querés que despliegue y muestre.
ListField: Va el campo que queres que se muestre al desplegar y por el cuál se hace la elección.
KeyField: Va el campo que devuelve del DataSet al que apunta el DataSource ingresado en ListSource.

Hasta aquí tenemos un Combo que nos desplaza al escribir y si hacemos click sobre la flecha invertida se despliega mostrándonos el contenido.

Pero podemos hacer algo más. Supongamos que tenemos dos DataSet con sus respectivos DataSource, llamados por ejemplo:
tbPersonas, dsPersonas y tbCiudades, dsCiudades.

tbPersonas tiene los siguientes campos:
ID_PERSONA
NOMBRE_PERSONA
REF_CIUDAD

Y tbCiudades los siguientes:
ID_CIUDAD
NOMBRE_CIUDAD

Si estamos ingresando personas y queremos elegir la ciudad de la que es oriunda, desde una lista de ciudades ya ingresadas, haríamos en el DBLookupComboBox:

ListSource: dsCiudades
ListField: NOMBRE_CIUDAD
KeyField: ID_CIUDAD
( Hasta acá nos mostrará los nombres de las ciudades con el comportamiento que buscas )

Y para que también nos ingrese ID_CIUDAD en el campo REF_CIUDAD de tbPersonas, llenamos en el DBLookupComboBox las siguientes propiedades:
DataSource: dsPersonas (DataSet que recibe la elección)
DataField: REF_PERSONAS (Campo que recibe la elección)
Ahora, cada vez que hagamos una selección en el DBLookupComboBox, se modificará el campo REF_CIUDAD de dsPersonas estableciendo la relación: REF_CIUDAD -> ID_CIUDAD.

Aunque no es el ejemplo, también se podría asignar el nombre de la ciudad si el campo emisor y receptor declarados en KeyField y DataField respectivamente, fueran de tipo TStringField.

Como te darás cuenta si no asignas las propiedades DataSource y DataField, sólo mostrará lo ingresado en ListField sin modificar nada.

Espero que la explicación te aclare un poco el panorama...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 01-06-2011 a las 09:56:25.
Responder Con Cita
  #3  
Antiguo 01-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, mblascog, recuerda seguir nuestras normas, una de ellas se refiere a poner títulos descriptivos a las preguntas. Gracias por tu colaboración.
Responder Con Cita
  #4  
Antiguo 01-06-2011
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Cita:
Empezado por mblascog Ver Mensaje
pero lo he intentado en un dbLookUpComboBox del propio Delphi, con el dbLookUpComboEdit de la Jedi, y no soy capaz ni de editar ni de autodesplegarse.
El de las JVCL por lo menos seguro que hace lo pides..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #5  
Antiguo 02-06-2011
mblascog mblascog is offline
Miembro
 
Registrado: may 2006
Posts: 131
Poder: 19
mblascog Va por buen camino
Lo volveré a probar. Ja diré alguna cosa
Muchísimas gracias
Responder Con Cita
  #6  
Antiguo 03-06-2011
mblascog mblascog is offline
Miembro
 
Registrado: may 2006
Posts: 131
Poder: 19
mblascog Va por buen camino
Buenas, estoy convencida que llevais la razón, pero a mi sigue sin desplegarse el dbLookupComboEdit.

Tengo una tabla de Artículos, por ejemplo:
- melocotones
- naranjas
- peras
- pomelos

En el dbLookupComboEdit tengo asignadas las siguientes propiedades:
- DataField: descripción
- DataSource: dstDetalle
- LookupDisplay: descripción
- LookupField: id
- LookupSource: dstArticulos

Y me gustaría que al escribir 'p', automáticamente se desplegara y en la lista apareciera: peras, pomelos

Y esto no sucede. Algo me falla, pero no veo qué.

Muchas gracias
Responder Con Cita
  #7  
Antiguo 03-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola mblascog.

Desconozco el componente dbLookUpComboEdit, pero te adjunto un demo muy simple, pero funcional, con un DBLookupComboBox.
Para que no tengas ningún tipo de incompatibilidad, con el tipo de base de datos, también va incluida la tabla.

Asigné algunas propiedades en tiempo ejecución ya que desconozco donde vas a descargar el ejemplo, pero normalmente todas se asignan desde el Object Inspector en tiempo de diseño.

Descomprimí los archivos en una carpeta y probalo.

Espero que con el demo te sea más sencillo entender el funcionamiento.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 01-08-2011 a las 10:02:56.
Responder Con Cita
  #8  
Antiguo 03-06-2011
mblascog mblascog is offline
Miembro
 
Registrado: may 2006
Posts: 131
Poder: 19
mblascog Va por buen camino
Muchas gracias ecfisa, pero no puedo abrir el fichero el demo que has adjuntado
Responder Con Cita
  #9  
Antiguo 03-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola mblascog.

No tengo ningún problema para abrirlo, te cuento que durante un tiempo tuve el mismo problema y era el Internet Explorer.
Probé quitando plugins, aceleradores y nada...me fué imposible hacerlo funcionar. Lo solucioné usando Mozilla Firefox.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 03-06-2011 a las 22:32:15.
Responder Con Cita
  #10  
Antiguo 04-06-2011
mblascog mblascog is offline
Miembro
 
Registrado: may 2006
Posts: 131
Poder: 19
mblascog Va por buen camino
Hola egfisa,
Curioso el tema, que se pueda abrir el fichero si lo descargas en Firefox, y con IE no.

No me habré explicado bien. Lo que yo pretendo hacer es lo siguiente:
al teclear, siguiendo tu ejemplo, la 'c' en tu dbLookupComboBox, quisiera que se desplegara automáticamente y visualizara Chile, Colombia, Cuba

La aplicación que estoy desarrollando es un punto de venta. La introducción de los artículos se realiza con el lector de códigos de barras, pero a veces hay que buscar el artículo manualmente, por ello necesito teclar la descripción, que se abra el desplegable, sin haber de usar el ratón, con las teclas arriba y abajo.

Espero haberme explicado bien ahora.

Muchas gracias
Responder Con Cita
  #11  
Antiguo 04-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Entonces no te conviene un "demasiado" usar ese componente, te interesa más un simple edit en el que en su evento onchange se realice un nuevo select dependiendo de lo tecleado.
Responder Con Cita
  #12  
Antiguo 04-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola mblascog.

Ahora sí te entendí.

Basta con agregar al evento OnKeyPress del DBLookupComboBox lo siguiente:
Código Delphi [-]
procedure TForm1.DBLookupComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
  DBLookupComboBox1.DropDown;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #13  
Antiguo 04-06-2011
mblascog mblascog is offline
Miembro
 
Registrado: may 2006
Posts: 131
Poder: 19
mblascog Va por buen camino
Perfecto. Lo he conseguido, implementando el evento OnKeyPress. Muchas gracias egfisa y Casimiro Notevi
Responder Con Cita
  #14  
Antiguo 12-02-2014
satelit satelit is offline
Registrado
 
Registrado: abr 2007
Posts: 6
Poder: 0
satelit Va por buen camino
Disculpen pero quisiera levantar la observación de Casimiro Notevi.
Trabajo en una aplicación en la que necesito que al ingresar un texto realizar una consulta con Like y se despliegue como lo hace el combobox
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Entonces no te conviene un "demasiado" usar ese componente, te interesa más un simple edit en el que en su evento onchange se realice un nuevo select dependiendo de lo tecleado.
Mas o menos como haz mencionado Casimiro Notevi.
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
DBLookUp estilo visual fox pro sitrico OOP 2 21-06-2010 23:33:39
usar el mouse en DBLookup, se puede ? JuanHC Conexión con bases de datos 2 23-11-2007 09:49:29
ordenar un dblookup combobox mvf Conexión con bases de datos 1 11-07-2007 19:33:28
Como mandar un Valor a un DBlookup!! jmedina Varios 1 23-12-2004 01:59:32
DBLookup que guarda en dos campos. raugadel Varios 1 08-03-2004 15:50:42


La franja horaria es GMT +2. Ahora son las 18:13:35.


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