Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Rave Master/detail/subdetail (https://www.clubdelphi.com/foros/showthread.php?t=54644)

sami76 26-03-2008 13:49:35

Rave Master/detail/subdetail
 
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

Grande
 
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

Andaba por ahi buscando esto
 
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

Cita:

Empezado por Loarik (Mensaje 312739)
...... 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-[FONT='Verdana','sans-serif'] DataViewInscripciones[/font]
[FONT='Verdana','sans-serif']DataBAnd2[/font]
[FONT='Verdana','sans-serif']DataView->DataViewNombre
MasterDataView->[/font]
-[FONT='Verdana','sans-serif'] DataViewInscripciones
MasterKey->[/font]
-[FONT='Verdana','sans-serif'] DataViewInscripciones.Id_Persona [/font]
[FONT='Verdana','sans-serif']DetailKey-> ->[/font]-[FONT='Verdana','sans-serif'] DataViewNombre.Id_Persona [/font]
[FONT='Verdana','sans-serif']ControllerBand -> [/font]DataBand1
Y Me aparece 3 veces el mismo registro.

Loarik 10-09-2008 10:43:24

Perdon¡¡¡¡
 
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

No me funciona
 
: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


La franja horaria es GMT +2. Ahora son las 10:18:22.

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