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.

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

Før brug af tjenesten Base skal biblioteket ScriptForge være indlæst eller importeret:

• Basic-makroer kræver, at biblioteket ScriptForge indlæses med følgende udtryk:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python-scripts kræver import af scriptforge-modulet:
from scriptforge import CreateScriptService

##### 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
CloseFormDocument FormDocuments Forms | GetDatabase IsLoaded OpenFormDocument | PrintOut SetPrinter

## CloseFormDocument

Lukker det givne formulardokument. Returnerer True (sand), hvis lukningen lykkes.

### Syntaks:

svc.CloseFormDocument(formdocument: str): bool

### Parametre:

formulardokument: Navnet på det FormDocument (formulardokument), der skal lukkes, som en streng med Stort-og-småt.

### Eksempel:

Hvis formulardokumenter er organiserede i mapper, er det nødvendigt at medtage mappenavnet for at angive det formulardokument, der skal åbnes, som vist i de følgende eksempler:

##### I Basic

        oDoc.CloseFormDocument("Folder1/myFormDocument")

##### I Python

        doc.CloseFormDocument('Folder1/myFormDocument')

## FormDocuments

Returnerer en matrix med det fulde navn (sti/navn) på alle formulardokumenter i Base-dokumentet som en nul-baseret streng-matrix.

### 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 = doc.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()
        #   ... Udfø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")

## PrintOut

Denne metoder sender indholdet af det givne formulardokument til en standardprinter eller en printer, der er defineret med metoden SetPrinter() (sæt_printer).

Returnerer True (sand), hvis dokumentet blev printet med succes.

### Syntaks:

svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool

### Parametre:

formulardokument: Et gyldigt dokumentformularnavn som en Stort-og-småt streng. Formulardokumentet skal være åbent. Det aktiveres af metoden.

sider: De sider, der skal printes, som en streng, ligesom i brugerfladen, Eksempel: "1-4;10;15-18". Standard er alle sider.

kopier: Antallet af 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 printerindstillingerne for et formulardokument. Formulardokumentet skal være åbent.

Returnerer True (sand), når den lykkes.

### Syntaks:

svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool

### Parametre:

formulardokument: Et gyldigt dokumentformularnavn som en streng med Stort-og-småt.

printer: Navnet på den printerkø, der skal printes til. Når den mangler, sættes standardprinteren.

papirretning: Enten PORTRAIT (stående) eller LANDSCAPE (liggende). Når den mangler, efterlades feltet uændret med hensyn til printerindstillinger.

papirformat: Angiver papirformatet som en strengværdi, som kan være enten A3, A4, A5, LETTER, LEGAL eller TABLOID. Efterlades uændret, hvis manglende.

### Eksempel:

##### I Basic

        oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")

##### I Python

        doc.SetPrinter('myForm', paperformat='TABLOID')

Alle ScriptForge Basic-rutiner eller identifikatorer, der er indledet med et understreget tegn "_" er reserveret til internt brug. Det er ikke meningen, at de skal bruges i Basic-makroer eller Python-scripts.

Relaterede emner

Tjenesten SFDatabases.Database

Tjenesten SFDocuments.Document

Tjenesten SFDocuments.Form

Tjenesten ScriptForge.UI (brugerflade)