Lege ruimte na afbeeldingen in rapport

Status
Niet open voor verdere reacties.

fmeca

Gebruiker
Lid geworden
7 sep 2009
Berichten
95
Hoi daar ben ik weer.

Ik plaats foto's uit een bepaalde map in een rapport. Dit lukt. Netjes in rijtjes van 2 ook als er voor een bepaald item geen foto is.

Nu is het probleem dat als alle foto's zijn geplaatst bijv. op 1 pagina ik vervolgens 3 lege pagina's heb.????

Hoe kan ik dit voorkomen.

Het viel mij ook op dat de afbeeldingen soms wel 5 keer geladen worden.

De tabel bevat Het pad: vis_LijstPath, en de foto's; vis_LijstFoto1 t/m 9
De code die onder het detail van het Rapport hangt;

Code:
Function setAfbeeldingen()
    Dim strFotoPad As String                          'Locatie/pad van de foto's
    Dim strFotoNaam As String                         'Locatie/pad van de foto's
    Dim i, f As Integer
    
    Me.Vis_LijstPath.Visible = False                    'Pad onzichtbaar maken
    i = 1
    f = 1
    For i = 1 To 9                                     'Loop voor 9 foto's = aantal foto's in inspectie
        If IsNull(Me("Vis_LijstFoto" & i).Value) Or Me("Vis_LijstFoto" & i) = "" _
            Then
            Me("ImageFrame" & i).Visible = False
            Me("ImageFrame" & i).Height = 0
            Me("txtFoto" & i).Visible = False
        Else
            strFotoPad = Vis_LijstPath & _
                "\" & Me("Vis_LijstFoto" & i).Value             'Pad en bestand koppelen
            Me("ImageFrame" & f).Picture = strFotoPad           'Volledig pad-bestand in frame plaatsen
            Me("ImageFrame" & f).Height = iFrameHeight          'Max. Foto formaat
            Me("ImageFrame" & f).Width = iFrameWidth            'Max. Foto formaat
            Me("ImageFrame" & f).Visible = True
            Me("txtFoto" & i).Visible = True
            Me("txtFoto" & i).Width = 3600
            Select Case f
                Case 1
                    Me("ImageFrame" & f).Top = 300              'Frame locatie van boven
                    Me("ImageFrame" & f).Left = 300             'Frame locatie van links
                    Me("txtFoto" & i).Top = 3900
                    Me("txtFoto" & i).Left = Me("ImageFrame" & f).Left
                Case 2
                    Me("ImageFrame" & f).Top = 300              'Frame locatie van boven
                    Me("ImageFrame" & f).Left = 4500            'Frame locatie van links
                    Me("txtFoto" & i).Top = 3900
                    Me("txtFoto" & i).Left = Me("ImageFrame" & f).Left
                Case 3
                    Me("ImageFrame" & f).Top = 4800             'Frame locatie van boven
                    Me("ImageFrame" & f).Left = 300             'Frame locatie van links
                    Me("txtFoto" & i).Top = 8400
                    Me("txtFoto" & i).Left = Me("ImageFrame" & f).Left
                Case 4
                    Me("ImageFrame" & f).Top = 4800             'Frame locatie van boven
                    Me("ImageFrame" & f).Left = 4500            'Frame locatie van links
                    Me("txtFoto" & i).Top = 8400
                    Me("txtFoto" & i).Left = Me("ImageFrame" & f).Left
                Case 5
                    Me("ImageFrame" & f).Top = 9300             'Frame locatie van boven
                    Me("ImageFrame" & f).Left = 300            'Frame locatie van links
                    Me("txtFoto" & i).Top = 12900
                    Me("txtFoto" & i).Left = Me("ImageFrame" & f).Left
                Case 6
                    Me("ImageFrame" & f).Top = 9300             'Frame locatie van boven
                    Me("ImageFrame" & f).Left = 4500            'Frame locatie van links
                    Me("txtFoto" & i).Top = 12900
                    Me("txtFoto" & i).Left = Me("ImageFrame" & f).Left
                Case 7
                    Me("ImageFrame" & f).Top = 13800             'Frame locatie van boven
                    Me("ImageFrame" & f).Left = 300            'Frame locatie van links
                    Me("txtFoto" & i).Top = 17400
                    Me("txtFoto" & i).Left = Me("ImageFrame" & f).Left
                Case 8
                    Me("ImageFrame" & f).Top = 13800             'Frame locatie van boven
                    Me("ImageFrame" & f).Left = 4500            'Frame locatie van links
                    Me("txtFoto" & i).Top = 17400
                    Me("txtFoto" & i).Left = Me("ImageFrame" & f).Left
                Case 9
                    Me("ImageFrame" & f).Top = 18300             'Frame locatie van boven
                    Me("ImageFrame" & f).Left = 300            'Frame locatie van links
                    Me("txtFoto" & i).Top = 21900
                    Me("txtFoto" & i).Left = Me("ImageFrame" & f).Left
            End Select
            f = f + 1
        End If
    Next i
    
End Function

Ik wilde de TestDB toevoegen maar is na zip nog te groot????
 
Als je wilt, kun je de db wel naar me mailen.
Dan kan ik er vanavond of morgenochtend wel even mee stoeien.
 
Laatst bewerkt:
Aanvullende info op de vraag:

Dit rapport wordt dadelijk gebruikt als een subRapport gelinkt aan het Project_ID.

Als dit rapport gelinkt wordt aan het Foto_ID "Filter =(Foto_ID=9)"worden alleen de foto's in deze record afgedrukt. Als alle 9 foto's aanwezig zijn klopt het. Ontbreken echter enkele foto's ontstaan er lege pagina's. Want de aanwezige foto's worden geschikt in 2 kolommen. De ruimte voor alle 9 foto's blijft echter gehandhaafd? (= Probleem)

Als dit rapport gelinkt wordt aan het project ID "Filter = (Project_ID=1) dit zijn meer records" wordt toch de ruimte voor alle foto's gebruikt. Tevens worden foto's getoond uit een vorige record indien de volgende reocord minder foto's bevat.

De rapporthoogte moet ik zo groot maken zodat het maximaal aantal foto's past. Ondanks dat ik deze instel op 'te vergroten' en 'te verkleinen'. Tijdens genereren van het rapport onstaat dan een foutmelding.
Aanpassen van de rapport hoogte 'Report.Height' is read only. Dus aanpassen van de hoogte, bij het toenemen van het aantal foto's gaat niet.
 
In de db die je hebt opgestuurd werkt alles prima. Tot nu toe althans... De situatie die je hierboven schetst kan ik niet zo 1-2-3 nabootsen, want ik heb alleen het rapport. Maar ik zal eens kijken wat er gebeurt als ik meer records met 'gaten' maak.
 
Klopt Michel,

Zoals hierboven omschreven. Als alle foto's zijn ingevuld voor 1 record werkt alles prima.
Als je echter een 2e record met minder foto's willekeurig verdeeld over de velden ziet het anders uit. Ik krijg zelfs foto's uit de vorige record te zien.

Dit komt waarschijnlijk omdat de variabele 'ImageFram-f" nog de waarde van vorige records heeft en de loop i al klaar is. Ik ben aan het kijken hoe ik deze weer leeg krijg.

PS Het simuleren dat dit rapport een subrapport is doe door de filter de definiëren zoals hierboven omschreven.
 
Laatst bewerkt:
Hij doet het ook prima als er lege velden zijn, dus dat kan ik ook niet reproduceren. Wel het herhalen van een plaatje uit een vorig record. Het leegmaken van de variabelen verandert daar overigens niks aan...
 
Raar!. Als ik het rapport genereer heb ik
Tabel inhoud. 1:
Project_ID Foto_ID Vis_LijstPath Vis_LijstFoto1 Vis_LijstFoto2 Vis_LijstFoto3 Vis_LijstFoto4 Vis_LijstFoto5 Vis_LijstFoto6 Vis_LijstFoto7 Vis_LijstFoto8 Vis_LijstFoto9
1 2 D:\Temp\FotoK1 DSC01957.JPG DSC01958.JPG DSC01959.JPG DSC01961.JPG DSC01962.JPG
1 4
2 5

- Zonder filter:
Genereert het rapport 6 pagina’s met alleen op de 1e pagina de 5 foto’s. Dit is 5 lege pagina’s te veel.
- Met Filter ‘Project_ID = 1’
Genereert het rapport 4 pagina’s met alleen op de 1e pagina de 5 foto’s. Dit is 3 lege pagina’s te veel.
- Met filter ‘Foto_ID = 2’
Genereert het rapport 2 pagina’s met alleen op de 1e pagina de 5 foto’s. Dit is 1 pagina te veel.

Tabel inhoud. 2:
Project_ID Foto_ID Vis_LijstPath Vis_LijstFoto1 Vis_LijstFoto2 Vis_LijstFoto3 Vis_LijstFoto4 Vis_LijstFoto5 Vis_LijstFoto6 Vis_LijstFoto7 Vis_LijstFoto8 Vis_LijstFoto9
1 2 D:\Temp\FotoK1 DSC01957.JPG DSC01958.JPG DSC01959.JPG DSC01961.JPG DSC01962.JPG
1 4 D:\Temp\FotoK1 DSC01956.JPG DSC01960.JPG
2 5

- Zonder filter:
Genereert het rapport 6 pagina’s met op de 1e pagina de 5 foto’s. de 2e pagina is leeg. En op de 3e pagina 3 foto’s? waarvan de 5e foto, een foto is van de vorige record (deze staat fysiek op dezelfde plaats) echter zonder naam. De laatste 3 pagina’s zijn leeg.
- Met Filter ‘Project_ID = 1’
Genereert het rapport 4 pagina’s met op de 1e pagina de 5 foto’s. de 2e pagina is leeg. En op de 3e pagina 3 foto’s? waarvan de 5e foto, een foto is van de vorige record (deze staat fysiek op dezelfde plaats). De laatste pagina is weer leeg.
- Met filter ‘Foto_ID = 2’
Genereert het rapport 2 pagina’s met alleen op de 1e pagina de 5 foto’s. Dit is 1 pagina’s te veel.

- Als de eerste record gevuld is met 9 foto’s
Genereert het rapport 6 pagina’s met op de 1e en 2e pagina de 9 foto’s. Pagina 3 t/m 6 zijn weer leeg.

Waarom doet ie 't bij jou dan wel goed?
Ik gebruik Access 2003
 
Update

Hoi FF een update betreffende de problemen.
Opgelost heb ik het verschijnen van een afbeelding uit een vorige record in het rapport.
Na het plaatsen van een afbeeldingsframe verberg ik het volgende frame en veiligheidshalve geef ik hem ook de hoogte 0.
Aanvulling op eerdere code:
Code:
            End Select
            f = f + 1
            Me("ImageFrame" & f).Height = 0             'Maak afbeeldingsframe hoogte 0
            Me("ImageFrame" & f).Visible = False        'Verberg afbeeldingsframe

Nu het volgende probleem: De lege pagina's.
In het rapport zijn de afbeeldings frame's op gemaakt met hoogte 0. De Rapport hoogte vergroten is ingesteld op 'ja'. De rapport hoogte is 22cm, dit is voldoende voor 6 afbeeldingen, en past precies op een A4. In mijn Db kan ik per record maximaal 9 afbeeldingen bewaren. Met eerdere code en bovengenoemde instellingen krijg een foutmelding vanaf afbeelding 7. Het formaat is te klein en foto kan niet geplaatst worden.
Als ik de rapport hoogte aanpas naar bijv. 42 cm ( voldoende voor 9 foto's) krijg ik lege pagina's bij minder als 7 afbeeldingen.

Hoe kan ik nu de rapport hoogte aanpassen afhankelijk van het aantal afbeelding frame's.
Report.Height is read only.

Wie helpt?

b.v.d.
Eric
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan