SFDocuments.FormControl tjeneste

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:

For å bruke FormControl-tjenesten i et bestemt skjema, underskjema eller tabellkontroll, må alle kontroller ha unike navn.

warning

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.

tip

Tjenesten SFDocuments.FormControl er nært knyttet til SFDocuments.Form tjeneste.


Tjenestepåkallelse

Før du bruker FormControl-tjenesten, må ScriptForge-biblioteket lastes eller importeres:

note

• Grunnleggende makroer krever å laste ScriptForge-biblioteket ved hjelp av følgende setning:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python-skript krever import fra scriptforge-modulen:
fra scriptforge import CreateScriptService


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()
   
I Python

      

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())
tip

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
   
I Python

      def onEvent(event: uno):
          control = CreateScriptService('SfDocuments.FormEvent', event)
   

Merk at i tidligere eksempler kan prefikset "SFDocuments." utelates.

note

Tjenesten FormEvent brukes utelukkende til å lage forekomster av tjenestene SFDocuments.Form og SFDocuments.FormControl når en skjema- eller kontrollhendelse finner sted.


Kontrolltyper

Tjenesten FormControl er tilgjengelig for følgende kontrolltyper:

Egenskaper

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, 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
objekt

Alle

UNO-objektet som representerer kontrollmodellen. Se XControlModel og UnoControlModel i API-dokumentasjonen for mer informasjon.

XControlView

Ja

UNO
objekt

Alle

UNO-objektet som representerer kontrollvisningen. Se XControl og UnoControl i API-dokumentasjonen for mer informasjon.


Egenskapen Verdi

Kontrolltype

Type

Beskrivelse

Button

Boolean

Gjelder kun for veksleknapper.

CheckBox

boolsk eller heltall

0, Usann: ikke avkrysset
1, Sann: avkrysset
2: nedtonet, vet ikke (gjelder hvis TripleState er Sann)

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


Hendelsesegenskaper

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


tip

For å lære mer om URI-strenger, se URI-spesifikasjonen for skriptrammeverk.


Liste over metoder i FormControl-tjenesten

Controls

SetFocus


Controls

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.

Syntaks:

svc.Controls(): str[0..*]

svc.Controls(controlname: str): svc

Parametre:

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.

Eksempel:


      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
   

SetFocus

Setter fokus på kontrollen. Returnerer Sann hvis fokuseringen var vellykket.

Denne metoden kalles ofte fra et skjema eller en kontrollhendelse.

Syntaks:

svc.SetFocus(): bool

Eksempel:


      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()
   
I Python

     bas = CreateScriptService('ScriptForge.Basic')
     doc = CreateScriptService('SFDocuments.Document', bas.ThisComponent)
     form = doc.Forms(0)
     control = form.Controls('thisControl')  # SFDocuments.FormControl
     control.SetFocus()
   

Ytterligere eksempler

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
   
I Python

     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
   
I Python

     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
   
warning

Alle ScriptForge Grunnleggende rutiner eller identifikatorer som er prefikset med et understrekingstegn "_" er reservert for intern bruk. De er ikke ment å brukes i grunnleggende makroer eller Python-skript.


Supporter oss!