¿Cómo ocultar un subinforme cuando esta vacío?

Expertos,

Buenas tardes

Preciso de su ayuda para solucionar un pequeño inconveneinte que tengo al visualizar un informe.

Tengo un informe y dentro de el subinformes cuya relación con el informe principal es 1 >Varios, la información que muestran estos sub informes esta correcta, ¿pero cómo puedo ocultar un subinforme si este no muestra datos?. Imaginemso que los subinformes son:

a) Datos de trabajos en Ciudad capital ► (infoW_CC)

b)Datos de trabajo en Ciudades del exterior ► (infoW_CE)

c) Dato de estudio en Ciudad Capital ► (infoE_CC)

d) Datos de estudio en ciudad del exterior ► (infoE_CE)

¿Cómo ocultaría B y D si en caso no se registro?, el formulario e informe tienen la misma apariencia

Los informes : infoW_CC, infoW_CE, infoE_CC, infoE_CE, estan basados en tablas independientes.

2 Respuestas

Respuesta
2

Supongamos que tienes el informe Ventas, con los cuadros de texto, IdVenta(no es necesario que esté físicamente en el informe), cliente, etc., y el subinforme DetalleVenta, con los campos IdVenta, producto, etc.

En las propiedades de la sección donde esté el subinforme, en el evento Al dar formato puedes poner

If IsNull(DCount("idventa", "detalleventa", "idventa=" & Me.IdVenta & "")) Then
DetalleVenta.Report.Visible = False
End If

Respuesta
1

No he leído toda tu explicación completa y tal vez hay una mejor opción a la respuesta que te daré

Pero debes crear en tu subinforme un vinculo al informe principal, similar a cuando pasas el resultado de una sumatoria desde el pie de página donde el campo que pases al ser nulos todos tus campos sea igual a -1( existen varias formas para esto ya sea con varios if anidados o con una variable, o simplemente con un valor fijo en el campo -1 que al actualizar cualquier otro campo se vuelva 0, no se dependerá de tu lógica, con esto en el evento al cargar el informe si dicho campo

 If [campo].value=-1 then 

(infoW_CE).visible= False

Else 

(infoW_CE).visible=True

end if 

No es que el código arriba sea el correcto pero se trata de explicar lo mejor posible para que puedas llegar a un resultado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas