Dienst SFDocuments.Base

Der Dienst Base bietet eine Reihe von Methoden und Eigenschaften, um die Verwaltung und Handhabung von LibreOffice Base-Dokumenten zu erleichtern.

Dieser Dienst ist eng mit dem Dienst Document verbunden, der generische Methoden zur Handhabung von LibreOffice-Dokumenten, einschließlich Basisdokumenten, bereitstellt. Daher erweitert der Dienst Base den Dienst Document und stellt zusätzliche Methoden bereit, die spezifisch für Base-Dokumente sind und Benutzern Folgendes ermöglichen:

note

Dieser Dienst ist ab LibreOffice 7.2 verfügbar.


tip

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


Dienstaufruf

In Basic

Der Base-Dienst kann auf verschiedene Arten aufgerufen werden. Der folgende Code-Schnipsel verwendet die Methode CreateBaseDocument des Dienstes UI, um eine neue Base-Datei zu erstellen.

Beachten Sie, dass in allen Beispielen das Objekt oDoc eine Instanz des Dienstes Base ist.


    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateBaseDocument("C:\Documents\MyFile.odb")
  

Der Dienst Base kann auch instanziiert werden, während eine vorhandene Base-Datei geöffnet wird, wie unten gezeigt:


    Set oDoc = ui.OpenBaseDocument("C:\Documents\MyFile.odb")
  

Wenn bereits ein Base-Dokument geöffnet ist, kann der Dienst Base direkt instanziiert werden:


    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  
In Python

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


    from scriptforge import CreateScriptService
    ui = CreateScriptService("UI")
    doc = ui.CreateBaseDocument(r"C:\Documents\MyFile.odb")
  

    doc = ui.OpenBaseDocument(r"C:\Documents\MyFile.odb")
  

    doc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  
note

Die Verwendung der Teilzeichenfolge "SFDocuments." im vorherigen Beispiel ist optional.


Liste der Methoden im Dienst Base

FormDocuments
Forms

GetDatabase
IsLoaded

OpenFormDocument


FormDocuments

Gibt eine Matrix mit den vollständigen Namen (Pfad/Name) aller Formulardokumente im Base-Dokument als nullbasierte Matrix von Zeichenfolgen zurück.

Syntax:

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

Beispiel:

Der folgende Code-Schnipsel gibt die Namen aller Formulardokumente im aktuellen Base-Dokument aus.

In Basic

    Dim oDoc as Object, myForms as Object, formName as String
    Set oDoc = CreateScriptService("Document", ThisDataBaseDocument)
    Set myForms = oDoc.FormDocuments()
    For Each formName In myForms
        MsgBox formName
    Next formName
  
In Python

    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisDataBaseDocument)
    myForms = oDoc.FormDocuments()
    for formName in myForms:
        bas.MsgBox(formName)
  
tip

Weitere Informationen zu Formulardokumenten finden Sie auf der Hilfeseite des Dienstes Form.


Forms

Abhängig von den bereitgestellten Parametern gibt diese Methode Folgendes zurück:

Syntax:

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

svc.Forms(formdocument: str, form: str = ''): svc

svc.Forms(formdocument: str, form: int): svc

Parameter:

formdocument: Der Name eines gültigen Formulardokuments als Zeichenfolge mit Berücksichtigung der Groß- und Kleinschreibung.

form: Der Name oder die Indexnummer des im Formulardokument gespeicherten Formulars. Fehlt dieses Argument, gibt die Methode eine Liste mit den Namen aller im Formulardokument verfügbaren Formulare zurück.

note

Obwohl es möglich ist, auf Formulare mit Indexnummern zu verweisen, wird dies nur empfohlen, wenn es nur ein Formular im Formulardokument gibt. Wenn es zwei oder mehr Formulare gibt, ist es besser, stattdessen den Formularnamen zu verwenden.


Beispiel:

Die erste Zeile des folgenden Beispiels gibt eine Liste aller Formulare im Formulardokument "myFormDocument" zurück. Die zweite Zeile gibt eine Instanz des Dienstes Form zurück, die das Formular „myForm“ darstellt.

In Basic

    Dim formsList as Object : formsList = oDoc.Forms("myFormDocument")
    Dim oForm as Object : oForm = oDoc.Forms("myFormDocument", "myForm")
  
In Python

    formsList = doc.Forms("myFormDocument")
    form = doc.Forms("myFormDocument", "myForm")
  

GetDatabase

Gibt eine Instanz des Dienstes Database zurück, welcher die Ausführung von SQL-Befehlen auf der im aktuellen Basisdokument definierten und/oder gespeicherten Datenbank ermöglicht

Syntax:

svc.GetDatabase(user: str = '', password: str = ''): svc

Parameter:

user, password: Optionale Login-Parameter als Zeichenfolgen. Der Standardwert für beide Parameter ist eine leere Zeichenfolge "".

Beispiel:

In Basic

    Dim myDoc As Object, myDatabase As Object, ui As Object
    Set ui = CreateScriptService("UI")
    Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
    ' Benutzer und Kennwort werden unten angegeben, falls erforderlich
    Set myDatabase = myDoc.GetDatabase()
    ' … Ausführung von Abfragen, SQL-Anweisungen, …
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  
In Python

    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    ' … Ausführung von Abfragen, SQL-Anweisungen, …
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  

IsLoaded

Gibt True zurück, wenn das angegebene FormDocument derzeit geöffnet ist.

Syntax:

svc.IsLoaded(formdocument: str): bool

Parameter:

formdocument: Der Name eines zu prüfenden FormDocument, als Groß-/Kleinschreibung beachtende Zeichenfolge.

Beispiel:

In Basic

    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
In Python

    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  

OpenFormDocument

Öffnet das angegebene FormDocument entweder im normalen oder im Entwurfsmodus.

Wenn das Formulardokument bereits geöffnet ist, wird es aktiviert, ohne seinen Modus zu ändern. Die Methode gibt True zurück, wenn das Formulardokument geöffnet werden konnte.

Syntax:

svc.OpenFormDocument(formdocument: str, designmode: bool = False): bool

Parameter:

formDocument: Der Name des zu öffnenden FormDocument als Groß- und Kleinschreibung berücksichtigende Zeichenfolge.

designmode: Wenn dieses Argument True ist, wird das FormDocument im Designmodus geöffnet.

Beispiel:

In Basic

Die meisten Formulardokumente werden im Stammverzeichnis des Base-Dokuments gespeichert und können einfach anhand ihres Namens geöffnet werden, wie im folgenden Beispiel:


    oDoc.OpenFormDocument("MeinFormularDokument")
  

Wenn Formulardokumente in Ordnern organisiert sind, muss der Ordnername angegeben werden, um das zu öffnende Formulardokument anzugeben, wie im folgenden Beispiel dargestellt:


    oDoc.OpenFormDocument("MeinOrdner/MeinFormularDokument")
  
In Python

    doc.OpenFormDocument("myFormDocument")
  

    doc.OpenFormDocument("myFolder/myFormDocument")
  
warning

Alle Basic-Routinen oder -Identifikatoren von ScriptForge mit einem Unterstrich "_" sind für internen Gebrauch reserviert. Sie sind nicht für den Einsatz in Basic-Macros gedacht.