Słužba SFDocuments.FormControl

Słužba FormControl přistup k wodźenskim elementam skići, kotrež k formularej, podformularej abo tabelowemu wodźenskemu elementej z FormDocument słušeja. Kóžda instanca słužby FormControl so na jednotliwy wodźenski element we formularje poćahuje. Tuta słužba wužiwarjam zmóžnja:

Zo byšće słužbu FormControl we wěstym formularje, podformularje abo tabelowym wodźenskim elemenće wužiwał, dyrbja wšě wodźenske elementy jónkróćne mjena měć.

Warnowanski symbol

Opciske tłóčatka, kotrež samsne skupinske mjeno dźěla, dyrbja tež jónkróćne mjena wodźenskich elementow měć.


Hłowny zaměr słužby FormControl je nastajenje a wotwołowanje kajkosćow a hódnotow, kotrež so přez wodźenske elementy we formularje pokazuja.

Wšě wodźenske elementy maja kajkosć Value. Jeje wobsah pak po typje wodźenskeho elementa wariěruje. Za dalše informacije čitajće deleka Kajkosć Value.

Je tež móžno, wodźenske elementy přez kajkosći XControlModel a XControlView formatěrować.

Symbol Pokiw

Słužba SFDocuments.FormControl je jara na słužbu SFDocuments.Form podobna.


Słužbowe wuwołanje

Před wužiwanjom słužby FormControl dyrbi so biblioteka ScriptForge začitać abo importować:

Symbol za Notica

• Makra Basic sej wužaduja, zo so biblioteka ScriptForge z pomocu slědowaceho přikaza začituje:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Skripty Python sej import z modula scriptforge wužaduja:
from scriptforge import CreateScriptService


Słužba FormControl so z eksistowaceje słužboweje instancy Form přez swoju metodu Controls wuwołuje.


      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()
   
W 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 = 'Aktualny čas = ' + strftime("%a, %d %b %Y %H:%M:%S", localtime())
Symbol Pokiw

Zo byšće wjace wo tym zhonił, kak móžeće FormDocument wočinić a přistup k jeho formularam dóstać, hlejće stronu pomocy słužby SFDocuments.Form.


Jako alternatiwa da so instanca FormControl přez słužbu SFDocuments.FormEvent wotwołać, kotraž klasowu instancu SFDocuments.FormControl wróća, kotraž je podawk wuwabiła.


      Sub OnEvent(ByRef poEvent As Object)
          Dim oControl As Object
          Set oControl = CreateScriptService("SFDocuments.FormEvent", poEvent)
          ' oControl nětko instancu klasy FormControl reprezentuje, kotraž je aktualny podawk wuwabiła
          ' ...
      End Sub
   
W Python

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

Dźiwajće na to, zo je móžno, w předchadnych přikładach prefiks "SFDocuments." wuwostajić.

Symbol za Notica

Słužba FormEvent so jenož wužiwa, zo by instancy słužbow SFDocuments.Form a SFDocuments.FormControl wutworiła, hdyž so formular abo wodźenski element wotměwa.


Typy wodźenskich elementow

Słužba FormControl je za slědowace typy wodźenskich elementow k dispoziciji:

Button
CheckBox
ComboBox
CurrencyField
DateField
FileControl
FixedText
FormattedField

GroupBox
HiddenControl
ImageButton
ImageControl
ListBox
NavigationBar
NumericField

PatternField
RadioButton
ScrollBar
SpinButton
TableControl
TextField
TimeField


Kajkosće

Mjeno

Přećiwo pisanju škitany

Typ

Nałožujomny na

Wopisanje

Action

String

Button

Podawa akciju, kotraž so wuwabi, hdyž so na tłóčatko klika. Akceptowane hódnoty su: none, submitForm, resetForm, refreshForm, moveToFirst, moveToLast, moveToNext, moveToPrev, saveRecord, moveToNew, deleteRecord, undoRecord.

Caption

String

Button, CheckBox, FixedText, GroupBox, RadioButton

Podawa tekst, kotryž so přez wodźenski element pokazuje.

ControlSource

Haj

String

CheckBox, ComboBox, CurrencyField, DateField, FormattedField, ImageControl, ListBox, NumericField, PatternField, RadioButton, TextField, TimeField

Podawa polo Rowset, kotrež je aktualnemu wodźenskemu elementej přirjadowane.

ControlType

Haj

String

Wšě

Jedyn z horjeka nalistowanych typow wodźenskich elementow.

Default

Boolean

Button

Podawa, hač přikazowe tłóčatko je standardne tłóčatko W porjadku.

DefaultValue

Variant

CheckBox, ComboBox, CurrencyField, DateField, FileControl, FormattedField, ListBox, NumericField, PatternField, RadioButton, SpinButton, TextField, TimeField

Podawa standardnu hódnotu, kotraž so wužwa, zo by wodźenski element w nowej datowej sadźbje inicializowała.

Enabled

Boolean

Wšě (nimo HiddenControl)

Podawa, hač wodźenski element je z kursorom přistupny.

Format

String

DateField, TimeField, FormattedField (read-only)

Podawa format, kotryž so wužiwa, zo by datumy a časy pokazał. Dyrbi jedyn ze slědowacych znamješkowych rjećazkow być:

Za datumy: "Standard (short)", "Standard (short LL)", "Standard (short LLLL)", "Standard (long)", "DD/MM/LL", "MM/DD/LL", "LL/MM/DD", "DD/MM/LLLL", "MM/DD/LLLL" , "LLLL/MM/DD", "LL-MM-DD", "LLLL-MM-DD".

Za časy: "24h short", "24h long", "12h short", "12h long".

ListCount

Haj

Long

ComboBox, ListBox

Wróći ličbu linkow w lisćinowym abo kombinaciskim polu.

ListIndex

Long

ComboBox, ListBox

Podawa, kotry zapisk je w lisćinowym abo kombinaciskim polu wubrany. Při wjacorym wuběrje so indeks prěnjeho zapiska wróća abo so jenož jedyn zapisk staja.

ListSource

Variant

ComboBox, ListBox

Podawa daty, kotrež su w kombinaciskim abo lisćinowym polu jako na nuli bazowaca matriks znamješkowych rjećazkow wobsahowane.

Móže w kombinaciji z ListSourceType tež mjeno tabele, wotprašowanja abo dospołneho přikaza SQL wobsahować.

ListSourceType

Integer

ComboBox, ListBox

Podawa typ datow, kotryž je w kombinaciskim abo lisćinowym polu wobsahowany.

Dyrbi jedna z konstantow com.sun.star.form.ListSourceType.* być.

Locked

Boolean

ComboBox, CurrencyField, DateField, FileControl, FormattedField, ImageControl, ListBox, NumericField, PatternField, TextField, TimeField

Podawa, hač wodźenski element je přećiwo pisanju škitany.

MultiSelect

Boolean

ListBox

Podawa, hač wužiwar móže wjacore zapiski w lisćinowym polu wubrać.

Name

Haj

String

Wšě

Mjeno wodźenskeho elementa.

Parent

Haj

Object

Wšě

Wotwisujo wot nadrjadowaneho typa, formular, podformular abo tabelowy wodźenski element, nadrjadowanu klasowu objektowu instancu SFDocuments.Form abo SFDocuments.FormControl wróća.

Picture

String

Button, ImageButton, ImageControl

Podawa datajowe mjeno, kotryž bitmap abo druhi grafikowy typ wobsahuje, kotryž so ma na wodźenskim elemenće pokazać. Datajowe mjeno dyrbi atributej FileNaming słužby ScriptForge.FileSystem wotpowědować.

Required

Boolean

CheckBox, ComboBox, CurrencyField, DateField, ListBox, NumericField, PatternField, RadioButton, SpinButton, TextField, TimeField

Wodźenski element so jako trěbny mjenuje, hdyž daty, na kotrež so zepěra, njesmědźa hódnotu null wobsahować.

Text

Haj

String

ComboBox, DateField, FileControl, FormattedField, PatternField, TextField, TimeField

Zmóžnja přistup k tekstej, kotryž so přez wodźenski element pokazuje.

TipText

String

Wšě (nimo HiddenControl)

Podawa tekst, kotryž so jako pomocny tekst jewi, hdyž pokazowak myški nad wodźenski element pohibujeće.

TripleState

Boolean

CheckBox

Podawa, jeli kontrolny kašćik móže so wosłabić (šěry) abo nic.

Value

Variant

Tuta kajkosć wot aktualneho typa wodźenskeho elementa wotwisuje. Hlejće Kajkosć Value za dalše informacije.

Visible

Boolean

Wšě (nimo HiddenControl)

Podawa, hač wodźenski element je schowany abo widźomny.

XControlModel

Haj

Objekt
UNO

Wšě

Objekt UNO, kotryž model wodźenskeho elementa reprezentuje. Hlejće XControlModel a UnoControlModel w dokumentaciji API za dalše informacije.

XControlView

Haj

Objekt
UNO

Wšě

Objekt UNO, kotryž napohlad wodźenskeho elementa reprezentuje. Hlejće XControl a UnoControl w dokumentaciji API za dalše informacije.


Kajkosć Value

Typ wodźenskeho elementa

Typ

Wopisanje

Button

Boolean

Płaći jenož za přepinanske tłóčatka.

CheckBox

Boolean (logiska hódnota) abo Integer (cyła ličba)

0, False: njezmóžnjeny
1, True: zmóžnjeny
2: zešěrjeny, njeznaty (nałožujomny, jeli TripleState je True)

ComboBox

String

Wubrana hódnota jako znamješkowy rjećazk. Kajkosć ListIndex je alternatiwna móžnosć za přistup k indeksej wubraneje hódnoty.

CurrencyField

Numeriski

DateField

Date

FileControl

String

Datajowe mjeno, kotrež je po kajkosći FileNaming słužby ScriptForge.FileSystem sformatěrowane

FormattedField

Znamješkowy rjećazk abo numeriski

HiddenControl

String

ListBox

Znamješkowy rjećazk abo matriks znamješkowych rjećazkow

Wubrane linki jako jednotliwy znamješkowy rjećazk abo matriks znamješkowych rjećazkow. Da so jenož jedna hódnota stajić. Jeli polo je z datowej banku zwjazane, tuta kajkosć daty, na kotrež so zepěra, wotwołuje abo staja. Hewak so daty, kotrež so pokazuja, wotwołuje abo staja.

NumericField

Numeriski

PatternField

String

RadioButton

Boolean

Kóžde tłóčatko ma swójske mjeno. Wjacore opciske tłóčatka so jedne z druhim zwjazuja, hdyž samsne skupinske mjeno maja. Jeli opciske tłóčatko je na True stajene, so druhe přisłušne tłóčatka awtomatisce na False stajeja.

ScrollBar

Numeriski

Dyrbi w předdefinowanych mjezach być

SpinButton

Numeriski

Dyrbi w předdefinowanych mjezach być

TextField

String

Tekst, kotryž so w polu jewi.

TimeField

Date


Podawkowe kajkosće

Slědowace kajkosće znamješkowe rjećazki URI wróćeja abo stajeja, kotrež skript definuja, kotryž je so přez podawk wuwabił.

Mjeno

Přećiwo pisanju škitany

Wopisanje jako w Basic IDE popisane

OnActionPerformed

Akciju wuwjesć

OnAdjustmentValueChanged

Při přiměrjenju

OnApproveAction

Akciju wobkrućić

OnApproveReset

Před wróćostajenjom

OnApproveUpdate

Před aktualizaciju

OnChanged

Změnjeny

OnErrorOccurred

Zmylk je wustupił

OnFocusGained

Při dóstawanju fokusa

OnFocusLost

Při zhubjenju fokusa

OnItemStateChanged

Status zapiska je so změnił

OnKeyPressed

Tasta stłóčena

OnKeyReleased

Tasta pušćena

OnMouseDragged

Pohib myški při stłóčenej tasće

OnMouseEntered

Myška nutřka

OnMouseExited

Myška wonka

OnMouseMoved

Pohib myški

OnMousePressed

Tasta myški stłóčena

OnMouseReleased

Tasta myški pušćena

OnResetted

Po wróćostajenju

OnTextChanged

Tekst je so změnił

OnUpdated

Po aktualizaciji


Symbol Pokiw

Zo byšće wjace wo znamješkowych rjećazkach URI zhonił, hlejće Scripting Framework URI Specification.


Lisćina metodow w słužbje FormControl

Controls

SetFocus


Controls

Tuta metoda je jenož na jedyn z wodźenskich elementow typa TabelControl nałožujomna. Wróćena hódnota wot argumentow wotwisuje, kotrež su k dispoziciji.

Jeli opcionalny argument controlname faluje, so na nuli bazowaca matriks wróći, kotrež mjena wšěch wodźenskich elementow wobsahuje.

Jeli z druheje strony je controlname k dispoziciji, metoda klasowu instancu FormControl wróća, kotraž podatemu wodźenskemu elementej wotpowěduje.

Syntaksa:

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

svc.Controls(controlname: str): svc

Parametry:

controlname: Płaćiwe mjeno wodźenskeho elementa jako znamješkowy rjećazk, kotryž na wulkopisanje dźiwa. Jeli faluje, so lisćina mjeno wodźenskich elementow jako matriks z bazu nula wróći.

Přikład:


      Dim myGrid As Object, myList As Variant, myControl As Object
      Set myGrid = myForm.Controls("myTableControl") ' SFDocuments.FormControl
      ' Wróći matriks z mjenami wšěch wodźenskich elementow w "myTableControl"
      myList = myGrid.Controls()
      

' Wróći klasowu instancu FormControl, kotraž "myCheckBox" wotpowěduje

Set myControl = myGrid.Controls("myCheckBox")

Při wužiwanju Python:


      grid = form.Controls('myTableControl')  # SFDocuments.FormControl
      control_names = form.Controls()
      control = grid.Controls('myCheckBox')  # SFDocuments.FormControl
   

SetFocus

Staja fokus na wodźenski element. Wróći True, jeli fokusěrowanje běše wuspěšne.

Tuta metoda so husto z formulara abo podawka wodźenskeho elementa wuwołuje.

Syntaksa:

svc.SetFocus(): bool

Přikład:


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

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

Přidatne přikłady

Deleka stej dwaj přikładaj, kotrejž wužiwanje słužby FormControl ilustruje.

Prěni přikład aktualnu hódnotu w kombinaciskim polu čita, kotrež mjena městnow wobsahuje a pisa ju do wodźenskeho elementa FixedTest we formularje:


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

     bas = CreateScriptService('ScriptForge.Basic') # Metody, kotrež su na Basic podobne
     doc = CreateScriptService('SFDocuments.Document', bas.ThisDatabaseDocument)
     form = doc.Forms('formDocumentName', 'formName')
     lbl_city = form.Controls('labelCity')
     combo_city = form.Controls('comboboxCity')
     lbl_city.Caption = "Wubrane město: " + combo_city.Value
   

Slědowaca kodowa šlipka da so wužiwać, zo by opciske tłóčatka předźěłała, kotrež samsne skupinske mjeno maja. Předstajće sej, zo w tutym přikładźe su tři opciske tłóčatka z mjenami optA, optB a opC a chcemy popis wubraneho wodźenskeho elementa pokazać.


     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 "Wubrana opcija: " & optControl.Caption
             Exit For
         End If
     Next opt
   
W Python

     bas = CreateScriptService('ScriptForge.Basic') # Metody, kotrež su na Basic podobne
     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('Wubrana opcija: ' + control.Caption)
           break
   
Warnowanski symbol

Wšě rutiny Basic ScriptForge abo identifikatory, kotrež so z podsmužku „_“ započinaja, su za interne wužiwanje wuměnjene. Njejsu za to myslene, so w makrach Basic abo skriptach Python wužiwać.


Prošu podpěrajće nas!

Prošu podpěrajće nas!