SFDatabases.Datasheet-service

De Datasheet-service maakt het mogelijk om de inhoud van databasetabellen te visualiseren, evenals de resultaten van query's en SQL-statements met behulp van Base's Gegevensweergave. Bovendien maakt deze service het volgende mogelijk:

Serviceaanroep

Voordat u de Datasheet-service gebruikt, moet de ScriptForge-bibliotheek worden geladen of geïmporteerd:

note

• Basic macro's kunnen de bibliotheek ScriptForge laden met de instructie:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python scripts kunnen de module scriptforge importeren met:
from scriptforge import CreateScriptService


In BASIC

De Datasheet-service kan op twee verschillende manieren worden aangeroepen, afhankelijk van of het databasebestand open is.

In het onderstaande voorbeeld wordt ervan uitgegaan dat het databasebestand open is, vandaar dat de UI-service kan worden gebruikt om het document en de OpenTable-methode op te halen uit de Database-service wordt gebruikt om een Datasheet-service-instantie op te halen.


    Dim ui As Object, oBase As Object, oSheet As Object
    Set ui = CreateScriptService("UI")
    ' Object oBase is een instantie van de Base-service
    Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
    ' Object oSheet is een exemplaar van de Datasheet-service
    Set oSheet = oBase.OpenTable("Customers")
  

In het bovenstaande voorbeeld is het ook mogelijk om de methode OpenQuery van de Base-service te gebruiken om een Datasheet-instantie te verkrijgen.

Om de Datasheet-service aan te roepen wanneer het databasebestand niet is geopend, gebruikt u de methoden OpenTable, OpenQuery of OpenSql van de Database-service. In het onderstaande voorbeeld wordt de methode OpenTable gebruikt om een bestaande tabel in het databasebestand te openen:


    Dim oDatabase As Object, oSheet As Object
    ' Object oDatabase is een exemplaar van de Database-service
    Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
    ' Object oSheet is een exemplaar van de Datasheet-service
    Set oSheet = oDatabase.OpenTable("Customers")
  
In Python

De bovenstaande voorbeelden kunnen als volgt naar Python worden vertaald:


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

Eigenschappen

De volgende eigenschappen zijn beschikbaar in de Datasheet-service:

Naam

Alleen-lezen

Type

Beschrijving

ColumnHeaders

Ja

Matrix van tekenreeksen

Retourneert een Matrix met de namen van kolomkoppen in het gegevensblad.

CurrentColumn

Ja

String

Retourneert de momenteel geselecteerde kolomnaam.

CurrentRow

Ja

Integer

Retourneert het nummer van de momenteel geselecteerde rij, beginnend bij 1.

DatabaseFileName

Ja

String

Retourneert de bestandsnaam van het basisbestand in de indeling FSO.FileNaming.

Filter

Nee

String

Specificeert een filter dat moet worden toegepast op het gegevensblad, uitgedrukt als de WHERE-clausule van een SQL-query zonder het sleutelwoord WHERE. Als een lege string wordt opgegeven, wordt het actieve Filter verwijderd.

LastRow

Ja

Integer

Retourneert het aantal rijen in het gegevensblad.

OrderBy

Nee

String

Specificeert de volgorde waarin records worden weergegeven, uitgedrukt als de clausule ORDER BY van een SQL-query zonder het sleutelwoord ORDER BY. Als een lege string wordt opgegeven, wordt de actieve OrderBy verwijderd.

ParentDatabase

Ja

Object

Retourneert de Database-service-instantie waartoe het gegevensblad behoort.

Source

Ja

String

Retourneert een tekenreeks die de gegevensbron vertegenwoordigt. Dit kan een SQL-instructie, een tabelnaam of een querynaam zijn.

SourceType

Ja

String

Retourneert het type van de gegevensbron, wat een van de volgende waarden kan zijn: "SQL", "TABLE" of "QUERY".

XComponent

Ja

UNO-object

Retourneert het com.sun.star.lang.XComponent UNO-object dat de datasheet vertegenwoordigt.

XControlModel

Ja

UNO-object

Retourneert het com.sun.star.awt.XControl UNO-object dat het gegevensblad vertegenwoordigt.

XTabControllerModel

Ja

UNO-object

Retourneert het com.sun.star.awt.XTabControllerModel UNO-object dat het gegevensblad vertegenwoordigt.


Methodes

Lijst met methodes in de Datasheet-service

Activate
CloseDatasheet
CreateMenu

GetText
GetValue
GoToCell

RemoveMenu
Toolbars



Activate

Brengt het gegevensweergavevenster naar voren waarnaar wordt verwezen door de instantie Datasheet.

Syntaxis:

svc.Activate()

Voorbeeld:

In BASIC

      oSheet.Activate()
    
In Python

      sheet.Activate()
    

CloseDatasheet

Sluit het gegevensweergavevenster waarnaar wordt verwezen door de instantie Datasheet.

Syntaxis:

svc.CloseDatasheet()

Voorbeeld:

In BASIC

      oSheet.CloseDatasheet()
    
In Python

      sheet.CloseDatasheet()
    

CreateMenu

Creëert een nieuw menu-item in het gegevensweergavevenster en retourneert een SFWidgets.Menu-service-instantie, waarmee menu-items programmatisch kunnen worden toegevoegd.

note

Menu's die zijn toegevoegd met de methode CreateMenu gaan verloren zodra het gegevensweergavevenster wordt gesloten.


Syntaxis:

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

Parameters:

menuheader: De naam van het nieuwe menu.

before: Dit argument kan de naam zijn van een bestaand menu-item waarvoor het nieuwe menu wordt geplaatst of een getal dat de positie van het nieuwe menu aangeeft. Als dit argument leeg wordt gelaten, wordt het nieuwe menu als laatste item geplaatst.

submenuchar: Het scheidingsteken dat wordt gebruikt in menustructuren (standaard = ">")

Voorbeeld:

In BASIC

      Dim oMenu As Object
      Set oMenu = oSheet.CreateMenu("My Menu", Before := "Data")
      With oMenu
          .AddItem("Item 1", Command := ".uno:About")
          ' ...
          .Dispose()
      End With
    
In Python

      menu = sheet.CreateMenu("My Menu", before="Data")
      menu.AddItem("Item 1", command=".uno:About")
      # ...
      menu.Dispose()
    
tip

Lees de helppagina van Menuservice voor meer informatie over het maken van menu- en submenu-items en het koppelen van opdrachten.


GetText

Retourneert de tekst in een bepaalde kolom van de huidige rij.

note

Deze methode verandert de positie van de cursor in het gegevensweergavevenster niet.


Syntaxis:

svc.GetText(column: any): str

Parameters:

column: De naam van de kolom als een tekenreeks of de kolompositie (beginnend bij 1). Als een positie groter dan het aantal kolommen wordt opgegeven, wordt de laatste kolom geretourneerd.

Voorbeeld:

In BASIC

      oSheet.GetText("FirstName")
    
In Python

      sheet.GetText("FirstName")
    

GetValue

Retourneert de waarde in een bepaalde kolom van de huidige rij als een geldig basistype.

De soorten die kunnen worden geretourneerd zijn: String, Integer, Long, Single, Double, Date en Null.

Binaire types worden geretourneerd als een Long-waarde die de lengte van het binaire veld aangeeft.

Er wordt een waarde Empty geretourneerd als de vereiste waarde niet kon worden opgehaald.

note

Deze methode verandert de positie van de cursor in het gegevensweergavevenster niet.


Syntaxis:

svc.GetValue(column: any): any

Parameters:

column: De naam van de kolom als een tekenreeks of de kolompositie (beginnend bij 1). Als een positie groter dan het aantal kolommen wordt opgegeven, wordt de laatste kolom geretourneerd.

Voorbeeld:

In BASIC

      oSheet.GetValue("Address")
    
In Python

      sheet.GetValue("Address")
    

GoToCell

Verplaatst de cursor naar de opgegeven rij en kolom.

note

Deze methode verandert de positie van de cursor in het gegevensweergavevenster niet.


Syntaxis:

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

Parameters:

row: Het rijnummer als een numerieke waarde beginnend bij 1. Als de gevraagde rij het aantal bestaande rijen overschrijdt, wordt de cursor verplaatst naar de laatste rij. Als dit argument niet wordt opgegeven, wordt de rij niet gewijzigd.

column: De naam van de kolom als een String of de kolompositie (beginnend bij 1). Als de gevraagde kolom het aantal bestaande kolommen overschrijdt, wordt de cursor verplaatst naar de laatste kolom. Als dit argument niet wordt opgegeven, wordt de kolom niet gewijzigd.

Voorbeeld:

In BASIC

      ' Verplaatst de cursor naar de kolom "Achternaam" in rij 4
      oSheet.GoToCell(4, "Achternaam")
      ' Verplaatst de cursor naar de derde kolom van de huidige rij
      oSheet.GoToCell(Column := 3)
      ' Verplaatst de cursor één rij naar beneden en laat deze in dezelfde kolom staan
      oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
      ' Gaat naar de laatste kolom van de laatste rij
      Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
      oSheet.GoToCell(oSheet.LastRow, LastColumn)
    
In Python

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

RemoveMenu

Verwijdert een menu-item uit de gegevensweergave op naam.

note

Deze methode kan menu's verwijderen die behoren tot de standaard gebruikersinterface, evenals menu's die programmatisch zijn toegevoegd met de methode CreateMenu. Het verwijderen van standaardmenu's is niet permanent en ze zullen opnieuw verschijnen nadat het venster is gesloten en opnieuw is geopend.


Syntaxis:

svc.RemoveMenu(menuheader: str): bool

Parameters:

menuheader: De hoofdlettergevoelige naam van het menu dat moet worden verwijderd. De naam mag geen tilde ("~") karakter bevatten.

Voorbeeld:

In BASIC

      oSheet.RemoveMenu("Data")
    
In Python

      sheet.RemoveMenu("Data")
    

Toolbars

Deze methode retourneert een lijst met de beschikbare werkbalknamen in het daadwerkelijke document of een exemplaar SFWidgets.Toolbar-service.

Syntaxis:

svc.Toolbars(opt ToolbarName: str): uno
svc.Toolbars(): str[0..]

Parameters:

ToolbarName: De gebruikelijke naam van een van de beschikbare werkbalken.

Voorbeeld:

In BASIC

    Dim oToolbar As Object
    Set oToolbar = oDoc.Toolbars("myToolbar")
  
In Python

    a_list = doc.Toolbars()
  
warning

Alle ScriptForge Basic-routines of variabelen die beginnen met een underscore "_" zijn voor intern gebruik. Gebruik deze niet in een Basic of Python-macro.


Help ons, alstublieft!