LibreOffice 25.2 Hjelp
Tenesta FormControl gjev tilgang til kontrollane knytte til eit skjema, underskjema eller ein tabellkontroll for eit FormDocument. Kvar førekomst av FormControl-tenesta refererer til eitt enkelt kontrollelement i skjemaet. Denne tenesta tillèt brukarane å:
Finn og set eigenskapane for kontrollelementet representert av førekomsten FormControl.
Få tilgang til den gjeldande verdien vist av kontrollelementet.
Set fokus på det ønskte kontrollelementet.
For å bruka tenesta FormControl i eit bestemt skjema, underskjema eller ein bestemt tabellkontrol, må alle kontrollane ha eintydige namn.
Radioknappar som høyrer til same gruppa, må også ha eintydige kontrollnamn.
Hovudføremålet med tenesta FormControl er å setja og henta eigenskapar og verdiar viste av kontrollelement i eit skjema.
Alle kontrollelement har eigenskapen Value. Innhaldet vil variera etter kva type kontrollelementet er. Du finn meir om dette nedanfor under eigenskapen Value .
Det er også mogleg å formatera kontrollelementa gjennom eigenskapane XControlModel og XControlView.
Tenesta SFDialogs.FormControl er i nær slekt med tenesta SFDocuments.Form.
Før du brukar tenesta DialogControl må biblioteket ScriptForge vera lasta inn eller importert:
Tenesta FormControl vert kalla opp frå ein tenesteførekomst av Form gjennom metoden Controls.
      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())
   Viss du vil læra meir om korleis opna eit FormDocument og få tilgang til skjemaa der, kan du sjå i hjelpsida for tenesta SFDocuments.Form.
Alternativt kan ein førekomst av FormControl hentast gjennom tenesta SFDocuments.FormEvent som returnerer klassehendinga SFDocuments.FormControl som utløyste hendinga.
      Sub OnEvent(ByRef poEvent As Object)
          Dim oControl As Object
          Set oControl = CreateScriptService("SFDocuments.FormEvent", poEvent)
          ' oControl representerer no førekomsten av klassen FormControl, som utløyste den gjeldande hendinga
          ' ...
      End Sub
   
      def onEvent(event: uno):
          control = CreateScriptService('SfDocuments.FormEvent', event)
   Merk at i dei tidlegare eksempla kan prefikset "SFDocuments." sløyfast.
Tenesta FormEvent vert brukt berre til å laga førekomstar av tenestene SFDocuments.Form og SFDocuments.FormControl når når det dukkar opp ei skjema- eller kontrollhending.
Tenesta FormControl er tilgjengeleg for desse kontrollelementtypane:
| Button | GroupBox | PatternField | 
| Namn | Skriveverna | Type | Gjeld for | Beskriving | 
|---|---|---|---|---|
| Action | Nei | String | Button | Spesifiserer handlinga som vert utløyst når det vert trykt på knappen. Godkjende verdiar er: none, submitForm, resetForm, refreshForm, moveToFirst, moveToLast, moveToNext, moveToPrev, saveRecord, moveToNew, deleteRecord, undoRecord. | 
| Caption | Nei | String | Button, CheckBox, FixedText, GroupBox, RadioButton | Spesifiserer teksten som vert vist av kontrollelementet. | 
| ControlSource | Ja | String | CheckBox, ComboBox, CurrencyField, DateField, FormattedField, ImageControl, ListBox, NumericField, PatternField, RadioButton, TextField, TimeField | Spesifiserer «rowset»-feltet knytt til den gjeldande kontrollen. | 
| ControlType | Ja | String | Alt | Ein av kontrollelementtypane lista opp ovanfor. | 
| Default | Nei | Boolean | Button | Spesifiserer om ein av kommandoknappane er standardknappen «OK». | 
| DefaultValue | Nei | Variant | CheckBox, ComboBox, CurrencyField, DateField, FileControl, FormattedField, ListBox, NumericField, PatternField, RadioButton, SpinButton, TextField, TimeField | Spesifiserer standardverdien som skal brukast for å initialisere eit kontrollelement i ein ny post. | 
| Enabled | Nei | Boolean | Alle (unnateke "HiddenControl") | Spesifiserer om kontrollelementet er tilgjengeleg med markøren. | 
| Format | Nei | String | DateField, TimeField, FormattedField (read-only) | Spesifiserer formatet som vert brukt for å visa datoar og klokkeslett. Det må vera ein av desse strengane: For datoar: "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 klokkeslett: "24t kort", "24t lang", "12t kort", "12t lang". | 
| ListCount | Ja | Long | ComboBox, ListBox | Returnerer talet på rader i eit listefelt eller ein kombinasjonsboks. | 
| ListIndex | Nei | Long | ComboBox, ListBox | Spesifiserer kva for element som er merkt i eit listefelt eller ein kombinasjonsboks. I tilfelle det er merkt fleire element, vert indeksen for det første elementet returnert eller det vert sett berre eitt element. | 
| ListSource | Nei | Variant | ComboBox, ListBox | Spesifiserer dataa som er i ein kombinasjonsboks eller eit listefelt som ei nullbasert matrise av strengverdiar. Kombinert med ListSourceType kan det også innehalda namnet på ein tabell, ei spørjing eller eit fullstendig SQL-uttrykk. | 
| ListSourceType | Nei | Integer | ComboBox, ListBox | Spesifiserer datatypen som er i ein kombinasjonsboks eller eit listefelt. Det må vera ein av konstantane i com.sun.star.form.ListSourceType.*. | 
| Locked | Nei | Boolean | ComboBox, CurrencyField, DateField, FileControl, FormattedField, ImageControl, ListBox, NumericField, PatternField, TextField, TimeField | Spesifiserer om kontrollelementet er skriveverna. | 
| MultiSelect | Nei | Boolean | ListBox | Spesifiserer om brukaren kan velja fleire element i ein listeboks. | 
| Name | Ja | String | Alle | Namnet på kontrollelementet | 
| Parent | Ja | Object | Alle | Avhengig av den overordna typen, returnerer eit skjema, eit underskjema eller eit tabellkontrollelement den overordna klasseobjekt-førekomsten SFDocuments.Form eller SFDocuments. FormControl. | 
| Picture | Nei | String | Button, ImageButton, ImageControl | Spesifiserer at filnamnet som inneheld punktgrafikk eller ein annan type grafikk som skal visast på det gjevne kontrollelementet. Filnamnet må vera i samsvar med attributten FileNaming til ScriptForge.FileSystem. | 
| Required | Nei | Boolean | CheckBox, ComboBox, CurrencyField, DateField, ListBox, NumericField, PatternField, RadioButton, SpinButton, TextField, TimeField | Eit kontrollelement vert kalla nødvendig når dei underliggjande dataa ikkje kan innehalda verdien null. | 
| Text | Ja | String | ComboBox, DateField, FileControl, FormattedField, PatternField, TextField, TimeField | Gjev tilgang til teksten som vert vist av kontrollelementet. | 
| TipText | Nei | String | Alle (unnateke "HiddenControl") | Spesifiserer teksten som vert vist som i ei hjelpeboble når du held musepeikaren over kontrollelementet. | 
| TripleState | Nei | Boolean | CheckBox | Bestemmer om kontrollelementet for avkryssingsboksen kan vera nedtona (gråa ut) eller ikkje. | 
| Value | Nei | Variant | Denne eigenskapen avhenger av gjeldende kontrollelementtype. For meir informasjon, sjå The Value property. | |
| Visible | Nei | Boolean | Alle (unnateke "HiddenControl") | Bestemmer om kontrollelementet skal vera gøymt eller synleg. | 
| XControlModel | Ja | UNO | Alle | UNO-objektet som representer modellen for kontrollelementet. Sjå detaljert informasjon i UnoControlModel og UnoControlModel i dokumentasjonen for API-en ( Application Programming Interface). | 
| XControlView | Ja | UNO | Alle | UNO-objektet som representer modellen for kontrollelementet. Sjå detaljert informasjon i XControl og UnoControl i dokumentasjonen for API-en ( Application Programming Interface). | 
| Kontrollelementtype | Type | Beskriving | 
|---|---|---|
| Button | Boolean | Gjeld berre for å slå knappar av og på. | 
| CheckBox | Boolsk eller heiltal | 0, False: ikkje kontrollert | 
| ComboBox | String | Den valde verdien som ein streng. Eigenskapen ListIndex er ei alternativ innstilling for å få tilgang til den valde verdien. | 
| CurrencyField | Numerisk | |
| DateField | Date | |
| FileControl | String | Eit filnamn formatert etter eigenskapen FileNaming i tenesta ScriptForge.FileSystem | 
| FormattedField | Streng eller numerisk | |
| HiddenControl | String | |
| ListBox | Streng eller ei matrise av strengar | Den valde rada eller dei valde radene som ein enkelt streng eller ei matrise av strengar. Berre éin verdi kan setjast. Viss feltet er lenkja til databasen, vil denne eigenskapen henta eller setja dei underliggjande dataa. Ellers hentar eller set han dataa som vert viste. | 
| NumericField | Numerisk | |
| PatternField | String | |
| RadioButton | Boolean | Kvar knapp har sit eige namn. Fleire radioknapp-kontrollar er knytte saman når dei har felles gruppenamn. Viss ein radioknapp er sett til True, vert dei andre knappane i gruppa automatisk sette til False. | 
| ScrollBar | Numerisk | Må vera innføre dei førehandsdefinerte grensene | 
| SpinButton | Numerisk | Må vera innføre dei førehandsdefinerte grensene | 
| TextField | String | Teksten som vert vist i feltet | 
| TimeField | Date | 
Eigenskapane nedanfor returnerer eller set URI-strengar som definerer eit skript som vert opna av hendinga.
| Namn | Skriveverna | Beskriving ut frå etiketten i Basic IDE | 
|---|---|---|
| OnActionPerformed | Nei | Utfør handling | 
| OnAdjustmentValueChanged | Nei | Ved justering | 
| OnApproveAction | Nei | Godta handling | 
| OnApproveReset | Nei | Før nullstilling | 
| OnApproveUpdate | Nei | Før oppdatering | 
| OnChanged | Nei | Endra | 
| OnErrorOccurred | Nei | Det oppstod ein feil | 
| OnFocusGained | Nei | Når han får fokus | 
| OnFocusLost | Nei | Når han mistar fokus | 
| OnItemStateChanged | Nei | Elementstatus endra | 
| OnKeyPressed | Nei | Taste trykt | 
| OnKeyReleased | Nei | Taste sleppt | 
| OnMouseDragged | Nei | Musa flytt medan ein tast er trykt | 
| OnMouseEntered | Nei | Mus innanfor | 
| OnMouseExited | Nei | Mus utanfor | 
| OnMouseMoved | Nei | Mus flytt | 
| OnMousePressed | Nei | Museknapp trykt ned | 
| OnMouseReleased | Nei | Museknapp sleppt opp | 
| OnResetted | Nei | Etter tilbakestilling | 
| OnTextChanged | Nei | Tekst endra | 
| OnUpdated | Nei | Etter oppdatering | 
Du kan læra meir om URI-strengar i Scripting Framework URI Specification.
| Liste over metodar i tenesta FormControl | |
|---|---|
Denne metoden gjeld berre for kontrollelement av typen TableControl (tabelkontrol). Den returnerte verdien avhenger av dei gjevne parameterane.
Viss det valfrie argumentet controlname manglar, vert det returnert ei nullbasert matrise med namna på alle kontrollelementa.
På den andre sida, viss controlname er gjeve, returnerer metoden ein klasse-førekomst av FormControl som svarar til det gjevne kontrollelementet.
svc.Controls(): str[0..*]
svc.Controls(controlname: str): svc
controlname: Eit gyldig kontrollelementnamn som ein streng (som skil mellom små og store bokstavar). Viss denne manglar vert lista over kontrollelementnamn returnert som ei nullbasert matrise.
      Dim myGrid As Object, myList As Variant, myControl As Object
      Set myGrid = myForm.Controls("myTableControl") ' SFDocuments.FormControl
      ' Returnerer ei matrise med namna på alle kontrollelementa i «myTableControl»
      myList = myGrid.Controls()
      ' Returnerer klasseførekomsten FormControl som svarar til «myCheckBox»
      Set myControl = myGrid.Controls("myCheckBox")
   Med Python:
      grid = form.Controls('myTableControl')  # SFDocuments.FormControl
      control_names = form.Controls()
      control = grid.Controls('myCheckBox')  # SFDocuments.FormControl
   Set fokus på kontrollelementet. Returner Sann viss fokuseringa lukkast.
Denne metoden vert ofte kalla opp frå eit skjema eller ei kontrollhending.
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()
   Nedanfor er det to eksempel som viser bruken av tenesta FormControl.
Det første eksempelet les gjeldande verdi i ein kombinasjonsboks som inneheld bynamn, og skriv det til «FixedTest» i eit 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-liknande metodar
     doc = CreateScriptService('SFDocuments.Document', bas.ThisDatabaseDocument)
     form = doc.Forms('formDocumentName', 'formName')
     lbl_city = form.Controls('labelCity')
     combo_city = form.Controls('comboboxCity')
     lbl_city.Caption = "Vald by: " + combo_city.Value
   Den neste kodesnutten kan brukast til å handsama radioknapp-kontrollar som har felles gruppenamn. I dette eksempelet går ein ut frå at det er tre radioknappar med namna optA, optB og optC og me ønskjer å visa teksten for det valde kontrollelementet.
     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 "Vald innstilling: " & optControl.Caption
             Exit For
         End If
     Next opt
   
     bas = CreateScriptService('ScriptForge.Basic')  # Basic-liknande metodar
     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('Vald innstilling: ' + control.Caption)
           break