El artículo actual es la continuación del Tutorial: Generar etiquetas con Datareport desde Visual Basic 6.0 Creamos un nuevo botón en el formulario (con éste ya vamos por el command4) realizamos su evento click.

Private Sub Command4_Click()
'presentamos el datareport con unión triple de las campañas
DataEnvironment1.cmd_campañas
End Sub

Creamos a continuación tres commands en el dataenviroment1 mismamente. Vamos a renombrarlos porque sino va a ser mucho lío. (más que nada para mi que no estoy acostumbrado a esos nombres xD) cmd_campañas, cmd_chicas, cmd_citas mismamente Ahora generamos las consultas con las nuevas tablas que he añadido: campañas, chicas y citas… ejem (solamente tres ya lo se soy un vago pero no tengo ganas de entrelazar siete tablas para un ejemplo sencillito xD) Mirar un poco la estructura de las tablas y veréis que campañas se enlaza con chicas y que chicas con citas. Bueno generemos las consultas (click derecho encima del command/propiedades/… no voy a entrar en detalles) cmd_campañas

SELECT id_temporada, eslogan, ini_fecha, lugar_apertura FROM campañas

cmd_chicas

SELECT nombre, id_chica, descripcion, dato3, dato2, dato1 FROM chicas where temporada=ident_temporada

cmd_citas

SELECT duracion, id_chica, id_cita, tipo, inc_fecha FROM citas WHERE id_chica=ident_chica

además añadiremos en la pestaña relación: comando primario: cmd_chicas definición de relación: id_chica to ident_chica, agregar, aceptar y listo xD Creamos el data report (DRcampañas) lo asociamos, DataSource=DataEnvironment1 DataMember=cmd_campañas Quitamos forzar a la cuadrícula y le damos a obtener estructura y tenemos un monton de encabezados y pie de grupos xD Posicionamos los campos que queremos mostrar (arrastrandolos desde el dataenviroment mismamente. Cada uno en su posición. Veréis que no os dejará meter los detalles de cmd_citas en encabezados y tal. En cmd_camapañas_header irán los datos de la campaña. En sus propiedades ForcePageBreak le metemos la opción 1- rptPageBreakBefore, para que haga divisiones(saltos de página) por cada campaña diferente. En cmd_chicas_header metemos los datos de las chicas. En cmd_citas_Detail los datos de las chicas y en cmd_chicas_footer meteremos un función count para contar sus citas y una sum para contar sus duraciones globalos mismamente, ave cuál ha soportado a más tios xD Acordaros de poner en el queryclose del data report esto

Private Sub DataReport_QueryClose(Cancel As Integer, CloseMode As Integer)
DataEnvironment1.rscmd_campañas.Close
End Sub

Ala ya hemos terminado, igual hago otro tuto dentro de un par de días en el que enviemos en vez de un parámetro varios y creo que poco más se puede hacer con un data report xD P.D. Visual Basic da un montón de problemas al trabajar con bases de datos y data reports amén de command dialogs de rutas. Ya que se hace la picha un lío y guarda la última ruta que maneja como la raíz del programa. Por lo tango es recomendable guardar la ruta en el load del programa en una variable general o pública si usamos más de un formulario/módulos

Mi_ruta=app.path

y luego al hacer algún cambio en command dialog o al abrir data reports meterle después

ChDir Mi_ruta

Así lograremos que no de problemas, yo en el ejemplo no lo he hecho ya que en los ejemplos de prueba no me ha dado ningún problema xD Subo el códido y el ejemplo: DESCARGAR Ejemplo Data Report Visual Basic 6.0 by RobiHm