Newsgroup: it.comp.appl.access
Titolo: Reports e metodo Line

Salve a tutti.
Ho letto recentemente sul newsgroup una richiesta di chiarimento circa la
possibilità di adattare, visualizzando il report in anteprima, le dimensioni
di determinati controlli (linee, rettangoli, ecc...) sulla base delle
dimensioni dei controlli "espandibili".
La soluzione suggerita è stata quella di utilizzare il metodo line su
"evento stampa" (anzichè preimpostare linee, barre, ecc...in visualizzazione
struttura report) per "circondare" i controlli interessati con rettangoli,
linee o quant'altro.
Ho un problema simile e vorrei, se possibile, qualche consiglio da parte
vostra in merito. Mi spiego:
Il mio report è costituito da una sezione  "intestazione gruppo" e dalla
sezione "corpo"
Intestazione Gruppo:
Cognome    Nome    Via             Città        Provincia
Corpo
Valore         Valore    Valore       Valore     Valore
Cognome     Nome    Via            Città        Provincia
Alcuni dei controlli della sezione corpo sono "espandibili" e vorrei che,
visualizzando il report, intorno ad ogni controllo fosse presente un
rettangolo, più o meno così:
Intestazione Gruppo
________    _____     ___            ____        _______
|Cognome|    |Nome|    |Via|           |Città|       |Provincia|
________    _____     ___            ____        _______
Corpo
________    _____     ___            ____        _______
|Cognome|    |Nome|    |Via|           |Città|       |Provincia|
________    _____     ___            ____        _______
L'unica soluzione che mi è venuta in mente è il seguente codice nel modulo
di report:
Private Sub IntestazioneGruppo0_Print(Cancel As Integer, PrintCount As
Integer)
    ImpostaGriglia 5
End Sub
Private Sub Corpo_Print(Cancel As Integer, PrintCount As Integer)
    ImpostaGriglia 0
End Sub
Private Function ImpostaGriglia(section As Integer)
    Dim top As Single
    Dim left As Single
    Dim height As Single
    Dim width As Single
    Dim ctl As Control
    Dim MassimaAltezza As Single
    Dim index As Integer
    MassimaAltezza = 0
    'verifico il controllo con altezza massima della sezione
    For Each ctl In Me.section(section).Controls
        If ctl.height > MassimaAltezza Then
            MassimaAltezza = ctl.height
        Else
            MassimaAltezza = MassimaAltezza
        End If
    Next ctl
    'imposto bordo superiore, bordo inferiore, bordo sinistro e bordo destro
della sezione
    Me.Line (Me.ScaleTop, Me.ScaleLeft)-(Me.ScaleWidth, MassimaAltezza), , B
    'imposto la griglia in base ai controlli presenti nella/e sezione/i
        For index = 0 To Me.section(section).Controls.Count - 2
            width = Me.section(section).Controls(index + 1).left
            Me.Line (Me.ScaleTop, Me.ScaleLeft)-(width, MassimaAltezza), , B
        Next index
End Function
 Il codice funziona e costruisce nell'ordine:
1) un rettangolo i cui bordo superiore, bordo inferiore, bordo sinistro e
bordo destro sono quelli della sezione
2) tanti rettangoli con stessa proprietà Me.ScaleTop, Me.ScaleLeft (uno
dentro l'altro) e con larghezza uguale alla distanza dal margine sinistro
report del controllo successivo a quello "letto" dal ciclo for next.
Il tutto crea l'effetto desiderato.
Il problema è che vorrei creare dei rettangoli non "uno dentro l'altro" ma
che abbiano "Top" e "Left" pari a quelle dei controlli che devono essere
"circondati"; finchè passo alla funzione line dei parametri da me costruiti
(widht e MassimaAltezza), il rettangolo obbedisce agli ordini; se al
contrario passo alla funzione line parametri Top e Left diversi da
Me.ScaleTop e Me.ScaleLeft (che, nonostante abbia consultato la guida non mi
sono ancora chiarissimi), il tutto sballa.
Sono convinto di aver trovato un sistema contorto e che ne esiste uno più
semplice o, evidentemente, mi sfugge qualcosa di grave :))))))))))
Qualcuno ha una soluzione migliore da suggerirmi?
Grazie anticipatamente!

 ha scritto nel messaggio
news:dBPHc.44247$GQ3.1...@twister2.libero.it...

Troppo lungo per leggerlo tutto.....!!!!!!!!!
Colpa mia che sono appena rientrato dalle ferie e non ho molta
voglia....
Ti allego questo Link Spagnolo che riporta un'esempio di come
gestire Linee nei Report.
Poi se non ti convince insultami pure per non aver letto TUTTO
il 3D....!
http://usuarios.lycos.es/jbchea/RptCp.htm
Ciao
@Alex.

 ha scritto nel messaggio
news:ccpreo$ujf$1...@lacerta.tiscalinet.it...

L'esempio sul sito che mi hai suggerito (LíneasRpt) non riguarda esattamente
il mio partito...ma non ti insulterò!!! :))))))))
Se avrai tempo, voglia ed energie, aspetto altri suggerimenti.
Ciao grazie!