Newsgroup: it.comp.appl.access
Titolo: Dimensionare le linee in un report

Ho un report di tipo elenco (un record per riga).
Le linee verticali che separano le colonne sono ottenute con delle piccole
linee della stessa altezza del controllo testo.
Succede che, quando il testo contenuto nella textbox è superiore alla
larghezza del controllo, questo raddoppia l'altezza per poter visualizzare
tutto il testo (la proprietà Espandibile è settata su Sì).
Come posso fare affinché la linea verticale che mi fa da bordo aumenti il
valore Height quando il controllo testo aumenta l'altezza?
Nel codice che segue, le linee che formano il bordo delle colonne hanno il
Tag="LinVert"
Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
    Dim ctl As Control, Atxt as Integer
    For Each ctl In Me.Controls
        Atxt = Me.txtTitolo.Height
            If ctl.Tag = "LinVert" Then
                With CodeContextObject
                    ctl.Height = Atxt
            End With
        End If
    Next
End Sub
Un aiuto?!?
Ringrazio e saluto.
--
Kaloma

 ha scritto nel messaggio
news:rxdLd.794402$35.30...@news4.tin.it...

Non capisco perchè hai inserito CodeContextObject, secondo me non serve a
nulla.
In ogni caso se hai più di 1 TextBox credo che tu debba estrarre il MAX_H
tra i controlli
ed assegnarlo alle Linee...!
Se invece il Controllo ad Altezza variabile è solo quello "txtTitolo"
allora il tuo codice +/- dovrebbe funzionare se le LINEE si trovano nel
CORPO...!!!
 Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
     Dim ctl As Control, Atxt as Integer
     Atxt = Me.txtTitolo.Height
     For Each ctl In Me.Controls
            If ctl.Tag = "LinVert" Then
                 ctl.Height = Atxt
            End If
     Next
End Sub
Non ho avuto modo di provarlo.
Ciao
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------

 ha scritto nel messaggio
news:41fd6aaa$0$32333$5fc...@news.tiscali.it...

Il CodeContxtObject m'è scappato! È uno dei tentativi.
Comunque così come l'hai scritta tu, l'avevo già provata... e non funziona!
La linea rimane sempre al valore impostato di 280 twips.
I controlli sono più di uno (titolo, regista, interpreti, ecc.) su una sola
riga.
Atxt = Me.txtTitolo.Height l'ho posto però entro il ciclo For Each (comunque
non funziona... grrr!).
Mi rimane solo da provare l'estrazione di MAX_H. Se sei così cortese da
dirmi come si fa...
In ogni caso ti ringrazio per la disponibilità.
--
kaloma

 kaloma
Il codice così FUNZIONA.
Il non funzionamento è dovuto al fatto che non prendi il
valore massimo dei controlli, ma solo Me.txtTitolo e se non
dovesse essere proprio lui il Max ovviamente il ridimensionamento
sarebbe errato.
Devi eseguire 2 Cicli:
1)Solo per i Controlli TextBox allineati e ricavarne
il valore di quello puiù alto.
2)Usare il valore MAX ed applicarlo alle linee.
I 2 Cicli sono uguali, devi avere l'attenzione di poter
discriminare le TextBox così come hai fatto con le Linee
attraverso un TAG
Per recuperare il MAX_H parti dal 1° e lo memorizzi
ciclando fai il confronto e se maggiore fai lo scambio.
Ciao
@Alex  
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:rxdLd.794402$35.30...@news4.tin.it...

Nell'aggiornamento di questo mese del Sito Comune (link qui sotto) verrà
pubblicata una FAQ intitolata "Disegnare una griglia in un report tabellare
con righe ad altezza variabile", che risolve il problema con la seguente
sub:
Private Sub Corpo_Print(Cancel As Integer, PrintCount As Integer)
'Routine che permette la visualizzazione della griglia in report tabulare
Dim ctl As Control
Dim altezza As Double
Dim daMargine As Double
altezza = 0
'Cerco l'altezza massima
For Each ctl In Me.Corpo.Controls
    If ctl.ControlType = acTextBox Then
        If ctl.Height > altezza Then
            altezza = ctl.Height
        End If
    End If
Next ctl
daMargine = 0
'Disegno i rettangoli attorno ad ogni campo
For Each ctl In Me.Corpo.Controls
    If ctl.ControlType = acTextBox Then
        Me.Line (daMargine, 0)-(daMargine + ctl.Width, altezza), , B
        daMargine = daMargine + ctl.Width
    End If
Next ctl
End Sub
Imposta a Si la proprietà Espandibile di tutti i controlli del corpo del
report e imposta a Trasparente la loro proprietà Stile bordo.
Quindi il codice VBA di cui sopra a fronte dell'evento "Su stampa" del corpo
del report.
In alternativa, invece di creare delle righe verticali riga per riga, puoi
disegnare una cornice attorno al corpo del report subito prima di stampare
la pagina: questa soluzione la trovi documentata sul Sito Comune, nella
Sezione Reports, nella mia FAQ intitolata "Incorniciare le pagine di un
report".
-- 
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------

 ha scritto nel messaggio
news:vsnLd.8094$QG6.1...@twister2.libero.it...

Preziosa informazione e valido aiuto.
Grazie.
Ciao.
Kaloma

 ha scritto nel messaggio
news:6290a76126180b6e42...@mygate.mailgate.org...

Grazie Alex. Sempre cortese e competente.
Ciao
Kaloma

 Kaloma



Ciao Roberto
ho scaricato ed adattato l'esempio ad un report con qualche 
inconveniente....
In un rettangolo vedo due  caselle e gli altri rettangoli non sono centrati 
con le caselle.
 alcune non hanno rettangolo. si deve settare qualcosa? ........Cerco di 
capire il motivo....
---
Daniele

 Daniele



ok.  grazie Roberto
---
Daniele