Innhald

# Tenesta SFDocuments.FormDocument

Tenesta FormDocument gjev tilgang til skjemadokument som er lagra i LibreOffice Base-dokument.

I eit Base-dokument kan skjemadokument som finst visast ved å velja Vis → Skjema i brukargrensesnittet. Kvart skjemadokument kan innehalda eitt eller fleire skjema, og også hovudskjemaet og andre delskjema.

Denne tenesta arvar metodar og eigenskapar frå tenesta Document og vert ofte brukt saman med tenestene Base og Database.

Sjå tenesta Document for å læra meir om metodane og eigenskapane som kan brukast for å administrera LibreOffice-dokument.

## Oppkall av tenester

Før du brukar tenesta FormDocument må biblioteket ScriptForge vera lasta inn eller importert:

• Grunnleggjande makroar krev innlasting av biblioteket ScriptForge ved hjelp av denne setninga:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python-skript krev import frå scriptforge-modulen:
from scriptforge import CreateScriptService

##### I Basic

Ein FormDocument-tenesteførekomst kan opprettast ved å kalla metoden OpenFormDocument som finst både i Base- og Database-tenestene.

Eksempelet nedanfor brukar tenesta UI til å opna eit Base-dokument og deretter henta eit skjemadokument. Vêr merksam på at i dette dømet vert opna både Base-dokumentet og skjemadokumentet og vert 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()

Eksempelet nedanfor brukar tenesta Database for å opna skjemadokumentet. I dette tilfellet vert Base-fila ikje opna og berre skjemadokumentet vert vist.

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

Viss du kallar opp OpenFormDocument for eit skjemadokument som alt er opna, vert dokumentvindauget slått på og vert sett i fokus.

##### I Python

Eksempla ovanfor kan omsetjast til Python slik:

        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 metodar i tenesta «FormDocument»
CloseDocument Forms | GetDatabase | PrintOut

## CloseDocument

Lukkar skjemadokumentet som FormDocument viser til. Returnerer Sann viss skjemadokumentet vart lukka.

### Syntaks:

svc.CloseDocument(): bool

### Eksempel:

##### I Basic

        oFormDoc.CloseDocument()

##### I Python

        formDoc.CloseDocument()

## Forms

Returnerer anten ei matrise med namna på hovudskjemaa i skjemadokumentet eller ei Form-tenesteførekomst som refererer til eit bestemt skjema.

Kall opp denne metoden utan argument for å få ei nullbasert strengmatrise med namna på alle skjemaa i skjemadokumentet.

Oppgje eit skjemanamn eller ein indeks som argument for å få ein Form tenesteførekomst som svarar til det gjevne skjemaet.

Eit skjemadokument har minst eitt hovudskjema. Meir komplekse skjemadokument kan ha meir enn eitt skjema og delskjema.

### Syntaks:

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

svc.Forms(form: str): svc

svc.Forms(form: int): svc

### Parametrar:

form: Dette argumentet kan anten vera ein streng med namnet på eit skjema som finst i skjemadokumentet, eller den nullbaserte indeksen for skjemaet som skal returnerast. HViss dette argumentet ikkje er spesifikt, vert ei matrise med namnet på alle tilgjengelage skjema returnert.

### Eksempel:

##### I Basic

Eksempelet nedanfor kontrollerer om skjemadokumentet inneheld eit skjema kalla «MainForm»:

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

Eksempelet nedanfor hentar skjemaet kalla «MainForm» og flyttar det til den siste posten:

        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æra meir om skjema-metodar og -eigenskapar, sjå hjelpesidene til tenestaForm.

### GetDatabase

Returnerer ein førekomst av SFDatabases.Database som gjev tilgang til å utføra SQL-kommandoar på den databasen det gjeldande skjemaet er knytt til og/eller lagra i.

Kvart skjema har si eiga databasetilkopling, bortsett frå i Base-dokument der alle deler same tilkoplinga.

### Syntaks:

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

### Parametrar:

user, password: Dei valfrie parameterane for pålogging (Standard = "").

### Eksempel:

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

##### I Python

          db = form.GetDatabase()  # SFDatabases.Database

## PrintOut

Denne metoden sender innhaldet i dokument til standardskrivaren eller til den skrivaren som er definert med metoden SetPrinter.

Returnerer Sann viss det lukkast å senda dokumentet til skrivaren.

### Syntaks:

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

### Parametrar:

page: Sidene som skal skrivast ut som ein streng. Dette argumentet bør gjevast på same måte som i brukargrensesnittet (sjå dialogvindauget Fil → Skriv ut). Eksempel: "1-4; 10; 15-18". Standardverdien er ein tom streng ("") som vil føra til at alle sidene vert skrivne ut.

copies: Kor mange kopiar som skal skrivast ut. (Standard = 1).

printbackground: spesifiserer om bakgrunnsbiletet skal skrivast ut. (Standard = Sann).

printblankpages: spesifiserer om tomme sider skal skrivast ut (standard = Usann).

printevenpages: spesifiserer om partalssider skal skrivast ut (standard = Sann).

printoddpages: spesifiserer om oddetalssider skal skrivast ut (standard = Sann).

printimages: spesifiserer om bileta skal skrivast 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 Basic-rutinane og -identifikatorane som vert innleidde med understrek «_» er reserverte for internt bruk. Dei er ikkje meint brukte i Basic-makroar.

Liknande emne

SFDocuments.Calc

Tenesta SFDatabases.Database

Tenesta SFDocuments.Document

Tenesta SFDocuments. Form

Tenesta ScriptForge.UI