Difference between revisions of "NL/Documentation/BASIC Guide/Working With Forms"
m |
m (→Bepalen van object Formulieren) |
||
Line 16: | Line 16: | ||
== Bepalen van object Formulieren == | == Bepalen van object Formulieren == | ||
− | {{ | + | {{AOo}} plaatst de besturingselementen van een formulier op het niveau van een object van een tekening. Het actuele object formulier kan worden benaderd via de lijst Forms op niveau van het object tekening. De objecten worden als volgt benaderd in tekstdocumenten: |
<syntaxhighlight lang="oobas"> | <syntaxhighlight lang="oobas"> | ||
Line 30: | Line 30: | ||
De methode <tt>GetByIndex</tt> geeft het formulier weer met het index-getal 0. | De methode <tt>GetByIndex</tt> geeft het formulier weer met het index-getal 0. | ||
− | Bij het werken met werkbladdocumenten is een tussenstation nodig, de lijst Sheets, omdat de | + | Bij het werken met werkbladdocumenten is een tussenstation nodig, de lijst Sheets, omdat de niveaus voor de tekeningen niet direct in het document zijn gelegen, maar in de individuele werkbladen: |
<syntaxhighlight lang="oobas"> | <syntaxhighlight lang="oobas"> |
Revision as of 14:20, 9 February 2021
- Werken met formulieren
- Besturingselementen Formulieren
- Database-formulieren
Apache OpenOffice formulieren mogen tekstvelden, keuzelijsten, radioknoppen en een scala aan andere besturingselementen bevatten, welke direct worden ingevoegd in een tekst- of werkbladdocument. De werkbalk Besturingselementen wordt gebruikt voor het bewerken van formulieren.
Een formulier in Apache OpenOfficekan één van twee modi aannemen: de ontwerp-modus en de weergave- modus. In ontwerpmodus kan de positie van besturingselementen worden gewijzigd en hun eigenschappen kunnen worden bewerkt met behulp van een venster voor eigenschappen.
De werkbalk Besturingselementen wordt ook gebruikt voor het schakelen tussen die modi.
Bepalen van object Formulieren
Apache OpenOffice plaatst de besturingselementen van een formulier op het niveau van een object van een tekening. Het actuele object formulier kan worden benaderd via de lijst Forms op niveau van het object tekening. De objecten worden als volgt benaderd in tekstdocumenten:
Dim Doc As Object Dim DrawPage As Object Dim Formulier As Object Doc = ThisComponent DrawPage = Doc.DrawPage Formulier = DrawPage.Forms.GetByIndex(0)
De methode GetByIndex geeft het formulier weer met het index-getal 0.
Bij het werken met werkbladdocumenten is een tussenstation nodig, de lijst Sheets, omdat de niveaus voor de tekeningen niet direct in het document zijn gelegen, maar in de individuele werkbladen:
Dim Doc As Object Dim Blad As Object Dim DrawPage As Object Dim Formulier As Object Doc = ThisComponent Blad = Doc.Sheets.GetByIndex(0) DrawPage = Blad.DrawPage Formulier = DrawPage.Forms.GetByIndex(0)
Zoals al werd gesuggereerd door de methodenaam GetByIndex kan een document verschillende formulieren bevatten. Dit is bijvoorbeeld handig als de inhoud van verschillende gegevensbronnen worden weergegeven binnen één document, of als een relatie van een gegevensbron wordt weergegeven binnen een formulier. De optie voor het maken van sub-formulieren wordt mede voor dit doel verschaft.
De drie aspecten van een besturingselement van een formulier
Een besturingselement van een formulier heeft drie aspecten:
- Het Model van het besturingselement is het sleutel-object voor de programmeur in Apache OpenOffice BASIC bij het werken met besturingselementen voor formulieren.
- Het tegengestelde hiervan is de View van het besturingselement, dat de informatie voor de weergave beheert.
- Omdat besturingselement formulieren binnen de documenten worden beheerd als een speciaal tekenelement, is er ook een object Shape dat de tekenelement-specifieke eigenschappen van het besturingselement weergeeft (in het bijzonder zijn positie en grootte).
Toegang tot het Model van besturingselement Formulieren
De modellen van de besturingselementen van een formulier zijn beschikbaar via de methode GetByName van het object Form:
Dim Doc As Object Dim Form As Object Dim Ctl As Object Doc = ThisComponent Form = Doc.DrawPage.Forms.GetByIndex(0) Ctl = Form.getByName("MijnKeuzelijst")
Het voorbeeld bepaalt het model van het besturingselement MijnKeuzelijst, dat is gelegen in het eerste formulier van het huidige geopende tekstdocument.
Als u niet zeker bent van de vorm van een besturingselement, kunt u de optie voor het zoeken door alle vormen voor het vereiste besturingselement gebruiken:
Dim Doc As Object Dim Forms As Object Dim Form As Object Dim Ctl As Object Dim I as Integer Doc = ThisComponent Forms = Doc.Drawpage.Forms For I = 0 To Forms.Count - 1 Form = Forms.GetbyIndex(I) If Form.HasByName("MijnKeuzelijst") Then Ctl = Form.GetbyName("MijnKeuzelijst") Exit Function End If Next I
Het voorbeeld gebruikt de methode HasByName om alle formulieren van een tekstdocument te controleren of zij al dan niet een model van een besturingselement, genaamd MijnKeuzelijst, bevatten. Als een overeenkomend model wordt gevonden, dan wordt een verwijzing daarnaar bewaard in de variabele Ctl en wordt de zoekbewerking beëindigd. Het voorbeeld wordt weergegeven met in-regelige code, voor de duidelijkheid; in de praktijk zoude zoekactie binnen een functie staan, aangeroepen met de naam als een parameter string en inclusief foutafhandeling.
Toegang tot de View van besturingselement Formulieren
Eerst is het geassocieerde model nodig om de weergave van een besturingselement vorm te benaderen. De weergave van het besturingselement kan dan worden bepaald met de hulp van het model en met gebruik van de controller van het document.
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 = ThisComponent DocCrl = Doc.getCurrentController() Forms = Doc.Drawpage.Forms For I = 0 To Forms.Count - 1 Form = Forms.GetbyIndex(I) If Form.HasByName("MijnKeuzelijst") Then Ctl = Form.GetbyName("MijnKeuzelijst") CtlView = DocCrl.GetControl(Ctl) Exit Function End If Next I
De vermelde code in het voorbeeld lijkt erg veel op de code die is opgesomd in het voorgaande voorbeeld voor het bepalen van het model van het besturingselement. Het gebruikt niet alleen het documentobject Doc maar ook het object document-controller DocCrl die een verwijzing maakt naar het huidige venster van het document. Met de hulp van dit controller-object en het model van het besturingselement gebruikt het dan de methode GetControl om de weergave (variabele CtlView) van het besturingselement van het formulier te bepalen.
Toegang tot het object Shape van besturingselement Formulieren
De methode voor toegang tot de vormobjecten van een besturingselement gebruikt ook het corresponderende niveau van de tekening van het document. Om een bepaald besturingselement vast te stellen, moeten alle tekenelementen van het niveau van de tekening worden doorzocht.
Dim Doc As Object Dim Shape as Object Dim I as integer Doc = ThisComponent 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 = "MijnKeuzelijst" Then Exit Function End If End If Next
Het voorbeeld controleeert alle tekenelementen om vast te stellen of zij de interface com.sun.star.drawing.XControlShape ondersteunen, benodigd voor vormen van besturingselementen. Als dat het geval is, controleert de eigenschap Control.Name of de naam van het besturingselement MynKeuzeLijst is. Als dat zo is beëindigt de functie de zoekbewerking.
Bepalen van de grootte en positie van besturingselementen
Zoals reeds vermeld kan de grootte en positie van besturingselementen worden bepaald met behulp van het geassocieerde object shape. Het besturingselement shape, net zoals alle andere objecten shape, verschaft de eigenschappen Size en Position voor dit doel:
- Size (struct)
- grootte van besturingselement (gegevensstructuur com.sun.star.awt.Size)
- Position (struct)
- positie van besturingselement (gegevensstructuur com.sun.star.awt.Point)
Het volgende voorbeeld toont doe de positie en grootte van een besturingselement kan worden ingesteld met behulp van het geassocieerde object Vorm:
Dim Vorm As Object Dim Punt As New com.sun.star.awt.Point Dim Grootte As New com.sun.star.awt.Size ' ... Initialiseren van object Vorm, zoals eerder weergegeven ... Punt.x = 1000 Punt.y = 1000 Grootte.Width = 10000 Grootte.Height = 10000 Vorm.Size = Grootte Vorm.Position = Punt
Het object Vorm van het besturingselement moet reeds bekend zijn als de code wil werken. Als dat niet het geval is, moet die worden vastgesteld met behulp van de eerder vermelde code.
Content on this page is licensed under the Public Documentation License (PDL). |