Indhold

# SFDocuments.FormDocument-tjeneste

Tjenesten FormDocument giver tilgang til formulardokumenter gemt i LibreOffice Base-dokumenter.

I et Base-dokument kan eksisterende formulardokumenter ses ved at vælge Vis ▸ Formularer i brugerfladen. Hvert formulardokument kan være sammensat af en eller flere formularer, inklusive hovedformularen og andre underformularer.

Denne tjeneste arver metoder og egenskaber fra Document-tjenesten og bruges ofte sammen med tjenesterne Base og Database.

Se tjenesten Document for at lære mere om, hvordan metoder og egenskaber kan bruges til at administrere LibreOffice-dokumenter.

## Kald af tjenester

Før du bruger tjenesten FormDocument 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

En instans af FormDocument-tjenesten kan oprettes ved at kalde metoden OpenFormDocument, som findes i både Base-tjenesten og Database-tjenesten.

Eksemplet nedenfor bruger tjenesten UI (brugerflade) til at åbne et Base-dokument og derefter hente et formulardokument. Bemærk at i dette eksempel vil både Base-dokumentet og formulardokumentet blive åbnet og vist på skærmen.

        Dim ui As Object, oBase As Object, oFormDoc As Object
        ui = CreateScriptService("UI")
        oBase = ui.OpenBaseDocument("C:\Documents\MyDatabase.odb")
        oFormDoc = oBase.OpenFormDocument("MyFormDocument")
        ' ...
        oFormDoc.CloseDocument()

Det følgende eksempel bruger Database-tjenesten til at åbne et formulardokument. I dette tilfælde vil Base-filen ikke blive åbnet, og kun formulardokumentet vil blive vist.

        Dim oDatabase As Object, oFormDoc As Object
        oDatabase = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
        oFormDoc = oDatabase.OpenFormDocument("MyFormDocument")

Kald af OpenFormDocument for at formulardokument som allerede er åbent vil aktivere dokumentvinduet og bringe det i fokus.

##### I Python

Eksemplerne ovenfor kan oversættes til Python som følger:

        ui = CreateScriptService("UI")
        baseDoc = ui.OpenBaseDocument("C:\Documents\MyDatabase.odb")
        formDoc = baseDoc.OpenFormDocument("MyFormDocument")
        # ...
        formDoc.CloseDocument()

        database = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
        formDoc = database.OpenFormDocument("MyFormDocument")

Liste over metoder i tjenesten FormDocument
CloseDocument Forms | GetDatabase | PrintOut

## CloseDocument

Lukker det formulardokument, der refereres til af FormDocument-instansen. Returnerer True hvis det lykkedes at lukke formulardokumentet.

### Syntaks:

svc.CloseDocument(): bool

### Eksempel:

##### I Basic

        oFormDoc.CloseDocument()

##### I Python

        formDoc.CloseDocument()

## Forms

Returnerer enten et array med navnene på hovedformularerne i formulardokumentet, eller en instans af Form-tjenesten, som referer til en specifik formular.

Kald denne metode uden argumenter for at få et streng-array med startindeks 0, som indeholder navnene på alle formularer indeholdt i formulardokumentet.

Angiv navn eller indeks på en formular som argument, for at modtage en instans af Form-tjenesten, der svarer til den den angivne formular.

Et formulardokument har mindst én hovedformular. Mere komplekse formulardokumenter kan være sammensat af mere end én formular og underformularer.

### Syntaks:

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

svc.Forms(form: str): svc

svc.Forms(form: int): svc

### Parametre:

form: (formular) Dette argument kan være enten en streng med navnet på en formular, som findes i formulardokumentet, eller argumentet kan være et indeks, begyndende med 0, på den formular som skal returnereres. Hvis dette argument ikke angives, så returneres et array med navne på alle tilgængelige formularer.

### Eksempel:

##### I Basic

Det følgende eksempel undersøger, om formulardokumentet indeholder en formular med navnet "MainForm":

        arrForms = oFormDoc.Forms()
        If SF_Array.Contains(arrForms, "MainForm") Then
            ' ...
        End If

Nedenstående eksempel henter formularen med navnet "MainForm" og flytter den til sidste post:

        Dim oForm As Object
        oForm = oFormDoc.Forms("MainForm")
        oForm.MoveLast()

##### I Python

        arrForms = formDoc.Forms()
        if "MainForm" in arrForms:
            # ...

        form = formDoc.Forms("MainForm")
        form.MoveLast()

For at lære mere om formular-metoder og -egenskaber, se hjælpesiden for Form-tjenesten.

### GetDatabase

Returnerer en instans af SFDatabases.Database, der giver adgang til udførelse af SQL-kommandoer på den database, den aktuelle formular er knyttet til og/eller gemt i det aktuelle dokument.

Hver formular har sin engen database-forbindelse, undtagen i Base-dokumenter, hvor de alle deler den samme forbindelse.

### Syntaks:

svc.GetDatabase(opt user: str, opt password: str): svc

### Parametre:

bruger, adgangskode: De frivillige parametre i log-in'et (Default = "").

### Eksempel:

          Dim myDb As Object ' SFDatabases.Database
          Set myDb = oForm.GetDatabase()

##### I Python

          db = form.GetDatabase()  # SFDatabases.Database

## PrintOut

Denne metode sender indholdet af formulardokumentet til standardprinteren eller til printeren defineret af SetPrinter()-metoden.

Returnerer True hvis det lykkedes at sende dokumentet til printeren.

### Syntaks:

svc.PrintOut(pages: str = "", copies: int = 1, printbackground: bool = true, printblankpages: bool = false, printevenpages: bool = true, printoddpages: bool = true, printimages: bool = true): bool

### Parametre:

pages: Siderne der skal udskrives, angivet som en streng. Dette argument angives på samme måde som i brugerfladen (se Filer ▸ Udskriv-dialogen). Eksempel: "1-4;10;15-18". Standardværdien er en tom streng, "", med den virkning at alle sider udskrives.

copies: Antal kopier, der skal printes (standard = 1).

printbackground: Angiver om baggrundsbilledet skal printes (standard = True).

printblankpages: Angiver om tomme sider skal printes (standard = False).

printevenpages: Angiver om lige sider skal printes (standard = True).

printoddpages: Angiver om ulige sider skal printes (standard = True).

printimages: Angiver om billeder skal printes (standard = True).

### Eksempel:

##### I Basic

        oFormDoc.PrintOut("1-4", Copies := 2, PrintBackground := False)

##### I Python

        formDoc.PrintOut("1-4", copies = 2, printbackground = False)

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

Relaterede emner

Tjenesten SFDocuments.Base

Tjenesten SFDatabases.Database

Tjenesten SFDocuments.Document

Tjenesten SFDocuments.Form

Tjenesten ScriptForge.UI (brugerflade)