LibreOffice 25.2 laguntza
FormControl zerbitzuak FormDocument bateko inprimaki, azpinprimaki edo taula-kontrol batenak diren kontrolak atzitzea ahalbidetzen du. FormControl zerbitzuaren instantzia bakoitzak inprimakiaren kontrol bakarrari egiten dio erreferentzia. Zerbitzu honi esker, erabiltzaileak honakoak egin ditzake:
FormControl instantziak ordezkatzen duen kontrolaren propietateak eskuratu eta ezarri.
Kontrolak bistaratzen duen uneko balioa atzitu.
Fokua desiratutako kontrolean ezarri.
FormControl zerbitzua inprimaki, azpinprimaki edo taula-kontrol batean erabiltzeko, kontrol guztiek izen bakarrak eduki behar dituzte.
Talde-izen bera partekatzen duten biratze-botoiek ere kontrol-izen bakarrak eduki behar dituzte.
FormControl zerbitzuaren xede nagusia kontrolek inprimaki batean bistaratutako propietateak eta balioak ezartzea eta eskuratzea da.
Kontrol guztiek Value propietatea dute. Hala ere, horren edukia desberdina da kontrol motaren arabera. Informazio gehiagorako, irakurri beheko Value propietatea.
Posible da kontrolei formatua ematea XControlModel eta XControlView propietateak erabilita.
SFDocuments.FormControl zerbitzuak erlazio estua du SFDocuments.Form zerbitzuarekin.
FormControl zerbitzua erabiltzeko, ScriptForge liburutegia kargatu edo inportatu behar da:
FormControl zerbitzuari lehendik dagoen Form zerbitzu-instantzia batetik deitzen zaio bere Controls metodoaren bidez.
      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 = 'Uneko ordua = ' + strftime("%a, %d %b %Y %H:%M:%S", localtime())
   FormDocument bat nola ireki eta bere inprimakiak nola atzitu ikasteko, begiratu SFDocuments.Form zerbitzuaren laguntza-orria.
Beste aukera bat, FormControl instantzia SFDocuments.FormEvent zerbitzuaren bide atzitzea da. Horrek gertaera abiarazi zuen SFDocuments.FormControl klase-instantzia itzuliko du.
      Sub OnEvent(ByRef poEvent As Object)
          Dim oControl As Object
          Set oControl = CreateScriptService("SFDocuments.FormEvent", poEvent)
          ' oControl aldagaiak, orain, uneko gertaera abiarazi duen FormControl klasearen instantzia ordezkatzen du
          ' ...
      End Sub
   
      def onEvent(event: uno):
          control = CreateScriptService('SfDocuments.FormEvent', event)
   Kontuan hartu aurreko adibideetan "SFDocuments." zatia beharbada ez dela sartu.
FormEvent zerbitzua inprimaki- edo kontrol-gertaera bat gertatzen denean SFDocuments.Form eta SFDocuments.FormControl zerbitzuen instantziak sortzeko besterik ez da erabiltzen.
FormControl zerbitzua honako kontrol motekin dago erabilgarri:
| Button | GroupBox | PatternField | 
| Izena | Irakurtzeko soilik | Mota | Honi aplikagarria: | Deskribapena | 
|---|---|---|---|---|
| Action | Ez | String | Button | Botoia sakatzen denean abiaraziko den ekintza zehazten du. Onartutako balioak: none, submitForm, resetForm, refreshForm, moveToFirst, moveToLast, moveToNext, moveToPrev, saveRecord, moveToNew, deleteRecord, undoRecord. | 
| Caption | Ez | String | Button, CheckBox, FixedText, GroupBox, RadioButton | Kontrolak bistaratuko duen testua zehazten du. | 
| ControlSource | Bai | String | CheckBox, ComboBox, CurrencyField, DateField, FormattedField, ImageControl, ListBox, NumericField, PatternField, RadioButton, TextField, TimeField | Uneko kontrolean mapatuko den errenkada multzoaren eremua zehazten du | 
| ControlType | Bai | String | Dena | Goian zerrendatutako kontrol motetako bat. | 
| Default | Ez | Boolean | Button | Komando-botoietako bat 'Ados' botoi lehenetsia izango den zehazten du. | 
| DefaultValue | Ez | Variant | CheckBox, ComboBox, CurrencyField, DateField, FileControl, FormattedField, ListBox, NumericField, PatternField, RadioButton, SpinButton, TextField, TimeField | Kontrol bat erregistro batean hasieratzeko erabiliko den balio lehenetsia zehazten du. | 
| Enabled | Ez | Boolean | Dena (HiddenControl salbu) | Kontrola kurtsorearekin atzitu daitekeen zehazten du. | 
| Format | Ez | String | DateField, TimeField, FormattedField (read-only) | Datak eta orduak bistaratzeko erabiliko den formatua zehazten du. Hurrengo kateetako bat izan behar du: Datetarako: "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". Orduetarako: "24h short", "24h long", "12h short", "12h long". | 
| ListCount | Bai | Long | ComboBox, ListBox | Zerrenda-koadro bateko edo konbinazio-koadro bateko errenkada kopurua itzultzen du. | 
| ListIndex | Ez | Long | ComboBox, ListBox | Zerrenda-koadro batean edo konbinazio-koadro batean zein elementu dagoen hautatuta zehazten du. Hautapen anizkoitzen kasuan, lehen elementuaren indizea itzuliko da edo elementu bakarrak soilik egongo da ezarrita. | 
| ListSource | Ez | Variant | ComboBox, ListBox | Konbinazio-koadro bateko edo zerrenda-koadro bateko datuak zehazten ditu, kate-balioz osatuta dagoen zeron oinarritutako matrize gisa. ListSourceType propietatearekin konbinatuta, taula baten, kontsulta baten edo SQL instrukzio oso baten izena eduki dezake. | 
| ListSourceType | Ez | Integer | ComboBox, ListBox | Konbinazio-koadro bateko edo zerrenda-koadro bateko datuen mota zehazten du. com.sun.star.form.ListSourceType.* konstanteetako bat izan behar du. | 
| Locked | Ez | Boolean | ComboBox, CurrencyField, DateField, FileControl, FormattedField, ImageControl, ListBox, NumericField, PatternField, TextField, TimeField | Kontrola irakurtzeko soilik den zehazten du. | 
| MultiSelect | Ez | Boolean | ListBox | Zerrenda-koadro batean erabiltzaileak elementu anitz hautatu ditzakeen zehazten du. | 
| Name | Bai | String | Dena | Kontrolaren izena. | 
| Parent | Bai | Object | Dena | Guraso motaren arabera (inprimakia, azpinprimakia edo taula-kontrola den), SFDocuments.Form edo SFDocuments.FormControl klase-objektuaren instantzia gurasoa itzultzen du. | 
| Picture | Ez | String | Button, ImageButton, ImageControl | Kontrolean bistaratuko den bit-mapa edo beste motaren bateko grafikoa duen fitxategi-izena zehazten du. Fitxategi-izen horrek ScriptForge.FileSystem zerbitzuaren FileNaming atributuari men egin behar dio. | 
| Required | Ez | Boolean | CheckBox, ComboBox, CurrencyField, DateField, ListBox, NumericField, PatternField, RadioButton, SpinButton, TextField, TimeField | Kontrol bat beharrezkoa dela esaten da azpiko datuek ez dutenean null baliorik eduki behar. | 
| Text | Bai | String | ComboBox, DateField, FileControl, FormattedField, PatternField, TextField, TimeField | Kontrolak bistaratzen duen testua atzitzeko aukera ematen du. | 
| TipText | Ez | String | Dena (HiddenControl salbu) | Saguaren erakuslea kontrolaren gainetik pasatzen denean aholku gisa agertzen den testua zehazten du. | 
| TripleState | Ez | Boolean | CheckBox | Kontrolaren kontrol-laukia grisez (desgaituta) agertu daitekeen ala ez zehazten du. | 
| Value | Ez | Variant | Propietate hori kontrol motaren araberakoa da. Begiratu Value propietatea informazio gehiagorako. | |
| Visible | Ez | Boolean | Dena (HiddenControl salbu) | Kontrola bistan ala ezkutuan dagoen zehazten du. | 
| XControlModel | Bai | UNO | Dena | Kontrol-eredua ordezkatzen duen UNO objektua. Begiratu API dokumentazioaren XControlModel eta UnoControlModel informazio gehiagorako. | 
| XControlView | Bai | UNO | Dena | Kontrol-ikuspegia ordezkatzen duen UNO objektua. Begiratu API dokumentazioaren XControl eta UnoControl informazio gehiagorako. | 
| Kontrol mota | Mota | Deskribapena | 
|---|---|---|
| Button | Boolean | Txandakatzeko erabiltzen diren botoietan soilik aplikatu daiteke. | 
| CheckBox | Boolearra edo osokoa | 0, False: markatu gabea | 
| ComboBox | String | Hautatutako balioa kate gisa. ListIndex propietatea hautatutako balioaren indizea atzitzeko ordezko aukera bat da. | 
| CurrencyField | Zenbakizkoa | |
| DateField | Date | |
| FileControl | String | ScriptForge.FileSystem zerbitzuaren FileNaming propietatearen arabera formatua eman zaion fitxategi-izen bat | 
| FormattedField | Katea edo zenbakia | |
| HiddenControl | String | |
| ListBox | Katea edo kateen matrizea | Hautatutako errenkada(k) kate bakar gisa edo kateen matrize gisa. Balio bakarra soilik ezarri daiteke. Koadroa datu-base bati lotuta badago, propietate honek azpiko datuak eskuratzen edo ezartzen ditu. Bestela, bistaratzen ari diren datuak eskuratzen edo ezartzen ditu. | 
| NumericField | Zenbakizkoa | |
| PatternField | String | |
| RadioButton | Boolean | Botoi bakoitzak bere izena du. 'RadioButton' kontrol anitzak elkarri lotuta daude talde-izen bera partekatzen dutenean. 'RadioButton' bat True bada, hari lotutako beste biratze-botoiak automatikoki False bihurtuko dira | 
| ScrollBar | Zenbakizkoa | Aurredefinitutako mugen barruan egon behar du | 
| SpinButton | Zenbakizkoa | Aurredefinitutako mugen barruan egon behar du | 
| TextField | String | Eremuan agertuko den testua | 
| TimeField | Date | 
Beheko propietateek gertaerak abiarazitako scripta definitzen duten URI kateak itzultzen edo ezartzen ditu.
| Izena | Irakurtzeko soilik | Deskribapena Basic IDEan etiketatu den moduan | 
|---|---|---|
| OnActionPerformed | Ez | Ekintza exekutatzean | 
| OnAdjustmentValueChanged | Ez | Doitzean | 
| OnApproveAction | Ez | Ekintza onartzean | 
| OnApproveReset | Ez | Berrezarri aurretik | 
| OnApproveUpdate | Ez | Eguneratu aurretik | 
| OnChanged | Ez | Aldatzean | 
| OnErrorOccurred | Ez | Errorea gertatzean | 
| OnFocusGained | Ez | Fokua hartzean | 
| OnFocusLost | Ez | Fokua galtzean | 
| OnItemStateChanged | Ez | Elementuaren egoera aldatzean | 
| OnKeyPressed | Ez | Tekla sakatzean | 
| OnKeyReleased | Ez | Tekla askatzean | 
| OnMouseDragged | Ez | Sagua mugitzean tekla sakatuta dagoenean | 
| 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 | 
URI kateei buruzko informazio gehiago jasotzeko, begiratu scriptgintzako lan-markoaren URI espezifikazioa.
| FormControl zerbitzuaren metodoen zerrenda | |
|---|---|
Metodo hau TableControl motako kontrolei soilik aplika dakizkieke. Itzulitako balioa emandako argumentuen araberakoa izango da.
Aukerakoa den controlname argumenturik ez badago, zeron oinarritutako matrize bat itzuliko da, kontrol guztien izenak dituena.
Bestalde, controlname ematen bada, metodoak zehaztutako kontrolari dagokion FormControl klase-instantzia bat itzuliko du.
svc.Controls(): str[0..*]
svc.Controls(controlname: str): svc
controlname: Baliozko kontrol-izen bat, maiuskulak/minuskulak bereizten dituen kate gisa. Ez bada ematen, kontrol-izenen zerrenda zeron oinarritutako matrize gisa itzuliko da.
      Dim myGrid As Object, myList As Variant, myControl As Object
      Set myGrid = myForm.Controls("myTableControl") ' SFDocuments.FormControl
      ' "myTableControl" elementuan dauden kontrol guztien izenak dituen matrize bat itzultzen du
      myList = myGrid.Controls()
      ' "myCheckBox" kontrolari dagokion FormControl klase-instantzia itzultzen du
      Set myControl = myGrid.Controls("myCheckBox")
   Python erabilita:
      grid = form.Controls('myTableControl')  # SFDocuments.FormControl
      control_names = form.Controls()
      control = grid.Controls('myCheckBox')  # SFDocuments.FormControl
   Fokua kontrolean ezartzen du. True itzultzen du fokuratzea ongi gauzatzen bada.
Metodo honi sarritan inprimaki batetik edo kontrol-gertaera batetik deitzen zaio.
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()
   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
   
     bas = CreateScriptService('ScriptForge.Basic')  # Basic-en antzeko metodoak
     doc = CreateScriptService('SFDocuments.Document', bas.ThisDatabaseDocument)
     form = doc.Forms('formDocumentName', 'formName')
     lbl_city = form.Controls('labelCity')
     combo_city = form.Controls('comboboxCity')
     lbl_city.Caption = "Hautatutako hiria: " + combo_city.Value
   Hurrengo kode-zatia talde-izen bera duten biratze-botoiak prozesatzeko erabili daiteke. Hurrengo adibidean, demagun optA, optB eta optC izenak dituzten hiru biratze-botoi daudela, eta hautatutako kontrolaren epigrafea bistaratu nahi dugula.
     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
   
     bas = CreateScriptService('ScriptForge.Basic')  # Basic-en antzeko metodoak
     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('Hautatutako aukera: ' + control.Caption)
           break