Storitev SFDocuments.Base

Storitev Base ponuja številne metode in lastnosti, ki lajšajo upravljanje in ravnanje z dokumenti LibreOffice Base.

Ta storitev je tesno povezana s storitvijo Document, ki ponuja splošne metode za ravnanje z dokumenti LibreOffice, vključno z dokumenti programa Base. Zatorej storitev Base razširja storitev Document in ponuja dodatne metode, ki so specifične za dokumente programa Base, saj uporabnikom omogoča:

tip

Preberite si opis storitve Document, da izveste več o metodah in lastnostih, ki jih lahko uporabite za upravljanje dokumentov LibreOffice.


Priklic storitve

Pred uporabo storitve Base je potrebno naložiti ali uvoziti knjižnico ScriptForge:

note

• Za makre Basic mora biti naložena knjižnica ScriptForge z naslednjim ukazom:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Za skripte Python mora biti opravljen uvoz iz modula scriptforge:
from scriptforge import CreateScriptService


V Basicu

Storitev Base lahko prikličete na različne načine. Spodnji odlomek kode uporablja metodo CreateBaseDocument iz storitve UI, da ustvari novo datoteko Base.

Upoštevajte, da je v vseh primerih predmet oDoc instanca storitve Base.


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

Instanco storitve Base lahko tvorite z odpiranjem obstoječe datoteke programa Base, kot je prikazano spodaj:


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

Če je dokument programa Base že odprt, lahko instanco storitve Base tvorite neposredno:


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

Zgornje primere lahko prevedemo v Python na sledeč način:


    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

Uporaba podniza oz. predpone "SFDocuments." v prejšnjem primeru je neobvezna.


Seznam metod v storitvi Base

CloseFormDocument
FormDocuments
Forms
GetDatabase

IsLoaded
OpenFormDocument
OpenQuery
OpenTable

PrintOut
SetPrinter



CloseFormDocument

Zapre dani dokument obrazca. Vrne True, če je bilo zapiranje uspešno.

warning

Metoda CloseFormDocument je opuščena z LibreOffice 7.6. Čeprav je še vedno na voljo, bo morda odstranjena iz storitve Base v kasnejši izdaji. Namesto tega uporabite metodo CloseDocument iz storitve FormDocument.


Skladnja:

svc.CloseFormDocument(formdocument: str): bool

Parametri:

formdocument: ime dokumenta obrazca FormDocument, ki ga želite zapreti, razlikuje med velikimi in malimi črkami.

Primer:

Če so dokumenti obrazca organizirani v mapah, je potrebno vključiti ime mape, da določite dokument obrazca, ki ga želite odpreti, kot je to nakazano v naslednjih primerih:

V Basicu

    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
V Pythonu

    doc.CloseFormDocument('Folder1/myFormDocument')
  

FormDocuments

Vrne polje s polnimi imeni (pot/ime) vseh dokumentov obrazcev v dokumentu programa Base kot ničelno polje nizov.

Skladnja:

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

Primer:

Spodnji odlomek kode natisne imena vseh dokumentov obrazca v trenutnem dokumentu programa Base.

V Basicu

    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
  
V Pythonu

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

Če želite izvedeti več o dokumentih obrazca, glejte stran pomoči storitve Form.


Forms

Glede na podane parametre ta metoda vrne:

warning

Metoda Forms je opuščena z LibreOffice 7.6. Čeprav je še vedno na voljo, bo morda odstranjena iz storitve Base v kasnejši izdaji. Namesto tega uporabite metodo Forms iz storitve FormDocument.


Skladnja:

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

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

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

Parametri:

formdocument: ime veljavnega dokumenta obrazca, razlikuje med velikimi in malimi črkami.

form: ime ali številka indeksa obrazca, shranjenega v dokumentu obrazca. Če ta argument ni podan, metoda vrne seznam z imeni vseh obrazcev, ki so na voljo v dokumentu obrazca.

note

Čeprav lahko uporabite številke indeksa za sklic na obrazce, je to priporočljivo le, ko je v dokumentu obrazca zgolj en obrazec. Če sta dva ali več obrazcev, priporočamo uporabo imena obrazca.


Primer:

Prva vrstica spodnjega primera vrne seznam vseh obrazcev v dokumentu obrazca »myFormDocument«. Druga vrstica vrne instanco storitve Form, ki predstavlja obrazec »mojObrazec«.

V Basicu

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

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

GetDatabase

Vrne instanco storitve Database, ki ponuja dostop do izvajanja ukazov SQL z zbirko podatkov, ki je določena in/ali shranjena v trenutnem dokumentu programa Base.

Skladnja:

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

Parametri:

user, password: neobvezna parametra prijave kot niza (uporabniško ime in geslo). Privzeta vrednost obeh parametrov je prazen niz »«.

Primer:

V Basicu

    Dim myDoc As Object, myDatabase As Object, ui As Object
    Set ui = CreateScriptService("UI")
    Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
    ' Uporabnik in geslo sta navedena spodaj, če jih potrebujete
    Set myDatabase = myDoc.GetDatabase()
    '   ... Izvedite poizvedbe, ukaze SQL ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  
V Pythonu

    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    #   ... Izvedite poizvedbe, ukaze SQL ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  

IsLoaded

Vrne True, če je dani FormDocument trenutno odprt.

Skladnja:

svc.IsLoaded(formdocument: str): bool

Parametri:

formdocument: ime formdocument, ki ga želite preveriti, razlikuje med velikimi in malimi črkami.

Primer:

V Basicu

    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
V Pythonu

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

OpenFormDocument

Odpre navedeni FormDocument v navadnem ali oblikovalnem načinu. Ta metoda vrne instanco storitve FormDocument, ki ustreza navedenemu dokumentu obrazca.

Če dokument obrazca že odprt, se aktivira brez spremembe svojega načina.

Če navedeni dokument obrazca ne obstaja, vrne Nothing.

Skladnja:

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

Parametri:

formDocument: ime formDocument, ki ga želite odpreti, razlikuje med velikimi in malimi črkami.

designmode: če ima ta argument vrednost True, bo FormDocument odprt v oblikovalnem načinu.

Primer:

V Basicu

Večina dokumentov obrazcev je shranjenih v korenski mapi dokumenta programa Base in odprete jih lahko enostavno z njihovim imenom, kot v spodnjem primeru:


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

Če so dokumenti obrazca organizirani v mapah, je potrebno vključiti ime mape, da določite dokument obrazca, ki ga želite odpreti, kot je to nakazano v naslednjem primeru:


    oFormDoc = oDoc.OpenFormDocument("myFolder/myFormDocument")
  
V Pythonu

    formDoc = doc.OpenFormDocument("myFormDocument")
  

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

OpenQuery

Odpre okno podatkovnega pogleda navedene poizvedbe in vrne instanco storitve Datasheet.

Poizvedbo je možno odpreti v navadnem ali oblikovalnem načinu.

Če je poizvedba že odprta, bo njeno okno podatkovnega pogleda postalo aktivno.

note

Z zapiranjem dokumenta vrste Base povzročite, da zaprete tudi okno oblikovalnega pogleda.


Skladnja:

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

Parametri:

queryname: ime obstoječe poizvedbe kot niz vrste String; razlikuje med velikimi in malimi črkami.

designmode: če je True, se poizvedba odpre v oblikovalnem načinu. Sicer se odpre v navadnem načinu (privzeto = False).

Primer:

V Basicu

      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
V Pythonu

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

OpenTable

Odpre okno podatkovnega pogleda navedene tabele in vrne instanco storitve Datasheet.

Tabelo je možno odpreti v navadnem ali oblikovalnem načinu.

Če je tabela že odprta, bo njeno okno podatkovnega pogleda postalo aktivno.

note

Z zapiranjem dokumenta vrste Base povzročite, da zaprete tudi okno oblikovalnega pogleda.


Skladnja:

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

Parametri:

tablename: ime obstoječe tabele kot niz vrste String; razlikuje med velikimi in malimi črkami.

designmode: če je True, se tabela odpre v oblikovalnem načinu. Sicer se odpre v navadnem načinu (privzeto = False).

Primer:

V Basicu

      oDoc.OpenTable("MyTable", DesignMode = False)
    
V Pythonu

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

PrintOut

Ta metoda pošlje vsebino danega dokumenta obrazca privzetemu tiskalniku ali tiskalniku, ki ga določa metoda SetPrinter().

Vrne True, če je bil dokument uspešno natisnjen.

warning

Metoda PrintOut je opuščena z LibreOffice 7.6. Čeprav je še vedno na voljo, bo morda odstranjena iz storitve Base v kasnejši izdaji. Namesto tega uporabite metodo PrintOut iz storitve FormDocument.


Skladnja:

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

Parametri:

formdocument: ime veljavnega dokumenta obrazca kot niz, razlikuje med velikimi in malimi črkami. Dokument obrazca mora biti odprt. Metoda ga aktivira.

pages: strani, ki jih želite natisniti, kot niz, tako kot v uporabniškem vmesniku. Primer: »1-4;10;15-18«. Privzeta vrednost je tiskanje vseh strani.

copies: število kopij. Privzeto ima vrednost 1.

Primer:

V Basicu

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

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

SetPrinter

Določa možnosti tiskalnika za dokument obrazca. Dokument obrazca mora biti odprt.

Vrne True, če uspe.

warning

Metoda SetPrinter je opuščena z LibreOffice 7.6. Čeprav je še vedno na voljo, bo morda odstranjena iz storitve Base v kasnejši izdaji. Namesto tega uporabite metodo SetPrinter iz storitve FormDocument.


Skladnja:

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

Parametri:

formdocument: ime veljavnega dokumenta obrazca, razlikuje med velikimi in malimi črkami.

printer: ime tiskalniške vrste, kamor želite tiskati. Če ta argument manjka, je nastavljen privzeti tiskalnik.

orientation določa postavitev strani in ima dve možni vrednosti: PORTRAIT (pokončno) in LANDSCAPE (ležeče). Če argument ni podan, ostane nespremenjen glede na nastavitve tiskalnika.

paperformat: določa velikost strani oz. papirja kot niz in ima možne vrednosti A3, A4, A5, LETTER, LEGAL ali TABLOID. Če argument ni podan, ostane nespremenjena privzeta vrednost.

Primer:

V Basicu

    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
V Pythonu

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

Vsi podprogrami ali identifikatorji ScriptForge Basic s predpono podčrtaja (»_«) so rezervirani za interno uporabo. Uporabi v makrih Basic ali skriptih Python niso namenjeni.


Podprite nas!