LibreOffice 24.8 Help
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:
Voeg aangepaste menu's toe aan de gegevensweergave.
Krijg toegang tot waarden op specifieke posities van de gegevensweergave.
Plaats de cursor in een specifieke cel van de gegevensweergave.
Voordat u de Datasheet-service gebruikt, moet de ScriptForge-bibliotheek worden geladen of geïmporteerd:
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 methodes 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")
  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")
  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. | 
| Lijst met methodes in de Datasheet-service | ||
|---|---|---|
Brengt het gegevensweergavevenster naar voren waarnaar wordt verwezen door de instantie Datasheet.
svc.Activate()
      oSheet.Activate()
    
      sheet.Activate()
    Sluit het gegevensweergavevenster waarnaar wordt verwezen door de instantie Datasheet.
svc.CloseDatasheet()
      oSheet.CloseDatasheet()
    
      sheet.CloseDatasheet()
    Creëert een nieuw menu-item in het gegevensweergavevenster en retourneert een SFWidgets.Menu-service-instantie, waarmee menu-items programmatisch kunnen worden toegevoegd.
Menu's die zijn toegevoegd met de methode CreateMenu gaan verloren zodra het gegevensweergavevenster wordt gesloten.
svc.CreateMenu(menuheader: str, opt before: any, opt submenuchar: str): obj
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 = ">")
      Dim oMenu As Object
      Set oMenu = oSheet.CreateMenu("My Menu", Before := "Data")
      With oMenu
          .AddItem("Item 1", Command := ".uno:About")
          ' ...
          .Dispose()
      End With
    
      menu = sheet.CreateMenu("My Menu", before="Data")
      menu.AddItem("Item 1", command=".uno:About")
      # ...
      menu.Dispose()
    Lees de helppagina van Menuservice voor meer informatie over het maken van menu- en submenu-items en het koppelen van opdrachten.
Retourneert de tekst in een bepaalde kolom van de huidige rij.
Deze methode verandert de positie van de cursor in het gegevensweergavevenster niet.
svc.GetText(column: any): str
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.
      oSheet.GetText("FirstName")
    
      sheet.GetText("FirstName")
    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.
Deze methode verandert de positie van de cursor in het gegevensweergavevenster niet.
svc.GetValue(column: any): any
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.
      oSheet.GetValue("Address")
    
      sheet.GetValue("Address")
    Verplaatst de cursor naar de opgegeven rij en kolom.
svc.GoToCell(opt row: int, opt column: any): bool
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.
      ' 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)
    
      sheet.GoToCell(4, "Achternaam")
      sheet.GoToCell(column=3)
      sheet.GoToCell(row=sheet.CurrentRow + 1)
      sheet.GoToCell(sheet.LastRow, len(sheet.ColumnHeaders))
    Verwijdert een menu-item uit de gegevensweergave op naam.
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.
svc.RemoveMenu(menuheader: str): bool
menuheader: De hoofdlettergevoelige naam van het menu dat moet worden verwijderd. De naam mag geen tilde ("~") karakter bevatten.
      oSheet.RemoveMenu("Data")
    
      sheet.RemoveMenu("Data")