PDA

Ver la Versión Completa : Rave Master/detail/subdetail


sami76
26-03-2008, 13:49:35
Hola a todos.
Pues eso, intento hacer un report en Rave con un groupheader, un detail y me gustaría añadir un subdetail. ¿Es posible? ¿Cómo debería de enlazar el detail con el subdetail?

Gracias por adelantado a tod@s.

Un Saludo.

Caro
26-03-2008, 18:18:09
Hola sami76, para mostrar un reporte maestro de detalle en rave debes hacer lo siguiente, primero no necesitas definir la relación maestro detalle en tus DataSet.

Digamos que en uno de tus querys tienes esta consulta "SELECT * FROM Tabla1" que hara de maestra y en el otro Query tienes "SELECT * FROM Tabla2" que hara de detalle.

Cada uno lo enlazas a su respectivo RvDataSetConnection, en rave cada uno de estos le asignas a su respectivo DataView y cada DataView conectado a un DataBand.

El primer DataBand digamos que se llame "maestro" solo necesitas asignarle su DataView->DataView1.

En el segundo DataBand digamos que se llame "detalle" necesitas utilizar mas propiedades, ya que esta sera la que definira la relación maestro detalle.

DataView->DataView2
MasterDataView->DataView1
MasterKey->codigo
DetailKey-> CodigoTabla1
ControllerBand -> maestro

Con eso defines la relación maestro detalle, donde Codigo y CodigoTabla1 son los campos con los que se relacionan ambas tablas.

Colocas los dataText que necesitas en cada una de las bandas y lo ejecutas, si quieres añadir una banda GroupHeader, lo que tienes que tomar en cuenta son las propiedades ControllerBand->maestro, GroupDataView->DataView1 y GroupKey->codigo.

Espero se entienda

Saluditos

sami76
27-03-2008, 13:27:45
Hola Caro, que grande que eres. Me ha funcionado perfectamente y la explicación está correctísima. Muchas gracias por tu ayuda. He aprendido algo más.

Un abrazo muy grande.

casacham
19-04-2008, 01:19:38
Hola Caro(lina)
Estaba buscando exactamente esto que describes aqui, esta muy bien redactado, voy a probarlo en casa y luego te cuento como funcionó:cool:

Loarik
09-09-2008, 14:01:28
Hola, estaba aprovechando la buena explicación de este hilo para hacer un informe maestro detalle pero lo que me ocurre es que el detalle lo que hace es escribir el primer registro tantas veces como registros tendría que haber escrito, alguien sabe que puedo estar haciendo mal?

sami76
09-09-2008, 14:21:25
Tiene pinta que sea la consulta sql que utilizas. Alguna relación entre tablas puede causarte que te devuelva registros duplicados. Ejecuta la consulta sql aparte y mira qué resultado te da.

Caro
09-09-2008, 14:50:47
...... pero lo que me ocurre es que el detalle lo que hace es escribir el primer registro tantas veces como registros tendría que haber escrito, alguien sabe que puedo estar haciendo mal?

Hola Loarik, danos mas detalles para que podamos ayudarte mejor, cuales son los campos que tienes en tu tabla (los principales), como estas relacionando en tu reporte MastarKey, DetailKey.......

Lo que si cuando no colocas bien en la propiedad DetailKey que tiene que estar el campo que hace de llave foranea en tu tabla2 (osea en la tabla de detalle), se repite el mismo detalle para cada registro maestro, o si colocas el codigo de la tabla detalle, ya te sale otra cosa, revisa esa propiedad.

Saluditos

Loarik
10-09-2008, 10:37:31
Ya he revisado esa propiedad y parece que está correcta.
Yo tengo lo siguiente:
QR_Nombre: SELECT Id_Persona, Nombre
FROM Persona WHERE Id_Persona = :ipersona';

Qr_Inscripcion: SELECT Id_Persona, Id_Evento…
FROM TB_Inscripcion WHERE Id_Evento = ' + IntToStr (iIdEvento)
TB_Inscripcion: Id_Evento, NombreEvento……
Tengo que hacer un informe que seleccionado un evento me liste todas las inscripciones
En la aplicación se muestra correctamente (en el caso que estoy probando 3 inscripciones)
Para el informe hago lo siguiente:
DataBand1- DataViewInscripciones
DataBAnd2
DataView->DataViewNombre
MasterDataView->- DataViewInscripciones
MasterKey->- DataViewInscripciones.Id_Persona
DetailKey-> ->- DataViewNombre.Id_Persona
ControllerBand -> DataBand1
Y Me aparece 3 veces el mismo registro.

Loarik
10-09-2008, 10:43:24
Ya he revisado esa propiedad y parece que está correcta.
Yo tengo lo siguiente:
QR_Nombre: SELECT Id_Persona, Nombre
FROM Persona WHERE Id_Persona = :ipersona';
Qr_Inscripcion: SELECT Id_Persona, Id_Evento…
FROM TB_Inscripcion WHERE Id_Evento = ' + IntToStr (iIdEvento)
TB_Inscripcion: Id_Evento, NombreEvento……
Tengo que hacer un informe que seleccionado un evento me liste todas las inscripciones
En la aplicación se muestra correctamente (en el caso que estoy probando 3 inscripciones)
Para el informe hago lo siguiente:
DataBand1- DataViewInscripciones
DataBAnd2
DataView->DataViewNombre
MasterDataView->- DataViewInscripciones
MasterKey->- DataViewInscripciones.Id_Persona
DetailKey-> ->- DataViewNombre.Id_Persona
ControllerBand -> DataBand1
Y Me aparece 3 veces el mismo registro.

rruffino
27-09-2008, 14:21:59
:confused:Hola a todos, si bien la explicación esta perfecta, al momento de implementarlo tengo problemas. El problema es que me muestra todos los registros del maestro y ninguno del detalle. Me he fijado y no me tira ningun registro duplicado en el maestro. Tambien probe en los componentes dataset generar la relacion como asi tambien probe de que sean do consultas por separado y encargarlo desde Rave pero no hay forma. Es mas, en la banda de detalle pongo un texto común (que es estatico) y no me lo muestra nunca.
bueno, les agradecería si me pueden tirar una mano.
Gracias a todos!!!!:cool:

jose_cv21
15-10-2008, 22:26:36
Nunca he utilizado rave report y quiero empezar a usarlo para hacer un report de una factura, consigo mostrar la cabecera y el detalle pero no se como hacer el pie de la pagina para que me aparezca el total de la factura.
He insertado un databand en bandstyle=groupfooter en controlband=cabecera pero y bueno cambiando parametros probando pero no consigo mostrar el pie de la factura. Que estoy pasando por alto?.
Por cierto la databand detalle la configuro como explicais en el hilo y eso si que se me muestra bien.
Gracias y un saludo