Innhold

# SFDocuments.Base-tjeneste

Tjenesten Base gir en rekke metoder og egenskaper for å forenkle administrasjon og håndtering av LibreOffice Base-dokumenter.

Denne tjenesten er nært knyttet til Dokument-tjenesten, som gir generiske metoder for håndtering av LibreOffice-dokumenter, inkludert basisdokumenter. Derfor utvider Base-tjenesten Dokument-tjenesten og gir ytterligere metoder som er spesifikke for basisdokumenter, slik at brukere kan:

- Få tilgang til databasen i et basisdokument.

- Åpne skjemadokumenter som er lagret i et basisdokument.

- Sjekk om et skjemadokument fra et basisdokument er lastet inn.

Se Dokumenttjeneste for å lære mer om metoder og egenskaper som kan brukes til å administrere LibreOffice-dokumenter.

## Tjenestepåkallelse

Før du bruker Base-tjenesten, må ScriptForge-biblioteket lastes eller importeres:

• Grunnleggende makroer krever å laste ScriptForge-biblioteket ved hjelp av følgende setning:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python-skript krever import fra scriptforge-modulen:
fra scriptforge import CreateScriptService

##### I Basic

Base-tjenesten kan påkalles på en rekke måter. Kodebiten nedenfor bruker metoden CreateBaseDocument fra UI-tjenesten for å lage en ny Base-fil.

Merk at i alle eksemplene er objektet oDoc en forekomst av Base-tjenesten.

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

Base-tjenesten kan også instansieres mens du åpner en eksisterende Base-fil, som vist nedenfor:

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

Hvis et basisdokument allerede er åpent, er det mulig å instansiere Base-tjenesten direkte:

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

##### I Python

Eksemplene ovenfor kan oversettes til Python som følger:

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

Bruken av "SFDocuments." understrengen i forrige eksempel er valgfri.

Liste over metoder i Base tjenesten
CloseFormDocument FormDocuments Forms GetDatabase | IsLoaded OpenFormDocument OpenQuery OpenTable | PrintOut SetPrinter

## CloseFormDocument

Lukker det gitte skjemadokumentet. Returnerer Sann hvis stengingen er vellykket.

Metoden CloseFormDocument er avviklet siden LibreOffice 7.6. Selv om den fortsatt er tilgjengelig, kan den bli fjernet fra Base-tjenesten i en fremtidig utgivelse. Bruk metoden CloseDocument fra FormDocument-tjenesten i stedet.

### Syntaks:

svc.CloseFormDocument(formdocument: str): bool

### Parametre:

skjemadokument: Navnet på SkjemaDokument som skal lukkes, som en streng som skiller mellom store og små bokstaver.

### Eksempel:

Hvis skjemadokumenter er organisert i mapper, er det nødvendig å inkludere mappenavnet for å spesifisere skjemadokumentet som skal åpnes, som illustrert i følgende eksempler:

##### I Basic

        oDoc.CloseFormDocument("Folder1/myFormDocument")

##### I Python

        doc.CloseFormDocument('Folder1/myFormDocument')

## FormDocuments

Returnerer en matrise med de fulle navnene (sti/navn) til alle skjemadokumenter i basisdokumentet som en nullbasert matrise med strenger.

### Syntaks:

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

### Eksempel:

Kodebiten nedenfor skriver ut navnene på alle skjemadokumenter i gjeldende basisdokument.

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

##### I Python

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

For å lære mer om skjemadokumenter, se ScriptForge.FormDocument tjeneste hjelpeside.

## Forms

Avhengig av parametrene som er gitt, vil denne metoden returnere:

- En nullbasert matrise med navnene på alle skjemaene i et skjemadokument (hvis Skjema-argumentet er fraværende)

- Et SFDocuments.Form-objekt som representerer skjemaet spesifisert i Skjema-argumentet.

Metoden Forms er avviklet siden LibreOffice 7.6. Selv om den fortsatt er tilgjengelig, kan den bli fjernet fra Base-tjenesten i en fremtidig utgivelse. Bruk metoden Forms fra FormDocument-tjenesten i stedet.

### Syntaks:

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

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

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

### Parametre:

skjemadokument: Navnet på et gyldig skjemadokument som en streng som skiller mellom store og små bokstaver.

skjema: Navnet eller indeksnummeret til skjemaet som er lagret i skjemadokumentet. Hvis dette argumentet er fraværende, vil metoden returnere en liste med navnene på alle tilgjengelige skjemaer i skjemadokumentet.

Selv om det er mulig å bruke indeksnummer for å referere til skjemaer, anbefales dette kun når det kun er ett skjema i skjemadokumentet. Hvis det er to eller flere skjemaer, er det å foretrekke å bruke skjemanavnet i stedet.

### Eksempel:

Den første linjen i eksemplet nedenfor returnerer en liste over alle skjemaer i skjemadokumentet "myFormDocument". Den andre linjen returnerer en forekomst av skjematjenesten som representerer skjemaet "myForm".

##### I Basic

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

##### I Python

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

## GetDatabase

Returnerer en forekomst av Database-tjenesten som tillater kjøring av SQL-kommandoer på databasen definert og/eller lagret i gjeldende Base dokument

### Syntaks:

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

### Parametre:

bruker, passord: Valgfrie påloggingsparametere som strenger. Standardverdien for begge parametere er en tom streng "".

### Eksempel:

##### I Basic

        Dim myDoc As Object, myDatabase As Object, ui As Object
        Set ui = CreateScriptService("UI")
        Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
        ' Bruker og passord er oppgitt nedenfor, om nødvendig
        Set myDatabase = myDoc.GetDatabase()
        ' ... Kjør spørringer, SQL-setninger, ...
        myDatabase.CloseDatabase()
        myDoc.CloseDocument()

##### I Python

        ui = CreateScriptService("UI")
        myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
        myDatabase = myDoc.GetDatabase()
        # ... Kjør spørringer, SQL-setninger, ...
        myDatabase.CloseDatabase()
        myDoc.CloseDocument()

## IsLoaded

Returnerer Sann hvis det angitte SkjemaDokumentet er åpent.

### Syntaks:

svc.IsLoaded(formdocument: str): bool

### Parametre:

skjemadokument: Navnet på et SkjemaDokument som skal sjekkes, som en streng som skiller mellom store og små bokstaver.

### Eksempel:

##### I Basic

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

##### I Python

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

## OpenFormDocument

Åpner det angitte FormDocument enten i normal eller i designmodus. Denne metoden returnerer en FormDocument tjenesteforekomst som tilsvarer det angitte skjemadokumentet.

Hvis skjemadokumentet allerede er åpent, aktiveres det uten å endre modus.

Hvis det angitte skjemadokumentet ikke eksisterer, returneres Ingenting.

### Syntaks:

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

### Parametre:

skjemaDokument: Navnet på SkjemaDokument som skal åpnes, som en streng som skiller mellom store og små bokstaver.

designmodus: Hvis dette argumentet er Sann vil SkjemaDokument åpnes i designmodus.

### Eksempel:

##### I Basic

De fleste skjemadokumenter er lagret i roten av Base dokumentet, og de kan åpnes ganske enkelt ved å bruke navnene deres, som i eksemplet nedenfor:

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

Hvis skjemadokumenter er organisert i mapper, blir det nødvendig å inkludere mappenavnet for å spesifisere skjemadokumentet som skal åpnes, som illustrert i følgende eksempel:

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

##### I Python

        formDoc = doc.OpenFormDocument("myFormDocument")

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

## OpenQuery

Åpner datavisningsvinduet for den angitte spørringen og returnerer en forekomst av Dataark-tjenesten.

Spørringen kan åpnes enten i normal- eller designmodus.

Hvis spørringen allerede er åpen, vil datavisningsvinduet bli gjort aktivt.

Lukking av basisdokumentet vil føre til at Datavisnings-vinduet også lukkes.

### Syntaks:

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

### Parametre:

queryname: Navnet på en eksisterende spørring som en streng som skiller mellom store og små bokstaver.

designmodus: Hvis dette argumentet er satt til Sann, åpnes spørringen i designmodus. Ellers åpnes den i normal modus (Standard = Usann).

### Eksempel:

##### I Basic

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

##### I Python

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

## OpenTable

Åpner Datavisnings-vinduet i den angitte tabellen og returnerer en forekomst av Dataark-tjenesten.

Bordet kan åpnes enten i normal- eller designmodus.

Hvis tabellen allerede er åpen, vil datavisningsvinduet bli gjort aktivt.

Lukking av Basic-dokumentet vil føre til at Datavisnings-vinduet også lukkes.

### Syntaks:

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

### Parametre:

tabellnavn: Navnet på en eksisterende tabell som en streng som skiller mellom store og små bokstaver.

designmodus: Hvis dette argumentet er satt til Sann, åpnes tabellen i designmodus. Ellers åpnes den i normal modus (Standard = usann).

### Eksempel:

##### I Basic

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

##### I Python

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

## PrintOut

Denne metoden sender innholdet i det gitte skjemadokumentet til en standardskriver eller en skriver definert av SetPrinter()-metoden.

Returnerer Sann hvis dokumentet ble skrevet ut.

Metoden PrintOut er avviklet siden LibreOffice 7.6. Selv om den fortsatt er tilgjengelig, kan den bli fjernet fra Base-tjenesten i en fremtidig utgivelse. Bruk metoden PrintOut fra FormDocument-tjenesten i stedet.

### Syntaks:

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

### Parametre:

skjemadokument: Et gyldig dokumentskjemanavn som skiller mellom store og små bokstaver. Skjemadokumentet skal være åpent. Den aktiveres av metoden.

sider: Sidene som skal skrives ut som en streng, som i brukergrensesnittet. Eksempel: "1-4;10;15-18". Standard er alle sider.

kopier: Antall kopier. Standard er 1.

### Eksempel:

##### I Basic

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

##### I Python

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

## SetPrinter

Definer skriveralternativene for et skjemadokument. Skjemadokumentet skal være åpent.

Returnerer Sann når det lykkes.

Metoden SetPrinter er utdatert siden LibreOffice 7.6. Selv om den fortsatt er tilgjengelig, kan den bli fjernet fra Base-tjenesten i en fremtidig utgivelse. Bruk metoden SetPrinter fra Dokument-tjenesten i stedet.

### Syntaks:

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

### Parametre:

formdocument: Et gyldig dokumentskjemanavn som skiller mellom store og små bokstaver.

skriver: Navnet på skriverkøen der den skal skrives ut. Når den er fraværende, angis standardskriveren.

orientering: Enten PORTRETT eller LANDSKAP. Når fraværende, forblir uendret med hensyn til skriverinnstillingene.

papirformat: Spesifiserer papirformatet som en strengverdi som kan være enten A3, A4, A5, LETTER, LEGAL eller TABLOID. Blir uendret hvis ikke spesifisert.

### Eksempel:

##### I Basic

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

##### I Python

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

Alle ScriptForge Grunnleggende rutiner eller identifikatorer som er prefikset med et understrekingstegn "_" er reservert for intern bruk. De er ikke ment å brukes i grunnleggende makroer eller Python-skript.

Lignende emner

SFDatabaser.Database-tjeneste

SFDocuments.Dokument tjeneste

SFDocuments.Form tjeneste

ScriptForge.UI tjeneste

Supporter oss!