Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-06-2005
arieliten arieliten is offline
Miembro
 
Registrado: mar 2005
Posts: 29
Poder: 0
arieliten Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 23-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Con tablas planas si he conseguido hacerlo, con IB no lo he probado, pero intentalo:

Qryproductos:
Código SQL [-]
select * from productos
order by idproducto
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.


Código SQL [-]
select * from productos_detalle
where producto = :idproducto
order by Envase Asc;

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.
Responder Con Cita
  #3  
Antiguo 23-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 24-06-2005
arieliten arieliten is offline
Miembro
 
Registrado: mar 2005
Posts: 29
Poder: 0
arieliten Va por buen camino
Listo

Ok , muchas gracias por la ayuda muchachos!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:28:39.


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
Copyright 1996-2007 Club Delphi