LibreOffice 25.2 Hjelp
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.
Før du bruker Base-tjenesten, må ScriptForge-biblioteket lastes eller importeres:
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")
  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 | ||
|---|---|---|
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.
svc.CloseFormDocument(formdocument: str): bool
skjemadokument: Navnet på SkjemaDokument som skal lukkes, som en streng som skiller mellom store og små bokstaver.
Hvis skjemadokumenter er organisert i mapper, er det nødvendig å inkludere mappenavnet for å spesifisere skjemadokumentet som skal åpnes, som illustrert i følgende eksempler:
    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
    doc.CloseFormDocument('Folder1/myFormDocument')
  Returnerer en matrise med de fulle navnene (sti/navn) til alle skjemadokumenter i basisdokumentet som en nullbasert matrise med strenger.
svc.FormDocuments(): str[0..*]
Kodebiten nedenfor skriver ut navnene på alle skjemadokumenter i gjeldende basisdokument.
    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
  
    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.
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.
svc.Forms(formdocument: str): str[0..*]
svc.Forms(formdocument: str, form: str = ''): svc
svc.Forms(formdocument: str, form: int): svc
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.
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".
    Dim formsList as Object : formsList = oDoc.Forms("myFormDocument")
    Dim oForm as Object : oForm = oDoc.Forms("myFormDocument", "myForm")
  
    formsList = doc.Forms("myFormDocument")
    form = doc.Forms("myFormDocument", "myForm")
  Returnerer en forekomst av Database-tjenesten som tillater kjøring av SQL-kommandoer på databasen definert og/eller lagret i gjeldende Base dokument
svc.GetDatabase(user: str = '', password: str = ''): svc
bruker, passord: Valgfrie påloggingsparametere som strenger. Standardverdien for begge parametere er en tom streng "".
    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()
  
    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    # ... Kjør spørringer, SQL-setninger, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  Returnerer Sann hvis det angitte SkjemaDokumentet er åpent.
svc.IsLoaded(formdocument: str): bool
skjemadokument: Navnet på et SkjemaDokument som skal sjekkes, som en streng som skiller mellom store og små bokstaver.
    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  Å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.
svc.OpenFormDocument(formdocument: str, designmode: bool = False): svc
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.
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")
  
    formDoc = doc.OpenFormDocument("myFormDocument")
  
    formDoc = doc.OpenFormDocument("myFolder/myFormDocument")
  Å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.
svc.OpenQuery(queryname: str, designmode: bool = False): obj
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).
      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
      doc.OpenQuery("MyQuery", designmode=True)
    Å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.
svc.OpenTable(tablename: str, designmode: bool = False): obj
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).
      oDoc.OpenTable("MyTable", DesignMode = False)
    
      doc.OpenTable("MyTable", designmode=False)
    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.
svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool
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.
    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  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.
svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool
formdocument: Et gyldig dokumentskjemanavn som skiller mellom store og små bokstaver.
    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
    doc.SetPrinter('myForm', paperformat='TABLOID')