Słužba SFDocuments.Form

Słužba Form metody a kajkosće skići, zo by formulary w dokumentach LibreOffice rjadowała. Tuta słužba formulary w dokumentach Base, Calc a Writer podpěruje a zmóžnja:

Symbol Pokiw

Słužba SFDocuments.Form je wot LibreOffice 7.2 k dispoziciji.


Formulary so zwjetša w dokumentach LibreOffice wužiwaja, zo bychu wužiwarske powjerchi wutworili, kotrež su z relacionalnymi datowymi bankami zwjazane. Tohodla słužba Form spěšny přistup k wotkazanej datowej bance ze słužbu SFDatabases-Database skići.

Symbol Pokiw

Słužba SFDocuments.Form je jara na słužbu SFDocuments.FormControl podobna.


Definicije

FormDocument

Formulary so zwjetša w dokumentach Base załožuja, ale dadźa so tež dokumentam Writer a Calc přidać.

W Base je kóždy formular, kotryž z pomocu funkcionalnosće Zasadźić – Formular abo formularoweho asistenta załožujeće, woprawdźe FormDocument, z kotrymž móžeće ze słužbu Form wobchadźeć. Dokumenty Base móža njewobmjezowanu ličbu formularowych dokumentow wobsahować.

Deleka je přikład, kotryž hierarchiju wšěch elementow, kotrež so při přistupje na formulary a podformulary w dokumenće Base zapřijimaja. Připušćmy, zo maće dataju Bases z mjenom Employees.odb a w njej sće formularowy dokument załožił, zo byšće datowej bance nowych sobudźěłaćerjow přidał. Formularowy dokument hłowny formular z mjenom EmployeeData wobsahuje, kotryž přistup k tabeli zmóžnja. Je tež podformular WorksAtPlant, kotryž wam zmóžnja, nowu sobudźěłaćerja jednomu ze zawodow předewzaća přirjadować.


    Employees.odb (dokument Base)
     |
     |-- AddEmployee (FormDocument)
          |
          |-- EmployeeData (hłowny formular)
               |
               |-- WorksAtPlant (SubForm)
  
Symbol za Notica

FormDocument hodźi so jako sadźba formularow wobhladować, kotraž přistup k datowym wobstawkam kaž tabele a wotprašowanja datoweje banki w dokumentach LibreOffice skići. K mjenam formularow a podformularow we formularowym dokumenće maće z pomocu formularoweho nawigatora přistup.


Formulary a podformulary

formularowy dokument z jednoho formulara abo wjacorych formularow wobsteji, kotrež móža ze swojeje strony wjele podformularow wobsahować. Formular je abstraktna sadźba wodźenskich elementow, kotrež su z datym datowym žórłom zwjazane, kotrež móže tabela datoweje banki, wotprašowanje abo SQL-přikaz SELECT być.

W dokumentach Calc a Writer da so kóždy formular z datowymi wobstawkami w rozdźělnych datowych bankach zwjazać. Z druheje strony je datowa banka, kotraž je w dokumenće wobsahowana, w dokumentach Base wšěm formularam zhromadna.

Symbol Pokiw

Zo byšće słužbu SFDocuments.Form wuwołał, hlejće metody Form(), FormDocuments() a OpenFormDocument() słužby SFDocuments.Document


Słužbowe wuwołanje

Před wužiwanjom słužby Form dyrbi so biblioteka ScriptForge začitać abo importować:

Symbol za Notica

• Makra Basic sej wužaduja, zo so biblioteka ScriptForge z pomocu slědowaceho přikaza začituje:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Skripty Python sej import z modula scriptforge wužaduja:
from scriptforge import CreateScriptService


W dokumentach Writer

Slědowaca kodowa šlipka pokazuje, kak móžeće přistup k formularej z mjenom Form1 dóstać, kotryž je w dataji Writer:


      Dim oDoc As Object, myForm As Object, ui as Object
      Set ui = CreateScriptService("UI")
      Set oDoc = ui.OpenDocument("/home/user/Documents/MyForm.odt")
      Set myForm = oDoc.Forms("Form1")
   
W Python

     from scriptforge import CreateScriptService
     ui = CreateScriptService('UI') 
     doc = ui.OpenDocument('/home/user/Documents/MyForm.odt')
     my_form = doc.Forms('Form1')
   

formulary dadźa so po swojich mjenach abo swojich indeksach wuwołać, kaž so deleka pokazuje:


     Set myForm = oDoc.Forms(0)
   
W Python

     my_form = doc.Forms(0)
   
Warnowanski symbol

Jeli pospytujeće, přistup k FormDocument dóstał, kotryž je tuchwilu w naćiskowym modusu wočinjeny, so wuwzaće wuwabi.


W dokumentach Calc

Formular w dataji Calc dyrbi jónkróćne mjeno w swojej tabeli měć. Tohodla sej metoda Forms dwajj argumentaj wužaduje, prěni mjeno tabele podawa a druhi mjeno formulara.


      Dim oDoc As Object, myForm As Object, ui as Object
      Set ui = CreateScriptService("UI")
      Set oDoc = ui.OpenDocument("/home/user/Documents/MyForms.ods")
      Set myForm = oDoc.Forms("Sheet1", "Form1")
   

To so na samsne wašnje z Python docpěwa:


     ui = CreateScriptService('UI')
     doc = ui.OpenDocument('/home/user/Documents/MyForms.ods')
     my_form = doc.Forms('Sheet1', 'Form1')
   

W dokumentach Base

FormDocument w dokumenće Base so po swojim mjenje wuwołuje. Slědowacy přikład formularowy dokument z mjenom thisFormDocument wočinja a ma přistup k formularej MainForm:


      Dim oDb As Object, myForm As Object
      Set oDb = CreateScriptService("SFDocuments.Document", ThisDatabaseDocument)
      ' Slědowacy přikaz je jenož trěbna, jeli formular hišće wočinjeny njeje
      oDb.OpenFormDocument("thisFormDocument")
      Set myForm = oDoc.Forms("thisFormDocument", "MainForm")
      ' Abo, jako alternatiwa, zo byšće přistup k formularej po jeho indeksu měł …
      Set myForm = oDb.Forms("thisFormDocument", 0)
   
Symbol za Notica

Zo byšće akciju na formularje z pomocu słužby Form wuwjedł, dyrbi FormDocument pak manuelnje wot wužiwarja pak jako program we wužiwarskim skripće hižo wočinjeny być. Druhe da so činić, hdyž so metoda OpenFormDocument słužby Base wuwołuje.


Zo byšće přistup k podformularej formulara měł, wužiwajće metodu SubForms. Dźiwajće na to, zo w slědowacym přikładźe mySubForm je nowa instanca słužby Form.


     Dim mySubForm As Object
     Set mySubForm = myForm.SubForms("mySubForm")
   

Předchadne přikłady so do Python takle přełožuja:


     db = CreateScriptService('SFDocuments.Document', XSCRIPTCONTEXT.getDocument())
     # Slědowacy přikaz je jenož trěbna, jeli formular hišće wočinjeny njeje
     form_doc = db.OpenFormDocument('thisFormDocument')
     form = form_doc.Forms('thisFormDocument', 'MainForm')
     # Abo, jako alternatiwa, zo byšće přistup k formularej po jeho indeksu měł …
     form = form_doc.Forms('thisFormDocument', 0)
     sub_form = form.SubForms('mySubForm')
   

W formularowych podawkach

Zo byšće słužbu Form wuwołał, hdyž so formularowy podawk wotměwa:


      Sub OnEvent(ByRef poEvent As Object)
          Dim myForm As Object
          Set myForm = CreateScriptService("SFDocuments.FormEvent", poEvent)
          '(...)
      End sub
   
W Python

     def OnEvent(event: uno):
         form = CreateScriptService('SFDocuments.FormEvent', event)
         pass
   
Symbol za Notica

Słužba FormEvent so jenož wužiwa, zo by instancy słužbow SFDocuments.Form a SFDocuments.FormControl wutworiła, hdyž so formular abo wodźenski element wotměwa.


Poruča so, resursy po wužiwanju słužby Form wuswobodźić.


     myForm.Dispose() ' Basic
   

     form.Dispose()  # Python
   

Tuta operacija so implicitnje wuwjedźe, hdyž so formularowy dokument z metodu CloseFormDocument() začinja, tak kaž so deleka wopisuje.

Kajkosće

Mjeno

Přećiwo pisanju škitany

Typ

Wopisanje

AllowDeletes

Boolean

Podawa, hač formular zmóžnja, datowe sadźby zhašeć.

AllowInserts

Boolean

Podawa, hač formular zmóžnja, datowe sadźby přidać.

AllowUpdates

Boolean

Podawa, hač formular zmóžnja, datowe sadźby aktualizować.

BaseForm

Haj

String

Podawa hierarchiske mjeno formulara Base, kotryž poprawny formular wobsahuje.

Bookmark

Variant

Podawa jednozmyslnje aktualnu datowu sadźbu, kotraž so na tabelu, wotprašowanje abo přikaz SQL formulara zepěra.

CurrentRecord

Long

Identifikuje aktualnu datowu sadźbu w datowym wobstatku, kotryž so na formularje pokazuje. Jeli linkowe čisło je pozitiwne, so kursor do datoweho linkoweho čisła nastupajo spočatk wuslědkoweje sadźby. Ličenje linkow so z 1 započina. Jeli date linkowe čisło je negatiwne, so kursor k absolutnej linkowej poziciji nastupajo kónc wuslědkoweje sadźby. Linka -1 so na poslednju linku we wuslědkowej sadźbje poćahuje.

Filter

String

Podawa dźěl datowych sadźbow, kotryž ma jako klawsla SQL WHERE bjez klučoweho słowa WHERE pokazać.

LinkChildFields

Haj

String

Podawa, kak so datowe sadźby w podrjadowanym podformularje z datowymi sadźbami w jeho nadrjadowanym formularje zwjazuja.

LinkParentFields

Haj

String

Podawa, kak so datowe sadźby w podrjadowanym podformularje z datowymi sadźbami w jeho nadrjadowanym formularje zwjazuja.

Name

Haj

String

Mjeno aktualneho formulara.

OrderBy

String

Podawa, po kotrym porjedźe maja so datowe sadźby jako klawsla SQL ORDER BY bjez klučowych słowow ORDER BY pokazać.

Parent

Haj

Object

Nadrjadowany element aktualneho formulara. Móže pak objekt SFDocuments.Form pak objekt SFDocuments.Document być.

RecordSource

String

Podawa žórło datow jako mjeno tabele, wotprašowanja abo přikaza SQL.

XForm

Haj

Objekt
UNO

Objekt UNO, kotryž interakcije z formularom reprezentuje. Hlejće XForm a DataForm w dokumentaciji API za podrobne informacije.


Podawkowe kajkosće

Slědowace kajkosće znamješkowe rjećazki URI wróćeja abo stajeja, kotrež skript definuja, kotryž je so přez podawk wuwabił.

Mjeno

Přećiwo pisanju škitany

Wopisanje Basic IDE

OnApproveCursorMove

Před změnu datoweje sadźby

OnApproveParameter

Parametry pjelnić

OnApproveReset

Před wróćostajenjom

OnApproveRowChange

Před akciju datoweje sadźby

OnApproveSubmit

Před wotpósłanjom

OnConfirmDelete

Zhašenje wobkrućić

OnCursorMoved

Po změnje datoweje sadźby

OnErrorOccurred

Zmylk je wustupił

OnLoaded

Při začitowanju

OnReloaded

Při wospjetowanym začitowanju

OnReloading

Před wospjetowanym začitowanjom

OnResetted

Po wróćostajenju

OnRowChanged

Po akciji datoweje sadźby

OnUnloaded

Při wuprózdnjenju

OnUnloading

Před wuprózdnjenjom


Symbol Pokiw

Zo byšće wjace wo znamješkowych rjećazkach URI zhonił, hlejće Scripting Framework URI Specification.


Lisćina metodow słužbje Form

Activate
Controls
GetDatabase
MoveFirst

MoveLast
MoveNext
MoveNew

MovePrevious
Requery
SubForms


Activate

Staja fokus na aktualnu instancu Form. Wróći True, jeli fokusěrowanje běše wuspěšne.

Zadźerženje metody Activate wot typa dokumenta wotwisuje, hdźež formular je:

Syntaksa:

svc.Activate(): bool

Přikład:

Slědowacy přikład wot toho wuchadźa, zo chceće formular z mjenom FormA aktiwizować, kotryž je w Sheet1 tuchwilu wočinjeneje dataje Calc. Dóstawa najprjedy přistup k dokumentej z pomocu słužby Document a ThisComponent a aktiwizuje potom formular.


     ' Dóstawa formular, kotryž so aktiwizuje
     Dim oDoc as Object, myForm as Object
     Set oDoc = CreateScriptService("Document", ThisComponent)
     

Set myForm = oDoc.Forms("Sheet1", "FormA")

' Aktiwizuje formular myForm.Activate()
W Python

     doc = CreateScriptService('Document', XSCRIPTCONTEXT.getDocument())
     form = doc.Forms('Sheet1', 'FormA')
     form.Activate()
   
Symbol za Notica

ThisComponent za dokumenty Calc a Writer płaći. Za dokumenty Base dyrbiće ThisDataBaseDocument wužiwać.


CloseFormDocument

Warnowanski symbol

Tuta metoda je zestarjena, wužiwajće metodu ScriptForge.FormDocument.CloseDocument město toho.


Začinja formularowy dokument, kotryž poprawnu instancu Form wobsahuje. Instanca Form so zaćisni.

Syntaksa:

svc.CloseFormDocument(): bool

Přikład:


      myForm.CloseFormDocument() ' Basic
   
W Python

      form.CloseFormDocument()  # Python
   

Controls

Hódnota, kotraž je so přez metodu Controls wróćiła, wot k dispoziciji stajenych argumentow wotwisuje:

Syntaksa:

svc.Controls(opt controlname: str): any

Parametry:

controlname: Płaćiwe mjeno wodźenskeho elementa jako znamješkowy rjećazk, kotryž na wulkopisanje dźiwa. Jeli faluje, so lisćina mjeno wodźenskich elementow jako matriks z bazu nula wróći.

Přikład:


      Dim myForm As Object, myList As Variant, myControl As Object
      Set myForm = myDoc.Forms("myForm")
      myList = myform.Controls()
      Set myControl = myform.Controls("myTextBox") ' SFDocuments.FormControl
   
W Python

      form = doc.Forms('myForm')
      form_names = form.Controls()
      form_control = form.Controls('myTextBox')  # SFDocuments.FormControl
   

GetDatabase

Wróći instancu SFDatabases.Database, kotraž přistup k wuwjedźenju přikazow SQL w datowej bance dawa, z kotrejž aktualny formular je zwjazany a/abo kotraž je w aktualnym dokumenće Base składowana.

Kóždy formular ma swójski zwisk datoweje banki, nimo dokumenty w Base, hdźež wšě samsny zwisk dźěla.

Syntaksa:

svc.GetDatabase(opt user: str, opt password: str): svc

Parametry:

user, password: Opcionalne přizjewjenske parametry (standard = "").

Přikład:


      Dim myDb As Object ' SFDatabases.Database
      Set myDb = oForm.GetDatabase()
   
W Python

      db = form.GetDatabase()  # SFDatabases.Database
   

MoveFirst

Formularowy kursor so na prěnjej datowej sadźbje pozicioněruje. Wróći True, jeli je wuspěšny.

Syntaksa:

svc.MoveFirst(): bool

Přikład:


      myForm.MoveFirst() ' Basic
   
W Python

      form.MoveFirst()  # Python
   

MoveLast

Formularowy kursor so na poslednjej datowej sadźbje pozicioněruje. Wróći True, jeli je wuspěšny.

Syntaksa:

svc.MoveLast(): bool

Přikład:


      myForm.MoveLast() ' Basic
   
W Python

      form.MoveLast()  # Python
   

MoveNew

Formularowy kursor so na nowym wobłuku datoweje sadźby pozicioněruje. Wróći True, jeli je wuspěšny.

Syntaksa:

svc.MoveNew(): bool

Přikład:


      myForm.MoveNew() ' Basic
   
W Python

      form.MoveNew()  # Python
   

MoveNext

Formularowy kursor so na přichodnej datowej sadźbje pozicioněruje. Wróći True, jeli je wuspěšny.

Syntaksa:

svc.MoveNext(opt offset: int): bool

Parametry:

offset: Ličba datowych sadźbow, wo kotrež so ma postupować (standard = 1).

Přikład:


      myForm.MoveNext() ' Basic
   
W Python

      form.MoveNext()  # Python
   

MovePrevious

Formularowy kursor so na prědnjej datowej sadźbje pozicioněruje. Wróći True, jeli je wuspěšny.

Syntaksa:

svc.MovePrevious(opt offset: int): bool

Parametry:

offset: Ličba datowych sadźbow, wo kotrež ma wróćo hić (standard = 1).

Přikład:


      myForm.MovePrevious() ' Basic
   

      form.MovePrevious()  # Python
   

Requery

Začituje aktualny datowy formular z datoweje banki znowa a aktualizuje formular. Kursor so na prěnjej datowej sadźbje pozicioněruje. Wróći True, jeli je wuspěšny.

Syntaksa:

svc.Requery(): bool

Přikład:


      myForm.Requery() ' Basic
   
W Python

      form.Requery()  # Python
   

Subforms

Hódnota, kotraž so přez metodu Subforms wróća, wot k dispoziciji stajenych argumentow wotwisuje:

Syntaksa:

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

svc.Subforms(subform: str): svc

svc.Subforms(subform: int): svc

Parametry:

subform: Podformular, kotryž je w aktualnej klasowej instancy form składowany, po jeho mjenje abo indeksu podaty.

Hdyž tutón argument faluje, metoda lisćinu k dispoziciji stejacych podformularow jako na nuli bazowacu matriks wróća. Jeli formular ma jednotliwy podformular, móžeće subform = 0 stajić, zo byšće přistup k njemu dóstał.

Přikład:


      Dim myForm As Object, myList As Variant, mySubform As Object
      myList = myform.Subforms()
      Set mySubform = myForm.Subforms("mySubform") ' SFDocuments.Form
   
W Python

      subform_names = form.Subforms()
     subform = form.Subforms('mySubform')  # SFDocuments.Form
   
Warnowanski symbol

Wšě rutiny Basic ScriptForge abo identifikatory, kotrež so z podsmužku „_“ započinaja, su za interne wužiwanje wuměnjene. Njejsu za to myslene, so w makrach Basic abo skriptach Python wužiwać.


Prošu podpěrajće nas!

Prošu podpěrajće nas!