Vsebina
Kazalo 🔎︎

# 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 service, 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 | PrintOut SetPrinter

## CloseFormDocument

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

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

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

Če dokument obrazca že odprt, se aktivira brez spremembe svojega načina. Metoda vrne True, če je odpiranje dokumenta obrazca uspelo.

### Skladnja:

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

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

        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:

        oDoc.OpenFormDocument("myFolder/myFormDocument")

##### V Pythonu

        doc.OpenFormDocument("myFormDocument")

        doc.OpenFormDocument("myFolder/myFormDocument")

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

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

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