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:

tip

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


Dienstaufruf

Vor der Verwendung des Dienstes Base muss die Bibliothek ScriptForge geladen oder importiert werden:

note

• 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

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

CloseFormDocument
FormDocuments
Forms
GetDatabase

IsLoaded
OpenFormDocument
OpenQuery
OpenTable

PrintOut
SetPrinter



CloseFormDocument

Schließt das angegebene Formulardokument. Gibt True zurück, wenn das Schließen erfolgreich war.

warning

Die Methode CloseFormDocument ist seit LibreOffice 7.6 veraltet. Obwohl es noch verfügbar ist, wird es möglicherweise in einer zukünftigen Version aus dem Dienst Base entfernt. Verwenden Sie stattdessen die Methode CloseDocument des Dienstes FormDocument.


Syntax:

svc.CloseFormDocument(formdocument: str): bool

Parameter:

formdocument: Der Name des Formulardokuments, das geschlossen werden soll, als Zeichenfolge mit Berücksichtigung der Groß- und Kleinschreibung.

Beispiel:

Wenn Formulardokumente in Ordnern organisiert sind, muss der Ordnername angegeben werden, um das zu öffnende Formulardokument festzulegen, wie in den folgenden Beispielen dargestellt:

In Basic

    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
In Python

    doc.CloseFormDocument('Folder1/myFormDocument')
  

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 = doc.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:

warning

Die Methode Forms ist seit LibreOffice 7.6 veraltet. Obwohl es noch verfügbar ist, wird es möglicherweise in einer zukünftigen Version aus dem Dienst Base entfernt. Verwenden Sie stattdessen die Methode Forms des Dienstes FormDocument.


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ühren 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 Designmodus. Diese Methode gibt eine Dienstinstanz FormDocument zurück, die dem angegebenen Formulardokument entspricht.

Wenn das Formulardokument bereits geöffnet ist, wird es aktiviert, ohne seinen Modus zu ändern.

Wenn das angegebene Formulardokument nicht existiert, wird Nothing zurückgegeben.

Syntax:

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

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:


    Dim oFormDoc As Object
    oFormDoc = oDoc.OpenFormDocument("myFormDocument")
  

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


    oFormDoc = oDoc.OpenFormDocument("myFolder/myFormDocument")
  
In Python

    formDoc = doc.OpenFormDocument("myFormDocument")
  

    formDoc = doc.OpenFormDocument("myFolder/myFormDocument")
  

OpenQuery

Öffnet das Datenansicht-Fenster der angegebenen Abfrage und gibt eine Instanz des Datenblatt-Dienstes zurück.

Die Abfrage kann entweder im normalen oder Erstellungsmodus geöffnet werden.

Wenn die Abfrage bereits geöffnet ist, wird das Fenster Datenansicht aktiv.

note

Das Schließen des Basisdokuments führt ebenfalls zum Schließen des Datenansicht-Fensters.


Syntax:

svc.OpenQuery(queryname: str, designmode: bool = False): obj

Parameter:

queryname: Der Name einer bestehenden Abfrage als Zeichenfolge unter Beachtung der Groß- und Kleinschreibung.

designmode: Wenn dieses Argument auf True gesetzt ist, wird die Abfrage im Designmodus geöffnet. Andernfalls wird sie im normalen Modus geöffnet (Standard = False).

Beispiel:

In Basic

      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
In Python

      doc.OpenQuery("MyQuery", designmode=True)
    

OpenTable

Öffnet das Fenster Datenansicht der angegebenen Tabelle und gibt eine Instanz des Dienstes Datasheet zurück.

Die Tabelle kann entweder im Normal- oder Designmodus geöffnet werden.

Wenn die Tabelle bereits geöffnet ist, wird ihr Fenster Datenansicht aktiv gemacht.

note

Durch das Schließen des Base-Dokuments wird auch das Fenster Datenansicht geschlossen.


Syntax:

svc.OpenTable(tablename: str, designmode: bool = False): obj

Parameter:

tablename: Der Name einer bestehenden Tabelle als Zeichenfolge unter Beachtung der Groß- und Kleinschreibung.

designmode: Wenn dieses Argument auf True gesetzt ist, wird die Tabelle im Designmodus geöffnet. Andernfalls wird es im normalen Modus geöffnet (Standard = False).

Beispiel:

In Basic

      oDoc.OpenTable("MyTable", DesignMode = False)
    
In Python

      doc.OpenTable("MyTable", designmode=False)
    

PrintOut

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

Gibt True zurück, wenn das Dokument erfolgreich gedruckt wurde.

warning

Die Methode PrintOut ist seit LibreOffice 7.6 veraltet. Obwohl es noch verfügbar ist, wird es möglicherweise in einer zukünftigen Version aus dem Dienst Base entfernt. Verwenden Sie stattdessen die Methode PrintOut des Dienstes FormDocument.


Syntax:

svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool

Parameter:

formdocument: Ein gültiger Name des Dokumentformulars als Zeichenfolge mit Beachtung der Groß- und Kleinschreibung. Das Formulardokument muss geöffnet sein. Es wird durch die Methode aktiviert.

pages: Die Seiten, die gedruckt werden sollen, als Zeichenfolge wie in der Benutzeroberfläche. Beispiel: "1-4;10;15-18". Standard ist alle Seiten.

copies: Die Anzahl der Kopien. Standard ist 1.

Beispiel:

In Basic

    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
In Python

    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  

SetPrinter

Legen Sie die Druckeroptionen für ein Formulardokument fest. Das Formulardokument muss geöffnet sein.

Gibt bei Erfolg True zurück.

warning

Die Methode SetPrinter ist seit LibreOffice 7.6 veraltet. Obwohl es noch verfügbar ist, wird es möglicherweise in einer zukünftigen Version aus dem Dienst Base entfernt. Verwenden Sie stattdessen die Methode SetPrinter aus dem Dienst Document.


Syntax:

svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool

Parameter:

formdocument: Ein gültiger Name des Dokumentformulars als Zeichenfolge mit Beachtung der Groß- und Kleinschreibung.

printer: Der Name der Druckerwarteschlange, auf der gedruckt werden soll. Bei Fehlen wird der Standarddrucker verwendet.

orientation: Entweder PORTRAIT oder LANDSCAPE. Wenn nicht vorhanden, wird in Bezug auf die Druckereinstellungen unverändert belassen.

paperformat: Legt das Papierformat als Zeichenfolge fest, der entweder A3, A4, A5, LETTER, LEGAL oder TABLOID sein kann. Bleibt bei Abwesenheit unverändert.

Beispiel:

In Basic

    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
In Python

    doc.SetPrinter('myForm', paperformat='TABLOID')
  
warning

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.


Bitte unterstützen Sie uns!