Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Buscar o agregar registros mediante DBCombobox o LookupComboBox...? (https://www.clubdelphi.com/foros/showthread.php?t=18439)

Phacko 11-02-2005 22:19:01

Rellenar un ComboBox en forma Dinamica desde una Tabla
 
Si alguien pudiera hecharme una mano con lo siguiente, se lo agradecería mucho.

Necesito mostrar el contenido del campo de una tabla en una lista para que se pueda seleccionar, escribir parte del texto que pudiera encontrarse en la tabla, o bien, si no se encuentra en la tabla poder agregar el dato a un nuevo registro.
en concreto, es para movimientos de ventas, registrar un movimiento para algun cliente existente en nuestra base de datos y si no existiera, agregarlo con su respectivo movimiento.

No se cual sea la mejor opción, un DBLookUpComboBox o un DBComboBox, ya he intentado realizarlo con los 2 pero no he atinado a cargar la lista en ninguno de los dos casos.

Gracias.

Phacko 13-02-2005 21:35:24

DBComboBox Listo......en parte
 
Ya he logrado cargar la lista del DBComboBox con el contenido de los registros del campo de una tabla, el inconveniente es que al abrir el formulario el DBComboBox muestra el contenido del ultimo registro del campo, estuve buscando en las propiedades y no encontre alguna que cancelara esto, ¿Alguien sabe como evitarlo?, les agradeceria mucho su ayuda.

Sera el DBComboBox la mejor opción??????

Gracias.

Lepe 14-02-2005 09:17:55

Tu pregunta es la del millon. Todos andamos con ese mismo problema.

El DBLookupcombo, te muestra todos los registros que existen, pero no te deja escribir en la caja de texto, las letras que pulsas si las completa, pero no es nada intuitivo para un usuario final. Por otra parte no te deja añadir un dato que no existe.

Un DBCombobox, te deja escribir, y autocompletar lo que pongas, pero puedes modificar a voluntad un dato que ya existe, así que tienes que hacer 2 pasos:

1.- Al cargar el form, tienes que recorrer todos los registros para añadir el valor que desees a la lista desplegable.

2.- En el OnkeyPress y/o ONExit, tienes que controlar que el valor que haya puesto realmente existe, o ver si es uno nuevo para añadirlo a la lista.

Tambien existe una tercera solución que es la intermedia. Usas una tabla con 2 campos, Codigo y Valor, tal que quede así:
Código:

  codigo                    valor
  -----------------------------
  cboFrmFacturas        opcion 1
  cboFrmFacturas        opcion 2
  cboFrmFacturas        opcion 3
  cboClientesPoblacion  Lepe
  cboClientesPoblacion  Alava

Esto significa que realmente en la base de datos puedes tener más poblaciones, pero en la lista desplegable, solo pones los mas relevantes. Simplemente al cargar la ventana correspondiente, cargas los valores segun el codigo.

Una Cuarta Opcion, es poner un simple TDBEdit y hacer una funcion como el Autocompleta de Excel, que segun escribes, va completando las opciones que ya existe en la hoja, pero te da opción para poner una nueva. Esta opción es la más facil de implentar, pero la mas costosa para el sistema, sobre todo cuando tienes muchos registros.

Saludos


La franja horaria es GMT +2. Ahora son las 05:11:32.

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