Słužba SFDocuments.Base

Słužba Base rjad metodow a kajkosćow skići, kotrež rjadowanje dokumentow LibreOffice Base a wobchadźenje z nimi wosnadnjeja.

Tuta słužba je wusko ze słužbu Document zwjazana, kotraž generiske metody za wobchadźenje z dokumentami LibreOffice skići, inkluziwnje dokumenty Base. Tohodla słužba Base słužbu Document rozšěrja a skićo přidatne metody, kotrež su specifiske za dokumenty Base a wužiwarjam zmóžnjeja:

tip

Čitajće Słužba Document, zo byšće wjace wo metodach a kajkosćach zhonił, kotrež dadźa so za rjadowanje dokumentow LibreOffice wužiwać.


Wuwołanje słužby

Prjedy hač so słužba Base wužiwa, dyrbi so biblioteka ScriptForge začitać abo importować:

note

• Makra Basic se 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


In Basic

Słužba Base da do na rozdźělne wašnje wuwołać. Slědowaca kodowa šlipka metodu CreateBaseDocument ze słužby UI wužiwa, zo by nowu dataju Base wutworiła.

Dźiwajće na to, zo we wšěch přikładach objekt oDoc je instanca słužby Base.


    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateBaseDocument("C:\Documents\MyFile.odb")
  

Słužba Base da so tež instancować, mjeztym zo so eksistowaca dataja Base wočinja, kaž deleka pokazane:


    Set oDoc = ui.OpenBaseDocument("C:\Documents\MyFile.odb")
  

Jeli dokument Base je hižo wočinjeny, je móžno, słužbu Base direktnje instancować:


    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  
In Python

Přikłady horjeka dadźa so takle do Python přełožić:


    from scriptforge import CreateScriptService
    ui = CreateScriptService("UI")
    doc = ui.CreateBaseDocument(r"C:\Documents\MyFile.odb")
  

    doc = ui.OpenBaseDocument(r"C:\Documents\MyFile.odb")
  

    doc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  
note

Wužiwanje dźělny znamješkowy rjećazk "SFDocument." w předchadnym přikładźe je opcionalne.


Lisćina metodow w słužbje Base

CloseFormDocument
FormDocuments
Forms
GetDatabase

IsLoaded
OpenFormDocument
OpenQuery
OpenTable

PrintOut
SetPrinter



CloseFormDocument

Začinja daty formularowy dokument. Wróći True, jeli začinjenje je wuspěšne.

warning

Metoda CloseFormDocument je zestarjena wot LibreOffice 7.6. Hačrunjež je hižo k dispoziciji, budźe so snano ze słužby Base w přichodnej wersiji wotstronjeć. Wužiwajće město toho metodu CloseDocument ze słužby FormDocument.


Syntaksa:

svc.CloseFormDocument(formdocument: str): bool

Parametry:

formdocument: Mjeno formularoweho dokumenta, kotryž so ma začinić, jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje.

Přikład:

Jeli formularowe dokumenty su w rjadowakach organizowane, je trjeba, mjeno rjadowaka zapřijeć, zo by so formularowy dokument podał, kotryž so ma wočinić, kaž je w slědowacych přikładach zwobraznjene:

In Basic

    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
In Python

    doc.CloseFormDocument('Folder1/myFormDocument')
  

FormDocuments

Wróći matriks z dospołnymi mjenami (šćežka/mjeno) wšěch formularowych dokumentow w dokumenće Base jako matriks znamješkowych rjećazkow na bazy nula.

Syntaksa:

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

Přikład:

Kodowa šlipka deleka mejna wšěch formularowych dokumentow w aktualnym dokumenće Base wudawa.

In Basic

    Dim oDoc as Object, myForms as Object, formName as String
    Set oDoc = CreateScriptService("Document", ThisDataBaseDocument)
    Set myForms = oDoc.FormDocuments()
    For Each formName In myForms
        MsgBox formName
    Next formName
  
In Python

    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisDataBaseDocument)
    myForms = doc.FormDocuments()
    for formName in myForms:
        bas.MsgBox(formName)
  
tip

Zo byšće wjace wo formularowych dokumentach zhonił, čitajće stronu pomocy słužby ScriptForge.FormDocument.


Forms

Wotwisujo wot parametrow, kotrež so k dispoziciji stajeja, so tuta metoda tole wróći:

warning

Metoda Forms je zestarjena wot LibreOffice 7.6. Hačrunjež je hižo k dispoziciji, budźe so snano ze słužby Base w přichodnej wersiji wotstronjeć. Wužiwajće město toho metodu Forms ze słužby FormDocument.


Syntaksa:

svc.Forms(formdocument: str): str[0..*]

svc.Forms(formdocument: str, form: str = ''): svc

svc.Forms(formdocument: str, form: int): svc

Parametry:

formdocument: Mjeno płaćiweho formularoweho dokumenta jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje.

form: Mjeno abo indeksowe čisło formulara, kotrež je w formularowym dokumenće składowane. Jeli tutón argument faluje, metoda lisćinu z mjenami wšěch formularow wróći, kotrež su w formularowym dokumenće k dispoziciji.

note

Hačrunjež je móžno, indeksowe čisła wužiwać, zo bychu na formulary wotkazuja, je to jenož poručene, hdyž je jenož jedyn formular w formularowym dokumenće. Jeli stej dwaj formularaj abo wjace, je lěpje, formularowe mjeno město toho wužiwać.


Přikład:

Prěnja linka slědowaceho přikłada lisćinu wšěch formularow w formularowym dokumenće "myFormDocument" wróći. Druha linka instancu słužby Form wróći, kotraž formular "myForm" reprezentuje.

In Basic

    Dim formsList as Object : formsList = oDoc.Forms("myFormDocument")
    Dim oForm as Object : oForm = oDoc.Forms("myFormDocument", "myForm")
  
In Python

    formsList = doc.Forms("myFormDocument")
    form = doc.Forms("myFormDocument", "myForm")
  

GetDatabase

Wróći instancu słužby Database, kotraž wuwjedźenje přikazow SQL w datowej bance dowoluje, kotraž je w aktualnym dokumenće Base definowana a/abo składowana.

Syntaksa:

svc.GetDatabase(user: str = '', password: str = ''): svc

Parametry:

user, password: Opcionalne přizjewjenske parametry jako znamješkowe rjećazki. Standardna hódnota za wobaj parametraj je prózdny znamješkowy rjećazk "".

Přikład:

In Basic

    Dim myDoc As Object, myDatabase As Object, ui As Object
    Set ui = CreateScriptService("UI")
    Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
    ' Wužiwar a hesło so deleka podawatej, jeli trjeba
    Set myDatabase = myDoc.GetDatabase()
    ' … Wotprašowanja wuwjesć, SQL-přikazy, …
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  
In Python

    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    # … Wotprašowanja wuwjesć, SQL-přikazy, …
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  

IsLoaded

Wróći True, jeli podaty formularowy dokument je tuchwilu wočinjeny.

Syntaksa:

svc.IsLoaded(formdocument: str): bool

Parametry:

formdocument: Mjeno za FormDocument, kotryž so ma přepruwować, jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje.

Přikład:

In Basic

    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
In Python

    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  

OpenFormDocument

Wočinja podaty FormDocument pak w normalnym pak w naćiskowym modusu. Tuta metoda słužbowu instancu FormDocument wróći, kotraž podatemu formularowemu dokumentej wotpowěduje.

Jeli formularowy dokument je hižo wočinjeny, aktiwizuje so, bjeztoho zo by so jeho modus změnił.

Jeli podaty formularowy dokument njeeksistuje, so Nothing wróći.

Syntaksa:

svc.OpenFormDocument(formdocument: str, designmode: bool = False): svc

Parametry:

formDocument: Mjeno za FormDocument, kotryž so ma wočinić, jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje.

designmode: Jeli tutón argument je True, so FormDocument w naćiskowym modusu wočini.

Přikład:

In Basic

Najwjace formularowych dokumentow so w korjenjowym zapisu dokumenta Base składuje a da so prosće z pomocu jich mjenow wočinić, kaž w slědowacym přikładźe:


    Dim oFormDoc As Object
    oFormDoc = oDoc.OpenFormDocument("myFormDocument")
  

Jeli formularowe dokumenty su w rjadowakach organizowane, dyrbi so mjeno rjadowaka zapřijeć, zo by so formularowy dokument jako wočinjeny postajił, kaž so w slědowacym přikładźe pokazuje:


    oFormDoc = oDoc.OpenFormDocument("myFolder/myFormDocument")
  
In Python

    formDoc = doc.OpenFormDocument("myFormDocument")
  

    formDoc = doc.OpenFormDocument("myFolder/myFormDocument")
  

OpenQuery

Wočinja wokno datoweho napohlada podateho wotprašowanja a wróći instancu słužby Datasheet.

Wotprašowanje da so pak w normalnym pak w naćiskowym modusu wočinić.

Jeli wotprašowanje je hižo wočinjene, so jeho wokno datoweho napohlada aktiwizuje.

note

Hdyž so dokument Base začinja, so wokno datoweho napohlada tež začini.


Syntaksa:

svc.OpenQuery(queryname: str, designmode: bool = False): obj

Parametry:

queryname: Mjeno ekstowaceho wotprašowanja jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje.

designmode: Jeli tutón argument je na True stajeny, so wotprašowanje w naćiskowym modusu wočini. Hewak so w normalnym modusu wočini (standard = false).

Přikład:

In Basic

      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
In Python

      doc.OpenQuery("MyQuery", designmode=True)
    

OpenTable

Wočinja wokno datoweho napohlada podateje tabele a wróći instancu słužby Datasheet.

Tabela da so pak w normalnym pak w naćiskowym modusu wočinić.

Jeli tabela je hižo wočinjena, so wokno datoweho napohlada aktiwizuje.

note

Hdyž so dokument Base začinja, so wokno datoweho napohlada tež začini.


Syntaksa:

svc.OpenTable(tablename: str, designmode: bool = False): obj

Parametry:

tablename: Mjeno eksistowaceje tabele jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje.

designmodus: Jeli tutón argument je na True, so tabela w naćiskowym modusu wočini. Hewak so w normalnym modusu wočini (standard = False).

Přikład:

In Basic

      oDoc.OpenTable("MyTable", DesignMode = False)
    
In Python

      doc.OpenTable("MyTable", designmode=False)
    

PrintOut

Tuta metoda wobsah dateho formularoweho dokumenta na standardny ćišćak sćele, abo na ćišćak, kotryž je přez metodu SetPrinter() definowany.

Wróći True, jeli dokument je so wuspěšnje wućišćał.

warning

Metoda PrintOut je zestarjena wot LibreOffice 7.6. Hačrunjež je hižo k dispoziciji, budźe so snano ze słužby Base w přichodnej wersiji wotstronjeć. Wužiwajće město toho metodu PrintOut ze słužby FormDocument.


Syntaksa:

svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool

Parametry:

formdocument: Płaćiwe mjeno dokumentoweho formulara jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje. Formularowy dokument dyrbi wočinjeny być. Aktiwizuje so přez metodu.

pages: Strony, kotrež so maja jako znamješkowy rjećazk ćišćeć, kaž we wužiwarskim powjerchu. Na přikład: "1-4;10;15-18". Standard je wšě strony.

copies: Ličba kopijow. Standard je 1.

Přikład:

In Basic

    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
In Python

    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  

SetPrinter

Postajće ćišćakowe nastajenja za formularowy dokument. Formularowy dokument dyrbi wočinjeny być.

Wróći True, jeli wuspěšne.

warning

Metoda SetPrinter je zestarjena wot LibreOffice 7.6. Hačrunjež je hižo k dispoziciji, budźe so snano ze słužby Base w přichodnej wersiji wotstronjeć. Wužiwajće město toho metodu SetPrinter ze słužby Document.


Syntaksa:

svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool

Parametry:

formdocument: Płaćiwe mjeno dokumentoweho formulara jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje.

printer: The name of the printer queue where to print to. When absent, the default printer is set.

orientation: Either PORTRAIT or LANDSCAPE. When absent, left unchanged with respect to the printer settings.

paperformat: Specifies the paper format as a string value that can be either A3, A4, A5, LETTER, LEGAL or TABLOID. Left unchanged when absent.

Přikład:

In Basic

    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
In Python

    doc.SetPrinter('myForm', paperformat='TABLOID')
  
warning

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!