Mga SFDocuments . FormControl serbisyo

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:

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.

warning

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.

tip

Ang SFDocuments.FormControl ang serbisyo ay malapit na nauugnay sa SFDocuments.Form serbisyo.


Panawagan sa serbisyo

Bago gamitin ang FormControl serbisyo ang ScriptForge kailangang i-load o i-import ang library:

note

• Ang mga pangunahing macro ay kailangang mag-load ScriptForge aklatan gamit ang sumusunod na pahayag:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Ang mga script ng Python ay nangangailangan ng pag-import mula sa scriptforge module:
mula sa scriptforge import CreateScriptService


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()
   
Sa 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 = 'Kasalukuyang Oras = ' + strftime("%a, %d %b %Y %H:%M:%S", localtime())
tip

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

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

Tandaan na sa mga nakaraang halimbawa, ang prefix "SFDocuments." maaaring tanggalin.

note

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.


Mga uri ng kontrol

Ang FormControl ang serbisyo ay magagamit para sa mga sumusunod na uri ng kontrol:

Button
CheckBox
ComboBox
CurrencyField
DateField
FileControl
FixedText
FormattedField

GroupBox
HiddenControl
ImageButton
ImageControl
ListBox
NavigationBar
NumericField

PatternField
RadioButton
ScrollBar
SpinButton
TableControl
TextField
TimeField


Mga Katangian

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
bagay

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
bagay

Lahat

Ang UNO object na kumakatawan sa control view. Sumangguni sa XControl at UnoControl sa dokumentasyon ng API para sa higit pang impormasyon.


Ang Halaga ari-arian

Uri ng kontrol

Type

Mga nilalaman

Button

Boolean

Naaangkop sa mga toggle button lang.

CheckBox

Boolean o Integer

0, Mali: hindi nasuri
1, Tama: nasuri
2: kulay abo, hindi alam (naaangkop kung TripleState ay totoo )

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


Mga katangian ng kaganapan

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


tip

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

Controls

SetFocus


Controls

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.

Syntax:

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

svc.Controls(controlname: str): svc

Mga Parameter:

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.

Halimbawa:


      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
   

SetFocus

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.

Syntax:

svc.SetFocus(): bool

Halimbawa:


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

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

Karagdagang mga halimbawa

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

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

     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
   
warning

Lahat ScriptForge Ang mga pangunahing gawain o identifier na may prefix na may underscore na character na "_" ay nakalaan para sa panloob na paggamit. Ang mga ito ay hindi nilalayong gamitin sa Basic macros o Python script.


Mangyaring suportahan kami!