Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   DBLookupComboBox distintos ListField (https://www.clubdelphi.com/foros/showthread.php?t=93163)

DiegoPucho 02-06-2018 23:01:03

DBLookupComboBox distintos ListField
 
Hola a todos... Quiero hacer llegar un problema que me apareció y luego de leer y leer no pude llegar a solucionarlo.
el tema a tratar y voy a tratar de expresarme con propiedad...
Tengo una Tabla donde FieldDefs con Iva1, Iva2 y Iva3...
quiero mediante DBLookupComboBox seleccionar Iva1, Iva2, Iva3.

Se puede seleccionar en propiedad ListField del DBLookupComboBox más de un ListField?

Espero que se entienda, saludos.

DiegoPucho 03-06-2018 04:32:19

Voy a Expresarme mejor...
 
Tengo dos tablas de datos que se enlazan entre sí. Producto.tabla. (Codigo, descripción, ....,Iva, .. ..).
Iva.tabla. (....., iva1, iva2,iva3, ....)
Su relación la quiero mostrar en DBLookupComboBox. Pero no se que hacer. Alguna idea?

Casimiro Notevi 03-06-2018 15:43:21

Mira la página 360.

DiegoPucho 04-06-2018 03:35:15

ya lo leí y busque en internet
 
Hola Casimiro, ya lo leí y busque en internet... y no logro solucionarlo.
Si pongo en la propiedad ListField. ´IVA1;IVA2;IVA3´ Me coloca todo en la misma columna asi: 21 - 15 - 0
Si coloco en la propiedad KeyField. ´IVA1;IVA2;IVA3´ Me sale error.
Lo que quiero es que se vea así : IVA1 <<
IVA2
IVA3
Estoy viendo el Field Link Designer Pero no logro que aparezcan en Las 2 tablas para enlazarlas entre si...
Alguien me pueda dar una idea?

Casimiro Notevi 04-06-2018 10:42:41

La verdad es que no entiendo bien qué quieres conseguir, ¿puedes poner una imagen/dibujo más o menos con lo que quieres?
Porque me da la sensación de lo que quieres es mostrar en forma de árbol, y si es eso, ese componente no sirve.

mRoman 04-06-2018 17:46:06

El objeto lo alimentas de un Query?
Cual es la estructura de la tabla donde están los IVAs?

Como que no entiendo exactamente....varios campos en listados dentro del Objeto DBLookupComboBox?...pudiera ser una solución el crear una tabla temporal con los campos necesarios para mostrar en 1 sola columna lo que quieres.

Saludos.

DiegoPucho 05-06-2018 05:59:03

Va de Nuevo...
 
Tengo dos tablas de base de datos... Una con tbProductos := (Código;Producto;......;IVA;......;FechaCompras)....
LA OTRA tbDeConfiguraciones := (......;IVA1;IVA2;IVA3;......) Que solo tiene una fila con dichos datos, En IVA1:=21% En IVA2:=15% En IVA3:=0%. Esta tabla esta compartida en el formConfig, donde el usuario le pone el valor a cada IVA.

Las Tablas de Datos se cruzan en un punto (marcadas en negrita) tbDeConfiguraciones.(IVA1;IVA2;IVA3) ==> tbProductos.(IVA).
Ahora en el formNuevoProducto (donde cargo un producto) tengo un DBLookupComboBox que quiero que aparezca tbDeConfiguraciones.(IVA1;IVA2;IVA3).

Normal mente en un DBLookupComboBox Si pongo en la propiedad ListField. ´IVA1;IVA2;IVA3´ Me coloca todo en la misma columna asi: 21 - 15 - 0
Si coloco en la propiedad KeyField. ´IVA1;IVA2;IVA3´ Me sale error.

Cita:

Como que no entiendo exactamente....varios campos en listados dentro del Objeto DBLookupComboBox?...pudiera ser una solución el crear una tabla temporal con los campos necesarios para mostrar en 1 sola columna lo que quieres.
Hola mRoman Gracias por responder y/o preguntar; El tema es que quiero que en el formNuevoProducto donde agrego los datos de tbProductos.
tenga la opción (ahi el DBLookupComboBox.IVA>>> 21% -
-_____________________________________>>> 15% ] Aquí estoy poniendo los Campos/Columnas de mi tabla y normalmente muestra
-_____________________________________>>> 15% - solo filas.

Cita:

El objeto lo alimentas de un Query?
No de un Tabla ahora voy a probar con un Query.
Cita:

Cual es la estructura de la tabla donde están los IVAs?
No se a que te refieres....

Perdón por mi mala expresión o no usar las palabras correctas.

Casimiro Notevi 05-06-2018 11:03:47

Creo que todavía no queda claro exactamente qué quieres, entendemos que tienes algo así:



DiegoPucho 05-06-2018 20:14:17

Hola Casimiro no puedo mostrar Imágenes para que entiendas... Voy a tratar de mostrarte gráficamente.

Forma de la Tabla de tbProductos( Codigo : Descripcion : ......... : IVA : ........ : ..... : ).
--------------------------------Ejemplo: 2222 : Corbata .... : ......... : 21 : ........ : ..... : ).
------------------------------------------ 3333 : Medias .... : .......... : 15 : ....... : ..... : ).

Forma de la Tabla de tbDeConfiguraciones( ...... : IVA1 : IVA2 : IVA2 : ...... ).
-----------------------------------------Ejemplo: ( ...... : 21 .:. 15 .:. 0 : ...... ).

Aquí la relación tbDeConfiguraciones.(IVA1;IVA2;IVA3) ==> tbProductos.(IVA). Pero como se observa en tbDeConfiguraciones solo tiene una fila de datos que equivalen a: IVA1 = ´21´ ; IVA2 = ´15´ ; IVA3 = ´0´ . Respectivamente IVA1, IVA2 y IVA3 son columnas de mi base de dato.

Normalmente en un DBLookupComboBox te muestra una columna con valores de que contenga una fila de Datos.
Ejemplo de tbProductos en un DBLookupComboBox Selecciono (Codigo) entonces me muestra a : (2222) y (3333).
En la propiedad ListField : si pongo (Codigo) Me muestra los valores (2222)y(3333). Pero si pongo ´Codigo;Descripción´ Me muestra (2222:Corbata) y (3333:Medias) Y si pongo ´Descripción´ Me muestra : (Corbata) y (Medias).

En la propiedad KeyField es lo que realmente tengo o deja dentro del DBLookupComboBox.

Ahora el problema que yo quiero mostrar columnas de mi tabla en el DBLookupComboBox. Ahora me entiendes?
Provee con el método Maestro-Detalle (MasterSource) entre las tablas tbDeConfiguraciones ==> tbProductos . Pero no resulto.

Ahora otra pregunta se puede crear una tabla en memoria y conectar tbDeConfiguraciones.(IVA1;IVA2;IVA3) ==> tbNuevaEnMemoria.(IVA)
Para que los valores de (IVA1;IVA2;IVA3)(columnas) me los pase a valores en fila?

Casimiro Notevi 05-06-2018 20:25:06

Todo eso ya lo has comentado y creo que está entendido, es básicamente el esquema/dibujo que he hecho, para que confirmes que es así.
Ahora bien, lo que quieres conseguir es lo que no se entiende.





Cita:

Empezado por DiegoPucho (Mensaje 526852)
Ahora el problema que yo quiero mostrar columnas de mi tabla en el DBLookupComboBox. Ahora me entiendes?

Pues no, no se entiende, dibújalo en un papel qué quieres que aparezca con los ejemplos que se han puesto antes y sube la imagen para que la veamos.

DiegoPucho 05-06-2018 22:33:51

Imagen de lo que quiero.
 
2 Archivos Adjunto(s)
No se como cargar las imágenes... Ya está...:D
Archivo Adjunto 3677Archivo Adjunto 3678
Ahí dejo las imágenes la primera: es lo que quiero....
La segunda la vista del FormNuevoProducto.

DiegoPucho 05-06-2018 23:01:41

Pequeña Explicación
 
2 Archivos Adjunto(s)
Archivo Adjunto 3680Archivo Adjunto 3679

La Imagen 2: Es es el FormNuevoProducto que guarda datos a tbProductos := (Código;Producto;Rubro;......;IVA;......;Costo)....

Voy a tomar otro ejemplo: El DBLookupComboBox.Rubro = ComboBoxRubro Que contiene otra tbRubro = (id;Descripción).
Las Tablas de Datos tbProductos se enlaza con la tbRubro =EN= (Rubro;Descripción) =Donde Rubro pertenece a la 1° (tbProductos) y Descripción a la 2° (tbRubro). En este DBLookupComboBox No tengo problema ya que me muestra las filas correspondientes.

El problema es el DBLookupComboBox.IVA = ComboBoxIVA ya que los datos que quiero mostrar están en tbDeConfiguraciones.
Forma de la Tabla de tbDeConfiguraciones( ...... : IVA1 : IVA2 : IVA2 : ...... ). Son 3 columnas a mostrar IVA1;IVA2;IVA3 .
-----------------------------------------Ejemplo: ( ...... : 21 .:. 15 .:. 0 : ...... ). Y solo tengo esta FILA de Datos.

Lo que QUIERO es lo de la Imagen2(adjunta) me muestre la FILA (21;15;0) que están en las Columnas IVA1;IVA2;IVA3. de tbDeConfiguraciones
y me guarde ese dato en tbProductos := (Código;Producto;Rubro;......;IVA;......;Costo)

Espero que se entienda ahora o por favor comenten cual es la parte que no se entiende... Un millón de Gracias .

DiegoPucho 06-06-2018 02:04:06

2 Archivos Adjunto(s)
Archivo Adjunto 3682Archivo Adjunto 3681

Ahora Estoy Probando esto
El 1° DBdgrid que esta conectado a mi TABLA = tbProducto.
El 2° DBdGrid que esta conectado a mi TABLA = tbDeConfiguracion.
El 3° DBdGrid donde quiero que se ordene El 2° DBdGrid.
A este le asigne 1° (Id) y 2° (IVA).
---------------------- 1 --------- 21 -
---------------------- 2 --------- 15 -
---------------------- 3 ---------- 0 -

Como Hago esto? Se puede Ordenar El 2° DBdGrid en el El 3° DBdGrid?? Por que si lo ordeno uso esa tabla con el DBLookupComboBox. y listo problema!!!!

Casimiro Notevi 06-06-2018 10:42:20

De verdad que yo ya no entiendo qué quieres.

ElDioni 06-06-2018 14:57:43

Entiendo que como son fields de la misma tabla no puedes mostrarlos en forma de listado al desplegar el dblookcombobox, ¿no?, si es eso lo que quieres tal vez te serviría haciendo UNION con los distintos campos de la tabla donde están los tipos de ivas.


Código SQL [-]
SELECT IVA1 FROM IVAS
UNION
SELECT IVA2 FROM IVAS
UNION
SELECT IVA3 FROM IVAS


Esta consulta la tienes que meter en un Query. Prueba esto a ver si es el efecto que deseas.


Saludos.

Casimiro Notevi 06-06-2018 18:23:09

Claro, ahora entiendo, ese es el problema que tiene, pero no ha sabido explicar. Seguro que es eso.

DiegoPucho 06-06-2018 21:03:50

Probando...
 
GRACIAS ElDioni y Casimiro, Y perdon por no saber expresarme voy a implementar lo de las imágenes así se entiende con mas detalle...
Esto me volvió loco... estoy probando... les cuento como me fue!!!

mRoman 06-06-2018 21:14:30

Bueno...yo lo q entiendo es que quiere ingresar LOS DATOS de sus CAMPOS de tbDeConfiguracion en el DBLookupComboBox, pero creo que ese objeto no te servirá de mucho, considero que el ComboBox seria mejor opción e ir llenándolo con un query:

Código Delphi [-]
//Llenar el combobox
var
   i:Integer;
begin
     for i:=0 to TablaIvas.FieldCount -1 do
     begin
          ComboBox.Items.Add( {el campo[i] de TablaIvas}  ); //Aqui ayudenme...mis conocimientos en esta área no los domino muy bien. Como se haria la parte q esta dentro de las llaves "{}"
     end; 
end;

Seria algo asi, no tengo delphi a la mano, pero la idea es que "AGREGUE EL CONTENIDO DE CADA CAMPO (IVA1, IVA2...IVAn) EN EL COMBO hasta que llegue al final de los campos.

Y le quedarían, en una sola columna dentro del combo....ASI ERA?...JAJAJA...espero q esto haya sido, ya que asi le entendí.

Saludos.

DiegoPucho 06-06-2018 21:52:16

SI Se Puede!!!!
 
Una vez más GRACIAS ElDioni y Casimiro... Lo Hice y me salio....
Cita:

SELECT IVA1 FROM IVAS
UNION
SELECT IVA2 FROM IVAS
UNION
SELECT IVA3 FROM IVAS
Solo cambié el FROM:
Código SQL [-]
SELECT IVA1 FROM tbDeComfiguracion.
UNION
SELECT IVA2 FROM tbDeComfiguracion
UNION
SELECT IVA3 FROM tbDeComfiguracion

PD: También Gracias a mRoman voy a ver a eso... Ya que la idea es aprender... Saludos a todos... ;)

ElDioni 07-06-2018 15:26:18

Hola,



me alegro que lo solucionaras, te recomiendo que apliques la solución de Roman, a mí, personalmente, me parece más correcta que la que yo te doy, con la solución de Roman no necesitas cambiar el código de tu consulta si en el futuro añadieses más tipos de iva en la misma tabla.


Saludos.


La franja horaria es GMT +2. Ahora son las 16:35:24.

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