![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
![]() tengo una lista de proveedores y quiero mostrarla en mi form con un dbcombobox o con un dblookupcombobox pero cada vez que intento asignarle valores de mi tabla proveedores el campo nom_proveedor no me aparece nada, cuales son los pasos para asignarle valores de mi base de datos a combos
|
#2
|
||||
|
||||
en el caso de un dblookupcombobox necesitas un datasource (digamos dsProveedor) el cual apunta a un dataset con datos (digamos dataProveedor)
haces que la propiedad listsource de tu dblookup apunte a dsProveedor en listField indicas que campo se mostrará en la lista por ejemplo el campo nombre este valor solo sirve para mostrar al usuario en keyField indicas que campo contiene el valor interno del dblookup por ejemplo podria ser codProveedor, este valor será el que se guarde en la tabla de tu BD, (puedes obtener el valor que actualmente está seleccionado usando la propiedad keyValue). y eso es todo, obviamente que si quieres que el valor se guarde directamente en tu BD tienes que asignar datasource y datafield hacia la tabla y campo destino respectivamente pero esto se debe de hacer con otro dataset/datasource. |
#3
|
||||
|
||||
Usa un DBLookupComboBox con los siguientes ajustes:
ListSource <-- tabla de proveedores ListField <-- campo nom_provedor KeyField <-- cod_proveedor Si ademas quieres usar el combo para editar la llave foránea correspondiente en otra tabla entonces DataSource <-- la otra tabla DataField <-- la llave foránea en la otra tabla EDITO ¡Ups! Me ganaron por dos minutos ![]() // Saludos |
#4
|
||||
|
||||
combobox
jeje, gracias ya logre que me muestre en un combo los nombres de mis proveedores, si yo quisiera que cuando pique en uno de esos nombres me listara en una grilla todos los que corresponden por ejemplo: compaq que tendria que hacer
|
#5
|
||||
|
||||
Puedes poner la tabla de proveedores como MasterSource de la otra tabla. En esa otra tabla tendrías que tener un índice para la llave foránea.
// Saludos |
#6
|
||||
|
||||
Ehhh no entiendo mucho el concepto MasterSource, yo tengo mi combobox direccionado para que solo me muestre los nombres de lo proveedores, osea que cuando yo pico en un nombre no pasa nada,, lo que quiero es que cuando yo pique en un nombre de mi combo por ejemplo compaq, en una grilla me liste la informacion almacenada de este unico proveedor. eso es muy comun lo he visto pero no tengo ni idea de como hacerlo
|
#7
|
||||
|
||||
Cita:
Vamos a suponer que tienes tus tablas proveedores = (id, nombre, otros campos) productos = (id, proveedor_id, nombre, otros campos) Estas dos tablas están relacionadas mediante las llaves: proveedores.id <--> productos.proveedor.id en una relación 1 a muchos (cada producto es de un único proveedor y cada proveedor puede tener muchos productos). Si tú filtras la tabla de productos por un proveedor obtendrás todos los productos de ese proveedor. En Delphi, estas relaciones se establecen entre dos dataset asociados a las tablas físicas mediante las propiedades MasterSource y MasterFields de la tabla que quieres filtrar. Así, si tblProductos y tblProveedores son componentes Table asociadas a las tablas productos y proveedores respectivamente y dsrProductos y dsrProveedores son datasource enlazados a ellas, entonces tienes que poner tblProductos.MasterSource := dsrProveedores En el inspector de objetos, una vez hecho esto, das doble click sobre la propiedad MasterFields de tblProductos y en la ventana que aparece especificas los campos que hacen la relación en la tabla maestra (proveedores) y la tabla "fuente" o "esclava" (productos). Normalmente, para poder hacer esto deberás haber definido un índice sobre la llave foránea (proveedor_id) en la tabla esclava. Con esto, la tabla productos se filtra en automático cada vez que seleccionas un proveedor por lo que al seleccionarlo en el combo, el grid sin más nada mostrará sólo los productos de ese proveedor. // Saludos |
![]() |
|
|
![]() |
|