Innhold
Innholdsliste 🔎︎

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

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

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

### 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 SkjemaDokument enten i normal eller i designmodus.

Hvis skjemadokumentet allerede er åpent, aktiveres det uten å endre modus. Metoden returnerer Sann hvis skjemadokumentet kunne åpnes.

### Syntaks:

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

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

        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:

        oDoc.OpenFormDocument("myFolder/myFormDocument")

##### I Python

        doc.OpenFormDocument("myFormDocument")

        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.

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

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