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:

tip

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:

note

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

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.

warning

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

For å lære mer om skjemadokumenter, se Skjema tjenestehjelpesiden.


Forms

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

warning

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.

note

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.

note

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.

note

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.

warning

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.

warning

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

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.


Supporter oss!