En el software de notas que promociono para los Colegios, necesité algo similar, y lo que hice fue colocar todos los objetos, y luego programar el tamaño del Detalle y la posición de los campos. El código que se coloca al dar formato es(Aunque es como guía porque depende de cada caso):
On Error GoTo Errorleva
If Me.codasighist = 1 Then '1 ES COMPORTAMIENTO EN LA ASIGNATURA
Me.DIRECTORG = Me.coddochist
End If
Me.Detalle.Height = 3000
For X = 1 To 10
posi(X) = 0
Next X
If Me.nrolog11 > posi(1) Then posi(1) = Me.nrolog11
If Me.nrolog12 > posi(2) Then posi(2) = Me.nrolog12
If Me.nrolog13 > posi(3) Then posi(3) = Me.nrolog13
If Me.nrolog14 > posi(4) Then posi(4) = Me.nrolog14
If Me.nroval11 > posi(5) Then posi(5) = Me.nroval11
If Me.nroval12 > posi(6) Then posi(6) = Me.nroval12
If Me.nroval13 > posi(7) Then posi(7) = Me.nroval13
POSIF(1) = 250
POSIF(2) = 670
POSIF(3) = 1090
POSIF(4) = 1510
POSIF(5) = 1930
POSIF(6) = 2350
POSIF(7) = 2770
For X = 1 To 7
If posi(X) > 0 Then
posi(X) = 1
End If
If posi(X) = 0 Then
For y = 7 To X Step -1
POSIF(y) = POSIF(y - 1)
Next y
POSIF(X) = 0
POSIF(8) = 0
End If
Next X
Dim VALOR(3) As String
VALOR(1) = "TRUE"
VALOR(0) = "FALSE"
Me.n11n.Visible = VALOR(posi(1))
Me.n11n.Top = POSIF(1)
Me.n12n.Visible = VALOR(posi(2))
Me.n12n.Top = POSIF(2)
Me.n13n.Visible = VALOR(posi(3))
Me.n13n.Top = POSIF(3)
Me.n14n.Visible = VALOR(posi(4))
Me.n14n.Top = POSIF(4)
Me.n11.Visible = VALOR(posi(1))
Me.nrolog11.Visible = VALOR(posi(1))
Me.nrolog11desc.Visible = VALOR(posi(1))
Me.n11.Top = POSIF(1)
Me.nrolog11.Top = POSIF(1)
Me.nrolog11desc.Top = POSIF(1)
Me.n12.Visible = VALOR(posi(2))
Me.nrolog12.Visible = VALOR(posi(2))
Me.nrolog12desc.Visible = VALOR(posi(2))
Me.n12.Top = POSIF(2)
Me.nrolog12.Top = POSIF(2)
Me.nrolog12desc.Top = POSIF(2)
Me.n13.Visible = VALOR(posi(3))
Me.nrolog13.Visible = VALOR(posi(3))
Me.nrolog13desc.Visible = VALOR(posi(3))
Me.n13.Top = POSIF(3)
Me.nrolog13.Top = POSIF(3)
Me.nrolog13desc.Top = POSIF(3)
Me.n14.Visible = VALOR(posi(4))
Me.nrolog14.Visible = VALOR(posi(4))
Me.nrolog14desc.Visible = VALOR(posi(4))
Me.n14.Top = POSIF(4)
Me.nrolog14.Top = POSIF(4)
Me.nrolog14desc.Top = POSIF(4)
Me.nroval11.Visible = VALOR(posi(5))
Me.nroval11des.Visible = VALOR(posi(5))
Me.nroval11.Top = POSIF(5)
Me.nroval11des.Top = POSIF(5)
Me.nroval12.Visible = VALOR(posi(6))
Me.nroval12des.Visible = VALOR(posi(6))
Me.nroval12.Top = POSIF(6)
Me.nroval12des.Top = POSIF(6)
Me.nroval13.Visible = VALOR(posi(7))
Me.nroval13des.Visible = VALOR(posi(7))
Me.nroval13.Top = POSIF(7)
Me.nroval13des.Top = POSIF(7)
VALOR1 = 0
For y = 1 To 7
If (POSIF(y) > VALOR1) Then
VALOR1 = POSIF(y)
End If
Next y
Me.Detalle.Height = VALOR1 + 300
Exit Sub
Errorleva:
Exit Sub
|