LibreOffice 25.2 Hjelp
Tjenesten Dataark gjør det mulig å visualisere innholdet i databasetabeller samt resultatene av spørringer og SQL-setninger ved å bruke datavisningen i Base. I tillegg tillater denne tjenesten å:
Legg til egendefinerte menyer i datavisningen.
Få tilgang til verdier i bestemte posisjoner i datavisningen.
Plasser markøren i en bestemt celle i datavisningen.
Før du bruker Dataark-tjenesten, må ScriptForge-biblioteket lastes eller importeres:
Tjenesten Dataark kan startes på to forskjellige måter avhengig av om databasefilen er åpen.
Eksemplet nedenfor anser at databasefilen er åpen, derfor kan UI-tjenesten brukes til å hente dokumentet og OpenTable-metoden fra Database tjenesten brukes til å få en Dataark tjenesteforekomst.
    Dim ui As Object, oBase As Object, oSheet As Object
    Set ui = CreateScriptService("UI")
    ' Object oBase er en forekomst av Base-tjenesten
    Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
    ' Object oSheet er en forekomst av Datasheet-tjenesten
    Set oSheet = oBase.OpenTable("Customers")
  I eksemplet ovenfor er det også mulig å bruke metoden OpenQuery fra Base-tjenesten for å få en Dataark-forekomst.
For å starte Dataark-tjenesten når databasefilen ikke er åpen, bruk metodene OpenTable, OpenQuery eller OpenSql fra Database-tjenesten. Eksemplet nedenfor bruker metoden OpenTable for å åpne en eksisterende tabell i databasefilen:
    Dim oDatabase As Object, oSheet As Object
    ' Objekt oDatabase er en forekomst av databasetjenesten
    Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
    ' Object oSheet er en forekomst av Dataarktjenesten
    Set oSheet = oDatabase.OpenTable("Customers")
  Eksemplene ovenfor kan oversettes til Python slik:
    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")
  Følgende egenskaper er tilgjengelige i Dataark-tjenesten:
| Navn | Skrivebeskyttet | Type | Beskrivelse | 
|---|---|---|---|
| ColumnHeaders | Ja | Strenegematrise | Returnerer en Matrise med navnene på kolonneoverskriftene i dataarket. | 
| CurrentColumn | Ja | String | Returnerer det valgte kolonnenavnet. | 
| CurrentRow | Ja | Integer | Returnerer nummeret på den valgte raden, med start på 1. | 
| DatabaseFileName | Ja | String | Returnerer filnavnet til Base-filen i FSO.FileNaming-format. | 
| Filter | Nei | String | Spesifiserer et filter som skal brukes på dataarket uttrykt som WHERE-leddet i en SQL-spørring uten nøkkelordet WHERE. Hvis en tom streng er spesifisert, fjernes det aktive Filteret. | 
| LastRow | Ja | Integer | Returnerer antall rader i dataarket. | 
| OrderBy | Nei | String | Angir rekkefølgen som poster vises i uttrykt som ORDER BY-leddet i en SQL-spørring uten nøkkelordet ORDER BY. Hvis en tom streng er spesifisert, fjernes den aktive OrderBy. | 
| ParentDatabase | Ja | Objekt | Returnerer Database-tjenesteforekomsten som dataarket tilhører. | 
| Source | Ja | String | Returnerer en streng som representerer datakilden, som kan være en SQL-setning, et tabellnavn eller et spørringsnavn. | 
| SourceType | Ja | String | Returnerer typen til datakilden, som kan være en av følgende verdier: "SQL", "TABLE" eller "QUERY". | 
| XComponent | Ja | UNO Objekt | Returnerer com.sun.star.lang.XComponent UNO-objektet som representerer dataarket. | 
| XControlModel | Ja | UNO Objekt | Returnerer com.sun.star.awt.XControl UNO-objektet som representerer dataarket. | 
| XTabControllerModel | Ja | UNO Objekt | Returnerer com.sun.star.awt.XTabControllerModelUNO-objektet som representerer dataarket. | 
| Liste over metoder i dataarktjenesten | ||
|---|---|---|
Setter frem datavisningsvinduet som refereres til av Dataark-forekomsten.
svc.Activate()
      oSheet.Activate()
    
      sheet.Activate()
    Lukker datavisningsvinduet referert til av Dataark-forekomsten.
svc.CloseDatasheet()
      oSheet.CloseDatasheet()
    
      sheet.CloseDatasheet()
    Oppretter en ny menyoppføring i datavisningsvinduet og returnerer en SFWidgets.Menu tjenesteforekomst, som menyelementer kan legges til programmatisk.
Menyer lagt til ved hjelp av CreateMenu-metoden går tapt så snart datavisningsvinduet lukkes.
svc.CreateMenu(menuheader: str, opt before: any, opt submenuchar: str): obj
menyhode: Navnet på den nye menyen.
før: Dette argumentet kan enten være navnet på en eksisterende menyoppføring som den nye menyen skal plasseres foran eller et tall som uttrykker posisjonen til den nye menyen. Hvis dette argumentet er tomt, plasseres den nye menyen som siste oppføring.
undermenytegn: Skilletegn brukt i menytrær (Standard = ">")
      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()
    Les hjelpesiden Menytjeneste for å lære mer om hvordan du oppretter meny- og undermenyoppføringer og tilknytter kommandoer.
Returnerer teksten i en gitt kolonne i gjeldende rad.
Denne metoden endrer ikke posisjonen til markøren i datavisningsvinduet.
svc.GetText(column: any): str
kolonne: Navnet på kolonnen som en streng eller kolonneposisjonen (starter på 1). Hvis en posisjon større enn antall kolonner er gitt, returneres den siste kolonnen.
      oSheet.GetText("FirstName")
    
      sheet.GetText("FirstName")
    Returnerer verdien i en gitt kolonne i gjeldende rad som en gyldig grunnleggende type.
Typene som kan returneres er: String, Heltall, Long, Singel, Double literal>, Date og Null.
Binære typer returneres som en Long verdi som indikerer lengden på det binære feltet.
En Tom-verdi returneres hvis den nødvendige verdien ikke kunne hentes.
Denne metoden endrer ikke posisjonen til markøren i datavisningsvinduet.
svc.GetValue(column: any): any
kolonne: Navnet på kolonnen som en streng eller kolonneposisjonen (starter på 1). Hvis en posisjon større enn antall kolonner er gitt, returneres den siste kolonnen.
      oSheet.GetValue("Address")
    
      sheet.GetValue("Address")
    Flytter markøren til den angitte raden og kolonnen.
svc.GoToCell(opt row: int, opt column: any): bool
rad: Radnummeret som en numerisk verdi som starter på 1. Hvis den forespurte raden overskrider antallet eksisterende rader, flyttes markøren til den siste raden. Hvis dette argumentet ikke er spesifisert, endres ikke raden.
kolonne: Navnet på kolonnen som en streng eller kolonneposisjonen (starter på 1). Hvis den forespurte kolonnen overskrider antallet eksisterende kolonner, flyttes markøren til den siste kolonnen. Hvis dette argumentet ikke er spesifisert, endres ikke kolonnen.
      ' Flytter markøren til kolonnen "Etternavn" i rad 4
      oSheet.GoToCell(4, "LastName")
      ' Flytter markøren til den tredje kolonnen i gjeldende rad
      oSheet.GoToCell(Column := 3)
      ' Flytter markøren en rad ned og lar den stå i samme kolonne
      oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
      ' Flytter til den siste kolonnen i den siste raden
      Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
      oSheet.GoToCell(oSheet.LastRow, LastColumn)
    
      sheet.GoToCell(4, "LastName")
      sheet.GoToCell(column=3)
      sheet.GoToCell(row=sheet.CurrentRow + 1)
      sheet.GoToCell(sheet.LastRow, len(sheet.ColumnHeaders))
    Fjerner en menyoppføring fra datavisningen etter navnet.
Denne metoden kan fjerne menyer som tilhører standard brukergrensesnitt, så vel som menyer som er programmert lagt til med CreateMenu-metoden. Fjerningen av standardmenyer er ikke permanent, og de vil dukke opp igjen etter at vinduet er lukket og åpnet igjen.
svc.RemoveMenu(menuheader: str): bool
menuheader: Det skiller mellom store og små bokstaver på menyen som skal fjernes. Navnet må ikke inneholde tegnet tilde ("~").
      oSheet.RemoveMenu("Data")
    
      sheet.RemoveMenu("Data")