Newsgroup: it.comp.appl.access
Titolo: Sottoreport per stampa immagini. Uno su quattro non va.

Ho un report che include vari sottoreport, quattro dei quali servono a
stampare delle immagini. I sottoreport delle immagini sono inclusi in
quattro piè di pagina di gruppo, per essere stampati alla fine del
complesso dei dati. Li ho inseriti nei piè di pagina perchè, andando a
tentativi, era l'unico modo per fargli fare correttamente un salto di
pagina prima di iniziare a stampare le immagini.
Nel caso che i sottoreport non contengano immagini da stampare, non
voglio che venga stampata una pagina vuota, e quindi uso del codice
per impostare la proprietà Visible del pié di pagina in questo modo.
Private Sub Corpo_Print(Cancel As Integer, PrintCount As Integer)
    If Not IsNull(Me.PathImgMosaico) Then
        Me.ImmagineMosaico.Picture = Me.PathImgMosaico
    End If
 
End Sub
Private Sub PiePaginaImgEdificioAmbiente_Format(Cancel As Integer,
FormatCount As Integer)
    If (Me.SubImmaginiPianteEdificioAmbiente.Report.PathPiantaEdificio
= "" Or
IsNull(Me.SubImmaginiPianteEdificioAmbiente.Report.PathPiantaEdificio))
Then
            Me.PiePaginaImgEdificioAmbiente.Visible = False
    End If
End Sub
Non ho usato subreport.report.hasdata nell'evento Stampa (come
suggerito in un altro messaggio del ng) perché non funzionava... non
so perché.
Il tutto funziona con tre dei quattro report, mentre con l'ultimo non
c'è verso. Le differenze del quarto rispetto agli altri sono:
- Il piè di pagina di gruppo contiene anche un'etichetta ed una linea,
gli altri no.
- Il corpo del sottoreport contiene un'immagine di un terzo della
pagina, (e quindi se ci sono ne stampa da una a tre per pagina) mentre
gli altri sono impostati per stampare solamente una immagine.
- Se uso una condizione del tipo:   If
(Me.SubImmaginiPianteEdificioAmbiente.Report.PathPiantaEdificio = ""
Or
IsNull(Me.SubImmaginiPianteEdificioAmbiente.Report.PathPiantaEdificio))
mi restituisce un errore "Errore di runtime 2427 - Nessun valore
nell'espressione immessa".
Non mi viene in mente altro per chiarirvi le cose... se invece
qualcuno potesse chiarirle a me... :)
Grazie!!
Marco.

 ha scritto nel messaggio
news:IX0YPe4yA9xwWG...@4ax.com...

Prova a cambiare
If (Me.SubImmaginiPianteEdificioAmbiente.Report.PathPiantaEdificio
= "" Or
IsNull(Me.SubImmaginiPianteEdificioAmbiente.Report.PathPiantaEdificio))
Then
            Me.PiePaginaImgEdificioAmbiente.Visible = False
    End If
con:
If (Me.SubImmaginiPianteEdificioAmbiente.Report.PathPiantaEdificio
= "" Or
IsNull(Me.SubImmaginiPianteEdificioAmbiente.Report.PathPiantaEdificio))
Then
            Me.PiePaginaImgEdificioAmbiente.Visible = False
Else
     Me.PiePaginaImgEdificioAmbiente.Visible = true
End If
Ciao, Carlo


No, non va. Se faccio così mi viene l'errore di runtime di cui
dicevo...
Mi servirebbe un modo per nascondere un piè di pagina con tutto quello
che contiene (salto pagina compreso) se il sottoreport contenuto non
ha dati (immagini).
Riassumendo: HasData non funziona, campo PathImmagine = "" o IsNull
(PathImmagine) dà errore di runtime...
che faccio? Negli altri sottoreport il secondo di questi metodi
funziona...

Ho un report che include vari sottoreport, quattro dei quali servono a
stampare delle immagini. I sottoreport delle immagini sono inclusi in
quattro piè di pagina di gruppo, per essere stampati alla fine del
complesso dei dati. Li ho inseriti nei piè di pagina perchè, andando a
tentativi, era l'unico modo per fargli fare correttamente un salto di
pagina prima di iniziare a stampare le immagini.
Nel caso che i sottoreport non contengano immagini da stampare, non
voglio che venga stampata una pagina vuota, e quindi uso del codice
per impostare la proprietà Visible del pié di pagina in questo modo.
Private Sub Corpo_Print(Cancel As Integer, PrintCount As Integer)
    If Not IsNull(Me.PathImgMosaico) Then
        Me.ImmagineMosaico.Picture = Me.PathImgMosaico
    End If
 
End Sub
Private Sub PiePaginaImgEdificioAmbiente_Format(Cancel As Integer,
FormatCount As Integer)
    If (Me.SubImmaginiPianteEdificioAmbiente.Report.PathPiantaEdificio
= "" Or
IsNull(Me.SubImmaginiPianteEdificioAmbiente.Report.PathPiantaEdificio))
Then
            Me.PiePaginaImgEdificioAmbiente.Visible = False
    End If
End Sub
Non ho usato subreport.report.hasdata nell'evento Stampa (come
suggerito in un altro messaggio del ng) perché non funzionava... non
so perché.
Il tutto funziona con tre dei quattro report, mentre con l'ultimo non
c'è verso. Le differenze del quarto rispetto agli altri sono:
- Il piè di pagina di gruppo contiene anche un'etichetta ed una linea,
gli altri no.
- Il corpo del sottoreport contiene un'immagine di un terzo della
pagina, (e quindi se ci sono ne stampa da una a tre per pagina) mentre
gli altri sono impostati per stampare solamente una immagine.
- Se uso una condizione del tipo:   If
(Me.SubImmaginiPianteEdificioAmbiente.Report.PathPiantaEdificio = ""
Or
IsNull(Me.SubImmaginiPianteEdificioAmbiente.Report.PathPiantaEdificio))


 ha scritto nel messaggio
news:kn8YPQGVTtEkogKu=fNWwV...@4ax.com...

Nei  sottoreport hai impostato la proprietà "Riducibile" a Vero?
Hai provato a rendere "Visible" proprio i sottoreport a seconda se
contengono immagini o meno?
Oppure a rendere "Visible" o meno proprio la sezione?
Ciao, Carlo

Oppure a rendere "Visible" o meno proprio la sezione?
Si
Ma il problema č come accorgersi se il sottoreport contiene immagini o
meno, non se rendere visibile o meno.
Negli altri sottoreport mi funziona il metodo = "" or IsNull mentre in
questo no. E HasData non funziona da nessuna parte.

 ha scritto nel messaggio
news:240YPdSbiZdJUH...@4ax.com...

Se i sottoreport si alimentano da una tabella o da una query potresti fare
un dlookup su uno degli elementi della tabella o query, magari su apertura
del report.
If IsNull(dlookUp... then ... non contengono immagini.
Ciao, Carlo