Indhold
Indholdsfortegnelse 🔎︎

# Tjenesten SFDocuments.Base

Tjenesten Base giver et antal metoder og egenskaber, der letter administration og håndtering af LibreOffice Base-dokumenter.

Denne tjeneste er nært relateret til tjenesten Document, som giver generiske metoder til at håndtere LibreOffice-dokumenter, herunder Base-dokumenter. Derfor udvider tjenesten Base tjenesten Document og giver yderligere metoder, der er specifikke for Base-dokumenter og lader brugerne:

- Få adgang til databasen, der er indeholdt i et Base-dokument.

- Åbne formular-dokumenter, der er gemt i et Base-dokument.

- Tjekke om et formulardokument fra et Base-dokument aktuelt er indlæst.

Denne tjeneste er tilgængelig fra LibreOffice 7.2 og fremefter.

Henvise til tjenesten Document for at få mere at vide om metoder og egenskaber, der kan bruges til at administrere LibreOffice-dokumenter.

## Kald af tjeneste

##### I Basic

Tjenesten Base kan kaldes på forskellige måder. Kodestumpen herunder bruger metoden CreateBaseDocument i tjenesten UI til at oprette en ny Base-fil.

Bemærk, at i alle eksempler er objektet oDoc en forekomst af tjenesten Base.

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

TjenestenBase og kan instantieres under åbningen af en eksisterende Base-fil, som vist herunder:

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

Hvis et Base-dokument allerede er åbent, er det muligt at instantiere tjenesten CBase direkte:

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

##### I Python

Eksemplerne ovenfor kan oversættes til Python på denne måde:

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

Brugen af delstrengen "SFDocuments." i det foregående eksempel er valgfri.

Liste over metoder i tjenesten Base
FormDocuments Forms | GetDatabase IsLoaded | OpenFormDocument

## FormDocuments

Returnerer en matrix med de fulde navne (sti/navn) på alle formular-dokumenter i Base-dokumentet som en nul-baseret matrix af strenge.

### Syntaks:

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

### Eksempel:

Kodestumpen herunder udskriver navnene på alle formular-dokumenter i det aktuelle Base-dokument.

##### 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 = oDoc.FormDocuments()
        for formName in myForms:
            bas.MsgBox(formName)

For at få mere at vide om formular-dokumenter finder du hjælpesiden til tjenesten Form.

## Forms

Afhængig af de givne parametere returnerer denne metode:

- En nul-baseret matrix med navnene på alle formularer i et formulardokument (hvis argumentet Form mangler)

- Et SFDocuments.Form-objekt, der repræsenterer den formular, der er angivet i argumentet Form.

### Syntaks:

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

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

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

### Parametre:

formulardokument: Navnet på et gyldigt formulardokument som en streng med Stort-og-småt.

formular: Navnet eller indeksnummeret på formularen, der er gemt i formulardokumentet. Hvis dette argument mangler, returnerer metoden en liste med navne på alle formularer, der er tilgængelige i formulardokumentet.

Selv om det er muligt at bruge indekstal til at henvise til formularer, anbefales dette kun, når der kun er en formular i formulardokumentet. Hvis der er to eller flere formularer, må det foretrækkes at bruge formularnavnet i stedet.

### Eksempel:

Den første linje i eksemplet herunder returnerer en liste over alle formularer i formulardokumentet "myFormDocument". Den anden linje returnerer et eksemplar af tjenesten Formular, der repræsenterer formularen "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 forekomdt af tjenesten Database, der på databasen tillader udførelsen af SQL-kommandoer, der er defineret og/eller gemt i det aktuelle Base-dokument

### Syntaks:

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

### Parametre:

bruger, adgangskode: Valgfrie adgangsparametre som strenge. Standardværdien for begge parametre 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")
        ' Bruger og adgangskode anføres herunder, om nødvendigt
        Set myDatabase = myDoc.GetDatabase()
        '   ... Kør forespørgsler, SQL-sætninger, ...
        myDatabase.CloseDatabase()
        myDoc.CloseDocument()

##### I Python

        ui = CreateScriptService("UI")
        myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
        myDatabase = myDoc.GetDatabase()
        '   ... Kør forespørgsler, SQL-udtryk, ...
        myDatabase.CloseDatabase()
        myDoc.CloseDocument()

## IsLoaded

Returner True (sand), hvis det angivne FormDocument aktuelt er åbent.

### Syntaks:

svc.IsLoaded(formdocument: str): bool

### Parametre:

formulardokument: Navnet på et Formulardokument, der skal tjekkes, som en en streng med Stort-og-småt.

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

Åbner det angivne FormDocument i enten normal- eller i design-tilstand.

Hvis formular-dokumentet allerede er åbent, aktiveres det uden at ændre tilstand. Metoden returnerer True (sand), hvis formulardokumentet kunne åbnes.

### Syntaks:

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

### Parametre:

Formulardokument: Navnet på det Formulardokument, der skal åbnes, som en streng med Stort-og-småt.

designtilstand: Hvis dette argument er True (sand) åbnes FormDocument i designtilstand.

### Eksempel:

##### I Basic

De fleste formulardokumenter gemmes i roden af Base-dokumentet og de kan åbnes ved simpelthen at bruges deres navne, som i eksemplet herunder:

        oDoc.OpenFormDocument("myFormDocument")

Hvis formulardokumenter er organiseret i mapper, bliver det nødvendigt at medtage mappenavnet til at angive det formulardokument, der skal åbnes, som illustreret i det følgende eksempel:

        oDoc.OpenFormDocument("myFolder/myFormDocument")

##### I Python

        doc.OpenFormDocument("myFormDocument")

        doc.OpenFormDocument("myFolder/myFormDocument")

Alle ScriptForge Basic-rutiner eller identifikatorer, som indledes med et understregningstegn "_" er reserveret til internt brug. De er ikke beregnet til brug i Basic-makroer.

Relaterede emner

Tjenesten SFDatabases.Database

Tjenesten SFDocuments.Document

Tjenesten SFDocuments.Form

Tjenesten ScriptForge.UI (brugerflade)