SFDocuments.Base service

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:

note

Denne tjenesten er tilgjengelig fra LibreOffice 7.2 og nyere.


tip

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


Tjenestepåkallelse

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

FormDocuments
Forms

GetDatabase
IsLoaded

OpenFormDocument


FormDocuments

Returnerer en matrise med de fulle navnene (bane/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.

In 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
  
In Python

    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisDataBaseDocument)
    myForms = oDoc.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:

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

In Basic

    Dim formsList as Object : formsList = oDoc.Forms("myFormDocument")
    Dim oForm as Object : oForm = oDoc.Forms("myFormDocument", "myForm")
  
In 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:

In 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()
  
In Python

    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    '   ... Run queries, SQL statements, ...
    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:

In Basic

    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
In 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:

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

    doc.OpenFormDocument("myFormDocument")
  

    doc.OpenFormDocument("myFolder/myFormDocument")
  
warning

All ScriptForge Basic routines or identifiers that are prefixed with an underscore character "_" are reserved for internal use. They are not meant be used in Basic macros.