Interruzione pagina nei report

di il
7 risposte

Interruzione pagina nei report

Ciao a tutti,
ho dei problemi con un report, mi spiego meglio.
Nel corpo del report sono presenti 4 sotto report, dopo ogni sottoreport ho inserito delle interruzioni di pagina. fino qui tutto ok.
Ora nel momento in qui i sotto report non sono popolati la mia pagina viene stampata bianca, mentre io vorrei che non succedesse.
esiste una formula per dire che se la casella "Quantità" del sottoreport "Ferramenta" è non esiste allora disattiva l'interruzione di pagina?

Ho provato così:
If Me.Ferramenta.Quantità = Null Then
Me.InterruzionePagina1.Visible = False
End If
Ma mi da "errore di compilazione impossibile trovare il metodo o il membro dei dati"
evidenzianto nel codice Quantità

7 Risposte

  • Re: Interruzione pagina nei report

    caterebo ha scritto:


    ...
    Ora nel momento in qui i sotto report non sono popolati la mia pagina viene stampata bianca, mentre io vorrei che non succedesse.
    esiste una formula per dire che se la casella "Quantità" del sottoreport "Ferramenta" è non esiste allora disattiva l'interruzione di pagina?
    ..
    Forse può esserti utile la proprietà HasData:
    e in merito a tutti i problemi immaginabili-possibili di sintassi guarda questo fiume di post che inizia qui http://www.iprogrammatori.it/forum-programmazione/access/somma-sottoreport-report-t26211.html#p8547566
    Comunque per verificare se un controllo è Null si scrive
    If IsNull(NomeControllo) ... 
  • Re: Interruzione pagina nei report

    Ho provato così
    Private Sub Report_Load()
    If Me.Ferramenta.Report.HasData = True Then
       Me.InterruzionePagina2.Visible = False
    Else
       Me.InterruzionePagina2.Visible = True
    End If
    End Sub
    ma ho questo errore:
    Errore di run-time'2467': l'oggetto a cui si fa riferimento nell'espressione è stato chiuso o eliminato.
    Perchè?
  • Re: Interruzione pagina nei report

    caterebo ha scritto:


    Ho provato così
    Private Sub Report_Load()
    If Me.Ferramenta.Report.HasData = True Then
       Me.InterruzionePagina2.Visible = False
    Else
       Me.InterruzionePagina2.Visible = True
    End If
    End Sub
    ...
    Errore di run-time'2467': l'oggetto a cui si fa riferimento nell'espressione è stato chiuso o eliminato.
    Perchè?
    Che riga viene evidenziata in debug?
    Come si chiama il report principale? e i subreport che vorresti visualizzare/nascondere? Nell'evento Load di quale report hai scritto quel codice? Sto andando a tentativi.
  • Re: Interruzione pagina nei report

    Philcattivocarattere ha scritto:


    caterebo ha scritto:


    Ho provato così
    Private Sub Report_Load()
    If Me.Ferramenta.Report.HasData = True Then
       Me.InterruzionePagina2.Visible = False
    Else
       Me.InterruzionePagina2.Visible = True
    End If
    End Sub
    ...
    Errore di run-time'2467': l'oggetto a cui si fa riferimento nell'espressione è stato chiuso o eliminato.
    Perchè?
    Che riga viene evidenziata in debug?
    Come si chiama il report principale? e i subreport che vorresti visualizzare/nascondere? Nell'evento Load di quale report hai scritto quel codice? Sto andando a tentativi.
    Viene evidenziata la prima riga (If Me.Ferramenta.Report.HasData = True Then)
    il Report principale si chiama Pianificazione
    I sub report sono: Ferramenta, Materiali ,Manodopera
    Il Load del codice l'ho messo nel report principale (Pianificazione)
  • Re: Interruzione pagina nei report

    caterebo ha scritto:


    Ho provato così
    Private Sub Report_Load()
    If Me.Ferramenta.Report.HasData = True Then
       Me.InterruzionePagina2.Visible = False
    Else
       Me.InterruzionePagina2.Visible = True
    End If
    End Sub
    ...
    Errore di run-time'2467': l'oggetto a cui si fa riferimento nell'espressione è stato chiuso o eliminato.
    Perchè?
    ...
    Viene evidenziata la prima riga (If Me.Ferramenta.Report.HasData = True Then)
    il Report principale si chiama Pianificazione
    I sub report sono: Ferramenta, Materiali ,Manodopera
    Il Load del codice l'ho messo nel report principale (Pianificazione)
    Con queste informazioni si può cominiciare a ragionare.
    I sottoreport non erano 4? Almeno così avevi scritto nel primo post.
    In generale, credo che l'impostazione da seguire sia questa:
    If Me.Ferramenta.Report.HasData = True Then
       Me.InterruzionePagina2.Visible = True
    Else
       Me.InterruzionePagina2.Visible = False
    End If
    quindi invertita rispetto alla tua idea di partenza. Cioè se il subreport contiente dati (HasData = True) allora devi lasciare anche la relativa interruzione di pagina (InterruzionePagina.Visible = True)
    Potresti anche scrivere
    Me.InterruzionePagina2.Visible = Me.Ferramenta.Report.HasData
    L'evento su cui fare questa verifica però non è Load ma Format o Print della sezione in cui si trovano i sottoreport (solitamente nella corpo del report principale). Prova prima su Format, poi passa a Print e vedi se il risultato è identico o quale dei due dà quello che ti aspetti.
    Consiglio di dare nomi più significativi alle interruzione di pagina, per capire subito a quale subreport sono abbinate, del tipo
    subreport Ferramenta -> InterrPag_Ferramenta
    Prova a dare una sistemata al tutto e vediamo se ci sono ancora problemi.
  • Re: Interruzione pagina nei report

    Si i sotto report sono 4 e dopo ciascuno c'è un'interruzione di pagina, quindi compreso la formula per una poi lo faccio anche per gli altri.
    Ho seguito il tuo consiglio dando nomi più sgnificativi alle interruzioni di pagine e ho provato entrambe le formule proposte negli eventi del corpo report ma in entrambi i casi ho lo stesso errore.
  • Re: Interruzione pagina nei report

    caterebo ha scritto:


    Si i sotto report sono 4 e dopo ciascuno c'è un'interruzione di pagina, quindi compreso la formula per una poi lo faccio anche per gli altri.
    Ho seguito il tuo consiglio dando nomi più sgnificativi alle interruzioni di pagine e ho provato entrambe le formule proposte negli eventi del corpo report ma in entrambi i casi ho lo stesso errore.
    Negli eventi? quali eventi? O Format o Print, non altri.
    Ho fatto qualche test, non vedo problemi particolari. Hai verificato l'uso del nome del controllo container, se diverso dal nome del report? Se non ci sono ulteriori suggerimenti o informazioni, l'unica cosa che posso suggerire è di postare un file dimostrativo ridotto all'osso per vedere una situazione quanto più simile a quella reale.
Devi accedere o registrarti per scrivere nel forum
7 risposte