Tulong sa LibreOffice 25.8
Ang FormControl nagbibigay ng access ang serbisyo sa mga kontrol na kabilang sa isang form, isang subform o isang table na kontrol ng a FormDocument . Ang bawat pagkakataon ng FormControl serbisyo ay tumutukoy sa iisang kontrol sa form. Ang serbisyong ito ay nagpapahintulot sa mga user na:
Kunin at itakda ang mga katangian ng kontrol na kinakatawan ng FormControl halimbawa.
I-access ang kasalukuyang halaga na ipinapakita ng kontrol.
Itakda ang focus sa nais na kontrol.
Upang gamitin ang FormControl serbisyo sa isang partikular na anyo, subform o kontrol ng talahanayan, ang lahat ng mga kontrol ay dapat may mga natatanging pangalan.
Ang mga radio button na may kaparehong pangalan ng grupo ay dapat ding magkaroon ng mga natatanging pangalan ng kontrol.
Ang pangunahing layunin ng FormControl Ang serbisyo ay nagtatakda at kumukuha ng mga katangian at halaga na ipinapakita ng mga kontrol sa isang form.
Ang lahat ng mga kontrol ay may a Halaga ari-arian. Gayunpaman, ang mga nilalaman nito ay mag-iiba ayon sa uri ng kontrol. Para sa karagdagang impormasyon, basahin Ang Halaga Ari-arian sa ibaba.
Posible ring i-format ang mga kontrol sa pamamagitan ng XControlModel at XControlView ari-arian.
Ang SFDocuments.FormControl ang serbisyo ay malapit na nauugnay sa SFDocuments.Form serbisyo.
Bago gamitin ang FormControl serbisyo ang ScriptForge kailangang i-load o i-import ang library:
Ang FormControl serbisyo ay hinihingi mula sa isang umiiral na Form halimbawa ng serbisyo sa pamamagitan nito Mga kontrol paraan.
      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 = 'Kasalukuyang Oras = ' + strftime("%a, %d %b %Y %H:%M:%S", localtime())
   Upang matuto nang higit pa tungkol sa kung paano buksan ang a FormDocument at makakuha ng access sa mga form nito, sumangguni sa SFDocuments.Form pahina ng tulong sa serbisyo.
Bilang kahalili a FormControl halimbawa ay maaaring makuha sa pamamagitan ng SFDocuments.FormEvent serbisyo, na nagbabalik ng SFDocuments.FormControl class instance na nag-trigger sa kaganapan.
      Sub OnEvent(ByRef poEvent As Object)
          Dim oControl As Object
          Set oControl = CreateScriptService("SFDocuments.FormEvent", poEvent)
          ' Kinakatawan na ngayon ng oControl ang halimbawa ng klase ng FormControl na nag-trigger sa kasalukuyang kaganapan
          ' ...
      End Sub
   
      def onEvent(event: uno):
          control = CreateScriptService('SfDocuments.FormEvent', event)
   Tandaan na sa mga nakaraang halimbawa, ang prefix "SFDocuments." maaaring tanggalin.
Ang FormEvent ang serbisyo ay eksklusibong ginagamit upang lumikha ng mga pagkakataon ng SFDocuments.Form at SFDocuments.FormControl mga serbisyo kapag naganap ang isang form o kontrol na kaganapan.
Ang FormControl ang serbisyo ay magagamit para sa mga sumusunod na uri ng kontrol:
| Button | GroupBox | PatternField | 
| Pangalan | Readonly | Type | Naaangkop sa | Mga nilalaman | 
|---|---|---|---|---|
| Action | Hindi | String | Button | Tinutukoy ang pagkilos na na-trigger kapag na-click ang button. Ang mga tinatanggap na halaga ay: wala , submitForm , resetForm , refreshForm , moveToFirst , moveToLast , moveToNext , moveToPrev , saveRecord , ilipatToNew , deleteRecord , i-undoRecord . | 
| Caption | Hindi | String | Button, CheckBox, FixedText, GroupBox, RadioButton | Tinutukoy ang tekstong ipinapakita ng kontrol. | 
| ControlSource | Mayroon | String | CheckBox, ComboBox, CurrencyField, DateField, FormattedField, ImageControl, ListBox, NumericField, PatternField, RadioButton, TextField, TimeField | Tinutukoy ang field ng rowset na nakamapa sa kasalukuyang kontrol. | 
| ControlType | Mayroon | String | Lahat | Isa sa mga uri ng kontrol na nakalista sa itaas. | 
| Default | Hindi | Boolean | Button | Tinutukoy kung ang command button ay ang default na OK button. | 
| DefaultValue | Hindi | Variant | CheckBox, ComboBox, CurrencyField, DateField, FileControl, FormattedField, ListBox, NumericField, PatternField, RadioButton, SpinButton, TextField, TimeField | Tinutukoy ang default na halaga na ginamit upang simulan ang isang kontrol sa isang bagong tala. | 
| Enabled | Hindi | Boolean | Lahat (maliban sa HiddenControl) | Tinutukoy kung ang kontrol ay naa-access gamit ang cursor. | 
| Format | Hindi | String | DateField, TimeField, FormattedField (read-only) | Tinutukoy ang format na ginamit upang ipakita ang mga petsa at oras. Ito ay dapat na isa sa mga sumusunod na string: Para sa mga petsa: "Standard (maikli)", "Standard (short YY)", "Standard (short YYYY)", "Standard (mahaba)", "DD/MM/YY", "MM/DD/YY", " YY/MM/DD", "DD/MM/YYYY", "MM/DD/YYYY" , "YYYY/MM/DD", "YY-MM-DD", "YYYY-MM-DD". Para sa mga oras: "24h short", "24h long", "12h short", "12h long". | 
| ListCount | Mayroon | Long | ComboBox, ListBox | Ibinabalik ang bilang ng mga row sa isang ListBox o isang ComboBox. | 
| ListIndex | Hindi | Long | ComboBox, ListBox | Tinutukoy kung aling item ang pipiliin sa isang ListBox o ComboBox. Sa kaso ng maraming pagpili, ang index ng unang item ay ibinalik o isang item lamang ang nakatakda. | 
| ListSource | Hindi | Variant | ComboBox, ListBox | Tinutukoy ang data na nilalaman sa isang ComboBox o isang ListBox bilang isang zero-based na hanay ng mga string value. Pinagsama sa ListSourceType , ay maaari ring maglaman ng pangalan ng isang talahanayan, isang query o isang kumpleto SQL pahayag. | 
| ListSourceType | Hindi | Integer | ComboBox, ListBox | Tinutukoy ang uri ng data na nasa isang combobox o isang listbox. Dapat isa ito sa com.sun.star.form.ListSourceType.* mga pare-pareho. | 
| Locked | Hindi | Boolean | ComboBox, CurrencyField, DateField, FileControl, FormattedField, ImageControl, ListBox, NumericField, PatternField, TextField, TimeField | Tinutukoy kung ang kontrol ay read-only. | 
| MultiSelect | Hindi | Boolean | ListBox | Tinutukoy kung ang user ay makakapili ng maraming item sa isang listbox. | 
| Name | Mayroon | String | Lahat | Ang pangalan ng kontrol. | 
| Parent | Mayroon | Object | Lahat | Depende sa uri ng magulang, ang isang form, isang subform o isang tablecontrol, ay nagbabalik sa magulang Mga SFDocuments . Form o Mga SFDocuments . FormControl halimbawa ng object ng klase. | 
| Picture | Hindi | String | Button, ImageButton, ImageControl | Tinutukoy ang pangalan ng file na naglalaman ng bitmap o iba pang uri ng graphic na ipapakita sa control. Ang filename ay dapat sumunod sa FileNaming katangian ng ScriptForge.FileSystem serbisyo. | 
| Required | Hindi | Boolean | CheckBox, ComboBox, CurrencyField, DateField, ListBox, NumericField, PatternField, RadioButton, SpinButton, TextField, TimeField | Ang isang kontrol ay sinasabing kinakailangan kapag ang pinagbabatayan ng data ay hindi dapat maglaman ng a null halaga. | 
| Text | Mayroon | String | ComboBox, DateField, FileControl, FormattedField, PatternField, TextField, TimeField | Nagbibigay ng access sa text na ipinapakita ng control. | 
| TipText | Hindi | String | Lahat (maliban sa HiddenControl) | Tinutukoy ang text na lalabas bilang tooltip kapag nag-hover ka ng mouse pointer sa ibabaw ng control. | 
| TripleState | Hindi | Boolean | CheckBox | Tinutukoy kung ang kontrol ng checkbox ay maaaring mukhang dimmed (kulay abo) o hindi. | 
| Value | Hindi | Variant | Nakadepende ang property na ito sa kasalukuyang uri ng kontrol. Sumangguni sa Ang Halaga ari-arian para sa karagdagang impormasyon. | |
| Visible | Hindi | Boolean | Lahat (maliban sa HiddenControl) | Tinutukoy kung nakatago o nakikita ang kontrol. | 
| XControlModel | Mayroon | UNO | Lahat | Ang UNO object na kumakatawan sa control model. Sumangguni sa XControlModel at UnoControlModel sa dokumentasyon ng API para sa higit pang impormasyon. | 
| XControlView | Mayroon | UNO | Lahat | Ang UNO object na kumakatawan sa control view. Sumangguni sa XControl at UnoControl sa dokumentasyon ng API para sa higit pang impormasyon. | 
| Uri ng kontrol | Type | Mga nilalaman | 
|---|---|---|
| Button | Boolean | Naaangkop sa mga toggle button lang. | 
| CheckBox | Boolean o Integer | 0, Mali: hindi nasuri | 
| ComboBox | String | Ang napiling halaga, bilang isang String. Ang ListIndex Ang property ay isang alternatibong opsyon para ma-access ang index ng napiling value. | 
| CurrencyField | Numeric | |
| DateField | Date | |
| FileControl | String | Isang pangalan ng file na na-format alinsunod sa FileNaming ari-arian ng ScriptForge.FileSystem serbisyo | 
| FormattedField | String o Numeric | |
| HiddenControl | String | |
| ListBox | String o hanay ng mga string | Ang napiling (mga) hilera bilang isang string o hanay ng mga string. Isang value lang ang maaaring itakda. Kung naka-link ang kahon sa isang database, nakukuha o itinatakda ng property na ito ang pinagbabatayan na data. Kung hindi, nakukuha o itinatakda nito ang data na ipinapakita. | 
| NumericField | Numeric | |
| PatternField | String | |
| RadioButton | Boolean | Ang bawat pindutan ay may sariling pangalan. Ang maramihang mga kontrol ng RadioButton ay naka-link nang magkasama kapag pareho ang pangalan ng grupo nila. Kung ang isang RadioButton ay nakatakda sa totoo , ang iba pang mga kaugnay na button ay awtomatikong nakatakda sa Mali | 
| ScrollBar | Numeric | Dapat nasa loob ng paunang natukoy na mga hangganan | 
| SpinButton | Numeric | Dapat nasa loob ng paunang natukoy na mga hangganan | 
| TextField | String | Ang text na lumalabas sa field | 
| TimeField | Date | 
Ang mga property sa ibaba ay nagbabalik o nagtatakda ng mga string ng URI na tumutukoy sa script na na-trigger ng kaganapan.
| Pangalan | ReadOnly | Paglalarawan na may label sa Basic IDE | 
|---|---|---|
| OnActionPerformed | Hindi | Magsagawa ng aksyon | 
| OnAdjustmentValueChanged | Hindi | Habang nag-aayos | 
| OnApproveAction | Hindi | Aprubahan ang pagkilos | 
| OnApproveReset | Hindi | Bago i-reset | 
| OnApproveUpdate | Hindi | Bago mag-update | 
| OnChanged | Hindi | Nagbago | 
| OnErrorOccurred | Hindi | Nagkaroon ng error | 
| OnFocusGained | Hindi | Kapag tumatanggap ng focus | 
| OnFocusLost | Hindi | Kapag nawawalan ng focus | 
| OnItemStateChanged | Hindi | Nabago ang status ng item | 
| OnKeyPressed | Hindi | Pinindot ang susi | 
| OnKeyReleased | Hindi | Inilabas ang susi | 
| OnMouseDragged | Hindi | Gumalaw ang mouse habang pinindot ang key | 
| OnMouseEntered | Hindi | Mouse sa loob | 
| OnMouseExited | Hindi | Mouse sa labas | 
| OnMouseMoved | Hindi | Gumalaw ang mouse | 
| OnMousePressed | Hindi | Pinindot ang mouse button | 
| OnMouseReleased | Hindi | Nabitawan ang mouse button | 
| OnResetted | Hindi | Pagkatapos i-reset | 
| OnTextChanged | Hindi | Binago ang teksto | 
| OnUpdated | Hindi | Pagkatapos mag-update | 
Upang matuto nang higit pa tungkol sa mga string ng URI, sumangguni sa Pagtutukoy ng URI Framework ng Scripting .
| Listahan ng Mga Paraan sa Serbisyo ng FormControl | |
|---|---|
Ang paraang ito ay naaangkop lamang sa mga kontrol ng TableControl uri. Ang ibinalik na halaga ay depende sa ibinigay na mga argumento.
Kung ang opsyonal na argumento controlname ay wala, pagkatapos ay isang zero-based na Array na naglalaman ng mga pangalan ng lahat ng mga kontrol ay ibabalik.
Sa kabilang banda, kung a controlname ay ibinigay, ang paraan ay nagbabalik a FormControl halimbawa ng klase na naaayon sa tinukoy na kontrol.
svc.Controls(): str[0..*]
svc.Controls(controlname: str): svc
controlname : Isang wastong pangalan ng kontrol bilang isang case-sensitive na string. Kung wala, ang listahan ng mga control name ay ibabalik bilang zero-based array.
      Dim myGrid As Object, myList As Variant, myControl As Object
      Set myGrid = myForm.Controls("myTableControl") ' SFDocuments.FormControl
      ' Nagbabalik ng Array na may mga pangalan ng lahat ng mga kontrol sa "myTableControl"
      myList = myGrid.Controls()
      ' Nagbabalik ng FormControl class instance na tumutugma sa "myCheckBox"
      Set myControl = myGrid.Controls("myCheckBox")
   Gamit ang Python:
      grid = form.Controls('myTableControl')  # SFDocuments.FormControl
      control_names = form.Controls()
      control = grid.Controls('myCheckBox')  # SFDocuments.FormControl
   Itinatakda ang focus sa control. Nagbabalik totoo kung matagumpay ang pagtutok.
Ang pamamaraang ito ay madalas na tinatawag mula sa isang form o control event.
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()
   Nasa ibaba ang dalawang halimbawa na naglalarawan ng paggamit ng FormControl serbisyo.
Ang unang halimbawa ay nagbabasa ng kasalukuyang halaga sa isang ComboBox na naglalaman ng mga pangalan ng lungsod at isinusulat ito sa isang FixedTest na kontrol sa isang Form:
     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-like na pamamaraan
     doc = CreateScriptService('SFDocuments.Document', bas.ThisDatabaseDocument)
     form = doc.Forms('formDocumentName', 'formName')
     lbl_city = form.Controls('labelCity')
     combo_city = form.Controls('comboboxCity')
     lbl_city.Caption = "Napiling lungsod: " + combo_city.Value
   Maaaring gamitin ang sumusunod na snippet ng code upang iproseso ang mga kontrol ng RadioButton na may parehong pangalan ng grupo. Sa halimbawang ito, ipagpalagay na mayroong tatlong radio button na may mga pangalan optA , optB at optC at nais naming ipakita ang caption ng napiling kontrol.
     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 "Napiling opsyon: " & optControl.Caption
             Exit For
         End If
     Next opt
   
     bas = CreateScriptService('ScriptForge.Basic') # Basic-like na pamamaraan
     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('Napiling opsyon: ' + control.Caption)
           break