Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problema con LookUpListBox (https://www.clubdelphi.com/foros/showthread.php?t=52360)

Saiyan 18-01-2008 14:29:51

Problema con LookUpListBox
 
Buenas:

Estoy haciendo un soft de ventas, stock, presupuestos, etc.

Mi problema es cuando quiero modificar un producto.

Al cargarlo, el usuario selecciona categoria y subcategoria de producto, proveedor, etc, mediante LookUpListBox.

Y como quiero que el formulario de modificación sea igual al de carga, quiero que al seleccionar el producto a modificar, se vean seleccionadas la categoría, proveedor, etc del producto, y no puedo hacer eso.

Los campos como nombre, precio, etc (los cargo en Edits), no tengo problemas, pero no puedo hacer que se vean seleccionados categ, subcateg, prov, etc.


No se como hacerlo con el componente visual, la sentencia SQL la tengo,

Código SQL [-]
SELECT * FROM Productos WHERE = ...

y ahi vienen las claves de categoria, subcategoria, prov, nombre, precio, stock,etc, etc


lo que no sé es como hacer q se "autoseleccionen" los LookUpListBoxs con lo del producto elegido. Supongo que extrayendo las claves de cada uno, y asociandolos con los keyfield y listfield.. pero no se como.

Espero respuesta y gracias.


Saiyan

Lepe 18-01-2008 14:46:46

Imposible dar una respuesta concreta. Explica las tablas, campos que intervienen y las sqls completas, no supongas, explica lo que quieres hacer.

Como respuesta general, que es lo único que se puede decir: necesitas relaciones maestro-detalle.

Cita:

Empezado por Saiyan
Y como quiero que el formulario de modificación sea igual al de carga, quiero que al seleccionar el producto a modificar, se vean seleccionadas la categoría, proveedor, etc del producto, y no puedo hacer eso.

No lo entiendo. Para seleccionar un producto, antes deberá seleccionar la categoría y proveedor ¿no?

Saludos

felipe88 18-01-2008 15:00:39

Cita:

Empezado por Lepe (Mensaje 259140)
Imposible dar una respuesta concreta. Explica las tablas, campos que intervienen y las sqls completas, no supongas, explica lo que quieres hacer.

Como respuesta general, que es lo único que se puede decir: necesitas relaciones maestro-detalle.

No lo entiendo. Para seleccionar un producto, antes deberá seleccionar la categoría y proveedor ¿no?

Saludos

Concuerdo con lo que dices, segun tengo entendido si la realcion y la conexion estan correctas, al moverte por los registro tanto encabezados como detalles, no relaizan la misma accion automaticamente ? :rolleyes:, amigo Saiyan deberias revisar la conexion, listsource, keyfield, listfield y datasource.

Saludos

Saiyan 18-01-2008 15:35:12

Amigos explico un poco más


Tabla PRODUCTOS
NumProd
NumCategoria
NumSubCategoria
NumProveedor
Nombre
Stock
Precio
etc...

Tabla Categorias
NumCategoria
Nombre

Tabla SubCategorias
NumSubCategoria
Nombre

Tabla Proveedores
NumProveedor
Nombre
mail
direccion
etc...



Cuando accedo a buscar un producto para su modificación elijo categoria, luego la subcategoria y hago click derecho sobre el producto que quiero.

en este ejemplo una memo ddr2

http://www.salasapucay.com.ar/images/KProdListar.JPG


cuando hago click en modificar
hago showmodal de un form que deberia traer de la db todos los datos de ese producto.
de hecho la sentencia SQL trae todo
Código SQL [-]
select * from productos


http://www.salasapucay.com.ar/images/KProdUpd.JPG

Fijense que los edits los puedo cargar, pero no se como hacer para que se vean seleccionados los lookups con la categoria con la q esta cargada en la dB.


Diganme si necesitan algo mas

Gracias

Saiyan

Lepe 18-01-2008 19:05:43

ListboxLookupCategoria.keyvalue := tablaproductos.Fieldbyname('NumCategoria').AsInteger;

De otra forma, podrías hacer un locate sobre el query del lookuplistbox.

Cuando se da a modificar, se debería pasar los datos:
- Categoria
- Subcategoria
- Producto
a la ventana modal (la de modificación, claro).

Puede que lo tengas implementado de otra forma y no necesites pasar los datos, ya que dices que puedes extraer el Edit del nombre, también podrás obtener el numCategoria, etc.

Saludos

Saiyan 21-01-2008 12:26:40

OK, probaré lo del Locate y cuento que pasó.

del Locate Delphi dice:

Cita:

Searches the dataset for a specified record and makes that record the current record.
y con eso en el list quedaría seleccionado el registro indicado.. no?

pruebo y aviso

Saludos

Saiyan 22-04-2008 16:18:47

Ya probé con el Locate.

En el dbLookupCombobox no me selecciona el registro que quiero.
Por ejemplo.
Quiero que se seleccione la categoria actual del producto en ese combo.

con Locate

Código Delphi [-]
lu1.ListSource.DataSet.Locate('CodCategoria', 3, [loCaseInsensitive]);

( Esto deberia posicionarme el cursor del dataset en el registro con CodCategoria=1 )

Si pruebo asignar ese DataSet a una grilla, funciona, o sea efectivamente me queda el cursor de la grilla en el registro de CodCategoria = 3.

pero con el LookUp no..

como hago para que me quede seleccionado en el LookUp el registro de CodCategoria = 3 ???


Gracias
y Saludos

Lepe 23-04-2008 14:10:31

ListboxLookupCategoria.keyvalue := 3;

Suponiendo que el lookupCombo tiene como KeyField el codCategoria.

Saludos

Saiyan 23-04-2008 14:18:44

Cita:

ListboxLookupCategoria.keyvalue := 3;
Jajajajajajajajajaja

No podes que era tan facil... !

Gracias Lepe.

Yo siempre buscando el lado complicado...

Funciona Perfecto, gracias.

Saludos y Gracias a todos!


La franja horaria es GMT +2. Ahora son las 21:43:38.

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