Access - Quitar columnas de un Informe segun sea el criterio

   
Vista:
Imágen de perfil de persé

Quitar columnas de un Informe segun sea el criterio

Publicado por persé (2 intervenciones) el 20/05/2015 19:03:20
Buena a tarde, explico mi problema a continuacion.

Tengo un informe con muchos datos en el, resultado de una consulta.
Este formulario esta distribuido como "tabulador".
Necesito que las columnas de este informe no aparezcan al abrirlo, segun sea el criterio de cada una de ellas. Es decir:
si dentro de cuadro de texto aparece "0" entonces esa columna no aparece en el informe.

ejemplo.
ejemplo-informe

en la primera columna "Inscripción" tengo en el registro N° "13" el valor de "$12.00" en este caso la columna "Inscripcion"" si deberia a parecer en el Informe.

Pero en el caso de las columnas que en todos los registro no tengan valor o este sea de $0.00, no aparezcan al abrir el informe.

quiero hacer esto ya que comente anteriormente tengo muchos datos, y necesito que solo aparezcan las columnas que contengan valores en algun registro.

Nota: no necesito que se oculten los datos, ya que en este caso los espacios de las columnas quedan dentro del informe. y lo que necesito es qure las columnas que tienen datos se acomden desde que se abra el informe.

Espero puedan ayudarme. Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de douglas

Quitar columnas de un Informe segun sea el criterio

Publicado por douglas (280 intervenciones) el 21/05/2015 00:55:31
Creo que es complicado y a la vez muy sencillo
que te parece si lo defines en la consulta y que ya en el informe llegue filtrado

a todos las columnas en criterio le pones >0
ojala te resulte así de sencillo.


Explico la forma difícil
Te olvidas del reporte y haces un formulario modal con botones para imprimir ocultos a impresión
dentro del mismo creas tu formulario mas ordenado en base a campos de solo lectura y en base a consultas ligadas por id separadas las cuales ordenas de acuerdo al criterio que tu quieras.

Te recomiendo que tu base la acortes y la trabajes con relaciones
de esta forma será mas sencillo para ligar la información filtrada
por ejemplo

Datos del alumno-------cursos--------calendario
Cuando hagas tu reporte modal será genial y podrás hacer multiplex filtros esconder información si no reporta
y un sin fin de utilidades que dentro de un reporteador no te saldrían
Un saludo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Norberto

Quitar columnas de un Informe segun sea el criterio

Publicado por Norberto (432 intervenciones) el 21/05/2015 16:03:25
Hola.

Yo lo haría de la siguiente manera:

En el encabezado daría a las etiquetas de las columnas que quieras que se puedan ocultar el nombre etiCol seguido de un número correlativo, así etiCol1 para la primera Inscripción, etiCol2 para la segunda, etiCol5 para enero, etc.

En la sección detalle haría lo propio con los correspondientes cuadros de texto, así: valCol1 para la primera inscripción, valCol2 para la segunda, valCol5 para enero... Recuerda que un cuadro de texto puede llevar un nombre distinto al campo de la tabla que le da origen.

Pondría un cuadro de texto con la suma de los valores "ocultables" en un pie y los llamaría sumCol1, sumCol2, etc. Si no quieres que salgan en el informe, les das altura 0.

Ahora viene lo bueno:

En el evento Al dar formato del encabezado del informe pones el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub EncabezadoDelInforme_Format(Cancel As Integer, FormatCount As Integer)
    Dim n As Integer
 
    For n = 1 To 16
        If Me.Controls("sumCol" & n) = 0 Then   'Si el total es 0
            Me.Controls("etiCol" & n).Width = 0 'Ponemos todos los anchos a 0
            Me.Controls("valCol" & n).Width = 0
            Me.Controls("sumCol" & n).Width = 0
        End If
        If n < 16 Then  'Si no es el último control
            'Ponemos el siguiente pegado a éste
            Me.Controls("etiCol" & n + 1).Left = Me.Controls("etiCol" & n).Left + _
                                                 Me.Controls("etiCol" & n).Width
            Me.Controls("valCol" & n + 1).Left = Me.Controls("etiCol" & n + 1).Left
            Me.Controls("sumCol" & n + 1).Left = Me.Controls("etiCol" & n + 1).Left
        End If
    Next
End Sub

Yo he puesto 16 teniendo en cuenta lo que se ve en la imagen. Si el número de columnas es mayor, lo cambias.

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de persé

Quitar columnas de un Informe segun sea el criterio

Publicado por persé (2 intervenciones) el 21/05/2015 16:39:27
Norberto, buenos días, gracias por contestar.

al realizar tus indicaciones en la linea "12" del codigo, me aparece error de sintaxis, ¿a que se deberá?

1
Me.Controls("etiCol" & n + 1).Left = Me.Controls("etiCol" & n).Left +_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Norberto

Quitar columnas de un Informe segun sea el criterio

Publicado por Norberto (432 intervenciones) el 22/05/2015 13:42:01
Hola.

Separa el + del _ con un espacio en blanco.

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar