SFDocuments.FormControl zerbitzua

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 zerbitzua inprimaki, azpinprimaki edo taula-kontrol batean erabiltzeko, kontrol guztiek izen bakarrak eduki behar dituzte.

warning

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.

tip

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


Zerbitzuari deitzea

FormControl zerbitzua erabiltzeko, ScriptForge liburutegia kargatu edo inportatu behar da:

note

• Basic makroak erabiltzkeo, ScriptForge liburutegia kargatu behar da honako instrukzioa erabiliz:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python scriptak erabiltzeko, berriz, scriptforge modulu baten inportazioa behar dute:
from scriptforge import CreateScriptService


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

      

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

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

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

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

note

FormEvent zerbitzua inprimaki- edo kontrol-gertaera bat gertatzen denean SFDocuments.Form eta SFDocuments.FormControl zerbitzuen instantziak sortzeko besterik ez da erabiltzen.


Kontrol motak

FormControl zerbitzua honako kontrol motekin dago erabilgarri:

Propietateak

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, 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
objektua

Dena

Kontrol-eredua ordezkatzen duen UNO objektua. Begiratu API dokumentazioaren XControlModel eta UnoControlModel informazio gehiagorako.

XControlView

Bai

UNO
objektua

Dena

Kontrol-ikuspegia ordezkatzen duen UNO objektua. Begiratu API dokumentazioaren XControl eta UnoControl informazio gehiagorako.


Value propietatea

Kontrol mota

Mota

Deskribapena

Button

Boolean

Txandakatzeko erabiltzen diren botoietan soilik aplikatu daiteke.

CheckBox

Boolearra edo osokoa

0, False: markatu gabea
1, True: markatua
2: grisean, ezezaguna (aplikagarria TripleState True bada)

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


Gertaeraren propietateak

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


tip

URI kateei buruzko informazio gehiago jasotzeko, begiratu scriptgintzako lan-markoaren URI espezifikazioa.


FormControl zerbitzuaren metodoen zerrenda

Controls

SetFocus


Controls

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.

Sintaxia:

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

svc.Controls(controlname: str): svc

Parametroak:

controlname: Baliozko kontrol-izen bat, maiuskulak/minuskulak bereizten dituen kate gisa. Ez bada ematen, kontrol-izenen zerrenda zeron oinarritutako matrize gisa itzuliko da.

Adibidea:


      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
   

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

     bas = CreateScriptService('ScriptForge.Basic')
     doc = CreateScriptService('SFDocuments.Document', bas.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

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

     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
   
warning

Azpimarraren karaktere bat, "_", aurrizki gisa duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez dira Basic makroetan edo Python scriptetan erabili behar.


Emaguzu laguntza!