Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-05-2003
Un abrazo Un abrazo is offline
Miembro
 
Registrado: may 2003
Posts: 31
Poder: 0
Un abrazo Va por buen camino
Angry Mostrar datos en DBcombobox

Quiero mostrar todas las filas de una columna llamada idiomas en un DBcombobox y solo me muestra la primera fila.

¿Como prodría hacer que me muestre todas las filas?

Un abrazo...
Responder Con Cita
  #2  
Antiguo 15-05-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 21
andres1569 Va por buen camino
Hola:

No lo acabo de entender, o bien la tabla está filtrada, o enlazada como detalle de otra, por lo cual no te aparecen todas las filas.

Prueba de poner un TDBListBox a ver si te ocurre lo mismo.

Un saludo
Responder Con Cita
  #3  
Antiguo 15-05-2003
judoboy judoboy is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia
Posts: 139
Poder: 21
judoboy Va por buen camino
A mi me pasa lo mismo, con un TDBListBox, si que funciona, pero yo también quiero utilizar un DBComboBox, y no se como hacerlo.

Y la tabla no esta filtrada ni nada de nada.
Responder Con Cita
  #4  
Antiguo 15-05-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Yo te recomendaría utilizar un TDBLookupComboBox, en las propiedades ListSource y ListField, asignar el datasource y seleccionar el campo a mostrar. Las propiedades DataSource y DataField, es donde va a guardar este dato seleccionado.

Suerte!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 16-05-2003
Un abrazo Un abrazo is offline
Miembro
 
Registrado: may 2003
Posts: 31
Poder: 0
Un abrazo Va por buen camino
Cita:
Yo te recomendaría utilizar un TDBLookupComboBox
Pero el problemas es que en el programa cuando despliegas la lista solo sale un registro y un scrollbar vertical pequeño. ¿ Como hago para que me salgan todos los datos al desplegarlo y no tener que darle a la barra vertical?

Un Abraaazo.

gracias a todos por las respuestas.
Responder Con Cita
  #6  
Antiguo 16-05-2003
judoboy judoboy is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia
Posts: 139
Poder: 21
judoboy Va por buen camino
Para esto exite una propiedad DropDownRows, donde indicas el número de registros que quieres que te muestre a la vez.
Responder Con Cita
  #7  
Antiguo 16-05-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Posteado originalmente por Un abrazo
Pero el problemas es que en el programa cuando despliegas la lista solo sale un registro y un scrollbar vertical pequeño.
¿Seguiste los pasos que te indiqué anteriormente cargando los ListSource y ListField?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 17-05-2003
Ruben_Cu Ruben_Cu is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Mariel, Cuba
Posts: 271
Poder: 0
Ruben_Cu Va por buen camino
Hola, Otro Para Ti, si he entendido tu pregunta quieres desde una tabla cargar los nombres de los idiomas para poder escogerlos, filtrarlos, etc.
Si es como imagino el DBComboBox no es tu solución está concebido para otra función de ahí que solo veas el primer registro y al desplegar lo veas vacío.
En realidad su función básica es a partir de los valores pre-establecidos en su propiedad Items sustituirlos o introducirlos en el registro corriente de la tabla asociada.
Si tus datos son provenientes de una tabla, cosa que no aclaras, yo prefiero el uso del ComboBox y con un bucle cargar los datos requeridos, esto si es muy simple e incluso si tus idiomas ya están definidos y no te interesa introducir nuevos puedes teclearlos en tiempo de diseño (esto no me gusta rigidiza la aplicación).
Quisiera saber en realidad donde esta tu fuente de datos y quizas te pueda brindar mejor solución.
Si buscas en los históricos encontrarás respuestas de este tema.
Saludos
Responder Con Cita
  #9  
Antiguo 17-05-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Posteado originalmente por Ruben_Cu
Si tus datos son provenientes de una tabla, cosa que no aclaras, yo prefiero el uso del ComboBox y con un bucle cargar los datos requeridos
¿No es mejor lo que propone delphi.com.ar con el TDBLookupComboBox?

Aún si no desea usarlo para editar un campo en una tabla relacionada puede usarlo prescindiendo de las propiedades DataSource y DataField. El combo se llena automáticamente con los valores de la tabla referenciada por ListSource.

// Saludos
Responder Con Cita
  #10  
Antiguo 17-05-2003
Ruben_Cu Ruben_Cu is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Mariel, Cuba
Posts: 271
Poder: 0
Ruben_Cu Va por buen camino
Cita:
Posteado originalmente por roman
¿No es mejor lo que propone delphi.com.ar con el TDBLookupComboBox?
Tienes razón Roman
Creo es menos trabajo y mejor solución la que propone delphi.com.ar si lo que se quiere es ver todos los registros del campo, pero si quisieramos filtrar en la misma tabla y traer al control los valores sin repetirlos entonces no se como hacerlo con el TDBLookupComboBox mientras que con el combobox se pueden cargar valores iguales una sola vez sin que se repitan aunque esten repetidos en los registros.
Creo que depende de lo que se quiera hacer.
Lo que tambien pretendía era dejar claro el común error de pensar que el DBComboBox puede visualizar todos los registros de un campo función que si es valida para el DBLookupComboBox.
Gracias por tu oportuna aclaración.
Saludos
Responder Con Cita
  #11  
Antiguo 19-05-2003
Un abrazo Un abrazo is offline
Miembro
 
Registrado: may 2003
Posts: 31
Poder: 0
Un abrazo Va por buen camino
Respecto a la pregunta de si los datos salen de una tabla, pues si, salen de una.

Y ahora me viene otras preguntas que son:

Utilizando el TDBLookupComboBox como consigo mediante el codigo obtener un dato de la lista, es decir, si tengo 3 idiomas en la tabla, y en el TDBLookupComboBox aparecen los tres Ej. Español, Ingles Aleman. ¿Como hago que me aparezca por defecto en el programa el idioma que yo quiera?


Y a Ruben_Cu le queria preguntar, en caso de hacerlo con un ComboBox ¿como obtengo los datos de la tabla para guardarlos en el bucle?

Un Abraaazo.
Responder Con Cita
  #12  
Antiguo 19-05-2003
Angel Angel is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante, España
Posts: 58
Poder: 21
Angel Va por buen camino
la solución si no me equivoco es la siguiente.... al menos yo lo tengo resuelto así.

cuando abrais la tabla del lookup debeis iros al último registro. con esto se soluciona el problema.

Es decir, imaginaros que abrís un formulario y al activarlo activais todas las tablas, y la tabla del lookup se llama idiomas, pues bien, el en evento onActivate del formulario debereis escribir:

idiomas.last;

con esto os mostrará todas las opciones en el lookup.

Ya que se no es "muy elegante" porque tiene que recorrer todos los registros, pero de esta forma seguro que se soluciona
Responder Con Cita
  #13  
Antiguo 19-05-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Posteado originalmente por Un abrazo
Utilizando el TDBLookupComboBox como consigo mediante el codigo obtener un dato de la lista, es decir, si tengo 3 idiomas en la tabla, y en el TDBLookupComboBox aparecen los tres Ej. Español, Ingles Aleman. ¿Como hago que me aparezca por defecto en el programa el idioma que yo quiera?
Utiliza la propiedad KeyValue del DBLookupComboBox. Su valor debe corresponder al KeyField que asignaste al control.

// Saludos
Responder Con Cita
  #14  
Antiguo 20-05-2003
Ruben_Cu Ruben_Cu is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Mariel, Cuba
Posts: 271
Poder: 0
Ruben_Cu Va por buen camino
Cita:
Posteado originalmente por Un abrazo
Y a Ruben_Cu le queria preguntar, en caso de hacerlo con un ComboBox ¿como obtengo los datos de la tabla para guardarlos en el bucle?
Con relación a tu pregunta, puedes colocar estos códigos en el evento OnCreate de tu form y tendrías los idiomas al mostrarse el formulario, puedes utilizar la propiedad Sorted a true para que se visualicen en orden alfabético y obtener un valor por defecto con la propiedad ItemIndex, en el ejemplo te mostrará el item número uno o sea el segundo de la lista.
Para ordenar alfabéticamente con el DBLookupComboBox la única forma que conozco es creando índice secundario para el campo Idiomas no es posible en el control.
Código:
with TuTabla do
          begin
               DisableControls; //puede no ser necesario
               first;
               while not eof do
               begin
                    if (ComboBox1.Items.IndexOf(FieldByName('Idiomas').AsString)=-1)then //en caso que existan registros iguales solo cargaría uno
                    ComboBox1.Items.Add(FieldByName('Idiomas').AsString);
                    next;
               end;
               EnableControls; //puede no ser necesario
          end;
          ComboBox1.ItemIndex:=1;
Espero que mis comentarios te ayuden
Un abrazo
Responder Con Cita
  #15  
Antiguo 20-05-2003
Un abrazo Un abrazo is offline
Miembro
 
Registrado: may 2003
Posts: 31
Poder: 0
Un abrazo Va por buen camino
Gracias a tos por responder. Ya me mustra todos las filas en la lista... ahora lo que me falta es poner uno como predefinido.

¿Como seria para que me aparezca en el Edit 'Español' Siempre por defecto?

Un abraazo.
Responder Con Cita
  #16  
Antiguo 20-05-2003
Un abrazo Un abrazo is offline
Miembro
 
Registrado: may 2003
Posts: 31
Poder: 0
Un abrazo Va por buen camino
Ya consegui poner el Español por defecto. Gracias a todos.

Un abraaazo.
Responder Con Cita
  #17  
Antiguo 28-03-2008
samcrack samcrack is offline
Registrado
 
Registrado: mar 2008
Posts: 1
Poder: 0
samcrack Va por buen camino
Gracias por la ayuda

Estimado amigo, estube con la misma pregunta de como mostrar una base de datos en un combobox y tu respuesta fue de gran ayuda. Gracias.
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 12:48:55.


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