LibreOffice 24.8 Hjelp
Tjenesten FormControl gir tilgang til kontrollene som tilhører et skjema, et underskjema eller en tabellkontroll i et FormDocument. Hver forekomst av FormControl-tjenesten refererer til en enkelt kontroll i skjemaet. Denne tjenesten lar brukere:
Hent og angi egenskapene til kontrollen representert av 1FormControl2-forekomsten.
Få tilgang til gjeldende verdi som vises av kontrollen.
Sett fokus på ønsket kontroll.
For å bruke FormControl-tjenesten i et bestemt skjema, underskjema eller tabellkontroll, må alle kontroller ha unike navn.
Alternativknapper som deler samme gruppenavn må også ha unike kontrollnavn.
Hovedformålet med FormControl-tjenesten er å angi og få egenskapene og verdiene vist av kontrollene i et skjema.
Alle kontroller har en Verdi-egenskap. Imidlertid vil innholdet variere i henhold til kontrolltypen. For mer informasjon, les Verdie Egenskap nedenfor.
Det er også mulig å formatere kontrollene via egenskapene XControlModel og XControlView.
Tjenesten SFDocuments.FormControl er nært knyttet til SFDocuments.Form tjeneste.
Før du bruker FormControl-tjenesten, må ScriptForge-biblioteket lastes eller importeres:
FormControl-tjenesten påkalles fra en eksisterende Skjema-tjenesteforekomst gjennom dens Kontroll-metode.
      Dim oDoc as Object, myForm As Object, myControl As Object
      Set oDoc = CreateScriptService("SFDocuments.Document", ThisDataBaseDocument)
      Set myForm = oDoc.Forms("formDocumentName", "formName") ' SFDocuments.Form
      Set myControl = myForm.Controls("myTextBox") ' SFDocuments.FormControl
      myControl.Value = "Current time = " & Now()
   
      from scriptforge import CreateScriptService
      from time import localtime, strftime
      bas = CreateScriptService('ScriptForge.Basic')
      doc = CreateScriptService('SFDocuments.Document', bas.ThisDatabaseDocument)
      form = doc.Forms('formDocumentName', 'formName')  # SFDocuments.Form
      control = form.Controls('myTextBox')  # SFDocuments.FormControl
      control.Value = 'Current Time = ' + strftime("%a, %d %b %Y %H:%M:%S", localtime())
   For å lære mer om hvordan du åpner et FormDocument og får tilgang til dets skjemaer, se Hjelpesiden for SFDocuments.Form.
Alternativt kan en FormControl-forekomst hentes via SFDocuments.FormEvent-tjenesten, som returnerer klasseforekomsten SFDocuments.FormControl som utløste hendelsen.
      Sub OnEvent(ByRef poEvent As Object)
          Dim oControl As Object
          Set oControl = CreateScriptService("SFDocuments.FormEvent", poEvent)
          ' oControl representerer nå forekomsten av FormControl-klassen som utløste gjeldende hendelse
          ' ...
      End Sub
   
      def onEvent(event: uno):
          control = CreateScriptService('SfDocuments.FormEvent', event)
   Merk at i tidligere eksempler kan prefikset "SFDocuments." utelates.
Tjenesten FormEvent brukes utelukkende til å lage forekomster av tjenestene SFDocuments.Form og SFDocuments.FormControl når en skjema- eller kontrollhendelse finner sted.
Tjenesten FormControl er tilgjengelig for følgende kontrolltyper:
| Button | GroupBox | PatternField | 
| Navn | Skrivebeskyttet | Type | Gjelder for | Beskrivelse | 
|---|---|---|---|---|
| Action | Nei | String | Button | Angir handlingen som utløses når knappen klikkes. Godkjente verdier er: ingen, submitForm, resetForm, refreshForm, moveToFirst, moveToLast, moveToNext, moveToPrev, saveRecord, moveToNew, deleteRecord, undoRecord. | 
| Caption | Nei | String | Button, CheckBox, FixedText, GroupBox, RadioButton | Spesifiserer teksten som vises av kontrollen. | 
| ControlSource | Ja | String | CheckBox, ComboBox, CurrencyField, DateField, FormattedField, ImageControl, ListBox, NumericField, PatternField, RadioButton, TextField, TimeField | Spesifiserer radsettfeltet som er tilordnet den gjeldende kontrollen. | 
| ControlType | Ja | String | Alle | En av kontrolltypene som er oppført ovenfor. | 
| Default | Nei | Boolean | Button | Angir om en kommandoknapp er standard OK-knapp. | 
| DefaultValue | Nei | Variant | CheckBox, ComboBox, CurrencyField, DateField, FileControl, FormattedField, ListBox, NumericField, PatternField, RadioButton, SpinButton, TextField, TimeField | Angir standardverdien som brukes til å initialisere en kontroll i en ny post. | 
| Enabled | Nei | Boolean | Alle (bortsett fra SkjulteKontroller) | Angir om kontrollen er tilgjengelig med markøren. | 
| Format | Nei | String | DateField, TimeField, FormattedField (read-only) | Angir formatet som brukes til å vise datoer og klokkeslett. Det må være en av følgende strenger: For datoer: "Standard (kort)", "Standard (kort ÅÅ)", "Standard (kort ÅÅÅÅ)", "Standard (lang)", "DD/MM/ÅÅ", "MM/DD/ÅÅ", " ÅÅ/MM/DD", "DD/MM/ÅÅÅÅ", "MM/DD/ÅÅÅÅ", "ÅÅÅÅ/MM/DD", "ÅÅ-MM-DD", "ÅÅÅÅ-MM-DD". For tider: "24t kort", "24t lang", "12t kort", "12t lang". | 
| ListCount | Ja | Long | ComboBox, ListBox | Returnerer antall rader i en ListBox eller en ComboBox. | 
| ListIndex | Nei | Long | ComboBox, ListBox | Angir hvilket element som er valgt i en ListBox eller ComboBox. Ved flere valg returneres indeksen til det første elementet eller bare et element settes. | 
| ListSource | Nei | Variant | ComboBox, ListBox | Spesifiserer dataene i en ComboBox eller en ListBox som en nullbasert matrise med strengverdier. Kombinert med ListSourceType, kan også inneholde navnet på en tabell, en spørring eller en fullstendig SQL-setning. | 
| ListSourceType | Nei | Integer | ComboBox, ListBox | Angir typen data som finnes i en kombinasjonsboks eller en listeboks. Det må være en av com.sun.star.form.ListSourceType. * konstanter. | 
| Locked | Nei | Boolean | ComboBox, CurrencyField, DateField, FileControl, FormattedField, ImageControl, ListBox, NumericField, PatternField, TextField, TimeField | Angir om kontrollen er skrivebeskyttet. | 
| MultiSelect | Nei | Boolean | ListBox | Angir om brukeren kan velge flere elementer i en listeboks. | 
| Name | Ja | String | Alle | Navnet på kontrollen. | 
| Parent | Ja | Object | Alle | Avhengig av overordnet type, returnerer et skjema, et underskjema eller en tabellkontroll det overordnede SFDocuments.Skjema eller SFDocuments.FormControl klasseobjektforekomst. | 
| Picture | Nei | String | Button, ImageButton, ImageControl | Angir filnavnet som inneholder en punktgrafikk eller annen type grafikk som skal vises på kontrollen. Filnavnet må samsvare med FileName-attributtet til ScriptForge.FileSystem-tjenesten. | 
| Required | Nei | Boolean | CheckBox, ComboBox, CurrencyField, DateField, ListBox, NumericField, PatternField, RadioButton, SpinButton, TextField, TimeField | En kontroll sies å være nødvendig når de underliggende dataene ikke må inneholde en null verdi. | 
| Text | Ja | String | ComboBox, DateField, FileControl, FormattedField, PatternField, TextField, TimeField | Gir tilgang til teksten som vises av kontrollen. | 
| TipText | Nei | String | Alle (unntatt HiddenControl) | Angir teksten som vises som et verktøytips når du holder musepekeren over kontrollen. | 
| TripleState | Nei | Boolean | CheckBox | Spesifiserer om avmerkingsboksen kan vises nedtonet (utgrået) eller ikke. | 
| Value | Nei | Variant | Denne egenskapen avhenger av gjeldende kontrolltype. Se egenskapen Value for mer informasjon. | |
| Visible | Nei | Boolean | Alle (unntatt HiddenControl) | Angir om kontrollen er skjult eller synlig. | 
| XControlModel | Ja | UNO | Alle | UNO-objektet som representerer kontrollmodellen. Se XControlModel og UnoControlModel i API-dokumentasjonen for mer informasjon. | 
| XControlView | Ja | UNO | Alle | UNO-objektet som representerer kontrollvisningen. Se XControl og UnoControl i API-dokumentasjonen for mer informasjon. | 
| Kontrolltype | Type | Beskrivelse | 
|---|---|---|
| Button | Boolean | Gjelder kun for veksleknapper. | 
| CheckBox | boolsk eller heltall | 0, Usann: ikke avkrysset | 
| ComboBox | String | Den valgte verdien, som en streng. Egenskapen ListIndex er et alternativt alternativ for å få tilgang til indeksen til den valgte verdien. | 
| CurrencyField | Numerisk | |
| DateField | Date | |
| FileControl | String | Et filnavn formatert i samsvar med egenskapen FileName til ScriptForge.FileSystem-tjenesten | 
| FormattedField | Streng eller Numerisk | |
| HiddenControl | String | |
| ListBox | Strenger eller en matrise med strenger | Den(e) valgte raden(e) som en enkelt streng eller en matrise med strenger. Bare én enkelt verdi kan angis. Hvis boksen er koblet til en database, henter eller setter denne egenskapen de underliggende dataene. Ellers henter eller setter den dataene som vises. | 
| NumericField | Numerisk | |
| PatternField | String | |
| RadioButton | Boolean | Hver knapp har sitt eget navn. Flere RadioButton-kontroller er koblet sammen når de deler samme gruppenavn. Hvis en RadioButton er satt til Sann, settes de andre relaterte knappene automatisk til Sann | 
| ScrollBar | Numerisk | Må være innenfor de forhåndsdefinerte grensene | 
| SpinButton | Numerisk | Må være innenfor de forhåndsdefinerte grensene | 
| TextField | String | Teksten som vises i feltet | 
| TimeField | Date | 
Egenskapene nedenfor returnerer eller setter URI-strenger som definerer skriptet som utløses av hendelsen.
| Navn | Skrivebeskyttelse | Beskrivelse som merket i Basic IDE | 
|---|---|---|
| OnActionPerformed | Nei | Utfør handling | 
| OnAdjustmentValueChanged | Nei | Mens du justerer | 
| OnApproveAction | Nei | Godkjenn handling | 
| OnApproveReset | Nei | Før tilbakestilling | 
| OnApproveUpdate | Nei | Før oppdatering | 
| OnChanged | Nei | Endret | 
| OnErrorOccurred | Nei | En feil oppstod | 
| OnFocusGained | Nei | Når du mottar fokus | 
| OnFocusLost | Nei | Når man mister fokus | 
| OnItemStateChanged | Nei | Elementstatus endret | 
| OnKeyPressed | Nei | Tast trykket | 
| OnKeyReleased | Nei | Nøkkelen slippes | 
| OnMouseDragged | Nei | Musen beveget seg mens tasten trykkes | 
| OnMouseEntered | Nei | Mus innenfor | 
| OnMouseExited | Nei | Mus utenfor | 
| OnMouseMoved | Nei | Mus flyttet | 
| OnMousePressed | Nei | Museknapp trykket | 
| OnMouseReleased | Nei | Museknappen slippes | 
| OnResetted | Nei | Etter tilbakestilling | 
| OnTextChanged | Nei | Tekst endret | 
| OnUpdated | Nei | Etter oppdatering | 
For å lære mer om URI-strenger, se URI-spesifikasjonen for skriptrammeverk.
| Liste over metoder i FormControl-tjenesten | |
|---|---|
Denne metoden gjelder bare kontroller av typen TableControl. Den returnerte verdien avhenger av argumentene som er oppgitt.
Hvis det valgfrie argumentet kontrollnavn er fraværende, returneres en nullbasert matrise som inneholder navnene på alle kontrollene.
På den annen side, hvis et kontrollnavn er oppgitt, returnerer metoden en klasseforekomst FormControl som tilsvarer den spesifiserte kontrollen.
svc.Controls(): str[0..*]
svc.Controls(controlname: str): svc
kontrollnavn: Et gyldig kontrollnavn som en streng som skiller mellom store og små bokstaver. Hvis fraværende, returneres listen over kontrollnavn som en nullbasert matrise.
      Dim myGrid As Object, myList As Variant, myControl As Object
      Set myGrid = myForm.Controls("myTableControl") ' SFDocuments.FormControl
      ' Returnerer en matrise med navnene på alle kontrollene i "myTableControl"
      myList = myGrid.Controls()
      ' Returnerer en FormControl-klasseforekomst som tilsvarer "myCheckBox"
      Set myControl = myGrid.Controls("myCheckBox")
   Bruker Python:
      grid = form.Controls('myTableControl')  # SFDocuments.FormControl
      control_names = form.Controls()
      control = grid.Controls('myCheckBox')  # SFDocuments.FormControl
   Setter fokus på kontrollen. Returnerer Sann hvis fokuseringen var vellykket.
Denne metoden kalles ofte fra et skjema eller en kontrollhendelse.
svc.SetFocus(): bool
      Dim oDoc As Object, oForm As Object, oControl As Object
      Set oDoc = CreateScriptService("SFDocuments.Document", ThisComponent)
      Set oForm = oDoc.Forms(0)
      Set oControl = oForm.Controls("thisControl") ' SFDocuments.FormControl
      oControl.SetFocus()
   
     bas = CreateScriptService('ScriptForge.Basic')
     doc = CreateScriptService('SFDocuments.Document', bas.ThisComponent)
     form = doc.Forms(0)
     control = form.Controls('thisControl')  # SFDocuments.FormControl
     control.SetFocus()
   Nedenfor er to eksempler som illustrerer bruken av FormControl-tjenesten.
Det første eksemplet leser gjeldende verdi i en ComboBox som inneholder bynavn og skriver den til en FixedTest-kontroll i et skjema:
     Dim oDoc as Object, myForm as Object, myControl as Object
     Set oDoc = CreateScriptService("SFDocuments.Document", ThisDataBaseDocument)
     myForm = oDoc.Forms("formDocumentName", "formName")
     Dim lbCity : lbCity = myForm.Controls("labelCity")
     Dim cbCity : cbCity = myForm.Controls("comboboxCity")
     lbCity.Caption = "Selected City: " & cbCity.Value
   
     bas = CreateScriptService('ScriptForge.Basic') # Basic lignende metoder
     doc = CreateScriptService('SFDocuments.Document', bas.ThisDatabaseDocument)
     form = doc.Forms('formDocumentName', 'formName')
     lbl_city = form.Controls('labelCity')
     combo_city = form.Controls('comboboxCity')
     lbl_city.Caption = "Valgt by: " + combo_city.Value
   Følgende kodebit kan brukes til å behandle RadioButton-kontroller som deler samme gruppenavn. I dette eksemplet, anta at det er tre radioknapper med navn optA, optB og optC og vi ønsker å vise bildeteksten til den valgte kontrollen.
     Dim oDoc as Object, myForm as Object
     Set oDoc = CreateScriptService("SFDocuments.Document", ThisDataBaseDocument)
     myForm = oDoc.Forms("formDocumentName", "formName")
     Dim optNames As Object : optNames = Array("optA", "optB", "optC")
     Dim optControl as Object, opt as Variant
     For Each opt In optNames
         optControl = myForm.Controls(opt)
         If optControl.Value = True Then
             MsgBox "Valgt alternativ: " & optControl.Caption
             Exit For
         End If
     Next opt
   
     bas = CreateScriptService('ScriptForge.Basic') # Basic lignende metoder
     doc = CreateScriptService('SFDocuments.Document', bas.ThisDatabaseDocument)
     form = doc.Forms('formDocumentName', 'formName')
     radio_buttons = ['optA', 'optB', 'optC']
     for name in radio_buttons:
        control = form.controls(name)
        if control.Value == True:
           bas.MsgBox('Valgt alternativ: ' + control.Caption)
           break