Inhalte

# Dienst SFDocuments.FormDocument

Der Dienst FormDocument ermöglicht den Zugriff auf Formulardokumente, die in Dokumenten für LibreOffice Base gespeichert sind.

In einem Base-Dokument können vorhandene Formulardokumente angezeigt werden, indem Sie in der Benutzeroberfläche Ansicht – Formulare… wählen. Jedes Formulardokument kann aus einem oder mehreren Formularen bestehen, einschließlich des Hauptformulars und anderer Unterformulare.

Dieser Dienst erbt Methoden und Eigenschaften vom Dienst Document und wird häufig zusammen mit den Diensten Base und Database verwendet.

Weitere Informationen zu Methoden und Eigenschaften, die zum Verwalten von LibreOffice-Dokumenten verwendet werden können, finden Sie im Dienst Document .

## Dienstaufruf

Vor der Nutzung des Dienstes FormDocument muss die Bibliothek ScriptForge geladen oder importiert werden:

• Grundlegende Makros erfordern das Laden der Bibliothek ScriptForge mit der folgenden Anweisung:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python-Skripte erfordern einen Import aus dem Modul scriptforge:
from scriptforge import CreateScriptService

##### In Basic

Eine Dienstinstanz FormDocument kann durch Aufrufen der Methode OpenFormDocument erstellt werden, die sowohl im Dienst Base als auch in Database vorhanden ist.

Im folgenden Beispiel wird der Dienst UI verwendet, um ein Basisdokument zu öffnen und dann ein Formulardokument abzurufen. Beachten Sie, dass in diesem Beispiel sowohl das Base-Dokument als auch das Formulardokument geöffnet und auf dem Bildschirm angezeigt werden.

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

Im folgenden Beispiel wird der Dienst Database verwendet, um das Formulardokument zu öffnen. In diesem Fall wird die Base-Datei nicht geöffnet und nur das Formulardokument angezeigt.

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

Durch den Aufruf von OpenFormDocument für ein bereits geöffnetes Formulardokument wird das Dokumentfenster aktiviert und in den Fokus gerückt.

##### In Python

Die obigen Beispiele können wie folgt in Python übersetzt werden:

        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 der Methoden im Dienst "FormDocument"
CloseDocument Forms | GetDatabase | PrintOut

## CloseDocument

Schließt das Formulardokument, auf das von der Instanz FormDocument verwiesen wird. Gibt True zurück, wenn das Formulardokument erfolgreich geschlossen wurde.

### Syntax:

svc.CloseDocument(): bool

### Beispiel:

##### In Basic

        oFormDoc.CloseDocument()

##### In Python

        formDoc.CloseDocument()

## Forms

Gibt entweder eine Matrix mit den Namen der im Formulardokument enthaltenen Hauptformulare oder eine Dienstinstanz Form zurück, die auf ein bestimmtes Formular verweist.

Rufen Sie diese Methode ohne Argumente auf, um eine nullbasierte Zeichenfolgenmatrix mit den Namen aller im Formulardokument enthaltenen Formulare zu erhalten.

Geben Sie einen Formularnamen oder ein Index als Argument an, um eine Dienstinstanz Form zu erhalten, die dem angegebenen Formular entspricht.

Ein Formulardokument verfügt über mindestens ein Hauptformular. Komplexere Formulardokumente können aus mehr als einem Formular und Unterformularen bestehen.

### Syntax:

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

svc.Forms(form: str): svc

svc.Forms(form: int): svc

### Parameter:

form: Dieses Argument kann entweder eine Zeichenfolge mit dem Namen eines Formulars sein, das im Formulardokument vorhanden ist, oder der nullbasierte Index des Formulars, das zurückgegeben werden soll. Wenn dieses Argument nicht spezifisch ist, wird eine Matrix mit den Namen aller verfügbaren Formulare zurückgegeben.

### Beispiel:

##### In Basic

Das folgende Beispiel prüft, ob das Formulardokument ein Formular mit dem Namen "MainForm" enthält:

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

Das folgende Beispiel ruft das Formular mit dem Namen "MainForm" ab und verschiebt es in den letzten Datensatz:

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

Weitere Informationen zu Formularmethoden und -eigenschaften finden Sie auf der Hilfeseite zum Dienst Form.

### GetDatabase

Gibt eine Instanz SFDatabases.Database zurück, die Zugriff auf die Ausführung von SQL-Befehlen auf der Datenbank gewährt, mit der das aktuelle Formular verbunden ist und/oder die im aktuellen Base-Dokument gespeichert ist.

Jedes Formular hat seine eigene Datenbankverbindung, außer in Base-Ddokumenten, wo alle dieselbe Verbindung teilen.

### Syntax:

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

### Parameter:

user, password: Die optionalen Login-Parameter (Standard = "").

### Beispiel:

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

##### In Python

          db = form.GetDatabase()  # SFDatabases.Database

## PrintOut

Diese Methode sendet den Inhalt des Dokuments an den Standarddrucker oder an den durch die Methode SetPrinter() definierten Drucker.

Gibt True zurück, wenn das Dokument erfolgreich an den Drucker gesendet wurde.

### Syntax:

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

### Parameter:

pages: Die Seiten als Zeichenfolge, die gedruckt werden sollen. Dieses Argument sollte auf die gleiche Weise wie in der Benutzeroberfläche angegeben werden (siehe Dialog unter Datei – Drucken…). Beispielsweise: "1-4;10;15-18". Der Standardwert ist eine leere Zeichenfolge "", die bewirkt, dass alle Seiten gedruckt werden.

copies: Die Anzahl der zu druckenden Kopien (Standard = 1).

printbackground: Legt fest, ob das Hintergrundbild gedruckt werden soll (Standard = "True").

printblankpages: Legt fest, ob leere Seiten gedruckt werden sollen (Standard = "False").

printevenpages: Legt fest, ob gerade Seiten gedruckt werden sollen (Standard = "True").

printoddpages: Legt fest, ob ungerade Seiten gedruckt werden sollen (Standard = "True").

printimages: Legt fest, ob Bilder gedruckt werden sollen (Standard = "True").

### Beispiel:

##### In Basic

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

##### In Python

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

Alle ScriptForge Basic-Routinen oder Bezeichner, denen ein Unterstrich "_" vorangestellt ist, sind für den internen Gebrauch reserviert. Sie sind nicht für die Verwendung in Basic-Makros oder Python-Skripten vorgesehen.

Verwandte Themen

Dienst SFDocuments.Base

Dienst SFDatabases.Database

Dienst SFDocuments.Document

Dienst SFDocuments.Form

Dienst ScriptForge.UI