Uso dei formulari
- Uso dei formulari
- Elementi di controllo dei formulari
- Formulari basati su database
I formulari di Apache OpenOffice possono contenere campi di testo, caselle di riepilogo, pulsanti di scelta e una serie di altri elementi di controllo, che vengono inseriti direttamente in un testo o in un foglio elettronico. Per la modifica dei formulari viene utilizzata la barra dei simboli Funzioni formulario.
Un formulario di Apache OpenOffice può usufruire di una delle due modalità seguenti: bozza e visualizzazione. Nel primo caso, la posizione degli elementi di controllo può essere modificata e le relative proprietà modificate utilizzando una finestra delle proprietà.
Per passare da una modalità all'altra potete utilizzare anche la barra degli strumenti Funzioni formulario.
Contents
Determinazione degli oggetti formulario
Apache OpenOffice posiziona gli elementi di controllo di un formulario al livello degli oggetti di disegno. Si accede all'oggetto formulario dall'elenco Forms al livello disegno. Nei documenti di testo si accede agli oggetti nel modo seguente:
Dim Doc As Object Dim DrawPage As Object Dim Form As Object Doc = StarDesktop.CurrentComponent DrawPage = Doc.DrawPage Form = DrawPage.Forms.GetByIndex(0)
Il metodo GetByIndex restituisce il formulario con il numero d'indice 0.
Quando si lavora con i fogli elettronici, è necessaria una fase intermedia tramite l'elenco Sheets perché i livelli di disegno non sono situati direttamente nel documento, ma nei singoli fogli:
Dim Doc As Object Dim Sheet As Object Dim DrawPage As Object Dim Form As Object Doc = StarDesktop.CurrentComponent Sheet = Doc.Sheets.GetByIndex(0) DrawPage = Sheet.DrawPage Form = DrawPage.Forms.GetByIndex(0)
Come suggerito dal nome del metodo GetByIndex un documento può contenere diversi formulari. Ciò risulta utile, ad esempio, se all'interno di un unico documento vengono visualizzati i contenuti di diversi database o se è visualizzata in un formulario una relazione di database 1:n. A tal fine è disponibile anche l'opzione di creare formulari secondari.
I tre aspetti degli elementi di controllo di un formulario
Gli elementi di controllo di un formulario sono composti da tre aspetti:
- Il modello dell'elemento di controllo è l'oggetto chiave per il programmatore in Apache OpenOffice Basic che opera con gli elementi di controllo dei formulari.
- La sua controparte è la vista dell'elemento di controllo, che gestisce le informazioni da visualizzare.
- Dato che gli elementi di controllo dei formulari nei documenti vengono gestiti come un elemento di disegno di tipo speciale, esiste anche un oggetto forma che riflette le proprietà specifiche dell'elemento disegno dell'elemento di controllo (in particolare, la sua posizione e le dimensioni).
Accesso al modello degli elementi di controllo dei formulari
I modelli degli elementi di controllo di un formulario sono disponibili tramite il metodo GetByName di Object form:
Dim Doc As Object Dim Form As Object Dim Ctl As Object Doc = StarDesktop.CurrentComponent Form = Doc.DrawPage.Forms.GetByIndex(0) Ctl = Form.getByName("MyListBox")
L'esempio determina il modello dell'elemento di controllo MyListBox, situato nel primo formulario del documento di testo attualmente aperto.
Se non si è certi dell'elemento di controllo, utilizzate l'opzione di ricerca in tutti i formulari per individuare l'elemento di controllo richiesto:
Dim Doc As Object Dim Forms As Object Dim Form As Object Dim Ctl As Object Dim I as Integer Doc = StarDesktop.CurrentComponent Forms = Doc.Drawpage.Forms For I = 0 To Forms.Count - 1 Form = Forms.GetbyIndex(I) If Form.HasByName("MyListBox") Then Ctl = Form.GetbyName("MyListBox") Exit Function End If Next I
L'esempio utilizza il metodo HasByName per controllare tutti i formulari di un documento di testo per determinare se contengono un modello di elemento di controllo denominato MyListBox. Se viene individuato un modello corrispondente, il riferimento a questo modello viene salvato nella variabile Ctl e la ricerca è terminata.
Accesso alla vista degli elementi di controllo dei formulari
Per accedere alla vista degli elementi di controllo di un formulario, è necessario prima disporre del modello associato. La vista dell'elemento di controllo può essere determinata con l'ausilio del modello e utilizzando il controller del documento.
Dim Doc As Object Dim DocCrl As Object Dim Forms As Object Dim Form As Object Dim Ctl As Object Dim CtlView As Object Dim I as Integer Doc = StarDesktop.CurrentComponent DocCrl = Doc.getCurrentControler() Forms = Doc.Drawpage.Forms For I = 0 To Forms.Count - 1 Form = Forms.GetbyIndex(I) If Form.HasByName("MyListBox") Then Ctl = Form.GetbyName("MyListBox") CtlView = DocCrl.GetControl(Ctl) Exit Function End If Next I
Il codice riportato nell'esempio è molto simile al codice dell'esempio precedente per determinare un modello di elemento di controllo. Utilizza non solo l'oggetto documento Doc ma anche l'oggetto controller DocCrl del documento che fa riferimento alla finestra del documento corrente. Con l'ausilio di questo oggetto controller e del modello dell'elemento di controllo, utilizza il metodo GetControl per determinare la vista (variabile CtlView) degli elementi di controllo dei formulari.
Accesso all'oggetto forma degli elementi di controllo dei formulari
Il metodo per accedere agli oggetti forma di un elemento di controllo si avvale anche del livello disegno corrispondente del documento. Per determinare uno speciale elemento di controllo, occorre eseguire una ricerca tra tutti gli elementi del livello disegno.
Dim Doc As Object Dim Shape as Object Dim I as integer Doc = StarDesktop.CurrentComponent For i = 0 to Doc.DrawPage.Count - 1 Shape = Doc.DrawPage(i) If HasUnoInterfaces(Shape, "com.sun.star.drawing.XControlShape") Then If Shape.Control.Name = "MyListBox" Then Exit Function End If End If Next
L'esempio controlla tutti gli elementi di disegno per determinare se supportano l'interfaccia com.sun.star.drawing.XControlShape necessaria per gli elementi di controllo dei formulari. In caso positivo, la proprietà Control.Name controlla se il nome dell'elemento di controllo è MyListBox. Se sì, la funzione termina la ricerca.
Determinazione delle dimensioni e della posizione degli elementi di controllo
Come menzionato in precedenza, è possibile determinare le dimensioni e la posizione degli elementi di controllo utilizzando l'oggetto shape. La forma dell'elemento di controllo, come molti altri oggetti shape, fornisce a tal fine le proprietà Size e Position:
- Size (struct)
- Dimensioni dell'elemento di controllo (struttura di dati com.sun.star.awt.Size)
- Position (struct)
- Posizione dell'elemento di controllo (struttura di dati com.sun.star.awt.Point)
L'esempio seguente mostra come impostare la posizione e le dimensioni di un elemento di controllo utilizzando l'oggetto forma associato:
Dim Shape As Object Point.x = 1000 Point.y = 1000 Size.Width = 10000 Size.Height = 10000 Shape.Size = Size Shape.Position = Point
Perché il codice funzioni, l'oggetto shape dell'elemento di controllo deve già essere noto. In caso contrario, dovrete determinarlo utilizzando il codice di cui sopra.
Content on this page is licensed under the Public Documentation License (PDL). |