Innhold

# SFDocuments.FormDocument-tjeneste

Tjenesten FormDocument gir tilgang til skjemadokumenter som er lagret i LibreOffice Base-dokumenter.

I et Base dokument kan eksisterende skjemadokumenter vises ved å velge Vis - Skjemaer i brukergrensesnittet. Hvert skjemadokument kan være sammensatt av ett eller flere skjemaer, inkludert hovedskjemaet og andre underskjemaer.

Denne tjenesten arver metoder og egenskaper fra Dokument-tjenesten og brukes ofte sammen med tjenestene Base og Database.

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

## Tjenestepåkallelse

Før du bruker FormDocument-tjenesten, må ScriptForge-biblioteket lastes eller importeres:

• Grunnleggende makroer krever å laste ScriptForge-biblioteket ved hjelp av følgende setning:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python-skript krever import fra scriptforge-modulen:
fra scriptforge import CreateScriptService

##### I Basic

En FormDocument tjenesteforekomst kan opprettes ved å kalle metoden OpenFormDocument som finnes både i Base og Database-tjenestene.

Eksemplet nedenfor bruker UI-tjenesten til å åpne et basisdokument og deretter hente et skjemadokument. Merk at i dette eksemplet vil både basisdokumentet og skjemadokumentet bli åpnet og vist på skjermen.

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

Følgende eksempel bruker Database-tjenesten for å åpne skjemadokumentet. I dette tilfellet vil ikke Base-filen bli åpnet og kun skjemadokumentet vises.

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

Å kalle OpenFormDocument for et skjemadokument som allerede er åpent vil aktivere dokumentvinduet og bringe det til fokus.

##### I Python

Eksemplene ovenfor kan oversettes 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 FormDocument Tjenesten
CloseDocument Forms | GetDatabase | PrintOut

## CloseDocument

Lukker skjemadokumentet det refereres til av FormDocument-forekomsten. Returnerer Sann hvis skjemadokumentet ble lukket.

### Syntaks:

svc.CloseDocument(): bool

### Eksempel:

##### I Basic

        oFormDoc.CloseDocument()

##### I Python

        formDoc.CloseDocument()

## Forms

Returnerer enten en matrise med navnene på hovedskjemaene i skjemadokumentet eller en Form tjenesteforekomst som refererer til et spesifikt skjema.

Kall denne metoden uten argumenter for å få en nullbasert strengmatrise med navnene på alle skjemaene i skjemadokumentet.

Oppgi et skjemanavn eller en indeks som argument for å få en Form-tjenesteforekomst som tilsvarer det angitte skjemaet.

Et skjemadokument har minst én hovedform. Mer komplekse skjemadokumenter kan være sammensatt av mer enn ett skjema og underskjemaer.

### Syntaks:

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

svc.Forms(form: str): svc

svc.Forms(form: int): svc

### Parametre:

skjema: Dette argumentet kan enten være en streng med navnet på et skjema som finnes i skjemadokumentet eller den nullbaserte indeksen til skjemaet som skal returneres. Hvis dette argumentet ikke er spesifikt, returneres en matrise med navnet på alle tilgjengelige skjemaer.

### Eksempel:

##### I Basic

Følgende eksempel sjekker om skjemadokumentet inneholder et skjema kalt "MainForm":

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

Eksemplet nedenfor henter skjemaet kalt "MainForm" og flytter det til siste 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 å lære mer om skjemametoder og egenskaper, se Form-tjenestehjelpesiden.

### GetDatabase

Returner en SFDatabases.Database-forekomst som gir tilgang til utførelse av SQL-kommandoer på databasen det gjeldende skjemaet er koblet til og/eller som er lagret i gjeldende Base-dokument.

Hvert skjema har sin egen databasetilkobling, bortsett fra i Base-dokumenter hvor alle deler samme tilkobling.

### Syntaks:

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

### Parametre:

bruker, passord: De valgfrie påloggingsparametrene (Standard = "").

### Eksempel:

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

##### I Python

          db = form.GetDatabase()  # SFDatabases.Database

## PrintOut

Denne metoden sender innholdsskjemadokumentet til standardskriveren eller til skriveren definert av SetPrinter()-metoden.

Returnerer Sann hvis dokumentet ble sendt til skriveren.

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

sider: Sidene som skal skrives ut som en streng. Dette argumentet bør spesifiseres på samme måte som i brukergrensesnittet (se dialogboksen Fil - Skriv ut). Eksempel: "1-4;10;15-18". Standardverdien er en tom streng "" som vil føre til at alle sider skrives ut.

kopier: Antall kopier som skal skrives ut (standard = 1).

printbackground: angir om bakgrunnsbildet skal skrives ut (Standard = Sann).

printblankpages: angir om tomme sider skal skrives ut (Standard = Usann).

printevenpages: angir om partallssider skal skrives ut (Standard = Sann).

printoddpages: angir om oddetallssider skal skrives ut (Standard = Sann).

printimages: angir om bilder skal skrives ut (Standard = Sann).

### Eksempel:

##### I Basic

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

##### I Python

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

Alle ScriptForge Grunnleggende rutiner eller identifikatorer som er prefikset med et understrekingstegn "_" er reservert for intern bruk. De er ikke ment å brukes i grunnleggende makroer eller Python-skript.

Lignende emner

SFDocuments.Base-tjeneste

SFDatabaser.Database-tjeneste

SFDocuments.Dokument tjeneste

SFDocuments.Form tjeneste

ScriptForge.UI tjeneste

Supporter oss!