Condividi tramite

[Access] access 2000: barrare spazio vuoto in un report

Anonimo
2010-03-16T09:42:31+00:00

Buongiorno a tutti.

Nella stampa di un report ho la necessità di barrare lo spazio bianco inutilizzato dalla fine dei dati a fine pagina; ovviamente tale spazio varia in base alla quantità di dati stampati.

Le sezioni del report sono:

  • intestazione pagina
  • intestazione "Gruppo0"
  • corpo, contenente un sottoreport
  • piè di pagina "Gruppo0"
  • piè di pagina pagina

Ho creato, nel piè di pagina "Gruppo0", un controllo linea che va a sbarrare l'intera sezione e nell'evento formattazione del piè di pagina ho inserito il codice che calcola l'altezza di tale sezione come "valore_fisso_twip - somma dell'altezza di tutte le altre sezioni", e quindi imposta l'altezza della linea uguale all'altezza della sezione. Il valore_fisso_twip è precalcolato in base all'altezza del foglio da stampare. A me sembra corretto, funziona perfettamente se stampo una/due righe di dati (altezza variabile) ma se di più la linea viene creata in una seconda pagina.

In alternativa, utilizzando in VB il comando LINE nell'evento page del report:

come faccio a capire a quale altezza viene stampata una sezione della pagina se le sezioni precedenti hanno altezza variabile, in particolare quella contenente il sottoreport?

Grazie

GG

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

3 risposte

Ordina per: Più utili
  1. Anonimo
    2010-03-23T08:04:59+00:00

    Ciao GG,

    sì, al momento mi era sfuggita la questione del sottoreport espandibile.

    Se trovo una soluzione per il sottoreport,la posto qui di seguito.

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-03-17T10:36:14+00:00

    Intanto ti ringrazio per la risposta, però non funziona (la linea viene creata sempre in una posizione fissa).

    Dipende forse dal fatto che nel corpo del mio report, espandibile, c'è un sottoreport, anch'esso contente campi espandibili?

    GG

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-03-16T21:00:45+00:00

    Ciao GG,

    crea una variabile a livello di modulo del report

    Dim h As Single

    nell'evento Print dell'intestazione report la inizializzi

        Me.ScaleMode = 3

        h = Me.ScaleHeight

    se non hai l'intestazione report mettila, anche alta un solo millimetro, perchè serve ad azzerare la variabile quando dall'anteprima vai in stampa.

    poi nell'evento Print di ogni sezione la incrementi con il valore dell'altezza della sezione stessa

        Me.ScaleMode = 3

        h = h + Me.ScaleHeight

    poi nell'evento "Su Pagina" del report controlli se è l'ultima pagine e stampi la riga, altrimenti azzeri la variabile

        If Me.Page = Me.Pages Then

           DrawLine Me

        Else

           h = 0

        End If

    La Sub DriveLine a cui ho apportato piccole modifiche, è quella che trovi nell'help di Access per il metodo Line

    Qui un piccolo esempio che ho preparato.

    http://cid-ac66fd4806f55617.skydrive.live.com/self.aspx/Pubblica/msaccess/Db/ReportBarrato.mdb

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento