Vsebina

# 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:

- pridobivanje dostopa do zbirke podatkov, vsebovane v dokumentu programa Base;

- odpiranje dokumentov obrazcev, shranjenih v dokumentu programa Base;

- preverjanje, če je dokument obrazca iz dokumenta programa Base trenutno naložen.

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:

• 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")

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.

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)

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

## Forms

Glede na podane parametre ta metoda vrne:

- Ničelno polje z imeni vseh obrazcev, vsebovanih v dokumentu obrazca (če ni podan argument Form).

- Predmet SFDocuments.Form, ki predstavlja obrazec, naveden v argumentu Form.

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.

Č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.

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.

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.

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.

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

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

Podobne teme

Storitev SFDatabases.Database

Storitev SFDocuments.Document

Storitev SFDocuments.Form

Storitev ScriptForge.UI