Inhoud

# SFDocuments.FormDocument-service

De service FormDocument biedt toegang tot formulierdocumenten die zijn opgeslagen in LibreOffice Base-documenten.

In een Base-document kunnen bestaande formulierdocumenten worden bekeken door in de gebruikersinterface Beeld - Formulieren te selecteren. Elk formulierdocument kan uit een of meer formulieren bestaan, inclusief het hoofdformulier en andere subformulieren.

Deze service neemt methodes en eigenschappen over van de service Document en wordt vaak gebruikt naast de services Base en Database.

Raadpleeg de service Document voor meer informatie over methodes en eigenschappen die kunnen worden gebruikt om LibreOffice-documenten te beheren .

## Service-aanroep

Voordat u de service FormDocument gebruikt, moet de bibliotheek ScriptForge worden geladen of geïmporteerd:

• Basic macro's kunnen de bibliotheek ScriptForge laden met de instructie:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python scripts kunnen de module scriptforge importeren met:
from scriptforge import CreateScriptService

##### In BASIC

Een service-instantie FormDocument kan worden gemaakt door de methode OpenFormDocument aan te roepen die zowel in de services Base als Database voorkomt.

In het onderstaande voorbeeld wordt de service UI gebruikt om een Base-document te openen en vervolgens een formulierdocument op te halen. Merk op dat in dit voorbeeld zowel het Base-document als het formulierdocument worden geopend en op het scherm worden weergegeven.

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

In het volgende voorbeeld wordt de service Database gebruikt om het formulierdocument te openen. In dit geval wordt het basisbestand niet geopend en wordt alleen het formulierdocument weergegeven.

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

Als u OpenFormDocument aanroept voor een formulierdocument dat al geopend is, wordt het documentvenster geactiveerd en in beeld gebracht.

##### In Python

De bovenstaande voorbeelden kunnen als volgt naar Python worden vertaald:

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

Lijst met methodes in de service FormDocument
CloseDocument Forms | GetDatabase | PrintOut

## CloseDocument

Sluit het formulierdocument waarnaar wordt verwezen door de instantie FormDocument. Retourneert True als het formulierdocument succesvol is afgesloten.

### Syntaxis:

svc.CloseDocument(): bool

### Voorbeeld:

##### In BASIC

        oFormDoc.CloseDocument()

##### In Python

        formDoc.CloseDocument()

## Forms

Retourneert een matrix met de namen van de hoofdformulieren in het formulierdocument, of een service-instantie Formulier die naar een specifiek formulier verwijst.

Roep deze methode aan zonder argumenten om een op nul gebaseerde tekenreeksmatrix te verkrijgen met de namen van alle formulieren in het formulierdocument.

Geef een formuliernaam of index op als argument om een service-instantie Form te verkrijgen die overeenkomt met het opgegeven formulier.

Een formulierdocument heeft minimaal één hoofdformulier. Complexere formulierdocumenten kunnen uit meer dan één formulier en subformulieren bestaan.

### Syntaxis:

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

svc.Forms(form: str): svc

svc.Forms(form: int): svc

### Parameters:

formulier: Dit argument kan een tekenreeks zijn met de naam van een formulier dat in het formulierdocument bestaat, of de op nul gebaseerde index van het formulier dat moet worden geretourneerd. Als dit argument niet specifiek is, wordt een matrix met de naam van alle beschikbare formulieren geretourneerd.

### Voorbeeld:

##### In BASIC

In het volgende voorbeeld wordt gecontroleerd of het formulierdocument een formulier bevat met de naam 'MainForm':

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

In het onderstaande voorbeeld wordt het formulier met de naam "MainForm" opgehaald en naar de laatste record verplaatst:

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

##### In Python

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

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

Voor meer informatie over formuliermethodes en -eigenschappen raadpleegt u de helppagina van de service Formulier.

### GetDatabase

Retourneer een SFDatabases.Database-instantie die toegang geeft tot het uitvoeren van SQL-opdrachten op de database waaraan het huidige formulier is gekoppeld en/of dat is opgeslagen in het huidige basisdocument.

Elk formulier heeft zijn eigen databaseverbinding, behalve in Base-documenten waar ze allemaal dezelfde verbinding delen.

### Syntaxis:

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

### Parameters:

user, password: De optionele login-parameters (Standaard = "").

### Voorbeeld:

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

##### In Python

          db = form.GetDatabase()  # SFDatabases.Database

## PrintOut

Deze methode verzendt het inhoudsformulierdocument naar de standaardprinter of naar de printer die is gedefinieerd door de methode SetPrinter().

Retourneert True als het document met succes naar de printer is verzonden.

### Syntaxis:

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

### Parameters:

pagina's: de pagina's die als een tekenreeks moeten worden afgedrukt. Dit argument moet op dezelfde manier worden opgegeven als in de gebruikersinterface (zie het dialoogvenster Bestand - Afdrukken). Voorbeeld: "1-4;10;15-18". De standaardwaarde is een lege tekenreeks "", waardoor alle pagina's worden afgedrukt.

copies: Het aantal af te drukken exemplaren (standaard = 1).

printbackground: geeft aan of de achtergrondafbeelding moet worden afgedrukt (standaard = True).

printblankpages: geeft aan of blanco pagina's moeten worden afgedrukt (standaard = False).

printevenpages: geeft aan of even pagina's moeten worden afgedrukt (standaard = True).

printoddpages: geeft aan of oneven pagina's moeten worden afgedrukt (standaard = True).

printimages: specificeert of afbeeldingen moeten worden afgedrukt (standaard = True).

### Voorbeeld:

##### In BASIC

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

##### In Python

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

Alle ScriptForge Basic-routines of variabelen die beginnen met een underscore "_" zijn voor intern gebruik. Gebruik deze niet in een Basic of Python-macro.

Verwante onderwerpen

SFDocumenten.Base -service

SFDatabases.Database-service

SFDocuments.Document-service

SFDocuments.Form-service

Service ScriptForge.UI