Creamos un nuevo botón en el formulario (con éste ya vamos por el command4) realizamos su evento click
Código:
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
Código:
SELECT id_temporada, eslogan, ini_fecha, lugar_apertura FROM campañas
cmd_chicas
Código:
SELECT nombre, id_chica, descripcion, dato3, dato2, dato1 FROM chicas where temporada=ident_temporada
además añadiremos en la pestaña relación:
relacionar con un comando primario, el comando primario: cmd_campañas, definición de relación: id_temporada to ident_temporada, agregar, aceptar y listo xD
cmd_citas
Código:
SELECT duracion, id_chica, id_cita, tipo, inc_fecha FROM citas WHERE id_chica=ident_chica
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 cuadricula 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
Código:
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
Código:
Mi_ruta=app.path
y luego al hacer algún cambio en command dialog o al abrir data reports meterle despuésCódigo:ChDir Mi_ruta
Así lograremos que no de problemas, yo en el ejemplo no lo he hecho ya que en un par de pruebas que he hecho no me ha dado problemas xD
Subo el códido y el ejemplo:
DESCARGAR Ejemplo Data Report Visual Basic 6.0 by RobiHm
No hay comentarios:
Publicar un comentario