** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - ordenar subinformes
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

ordenar subinformes

 Responder Responder
Autor
Mensaje
JGOfisoft Ver desplegable
Nuevo
Nuevo


Unido: 20/Agosto/2015
Localización: España
Estado: Sin conexión
Puntos: 10
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita JGOfisoft Cita  ResponderRespuesta Enlace directo a este mensaje Tema: ordenar subinformes
    Enviado: 03/Diciembre/2018 a las 20:46
Buenas tardes, es mi primera pregunta en el foro y se trata de lo siguiente:
Dispongo de un Informe de Rutas con un Subinforme de Zonas que nos muestra las Zonas correspondientes a la Ruta del Informe principal (vinculados ambos por el ID de la Ruta.
De la misma Forma tengo un subformulario desde donde llamo al informe con un orden para las Rutas y otro orden para las zonas.
Mediante Código ordenamos sin problema el Informe principal (Me.OrderBy = "NombreRuta" en la apertura del informe).
Me ha sido imposible ordenar el Subinforme he intentao lo siguiente:
Al abrir el Formulario Principal: Me!Subinforme.report.OrderBy = "NombreZona"
Al dar formato al detalle (Ubicación del subinforme): Me!Subinforme.report.OrderBy = "NombreZona"
Mismo código al Imprimir
Lo he intentado al abrir el subinforme: Me.OrderBy = "NombreZona" (si lo abro por separado funciona)
Tambien lo he intentado con el siguiente código: Reports!Informe!Subinforme.Report.OrderBy = "NombreZona" y no hay forma.
Siempre me da el error 2101 en tiempo de ejecución
El valor que se ha especificado no es válido para esta propiedad.
No es posible ordenar subinformes en tiempo de ejecución ?
Agradezco su ayuda.
Arriba
Chea1 Ver desplegable
Moderador
Moderador


Unido: 20/Noviembre/2005
Localización: España
Estado: Sin conexión
Puntos: 4020
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Chea1 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 05/Diciembre/2018 a las 11:53
En los informes OrderBy no sirve, hay que usar GroupLevel(x).ControlSource, donde x se corresponde con el nivel de agrupamiento que tengas en el diseño del informe. Mejor si lo haces desde el mismo informe en el evento Load.

GroupLevel vale lo mismo para orden que para agrupamiento. Fíjate en el diseño del informe en que la diferencia entre Ordenar y Agrupar sólo está en que Ordenar no tiene encabezados.
Saludos
José Bengoechea Ibaceta
Mi página

Mi otra página
Arriba
JGOfisoft Ver desplegable
Nuevo
Nuevo


Unido: 20/Agosto/2015
Localización: España
Estado: Sin conexión
Puntos: 10
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita JGOfisoft Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 05/Diciembre/2018 a las 18:09
Muchas gracias por la respuesta pero en el subinforme no hay nivel de agrupamiento, solo es un informe continuo (auto extensible y auto comprimible) con todas las zonas existentes; insertado en el detalle del informe principal que al vincularlo por el ID de la Ruta (nivel de agrupamiento del informe principal) solo nos muestra las Zonas de cada Ruta.
Este subinforme continuo solo tiene dos campos (ademas del ID de la Ruta) ambos de texto, el Código y el Nombre de la Zona.
Este orden se selecciona (uno u otro) en el formulario desde el que llamo al informe.
¿Como podemos ordenar estas Zonas por su código o nombre al imprimir según hemos indicado en la llamada?.
He intentado incluso construir mediante código una consulta temporal (que se borra al cerrar el informe) donde se indica el orden y la pongo como origen de datos del subinforme, pero ni aún así me coge el orden de llamada.
Saludos
Juan Gonzalez
Arriba
Chea1 Ver desplegable
Moderador
Moderador


Unido: 20/Noviembre/2005
Localización: España
Estado: Sin conexión
Puntos: 4020
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Chea1 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 05/Diciembre/2018 a las 19:07
Crea un Orden en el informe, por uno de los dos campos. Será el GroupLevel(0) y sólo tienes que asignarle en la propiedad ControlSource el nombre del campo por el que quieres que ordene; por ejemplo:

Me.GroupLevel(0).ControlSource = TempVars!NombreCampo

El valor de la TempVar se lo puedes asignar en el formulario.

Si quieres que el orden sea descendente tienes que usar la propiedad SortOrder del mismo GroupLevel(0)
Me.GroupLevel(0).SortOrder = TempVars!OrdenDescendente

El valor de la TempVar se lo puedes asignar en el formulario.

A mí me funciona muy bien en el evento Open del Report.

Creo que tu informe principal funcionaría mejor prescindiendo de subinformes y usando en su lugar agrupamientos. Sólo tienes que basarlo en una consulta que incluya todas las tablas implicadas. Es más limpio, te va a ahorrar problemas con los saltos de página y las posibilidades de ordenar siguen estándo ahí (eligiendo el nivel de agrupamiento adecuado)


Saludos
José Bengoechea Ibaceta
Mi página

Mi otra página
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable