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:

Dienstaufruf

Vor der Verwendung des Dienstes Datasheet 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 Dienst Datasheet kann auf zwei verschiedene Arten aufgerufen werden, je nachdem, ob die Datenbankdatei geöffnet ist.

Das folgende Beispiel geht davon aus, dass die Datenbankdatei geöffnet ist, daher kann der Dienst UI verwendet werden, um das Dokument und die Methode OpenTable aus dem Dienst Database abzurufen, der wird verwendet, um eine Dienstinstanz Datasheet zu erhalten.


    Dim ui As Object, oBase As Object, oSheet As Object
    Set ui = CreateScriptService("UI")
    ' Objekt oBase ist eine Instanz des Base-Dienstes
    Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
    ' Object oSheet ist eine Instanz des Dienstes "Datasheet"
    Set oSheet = oBase.OpenTable("Customers")
  

Im obigen Beispiel ist es auch möglich, die Methode OpenQuery des Dienstes Base zu verwenden, um eine Instanz Datasheet zu erhalten.

Um den Dienst Datasheet aufzurufen, wenn die Datenbankdatei nicht geöffnet ist, verwenden Sie die Methoden OpenTable, OpenQuery oder OpenSql des Dienstes Database. Das folgende Beispiel verwendet die Methode OpenTable, um eine vorhandene Tabelle in der Datenbankdatei zu öffnen:


    Dim oDatabase As Object, oSheet As Object
    ' Objekt oDatabase ist eine Instanz des Dienstes "Database"
    Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
    ' Object oSheet ist eine Instanz des Dienstes "Datasheet"
    Set oSheet = oDatabase.OpenTable("Customers")
  
In Python

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


    from scriptforge import CreateScriptService
    ui = CreateScriptService("UI")
    base_doc = ui.GetDocument(r"C:\Documents\MyFile.odb")
    sheet = base_doc.OpenTable("Customers")
  

    database = CreateScriptService("Database", r"C:\Documents\myDB.odb")
    sheet = database.OpenTable("Customers")
  

Eigenschaften

Die folgenden Eigenschaften sind im Service Datasheet verfügbar:

Name

schreibgeschützt

Typ

Beschreibung

ColumnHeaders

Ja

Matrix mit Zeichenfolgen

Gibt eine Matrix mit den Namen der Spaltenüberschriften der Datentabelle zurück.

CurrentColumn

Ja

String

Gibt den aktuell ausgewählten Spaltennamen zurück.

CurrentRow

Ja

Integer

Gibt die Nummer der aktuell ausgewählten Zeile zurück, beginnend bei 1.

DatabaseFileName

Ja

String

Gibt den Dateinamen der Bass-Datei im Format FSO.FileNaming zurück.

Filter

Nein

String

Legt einen Filter fest, der auf die Datentabelle angewendet werden soll, ausgedrückt als Klausel WHERE einer SQL-Abfrage ohne das Schlüsselwort WHERE. Wenn eine leere Zeichenfolge angegeben wird, wird der aktive Filter entfernt.

LastRow

Ja

Integer

Gibt die Anzahl der Zeilen in der Datentabelle zurück.

OrderBy

Nein

String

Gibt die Reihenfolge an, in der Datensätze angezeigt werden, ausgedrückt als Klausel ORDER BY einer SQL-Abfrage ohne das Schlüsselwort ORDER BY. Wenn eine leere Zeichenfolge angegeben wird, wird das aktive OrderBy entfernt.

ParentDatabase

Ja

Objekt

Gibt die Dienstinstanz Database zurück, zu der die Datentabelle gehört.

Source

Ja

String

Gibt eine Zeichenfolge zurück, welche die Datenquelle darstellt, die eine SQL-Anweisung, ein Tabellenname oder ein Abfragename sein kann.

SourceType

Ja

String

Gibt den Typ der Datenquelle zurück, der einer der folgenden Werte sein kann: „SQL“, „TABLE“ oder „QUERY“.

XComponent

Ja

UNO-Objekt

Gibt das UNO-Objekt com.sun.star.lang.XComponent zurück, welches die Datentabelle repräsentiert.

XControlModel

Ja

UNO-Objekt

Gibt das UNO-Objekt com.sun.star.awt.XControl zurück, das die Datentabelle repräsentiert.

XTabControllerModel

Ja

UNO-Objekt

Gibt das UNO-Objekt com.sun.star.awt.XTabControllerModel zurück, das die Datentabelle repräsentiert.


Methoden

Methodenliste im Dienst "Datasheet"

Activate
CloseDatasheet
CreateMenu

GetText
GetValue

GoToCell
RemoveMenu


Activate

Bringt das Fenster Datenansicht in den Vordergrund, auf das von der Instanz Datasheet verwiesen wird.

Syntax:

svc.Activate()

Beispiel:

In Basic

      oSheet.Activate()
    
In Python

      sheet.Activate()
    

CloseDatasheet

Schließt das Fenster Datenansicht, auf das von der Instanz Datasheet verwiesen wird.

Syntax:

svc.CloseDatasheet()

Beispiel:

In Basic

      oSheet.CloseDatasheet()
    
In Python

      sheet.CloseDatasheet()
    

CreateMenu

Erstellt einen neuen Menüeintrag im Fenster Datenansicht und gibt eine Dienstinstanz SFWidgets.Menu zurück, mit der Menüelemente programmgesteuert hinzugefügt werden können.

note

Menüs, die mit der Methode CreateMenu hinzugefügt wurden, gehen verloren, sobald das Fenster Datenansicht geschlossen wird.


Syntax:

svc.CreateMenu(menuheader: str, opt before: any, opt submenuchar: str): obj

Parameter:

menuheader: Der Name des neuen Menüs.

before: Dieses Argument kann entweder der Name eines bestehenden Menüeintrags sein, vor dem das neue Menü platziert wird, oder eine Zahl, welche die Position des neuen Menüs ausdrückt. Wenn dieses Argument leer gelassen wird, wird das neue Menü als letzter Eintrag platziert.

submenuchar: Das in Menübäumen verwendete Trennzeichen (Standard = ">")

Beispiel:

In Basic

      Dim oMenu As Object
      Set oMenu = oSheet.CreateMenu("Mein Menü", Before := "Data")
      With oMenu
          .AddItem("Eintrag 1", Command := ".uno:About")
          ' ...
          .Dispose()
      End With
    
In Python

      menu = sheet.CreateMenu("Mein Menü", before="Data")
      menu.AddItem("Eintrag 1", command=".uno:About")
      # ...
      menu.Dispose()
    
tip

Lesen Sie die Hilfeseite Dienst Menu, um mehr darüber zu erfahren, wie Sie Menü- und Untermenüeinträge erstellen und Befehle zuordnen.


GetText

Gibt den Text in einer bestimmten Spalte der aktuellen Zeile zurück.

note

Diese Methode ändert nicht die Position des Cursors im Fenster Datenansicht.


Syntax:

svc.GetText(column: any): str

Parameter:

column: Der Name der Spalte als Zeichenfolge oder die Spaltenposition (beginnend bei 1). Wenn eine Position angegeben wird, die größer als die Anzahl der Spalten ist, wird die letzte Spalte zurückgegeben.

Beispiel:

In Basic

      oSheet.GetText("FirstName")
    
In Python

      sheet.GetText("FirstName")
    

GetValue

Gibt den Wert in einer bestimmten Spalte der aktuellen Zeile als gültigen Basic-Typ zurück.

Folgende Typen können zurückgegeben werden: String, Integer, Long, Single, Double, Date und Null.

Binäre Typen werden als Wert Long zurückgegeben, der die Länge des binären Felds angibt.

Ein Wert Empty wird zurückgegeben, wenn der erforderliche Wert nicht abgerufen werden konnte.

note

Diese Methode ändert nicht die Position des Cursors im Fenster Datenansicht.


Syntax:

svc.GetValue(column: any): any

Parameter:

column: Der Name der Spalte als Zeichenfolge oder die Spaltenposition (beginnend bei 1). Wenn eine Position angegeben wird, die größer als die Anzahl der Spalten ist, wird die letzte Spalte zurückgegeben.

Beispiel:

In Basic

      oSheet.GetValue("Address")
    
In Python

      sheet.GetValue("Address")
    

GoToCell

Bewegt den Cursor in die angegebene Zeile und Spalte.

note

Diese Methode ändert nicht die Position des Cursors im Fenster Datenansicht.


Syntax:

svc.GoToCell(opt row: int, opt column: any): bool

Parameter:

row: Die Zeilennummer als numerischer Wert, beginnend bei 1. Wenn die angeforderte Zeile die Anzahl der vorhandenen Zeilen überschreitet, wird der Cursor in die letzte Zeile verschoben. Wenn dieses Argument nicht angegeben ist, wird die Zeile nicht geändert.

column: Der Name der Spalte als Zeichenfolge oder die Spaltenposition (beginnend bei 1). Wenn die angeforderte Spalte die Anzahl der vorhandenen Spalten überschreitet, wird der Cursor auf die letzte Spalte bewegt. Wenn dieses Argument nicht angegeben ist, wird die Spalte nicht geändert.

Beispiel:

In Basic

      ' Bewegt den Cursor in die Spalte "Nachname" in Zeile 4
      oSheet.GoToCell(4, "Nachname")
      ' Bewegt den Cursor in die dritte Spalte der aktuellen Zeile
      oSheet.GoToCell(Column := 3)
      ' Bewegt den Cursor eine Zeile nach unten und belässt ihn in derselben Spalte
      oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
      ' Springt zur letzten Spalte der letzten Zeile
      Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
      oSheet.GoToCell(oSheet.LastRow, LastColumn)
    
In Python

      sheet.GoToCell(4, "Nachname")
      sheet.GoToCell(column=3)
      sheet.GoToCell(row=sheet.CurrentRow + 1)
      sheet.GoToCell(sheet.LastRow, len(sheet.ColumnHeaders))
    

RemoveMenu

Entfernt einen Menüeintrag anhand seines Namens aus der Datenansicht.

note

Diese Methode kann Menüs entfernen, die zur Standard-Benutzeroberfläche gehören, sowie Menüs, die programmgesteuert mit der Methode CreateMenu hinzugefügt wurden. Das Entfernen von Standardmenüs ist nicht dauerhaft und sie werden wieder angezeigt, nachdem das Fenster geschlossen und erneut geöffnet wurde.


Syntax:

svc.RemoveMenu(menuheader: str): bool

Parameter:

menuheader: Der Name des Menüs, das entfernt werden soll, wobei die Groß-/Kleinschreibung beachtet werden muss. Der Name darf keine Tilde ("~") enthalten.

Beispiel:

In Basic

      oSheet.RemoveMenu("Data")
    
In Python

      sheet.RemoveMenu("Data")
    
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!