Inhalte
Index 🔎︎

# Die Bibliothek ScriptForge

So greifen Sie auf diesen Befehl zu:

Wählen Sie Extras – Makros – LibreOffice Basic – Bearbeiten… und den Container Anwendungsmakros.

ScriptForge-Bibliotheken bilden eine erweiterbare Sammlung an Makro-Skriptressourcen für LibreOffice, die von Basic-Makros oder Python-Skripten aufgerufen werden können.

• 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

Um mehr darüber zu erfahren, wie man Python-Skripte mit der Bibliothek ScriptForge erstellt und ausführt, lesen Sie die Hilfeseite Erstellen von Python-Skripten mit ScriptForge.

## Aufrufen von ScriptForge-Diensten

Die beschriebenen Module und Klassen werden von Benutzerskripten als "Dienste" aufgerufen. Zu diesem Zweck wurde für jede Sprache ein generischer Konstruktor dieser Dienste entwickelt.

Die Methode Dispose ist in allen Diensten verfügbar und sollte aufgerufen werden, um Ressourcen nach der Verwendung freizugeben:

##### In Basic

        GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
        Set oSvc = CreateScriptService("servicename"[, arg0, arg1, ...])
        ' ...
        oSvc.Dispose()

##### In Python

        from scriptforge import CreateScriptService
        svc = CreateScriptService('servicename'[, arg0, arg1, ...])
        # ...
        svc.Dispose()

## Von der Bibliothek ScriptForge bereitgestellte Dienste

Kategorie | Dienste
--- | ---
LibreOffice Basic | Array Dictionary | Exception FileSystem | String TextStream
Dokumentinhalt | Base Calc Chart | Database Datasheet | Document Writer
Benutzeroberfläche | Dialog DialogControl Form | FormControl Menu | PopupMenu UI
Dienstprogramme | Basic L10N Platform | Region Services Session | Timer UnitTest

## ScriptForge.Array -Service

Stellt eine Sammlung von Methoden zum Bearbeiten und Transformieren von Matrizen mit einer Dimension (Vektoren) und MAtrizen mit zwei Dimensionen bereit. Dazu gehören Set-Operationen, Sortieren, Importieren aus und Exportieren in Textdateien.

Matrizen mit mehr als zwei Dimensionen können mit den Methoden in diesem Dienst nicht verwendet werden, die einzige Ausnahme ist die Methode CountDims, die Matrizen mit einer beliebigen Anzahl von Dimensionen akzeptiert.

## 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:

- Zugriff auf die Datenbank erhalten, die in einem Base-Dokument enthalten ist.

- Formulardokumente öffnen, die in einem Base-Dokument gespeichert sind.

- Überprüfen, ob derzeit ein Formulardokument aus einem Base-Dokument geladen ist.

## Dienst ScriptForge.Basic

Der Dienst ScriptForge.Basic schlägt eine Sammlung von LibreOffice Basic-Methoden vor, die in einem Python-Kontext ausgeführt werden können. Die Methoden des Dienstes Basic reproduzieren die genaue Syntax und das Verhalten der integrierten Basic-Funktionen.

## Dienst SFDocuments.Calc

Die gemeinsam genutzte Bibliothek SFDocuments bietet eine Reihe von Methoden und Eigenschaften, um die Verwaltung und Handhabung von LibreOffice-Dokumenten zu erleichtern.

Der Dienst SFDocuments.Calc ist eine Unterklasse de Dienstes SFDocuments.Document. Auf alle für den Dienst Document definierten Methoden und Eigenschaften kann auch über eine Dienstinstanz Calc zugegriffen werden.

Der Dienst Calc konzentriert sich auf:

- Umgang mit Tabellen in einem Calc-Dokument (Kopieren, Einfügen, Verschieben, …)

- Datenaustausch zwischen Basic-Datenstrukturen und Calc-Bereichen

- Kopieren und Importieren riesiger Datenmengen

## Dienst SFDocuments.Chart

Der Dienst Chart bietet eine Reihe von Eigenschaften und Methoden zur Handhabung von Diagrammen in Calc-Dokumenten. Mit diesem Dienst ist es möglich:

- Auf Diagrammobjekte in Calc-Dokumenten zugreifen und deren Eigenschaften bearbeiten.

- Neue Diagramme erstellen und diese in ein Calc-Dokument einfügen.

- Diagramme als Bilddateien exportieren.

## Dienst SFDatabases.Database

Der Dienst Database bietet Zugriff auf Datenbanken, die entweder eingebettet oder in Base-Dokumenten beschrieben sind. Dieser Dienst bietet Methoden für Folgendes:

- Erhält Zugriff auf Daten in Datenbanktabellen.

- Führt Abfragen SELECT und Aggregatfunktionen aus.

- Führt SQL-Aktionsanweisungen wie INSERT, UPDATE, DELETE, … aus.

## Dienst SFDatabases.Datasheet

Der Service Datasheet ermöglicht es, den Inhalt von Datenbanktabellen sowie die Ergebnisse von Abfragen und SQL-Anweisungen mithilfe von Base Data View zu visualisieren. Darüber hinaus ermöglicht dieser Dienst Folgendes:

- Der Datenansicht benutzerdefinierte Menüs hinzufügen.

- Auf Werte an bestimmten Positionen der Datenansicht zugreifen.

- Den Cursor in einer bestimmten Zelle der Datenansicht positionieren.

## Dienst SFDialogs.Dialog

Der Dienst Dialog trägt zur Verwaltung von Dialogen bei, die mit dem Dialogeditor Basic erstellt wurden. Jede Instanz der aktuellen Klasse stellt einen einzelnen Dialog dar, der dem Benutzer angezeigt wird.

## Dienst SFDialogs.DialogControl

Der Dienst DialogControl verwaltet die Steuerelemente, die zu einem Dialog gehören, der mit dem einfachen Dialogeditor definiert wurde. Jede Instanz des aktuellen Dienstes stellt ein einzelnes Steuerelement innerhalb eines Dialogs dar.

Der Schwerpunkt liegt auf dem Abrufen und Festlegen der Werte, die von den Steuerelementen des Dialogs angezeigt werden. Auf die Formatierung kann über die Eigenschaften XControlModel und XControlView zugegriffen werden.

Beachten Sie, dass der Inhalt der eindeutigen Eigenschaft DialogControl.Value je nach Steuerelementtyp variiert.

Ein besonderes Augenmerk wird auf Steuerelemente vom Typ Baumansicht gelegt. Es ist einfach, einen Baum zu füllen, entweder Zweig für Zweig oder mit mehreren Zweigen parallel. Das Füllen eines Baumansicht-Steuerelements kann statisch oder dynamisch erfolgen.

## Dienst ScriptForge.Dictionary

Ein Wörterbuch ist eine Sammlung von Schlüsselelementpaaren

- Der Schlüssel ist eine Zeichenfolge, bei der die Groß-/Kleinschreibung nicht beachtet wird

- Einträge können von beliebiger Art sein

## Dienst SFDocuments.Document

Die Bibliothek SFDocuments stellt Methoden und Eigenschaften bereit, um die Verwaltung und Bearbeitung von LibreOffice-Dokumenten zu erleichtern.

Der Dienst SFDocuments.Document stellt Methoden zur Verfügung, die für alle Arten von Dokumenten (Textdokumente, Blätter, Präsentationen, …) anwendbar sind. Einige Beispiele sind:

- Dokumente öffnen, schließen und speichern

- Zugriff auf standardmäßige oder benutzerdefinierte Eigenschaften von Dokumenten

## Dienst ScriptForge.Exception

Der Dienst Exception ist eine Sammlung von Methoden zur Unterstützung beim Code-Debugging in Basic- und Python-Skripten und bei der Fehlerbehandlung in Basic-Skripten.

Wenn in Basic-Skripten ein Laufzeitfehler auftritt, helfen die Methoden und Eigenschaften des Dienstes Exception dabei, den Fehlerkontext zu identifizieren und ihn zu behandeln.

## Dienst ScriptForge.FileSystem

Der Dienst FileSystem enthält Routinen zur Handhabung von Dateien und Ordnern. Als erstes sind einige Beispiele für die Funktionen dieses Dienstes aufgeführt:

- Überprüfen, ob eine Datei oder ein Ordner vorhanden ist.

- Erstellen und löschen von Ordnern und Dateien.

- Starten von Dialogen zum Öffnen/Speichern von Dateien.

- Zugreifen auf die Liste der Dateien in einem Ordner, …

## Dienst SFDocuments.Form

Der Dienst Form stellt Methoden und Eigenschaften bereit, um Formulare in LibreOffice-Dokumenten zu verwalten. Dieser Dienst unterstützt Formulare in Base-, Calc- und Writer-Dokumenten und ermöglicht Folgendes:

- Formulare öffnen und aktivieren.

- Durch die vom Formular angezeigten Datensätze navigieren.

- Zugriff auf die Steuerelemente im Formular erhalten.

- Zugriff auf Unterformulare eines übergeordneten Formulars erhalten.

## Dienst SFDocuments.FormControl

Der Dienst FormControl bietet Zugriff auf die Steuerelemente, die zu einem Formular, einem Unterformular oder einem Tabellensteuerelement eines FormDocument gehören. Jede Instanz des Dienstes FormControl verweist auf ein einzelnes Steuerelement im Formular. Dieser Dienst ermöglicht Benutzern:

- Das Abrufen und Festlegen der Eigenschaften des Steuerelements, das durch die Instanz FormControl dargestellt wird.

- Den Zugriff auf den aktuellen Wert, der vom Steuerelement angezeigt wird.

- Das Setzen des Fokus auf das gewünschte Steuerelement.

## Dienst ScriptForge.L10N

Dieser Dienst bietet eine Reihe von Methoden zur Übersetzung von Zeichenfolgen mit minimaler Auswirkung auf den Quellcode des Programms. Die vom Dienst L10N bereitgestellten Methoden können hauptsächlich für Folgendes verwendet werden:

- Erstellen von POT-Dateien, die als Vorlagen für die Übersetzung aller Zeichenfolgen im Programm verwendet werden können.

- Um zur Laufzeit übersetzte Zeichenfolgen für die Sprache zu erhalten, die in der Eigenschaft Locale festgelegt ist.

## Dienst SFWidgets.Menu

Der Dienst Menu kann zum Erstellen und Entfernen von Menüs aus der Menüleiste eines LibreOffice-Dokumentfensters verwendet werden. Jeder Menüeintrag kann einem Skript oder einem UNO-Befehl zugeordnet werden. Dieser Dienst bietet die folgenden Funktionen:

- Erstellung von Menüs mit benutzerdefinierten Einträgen, Markierfeldern, Optionsfeldern und Trennzeichen.

- Dekoration von Menüpunkten mit Symbolen und Infoboxen.

## Dienst ScriptForge.Platform

Der Dienst Platform stellt eine Sammlung von Eigenschaften über die aktuelle Ausführungsumgebung und den aktuellen Kontext bereit, beispielsweise:

- Die Hardwareplattform (Architektur, CPU-Anzahl, Maschinentyp, …)

- Informationen zum Betriebssystem (BS-Typ, Release, Version, …)

- Die LibreOffice-Version

- Den aktuellen Benutzernamen

## Dienst SFWidgets.PopupMenu

Der Dienst PopupMenu kann verwendet werden, um Popup-Menüs zu erstellen, die Ereignissen zugeordnet oder von Skripten ausgeführt werden können. Dieser Dienst bietet die folgenden Funktionen:

- Erstellung von Popup-Menüs mit benutzerdefinierten Einträgen, Markier- und Optionsfeldern.

- Dekoration von Menüeinträgen mit Icons und Infotexten.

## Dienst ScriptForge.Region

Der Dienst Region stellt eine Sammlung von Eigenschaften und Methoden bereit, um gebietsschema- und regionsbezogene Aspekte der Programmierung zu handhaben, wie zum Beispiel:

- Zugriff auf gebietsschema- und regionsabhängige Einstellungen wie Zahlenformatierung, Währung und Zeitzonen.

- Konvertierung von Zeitzonen und Berechnen von Abweichungen von der Sommerzeit (DST).

- Umwandlung von Zahlen in Text in jeder unterstützten Sprache.

## Dienst ScriptForge.Services

Der Hauptzweck des Moduls Services besteht darin, Zugriff auf die Methode CreateScriptService bereitzustellen, die in Benutzerskripten aufgerufen werden kann, um Dienste zu instanziieren, die mit dem Framework ScriptForge implementiert werden.

## Dienst ScriptForge.Session

Der Dienst Session sammelt verschiedene Allzweckmethoden zu:

- der Installations- oder Ausführungsumgebung

- UNO-Introspektion

- dem Aufruf externer Skripte oder Programme

## Dienst ScriptForge.String

Der Dienst String stellt eine Sammlung von Methoden zur Verarbeitung von Zeichenfolgen bereit. Diese Methoden können verwendet werden, um:

- Überprüfen des Inhalts von Zeichenfolgen

- Formatieren von Zeichenfolgen, indem Sie ihren Inhalt kürzen, ausrichten oder umbrechen

- Verwenden Sie reguläre Ausdrücke, um Teilzeichenfolgen zu suchen und zu ersetzen

- Anwenden von Hash-Algorithmen auf Zeichenfolgen, …

## Dienst ScriptForge.TextStream

Der Dienst TextStream wird verwendet, um sequentiell aus Dateien zu lesen und in Dateien zu schreiben, die mit dem Dienst ScriptForge.FileSystem geöffnet oder erstellt wurden.

Die Methoden OpenTextFile und CreateTextFile des Dienstes FileSystem geben eine Instanz des Dienstes TextStream zurück.

## Dienst ScriptForge.Timer

Der Dienst Timer misst die Zeit, die zum Ausführen von Benutzerskripten benötigt wird.

Timer misst die Dauer. Es kann sein:

- Gestartet, um anzugeben, wann die Zeitmessung beginnen soll.

- Angehalten, um die Messung der Laufzeit zu unterbrechen.

- Fortgesetzt, um die Laufzeit fortzusetzen, nachdem der Timer ausgesetzt wurde.

- Neu gestartet, wodurch frühere Messungen abgebrochen und der Timer bei Null gestartet wird.

## Dienst ScriptForge.UI

Der Dienst UI (User Interface) vereinfacht die Identifizierung und Handhabung der verschiedenen Fenster, aus denen sich die gesamte LibreOffice-Anwendung zusammensetzt:

- Fensterauswahl

- Fenster verschieben und skalieren

- Statusleisten-Einstellungen

- Anzeige eines schwebenden Fortschrittsbalkens

- Erstellung neuer Fenster

- Zugriff auf die zugrunde liegenden "Dokumente"

## Dienst SFUnitTests.UnitTest

Der Dienst UnitTest bietet ein Framework für die Automatisierung von Komponententests mithilfe der Basic-Sprache, einschließlich der Möglichkeit:

- Testfälle in Testsuiten und Komponententests zusammenzufassen.

- Setup- und Shutdown-Code zwischen Testfällen zu teilen.

- Testergebnisse auf der Konsole zu melden.

## Dienst SFDocuments.Writer

Die gemeinsam genutzte Bibliothek SFDocuments bietet eine Reihe von Methoden und Eigenschaften, um die Verwaltung und Handhabung von LibreOffice-Dokumenten zu erleichtern.

Einige Methoden sind generisch für alle Arten von Dokumenten und werden vom Modul SF_Document geerbt, während andere Methoden, die spezifisch für Writer-Dokumente sind, im Modul SF_Writer definiert sind.

Hinweis: Andere unbeschriebene ScriptForge-Module sind für die interne Verwendung reserviert. Ihr Inhalt kann ohne vorherige Ankündigung geändert werden.

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.