SFDocuments.FormControl zerbitzua

The FormControl service provides access to the controls that belong to a form, a subform or a table control of a FormDocument. Each instance of the FormControl service refers to a single control in the form. This service allows users to:

To use the FormControl service in a particular form, subform or table control, all controls must have unique names.

warning

Radio buttons that share the same group name must also have unique control names.


FormControl zerbitzuaren xede nagusia kontrolek inprimaki batean bistaratutako propietateak eta balioak ezartzea eta eskuratzea da.

All controls have a Value property. However, its contents will vary according to the control type. For more information, read The Value Property below.

It is also possible to format the controls via the XControlModel and XControlView properties.

tip

SFDocuments.FormControl zerbitzuak erlazio estua du SFDocuments.Form zerbitzuarekin.


note

Zerbitzu hau LibreOffice 7.2 bertsiotik aurrera dago eskuragarri.


Zerbitzuari deitzea

The FormControl service is invoked from an existing Form service instance through its Controls method.


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

      

from scriptforge import CreateScriptService

from time import localtime, strftime svc = CreateScriptService('ScriptForge.Basic')

doc = CreateScriptService('SFDocuments.Document', svc.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

To learn more about how to open a FormDocument and get access to its forms, refer to the SFDocuments.Form service help page.


Alternatively a FormControl instance can be retrieved via the SFDocuments.FormEvent service, which returns the SFDocuments.FormControl class instance that triggered the event.


      Sub OnEvent(ByRef poEvent As Object)
          Dim oControl As Object
          Set oControl = CreateScriptService("SFDocuments.FormEvent", poEvent)
          ' oControl now represents the instance of the FormControl class that triggered the current event
          ' ...
      End Sub
   
Python lengoaian

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

Kontuan hartu aurreko adibideetan "SFDocuments." zatia beharbada ez dela sartu.

note

The FormEvent service is used exclusively to create instances of the SFDocuments.Form and SFDocuments.FormControl services when a form or control event takes place.


Kontrol motak

FormControl zerbitzua honako kontrol motekin dago erabilgarri:

Propietateak

Izena

Irakurtzeko soilik

Mota

Honi aplikagarria:

Deskribapena

Action

Ez

String

Button

Specifies the action triggered when the button is clicked. Accepted values are: none, submitForm, resetForm, refreshForm, moveToFirst, moveToLast, moveToNext, moveToPrev, saveRecord, moveToNew, deleteRecord, undoRecord.

Caption

Ez

String

Button, CheckBox, FixedText, GroupBox, RadioButton

Specifies the text displayed by the control.

ControlSource

Bai

String

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

Specifies the rowset field mapped onto the current control.

ControlType

Bai

String

Dena

One of the control types listed above.

Default

Ez

Boolean

Button

Specifies whether a command button is the default OK button.

DefaultValue

Ez

Variant

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

Specifies the default value used to initialize a control in a new record.

Enabled

Ez

Boolean

Dena (HiddenControl salbu)

Specifies if the control is accessible with the cursor.

Format

Ez

String

DateField, TimeField, FormattedField (read-only)

Specifies the format used to display dates and times. It must be one of following strings:

For dates: "Standard (short)", "Standard (short YY)", "Standard (short YYYY)", "Standard (long)", "DD/MM/YY", "MM/DD/YY", "YY/MM/DD", "DD/MM/YYYY", "MM/DD/YYYY" , "YYYY/MM/DD", "YY-MM-DD", "YYYY-MM-DD".

For times: "24h short", "24h long", "12h short", "12h long".

ListCount

Bai

Long

ComboBox, ListBox

Returns the number of rows in a ListBox or a ComboBox.

ListIndex

Ez

Long

ComboBox, ListBox

Specifies which item is selected in a ListBox or ComboBox. In case of multiple selection, the index of the first item is returned or only one item is set.

ListSource

Ez

Variant

ComboBox, ListBox

Specifies the data contained in a ComboBox or a ListBox as a zero-based array of string values.

Combined with ListSourceType, may also contain the name of a table, a query or a complete SQL statement.

ListSourceType

Ez

Integer

ComboBox, ListBox

Specifies the type of data contained in a combobox or a listbox.

It must be one of the com.sun.star.form.ListSourceType.* constants.

Locked

Ez

Boolean

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

Specifies if the control is read-only.

MultiSelect

Ez

Boolean

ListBox

Specifies whether the user can select multiple items in a listbox.

Name

Bai

String

Dena

The name of the control.

Parent

Bai

Object

Dena

Depending on the parent type, a form, a subform or a tablecontrol, returns the parent SFDocuments.Form or SFDocuments.FormControl class object instance.

Picture

Ez

String

Button, ImageButton, ImageControl

Specifies the file name containing a bitmap or other type of graphic to be displayed on the control. The filename must comply with the FileNaming attribute of the ScriptForge.FileSystem service.

Required

Ez

Boolean

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

A control is said required when the underlying data must not contain a null value.

Text

Bai

String

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

Gives access to the text being displayed by the control.

TipText

Ez

String

Dena (HiddenControl salbu)

Specifies the text that appears as a tooltip when you hover the mouse pointer over the control.

TripleState

Ez

Boolean

CheckBox

Specifies if the checkbox control may appear dimmed (grayed) or not.

Value

Ez

Variant

This property depends on the current control type. Refer to The Value property for more information.

Visible

Ez

Boolean

Dena (HiddenControl salbu)

Specifies if the control is hidden or visible.

XControlModel

Bai

UNO
objektua

Dena

The UNO object representing the control model. Refer to XControlModel and UnoControlModel in the API documentation for more information.

XControlView

Bai

UNO
objektua

Dena

The UNO object representing the control view. Refer to XControl and UnoControl in the API documentation for more information.


The Value property

Kontrol mota

Mota

Deskribapena

Button

Boolean

Applicable to toggle buttons only.

CheckBox

Boolearra edo osokoa

0, False: not checked
1, True: checked
2: grayed out, don't know (applicable if TripleState is True)

ComboBox

String

The selected value, as a String. The ListIndex property is an alternate option to access the index of the selected value.

CurrencyField

Zenbakizkoa

DateField

Date

FileControl

String

A file name formatted in accordance with the FileNaming property of the ScriptForge.FileSystem service

FormattedField

Katea edo zenbakia

HiddenControl

String

ListBox

String or array of strings

The selected row(s) as a single string or an array of strings. Only a single value can be set. If the box is linked to a database, this property gets or sets the underlying data. Otherwise it gets or sets the data being displayed.

NumericField

Zenbakizkoa

PatternField

String

RadioButton

Boolean

Each button has its own name. Multiple RadioButton controls are linked together when they share the same group name. If a RadioButton is set to True, the other related buttons are automatically set to False

ScrollBar

Zenbakizkoa

Must be within the predefined bounds

SpinButton

Zenbakizkoa

Must be within the predefined bounds

TextField

String

The text appearing in the field

TimeField

Date


Gertaeraren propietateak

The properties below return or set URI strings that define the script triggered by the event.

Izena

Irakurtzeko soilik

Description as labeled in the Basic IDE

OnActionPerformed

Ez

Exekutatu ekintza

OnAdjustmentValueChanged

Ez

Doitzean

OnApproveAction

Ez

Onartu ekintza

OnApproveReset

Ez

Berrezarri aurretik

OnApproveUpdate

Ez

Eguneratu aurretik

OnChanged

Ez

Aldatuta

OnErrorOccurred

Ez

Errorea gertatzean

OnFocusGained

Ez

Fokua hartzean

OnFocusLost

Ez

Fokua galtzean

OnItemStateChanged

Ez

Elementuaren egoera aldatzean

OnKeyPressed

Ez

Tekla sakatuta

OnKeyReleased

Ez

Tekla askatzean

OnMouseDragged

Ez

Mouse moved while key presses

OnMouseEntered

Ez

Sagua barnean dagoenean

OnMouseExited

Ez

Sagua kanpoan dagoenean

OnMouseMoved

Ez

Sagua mugitzean

OnMousePressed

Ez

Saguaren botoia sakatzean

OnMouseReleased

Ez

Saguaren botoia askatzean

OnResetted

Ez

Berrezarri ondoren

OnTextChanged

Ez

Testua aldatzean

OnUpdated

Ez

Eguneratu ondoren


tip

To learn more about URI strings, refer to the Scripting Framework URI Specification.


List of Methods in the FormControl Service

Controls

SetFocus


note

Metodo hauek LibreOffice 7.2 bertsiotik aurrera daude erabilgarri.


Controls

This method is applicable only to controls of the TableControl type. The returned value depends on the arguments provided.

If the optional argument controlname is absent, then a zero-based Array containing the names of all controls is returned.

On the other hand, if a controlname is provided, the method returns a FormControl class instance corresponding to the specified control.

Sintaxia:

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

svc.Controls(controlname: str): svc

Parametroak:

controlname: A valid control name as a case-sensitive string. If absent, the list of control names is returned as a zero-based array.

Adibidea:


      Dim myGrid As Object, myList As Variant, myControl As Object
      Set myGrid = myForm.Controls("myTableControl") ' SFDocuments.FormControl
      ' Returns an Array with the names of all controls in "myTableControl"
      myList = myGrid.Controls()
      

' Returns a FormControl class instance corresponding to "myCheckBox"

Set myControl = myGrid.Controls("myCheckBox")

Python erabilita:


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

SetFocus

Fokua kontrolean ezartzen du. True itzultzen du fokuratzea ongi gauzatzen bada.

Metodo honi sarritan inprimaki batetik edo kontrol-gertaera batetik deitzen zaio.

Sintaxia:

svc.SetFocus(): bool

Adibidea:


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

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

Adibide gehiago

Behean, FormControl zerbitzuaren erabilera azaltzen duten bi adibide.

Lehen adibidean, hirien izenak dituen konbinazio-koadro bateko uneko balioa irakurtzen da eta inprimaki bateko testu finkoko kontrol batean idazten da.


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

     ui = CreateScriptService('ScriptForge.Basic')  # Basic lengoaiaren antzeko metodoak
     doc = CreateScriptService('SFDocuments.Document', ui.ThisDatabaseDocument)
     form = doc.Forms('formDocumentName', 'formName')
     lbl_city = form.Controls('labelCity')
     combo_city = form.Controls('comboboxCity')
     lbl_city.Caption = "Hautatutako hiria: " + combo_city.Value
   

The following code snippet can be used to process RadioButton controls that share the same group name. In this example, suppose there are three radio buttons with names optA, optB and optC and we wish to display the caption of the selected control.


     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 "Hautatutako aukera: " & optControl.Caption
             Exit For
         End If
     Next opt
   
Python lengoaian

     ui = CreateScriptService('ScriptForge.Basic')  # Basic lengoaiaren antzeko metodoak
     doc = CreateScriptService('SFDocuments.Document', ui.ThisDatabaseDocument)
     form = doc.Forms('formDocumentName', 'formName')
     radio_buttons = ['optA', 'optB', 'optC']
     for name in radio_buttons:
        control = form.controls(name)
        if control.Value == True:
           ui.MsgBox('Hautatutako aukera: ' + control.Caption)
           break
   
warning

Aurrizki gisa azpimarra bat ("_") duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez daude Basic makroetan erabiltzeko pentsatuta.