ເນື້ອໃນ

# ບໍລິການ SFDocuments.FormControl

ບໍລິການ FormControl ໃຫ້ການເຂົ້າເຖິງຕົວຄວບຄຸມ (controls) ທີ່ເປັນຂອງຟອມ, ຟອມຍ່ອຍ ຫຼື ຕົວຄວບຄຸມຕາຕະລາງຂອງ FormDocument. ແຕ່ລະອິນສະແຕນຊ໌ຂອງບໍລິການ FormControl ຈະອ້າງອີງເຖິງຕົວຄວບຄຸມດຽວໃນຟອມ. ບໍລິການນີ້ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສາມາດ:

- ເອົາຄ່າ ແລະ ກຳນົດຄຸນສົມບັດຂອງຕົວຄວບຄຸມທີ່ສະແດງໂດຍອິນສະແຕນຊ໌ FormControl.

- ເຂົ້າເຖິງຄ່າປັດຈຸບັນທີ່ສະແດງໂດຍຕົວຄວບຄຸມ.

- ກຳນົດໂຟກັດໃຫ້ກັບຕົວຄວບຄຸມທີ່ຕ້ອງການ.

ເພື່ອໃຊ້ບໍລິການ FormControl ໃນຟອມ, ຟອມຍ່ອຍ ຫຼື ຕົວຄວບຄຸມຕາຕະລາງໃດໜຶ່ງ, ທຸກໆຕົວຄວບຄຸມຕ້ອງມີຊື່ທີ່ບໍ່ຊ້ຳກັນ.

ປຸ່ມເລືອກ (Radio buttons) ທີ່ໃຊ້ຊື່ກຸ່ມດຽວກັນ ກໍຕ້ອງມີຊື່ຕົວຄວບຄຸມທີ່ບໍ່ຊ້ຳກັນນຳອີກ.

ຈຸດປະສົງຫຼັກຂອງບໍລິການ FormControl ແມ່ນການກຳນົດ ແລະ ການເອົາຄ່າຄຸນສົມບັດ ແລະ ຄ່າຕ່າງໆທີ່ສະແດງໂດຍຕົວຄວບຄຸມໃນຟອມ.

ທຸກໆຕົວຄວບຄຸມມີຄຸນສົມບັດ Value. ເຖິງຢ່າງໃດກໍຕາມ, ເນື້ອໃນຂອງມັນຈະແຕກຕ່າງກັນໄປຕາມປະເພດຂອງຕົວຄວບຄຸມ. ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ໃຫ້ອ່ານ ຄຸນສົມບັດ Value ຢູ່ດ້ານລຸ່ມນີ້.

ນອກຈາກນັ້ນ ຍັງສາມາດຈັດຮູບແບບຕົວຄວບຄຸມຜ່ານຄຸນສົມບັດ XControlModel ແລະ XControlView ໄດ້ນຳອີກ.

ບໍລິການ SFDocuments.FormControl ແມ່ນມີຄວາມກ່ຽວຂ້ອງຢ່າງໃກ້ຊິດກັບບໍລິການ SFDocuments.Form.

## ການເອີ້ນໃຊ້ບໍລິການ

ກ່ອນທີ່ຈະໃຊ້ບໍລິການ FormControl, ຫ້ອງສະໝຸດ ScriptForge ຈຳເປັນຕ້ອງໄດ້ຖືກໂຫລດ ຫຼື ນຳເຂົ້າກ່ອນ:

• ມາໂຄຣ Basic ຕ້ອງມີການໂຫຼດຄັງສຳນວນ ScriptForge ໂດຍໃຊ້ຄຳສັ່ງດັ່ງນີ້:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• ສະຄຣິບ Python ຕ້ອງມີການນຳເຂົ້າຈາກໂມດູນ scriptforge:
from scriptforge import CreateScriptService

ບໍລິການ FormControl ຖືກເອີ້ນໃຊ້ຈາກອິນສະແຕນຊ໌ບໍລິການ Form ທີ່ມີຢູ່ແລ້ວຜ່ານເມັດທອດ Controls ຂອງມັນ.

          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

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

ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບວິທີການເປີດ FormDocument ແລະ ເຂົ້າເຖິງຟອມຕ່າງໆຂອງມັນ, ໃຫ້ອ້າງອີງເຖິງໜ້າຊ່ວຍເຫຼືອຂອງບໍລິການ SFDocuments.Form.

ອີກທາງເລືອກໜຶ່ງ, ອິນສະແຕນຊ໌ FormControl ສາມາດເອົາມາໄດ້ຜ່ານບໍລິການ SFDocuments.FormEvent ເຊິ່ງຈະສົ່ງຄືນອິນສະແຕນຊ໌ຄລາດ SFDocuments.FormControl ທີ່ເປັນຕົວກະຕຸ້ນໃຫ້ເກີດເຫດການນັ້ນ.

          Sub OnEvent(ByRef poEvent As Object)
              Dim oControl As Object
              Set oControl = CreateScriptService("SFDocuments.FormEvent", poEvent)
              ' ຕອນນີ້ oControl ຈະສະແດງເຖິງອິນສະແຕນຊ໌ຂອງຄລາດ FormControl ທີ່ເປັນຕົວກະຕຸ້ນໃຫ້ເກີດເຫດການປັດຈຸບັນ
              ' ...
          End Sub

##### ໃນ Python

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

ໃຫ້ສັງເກດວ່າໃນຕົວຢ່າງກ່ອນໜ້ານີ້, ຄຳນຳໜ້າ "SFDocuments." ອາດຈະຖືກລະເວັ້ນໄດ້.

ບໍລິການ FormEvent ຖືກນຳໃຊ້ສະເພາະເພື່ອສ້າງອິນສະແຕນຊ໌ຂອງບໍລິການ SFDocuments.Form ແລະ SFDocuments.FormControl ເມື່ອມີເຫດການຂອງຟອມ ຫຼື ຕົວຄວບຄຸມເກີດຂຶ້ນ.

## ປະເພດຕົວຄວບຄຸມ

ບໍລິການ FormControl ສາມາດໃຊ້ໄດ້ກັບປະເພດຕົວຄວບຄຸມຕໍ່ໄປນີ້:

Button CheckBox ComboBox CurrencyField DateField FileControl FixedText FormattedField | GroupBox HiddenControl ImageButton ImageControl ListBox NavigationBar NumericField | PatternField RadioButton ScrollBar SpinButton TableControl TextField TimeField

## ຄຸນສົມບັດ

ຊື່ | ອ່ານຢ່າງດຽວ | ປະເພດ | ໃຊ້ໄດ້ກັບ | ຄຳອະທິບາຍ
--- | --- | --- | --- | ---
Action | ບໍ່ | String | Button | ລະບຸການດຳເນີນການທີ່ຈະຖືກກະຕຸ້ນເມື່ອມີການຄລິກປຸ່ມ. ຄ່າທີ່ຍອມຮັບໄດ້ຄື: none, submitForm, resetForm, refreshForm, moveToFirst, moveToLast, moveToNext, moveToPrev, saveRecord, moveToNew, deleteRecord, undoRecord.
Caption | ບໍ່ | String | Button, CheckBox, FixedText, GroupBox, RadioButton | ລະບຸຂໍ້ຄວາມທີ່ສະແດງໂດຍຕົວຄວບຄຸມ.
ControlSource | ແມ່ນ | String | CheckBox, ComboBox, CurrencyField, DateField, FormattedField, ImageControl, ListBox, NumericField, PatternField, RadioButton, TextField, TimeField | ລະບຸຟິລ rowset ທີ່ເຊື່ອມໂຍງກັບຕົວຄວບຄຸມປັດຈຸບັນ.
ControlType | ແມ່ນ | String | ທັງໝົດ | ໜຶ່ງໃນປະເພດຕົວຄວບຄຸມທີ່ລະບຸໄວ້ດ້ານເທິງ.
Default | ບໍ່ | Boolean | Button | ລະບຸວ່າປຸ່ມຄຳສັ່ງເປັນປຸ່ມ OK ເລີ່ມຕົ້ນ ຫຼື ບໍ່.
DefaultValue | ບໍ່ | Variant | CheckBox, ComboBox, CurrencyField, DateField, FileControl, FormattedField, ListBox, NumericField, PatternField, RadioButton, SpinButton, TextField, TimeField | ລະບຸຄ່າເລີ່ມຕົ້ນທີ່ໃຊ້ເພື່ອຕັ້ງຄ່າຕົວຄວບຄຸມໃນຂໍ້ມູນບັນທຶກໃໝ່.
Enabled | ບໍ່ | Boolean | ທັງໝົດ (ຍົກເວັ້ນ HiddenControl) | ລະບຸວ່າຕົວຄວບຄຸມສາມາດເຂົ້າເຖິງໄດ້ດ້ວຍຕົວຊີ້ (cursor) ຫຼື ບໍ່.
Format | ບໍ່ | String | DateField, TimeField, FormattedField (read-only) | ລະບຸຮູບແບບທີ່ໃຊ້ເພື່ອສະແດງວັນທີ ແລະ ເວລາ. ມັນຕ້ອງເປັນໜຶ່ງໃນສະຕຣິງຕໍ່ໄປນີ້: ສຳລັບວັນທີ: "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". ສຳລັບເວລາ: "24h short", "24h long", "12h short", "12h long".
ListCount | ແມ່ນ | Long | ComboBox, ListBox | ສົ່ງຄືນຈຳນວນແຖວໃນ ListBox ຫຼື ComboBox.
ListIndex | ບໍ່ | Long | ComboBox, ListBox | ລະບຸວ່າລາຍການໃດຖືກເລືອກໃນ ListBox ຫຼື ComboBox. ໃນກໍລະນີທີ່ມີການເລືອກຫຼາຍລາຍການ, ອິນເດັກຂອງລາຍການທຳອິດຈະຖືກສົ່ງຄືນ ຫຼື ມີພຽງແຕ່ລາຍການດຽວເທົ່ານັ້ນທີ່ຈະຖືກກຳນົດຄ່າ.
ListSource | ບໍ່ | Variant | ComboBox, ListBox | ລະບຸຂໍ້ມູນທີ່ມີຢູ່ໃນ ComboBox ຫຼື ListBox ເປັນອາເຣຂອງຄ່າສະຕຣິງທີ່ເລີ່ມຕົ້ນດ້ວຍສູນ. ເມື່ອໃຊ້ຮ່ວມກັບ ListSourceType, ອາດຈະລວມເຖິງຊື່ຂອງຕາຕະລາງ, ຄຳຖາມ (query) ຫຼື ຄຳສັ່ງ SQL ທີ່ສົມບູນນຳອີກ.
ListSourceType | ບໍ່ | Integer | ComboBox, ListBox | ລະບຸປະເພດຂອງຂໍ້ມູນທີ່ມີຢູ່ໃນ combobox ຫຼື listbox. ມັນຕ້ອງເປັນໜຶ່ງໃນຄ່າຄົງທີ່ຂອງ com.sun.star.form.ListSourceType.*.
Locked | ບໍ່ | Boolean | ComboBox, CurrencyField, DateField, FileControl, FormattedField, ImageControl, ListBox, NumericField, PatternField, TextField, TimeField | ລະບຸວ່າຕົວຄວບຄຸມເປັນແບບອ່ານຢ່າງດຽວ ຫຼື ບໍ່.
MultiSelect | ບໍ່ | Boolean | ListBox | ລະບຸວ່າຜູ້ໃຊ້ສາມາດເລືອກໄດ້ຫຼາຍລາຍການໃນ listbox ຫຼື ບໍ່.
Name | ແມ່ນ | String | ທັງໝົດ | ຊື່ຂອງຕົວຄວບຄຸມ.
Parent | ແມ່ນ | Object | ທັງໝົດ | ຂຶ້ນກັບປະເພດຂອງພາເຣັ້ນ (parent), ເຊິ່ງເປັນໄດ້ທັງຟອມ, ຟອມຍ່ອຍ ຫຼື ຕົວຄວບຄຸມຕາຕະລາງ, ຈະສົ່ງຄືນອິນສະແຕນຊ໌ວັດຖຸຄລາດພາເຣັ້ນ SFDocuments.Form ຫຼື SFDocuments.FormControl.
Picture | ບໍ່ | String | Button, ImageButton, ImageControl | ລະບຸຊື່ໄຟລ໌ທີ່ມີບິດແມັບ (bitmap) ຫຼື ກຣາຟິກປະເພດອື່ນໆທີ່ຈະສະແດງໃນຕົວຄວບຄຸມ. ຊື່ໄຟລ໌ຕ້ອງສອດຄ່ອງກັບແອດທຣິບິວ FileNaming ຂອງບໍລິການ ScriptForge.FileSystem.
Required | ບໍ່ | Boolean | CheckBox, ComboBox, CurrencyField, DateField, ListBox, NumericField, PatternField, RadioButton, SpinButton, TextField, TimeField | ຕົວຄວບຄຸມຈະຖືກຖືວ່າຈຳເປັນ (required) ເມື່ອຂໍ້ມູນພື້ນຖານຕ້ອງບໍ່ມີຄ່າເປັນ null.
Text | ແມ່ນ | String | ComboBox, DateField, FileControl, FormattedField, PatternField, TextField, TimeField | ໃຫ້ການເຂົ້າເຖິງຂໍ້ຄວາມທີ່ພວມສະແດງໂດຍຕົວຄວບຄຸມ.
TipText | ບໍ່ | String | ທັງໝົດ (ຍົກເວັ້ນ HiddenControl) | ລະບຸຂໍ້ຄວາມທີ່ຈະປະກົດຂຶ້ນເປັນຄຳແນະນຳ (tooltip) ເມື່ອທ່ານວາງເມົາສ໌ໄວ້ເທິງຕົວຄວບຄຸມ.
TripleState | ບໍ່ | Boolean | CheckBox | ລະບຸວ່າຕົວຄວບຄຸມຊ່ອງໝາຍ (checkbox) ອາດຈະປະກົດເປັນສີມົວ (grayed) ຫຼື ບໍ່.
Value | ບໍ່ | Variant |  | ຄຸນສົມບັດນີ້ແມ່ນຂຶ້ນກັບປະເພດຕົວຄວບຄຸມປັດຈຸບັນ. ໃຫ້ອ້າງອີງເຖິງ ຄຸນສົມບັດ Value ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ.
Visible | ບໍ່ | Boolean | ທັງໝົດ (ຍົກເວັ້ນ HiddenControl) | ລະບຸວ່າຕົວຄວບຄຸມຖືກເຊື່ອງໄວ້ ຫຼື ສະແດງໃຫ້ເຫັນ.
XControlModel | ແມ່ນ | ວັດຖຸ UNO | ທັງໝົດ | ວັດຖຸ UNO ທີ່ສະແດງເຖິງຕົວແບບການຄວບຄຸມ (control model). ໃຫ້ອ້າງອີງເຖິງ XControlModel ແລະ UnoControlModel ໃນເອກະສານ API ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ.
XControlView | ແມ່ນ | ວັດຖຸ UNO | ທັງໝົດ | ວັດຖຸ UNO ທີ່ສະແດງເຖິງມຸມມອງການຄວບຄຸມ (control view). ໃຫ້ອ້າງອີງເຖິງ XControl ແລະ UnoControl ໃນເອກະສານ API ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ.

## ຄຸນສົມບັດ Value

ປະເພດຕົວຄວບຄຸມ | ປະເພດ | ຄຳອະທິບາຍ
--- | --- | ---
Button | Boolean | ໃຊ້ໄດ້ກັບປຸ່ມສະຫຼັບ (toggle buttons) ເທົ່ານັ້ນ.
CheckBox | ບູລີນ ຫຼື ຈຳນວນຖ້ວນ | 0, False: ບໍ່ໄດ້ໝາຍ 1, True: ໝາຍແລ້ວ 2: ເປັນສີມົວ, ບໍ່ຮູ້ (ໃຊ້ໄດ້ຖ້າ TripleState ເປັນ True)
ComboBox | String | ຄ່າທີ່ຖືກເລືອກ, ໃນຮູບແບບສະຕຣິງ. ຄຸນສົມບັດ ListIndex ເປັນອີກທາງເລືອກໜຶ່ງໃນການເຂົ້າເຖິງອິນເດັກຂອງຄ່າທີ່ຖືກເລືອກ.
CurrencyField | ຕົວເລກ |
DateField | Date |
FileControl | String | ຊື່ໄຟລ໌ທີ່ຖືກຈັດຮູບແບບໃຫ້ສອດຄ່ອງກັບຄຸນສົມບັດ FileNaming ຂອງບໍລິການ ScriptForge.FileSystem
FormattedField | ສະຕຣິງ ຫຼື ຕົວເລກ |
HiddenControl | String |
ListBox | ສະຕຣິງ ຫຼື ອາເຣຂອງສະຕຣິງ | ແຖວທີ່ຖືກເລືອກ ໃນຮູບແບບສະຕຣິງດຽວ ຫຼື ອາເຣຂອງສະຕຣິງ. ສາມາດກຳນົດໄດ້ພຽງແຕ່ຄ່າດຽວເທົ່ານັ້ນ. ຖ້າກ່ອງນັ້ນເຊື່ອມໂຍງກັບຖານຂໍ້ມູນ, ຄຸນສົມບັດນີ້ຈະເອົາຄ່າ ຫຼື ກຳນົດຄ່າຂໍ້ມູນພື້ນຖານ. ຖ້າບໍ່ດັ່ງນັ້ນ ມັນຈະເອົາຄ່າ ຫຼື ກຳນົດຄ່າຂໍ້ມູນທີ່ພວມສະແດງຢູ່.
NumericField | ຕົວເລກ |
PatternField | String |
RadioButton | Boolean | ແຕ່ລະປຸ່ມມີຊື່ເປັນຂອງຕົນເອງ. ຕົວຄວບຄຸມ RadioButton ຫຼາຍອັນຈະຖືກເຊື່ອມໂຍງເຂົ້າກັນເມື່ອພວກມັນໃຊ້ຊື່ກຸ່ມດຽວກັນ. ຖ້າ RadioButton ອັນໜຶ່ງຖືກກຳນົດເປັນ True, ປຸ່ມອື່ນໆທີ່ກ່ຽວຂ້ອງຈະຖືກກຳນົດເປັນ False ໂດຍອັດຕະໂນມັດ.
ScrollBar | ຕົວເລກ | ຕ້ອງຢູ່ໃນຂອບເຂດທີ່ກຳນົດໄວ້ລ່ວງໜ້າ
SpinButton | ຕົວເລກ | ຕ້ອງຢູ່ໃນຂອບເຂດທີ່ກຳນົດໄວ້ລ່ວງໜ້າ
TextField | String | ຂໍ້ຄວາມທີ່ປະກົດຢູ່ໃນຟິລ
TimeField | Date |

## ຄຸນສົມບັດເຫດການ

ຄຸນສົມບັດດ້ານລຸ່ມນີ້ຈະສົ່ງຄືນ ຫຼື ກຳນົດສະຕຣິງ URI ທີ່ລະບຸສະຄຣິບທີ່ຈະຖືກກະຕຸ້ນໂດຍເຫດການ.

ຊື່ | ອ່ານຢ່າງດຽວ | ຄຳອະທິບາຍຕາມທີ່ຕິດສະຫລາກໄວ້ໃນ Basic IDE
--- | --- | ---
OnActionPerformed | ບໍ່ | ປະຕິບັດການ (Execute action)
OnAdjustmentValueChanged | ບໍ່ | ໃນຂະນະທີ່ພວມປັບປຸງ
OnApproveAction | ບໍ່ | ອະນຸມັດການດຳເນີນການ (Approve action)
OnApproveReset | ບໍ່ | ກ່ອນການຣີເຊັດ
OnApproveUpdate | ບໍ່ | ກ່ອນການອັບເດດ
OnChanged | ບໍ່ | ປ່ຽນແປງແລ້ວ
OnErrorOccurred | ບໍ່ | ເກີດຂໍ້ຜິດພາດຂຶ້ນ
OnFocusGained | ບໍ່ | ເມື່ອໄດ້ຮັບໂຟກັດ
OnFocusLost | ບໍ່ | ເມື່ອເສຍໂຟກັດ
OnItemStateChanged | ບໍ່ | ສະຖານະລາຍການປ່ຽນແປງແລ້ວ
OnKeyPressed | ບໍ່ | ກົດປຸ່ມພິມ
OnKeyReleased | ບໍ່ | ປ່ອຍປຸ່ມພິມ
OnMouseDragged | ບໍ່ | ເມົາສ໌ເຄື່ອນທີ່ໃນຂະນະທີ່ກົດປຸ່ມພິມ
OnMouseEntered | ບໍ່ | ເມົາສ໌ຢູ່ທາງໃນ
OnMouseExited | ບໍ່ | ເມົາສ໌ຢູ່ທາງນອກ
OnMouseMoved | ບໍ່ | ເມົາສ໌ເຄື່ອນທີ່
OnMousePressed | ບໍ່ | ກົດປຸ່ມເມົາສ໌
OnMouseReleased | ບໍ່ | ປ່ອຍປຸ່ມເມົາສ໌
OnResetted | ບໍ່ | ຫຼັງຈາກຣີເຊັດແລ້ວ
OnTextChanged | ບໍ່ | ຂໍ້ຄວາມຖືກແກ້ໄຂແລ້ວ
OnUpdated | ບໍ່ | ຫຼັງຈາກອັບເດດແລ້ວ

ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບສະຕຣິງ URI, ໃຫ້ອ້າງອີງເຖິງ ຂໍ້ກຳນົດສະເພາະ URI ຂອງ Scripting Framework.

ລາຍການເມັດທອດໃນບໍລິການ FormControl
Controls | SetFocus

## Controls

ເມັດທອດນີ້ໃຊ້ໄດ້ກັບຕົວຄວບຄຸມປະເພດ TableControl ເທົ່ານັ້ນ. ຄ່າທີ່ສົ່ງຄືນແມ່ນຂຶ້ນກັບອາກິວເມັນທີ່ລະບຸໄວ້.

ຖ້າບໍ່ມີອາກິວເມັນທາງເລືອກ controlname, ອາເຣທີ່ເລີ່ມຕົ້ນດ້ວຍສູນເຊິ່ງລວມເອົາຊື່ຂອງຕົວຄວບຄຸມທັງໝົດຈະຖືກສົ່ງຄືນ.

ໃນທາງກົງກັນຂ້າມ, ຖ້າລະບຸ controlname, ເມັດທອດຈະສົ່ງຄືນອິນສະແຕນຊ໌ຄລາດ FormControl ທີ່ກົງກັບຕົວຄວບຄຸມທີ່ລະບຸ.

### ໄວຍາກອນ:

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

svc.Controls(controlname: str): svc

### ພາຣາມິເຕີ:

controlname: ຊື່ຕົວຄວບຄຸມທີ່ຖືກຕ້ອງໃນຮູບແບບສະຕຣິງທີ່ແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່ (case-sensitive). ຖ້າບໍ່ລະບຸ, ລາຍການຊື່ຕົວຄວບຄຸມຈະຖືກສົ່ງຄືນເປັນອາເຣທີ່ເລີ່ມຕົ້ນດ້ວຍສູນ (zero-based array).

### ຕົວຢ່າງ:

          Dim myGrid As Object, myList As Variant, myControl As Object
          Set myGrid = myForm.Controls("myTableControl") ' SFDocuments.FormControl
          ' ສົ່ງຄືນອາເຣທີ່ມີຊື່ຂອງຕົວຄວບຄຸມທັງໝົດໃນ "myTableControl"
          myList = myGrid.Controls()
          ' ສົ່ງຄືນອິນສະແຕນຊ໌ຄລາດ FormControl ທີ່ກົງກັບ "myCheckBox"
          Set myControl = myGrid.Controls("myCheckBox")

ການໃຊ້ Python:

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

## SetFocus

ກຳນົດໂຟກັດໃຫ້ກັບຕົວຄວບຄຸມ. ສົ່ງຄ່າກັບເປັນ True ຖ້າການກຳນົດໂຟກັດສຳເລັດ.

ເມັດທອດນີ້ມັກຈະຖືກເອີ້ນໃຊ້ຈາກເຫດການຂອງຟອມ ຫຼື ຕົວຄວບຄຸມ.

### ໄວຍາກອນ:

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

##### ໃນ Python

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

## ຕົວຢ່າງເພີ່ມເຕີມ

ດ້ານລຸ່ມນີ້ແມ່ນສອງຕົວຢ່າງທີ່ສະແດງໃຫ້ເຫັນເຖິງການນຳໃຊ້ບໍລິການ FormControl.

ຕົວຢ່າງທຳອິດຈະອ່ານຄ່າປັດຈຸບັນໃນ ComboBox ທີ່ມີຊື່ເມືອງ ແລະ ຂຽນມັນລົງໃນຕົວຄວບຄຸມ FixedText ໃນຟອມ:

         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

         bas = CreateScriptService('ScriptForge.Basic')  # ເມັດທອດທີ່ຄ້າຍກັບ Basic
         doc = CreateScriptService('SFDocuments.Document', bas.ThisDatabaseDocument)
         form = doc.Forms('formDocumentName', 'formName')
         lbl_city = form.Controls('labelCity')
         combo_city = form.Controls('comboboxCity')
         lbl_city.Caption = "Selected city: " + combo_city.Value

ສ່ວນຂອງໂຄດ (code snippet) ຕໍ່ໄປນີ້ສາມາດນຳໃຊ້ເພື່ອປະມວນຜົນຕົວຄວບຄຸມ RadioButton ທີ່ໃຊ້ຊື່ກຸ່ມດຽວກັນ. ໃນຕົວຢ່າງນີ້, ສົມມຸດວ່າມີສາມປຸ່ມເລືອກທີ່ຊື່ວ່າ optA, optB ແລະ optC ແລະ ພວກເຮົາຕ້ອງການສະແດງຄຳບັນຍາຍ (caption) ຂອງຕົວຄວບຄຸມທີ່ຖືກເລືອກ.

         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 "Selected option: " & optControl.Caption
                 Exit For
             End If
         Next opt

##### ໃນ Python

         bas = CreateScriptService('ScriptForge.Basic')  # ເມັດທອດທີ່ຄ້າຍກັບ Basic
         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('Selected option: ' + control.Caption)
               break

ຣູທີນ ຫຼື ຕົວລະບຸ Basic ຂອງ ScriptForge ທັງໝົດທີ່ຂຶ້ນຕົ້ນດ້ວຍເຄື່ອງໝາຍຂີດກ້ອງ "_" ແມ່ນສະຫງວນໄວ້ສຳລັບໃຊ້ພາຍໃນ. ພວກມັນບໍ່ໄດ້ມີໄວ້ໃຫ້ໃຊ້ໃນມາໂຄຣ Basic ຫຼື ສະຄຣິບ Python.

ຫົວຂໍ້ທີ່ກ່ຽວຂ້ອງ

ການບໍລິການ ScriptForge.Basic

ບໍລິການ SFDocuments.Form

ບໍລິການ SFDocuments.Document

ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!