FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ordenar relacion Master/Detail por otro campo!!
Hola, estoy usando Delpgi 6 e Interbase 6 para mi aplicación y me he encontrado con el siguiente problema. Tengo 3 Tablas (IBTable) definidas como sigue:
1) Tabla Marcas (Id_Marca, Nombre, PideEnvase) 2) Tabla Productos (Id_Producto, Marca, Descripcion) 3) Tabla Productos_Detalle (Producto, Envase, Pr_Ctdo, Pr_CtaCte) Con colores les marco que esas tablas estan vinculadas con un Foreign Key en esos campos. Bueno, este diseño de tablas es para los productos de una pintureria donde almacenamos por ejemplo las distintas marcas de pinturas, luego los distintos productos y finalmente los precios de esos productos para cada envase en el que viene (1 lt, 4 lts, 10 lts, etc). El problema es que quiero hacer un reporte (usando QReport) usando el método de relación Master/Detail y no logro que los productos me salgan ordenados por el envase. Es decir, he logrado obtener un reporte agrupado por marcas primero y luego por articulos de esa marca con los distintos envases y precios en los que se encuentra ese articulo. Pero éste ultimo no aparece ordenado sino que aparece por ejemplo: Colorama Azul Metalizado Envase Pr.Ctdo Pr.Cta.Cte 10 11,50 12,75 4 10,00 10,50 1 8,00 8,99 20 14,95 16,00 0,50 5,10 5,90 Como vemos aquí, puedo hacer que me aparezcan todos los productos de la marca Colorama por ejemplo, el "azul metalizado", pero a la hora de ordenarlos, quisiera que aparecieran ordenados por el tipo de envase desde el más pequeño al más grande y no en forma aleatoria como aparecen. ¿Es posible hacer algo así? Creo que el problema está en que el indice activo para la tabla "Productos_Detalle" es el de Producto (ya que lo vincula a la tabla de ese nombre por su relacion Master/Detail) entonces no puedo activar otro indice (por ejemplo, envase) para que se ordenen. Quise tratar de hacer esta relacion master detail pero más a mano y usando IBQuerys para filtrar y mostrar lo que yo quisiera pero me he encontrado que no puedo hacer relaciones Master/Detail con los Querys ya que no tengo la propiedad "Master Source" en ellos. Bueno espero que hayan entendido un poco mi problema y que me puedan ayudar. Saludos. |
#2
|
||||
|
||||
Con tablas planas si he conseguido hacerlo, con IB no lo he probado, pero intentalo:
Qryproductos: Añade un Datasource para esta consulta y llámale DTSqryProductos QryProductos_Detalle: En el object Inspector QryProductos_Detalle.Datasource := DTSqryProductos Con esto cogerá los datos desde qryProductos.
En principio, como el parámetro que tiene qryProductos_Detalle tiene el mismo nombre que el campo de QryProductos, las 2 consultas quedan en relación Maestro-Detalle. Repito, no sé si va a funcionar, pero menos dan las piedras. Un saludo y suerte.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
||||
|
||||
Podes basarte en la propiedad IndexFieldNames, con al cadena 'Producto;Envase'.
Para que la relación maestro/detalle se mantenga es necesario que el orden inicie por producto, luego podes añadir tantos campos como te interese ordenar en el reporte. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#4
|
|||
|
|||
Listo
Ok , muchas gracias por la ayuda muchachos!!
|
|
|
|