LibreOffice 25.2 Hjælp
Tjenesten Datasheet gør det muligt at visualisere indholdet af databasetabeller og resultater af forespørgsler og SQL-sætninger, med brug af datavisningen i Base. Derudover gør denne tjeneste det muligt at:
Tilføje brugerdefinerede menuer til datavisningen.
Tilgå værdier i specifikke positioner af datavisningen.
Placere markøren i en specifik celle af datavisningen.
Før du bruger Datasheet-tjenesten, skal ScriptForge-biblioteket være indlæst eller importeret:
Tjenesten Datasheet kan kaldes på to forskellige måder, afhængigt af om databasefilen er åben eller ikke.
Eksemplet nedenfor går ud fra, at databasefilen er åben, derfor kan UI-tjenesten bruges til at hente dokumentet, og metoden OpenTable fra Database-tjenesten bruges til at få in instans af Datasheet-tjenesten.
    Dim ui As Object, oBase As Object, oSheet As Object
    Set ui = CreateScriptService("UI")
    ' Objektet oBase er en instans af Base-tjenesten
    Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
    ' Objektet oSheet er en instans af Datasheet-tjenesten
    Set oSheet = oBase.OpenTable("Customers")
  I eksemplet ovenfor er det også muligt at bruge metoden OpenQuery fra Base-tjenesten til at få en Datasheet-instans.
For at kalde Datasheet-tjenesten når databasefilen ikke er åben, brug metoderne OpenTable, OpenQuery eller OpenSql fra Database-tjenesten. Eksemplet nedenfor bruger OpenTable-metoden til at åbne en eksisterende tabel i databasefilen:
    Dim oDatabase As Object, oSheet As Object
    ' Objektet oDatabase er en instans af Database-tjenesten
    Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
    ' Objektet oSheet er en instans af Datasheet-tjenesten
    Set oSheet = oDatabase.OpenTable("Customers")
  Eksemplerne ovenfor kan oversættes til Python således:
    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 følgende egenskaber er tilgængelige i tjenesten Datasheet:
| Navn | Skrivebeskyttet | Type | Beskrivelse | 
|---|---|---|---|
| ColumnHeaders | Ja | Array af strenge | Returnerer et Array med navnene på kolonneoverskrifterne i dataarket. | 
| CurrentColumn | Ja | String | Returnerer det aktuelt valgte kolonnenavn. | 
| CurrentRow | Ja | Integer | Returnerer tallet på den aktuelt valgte række, begyndende med 1. | 
| DatabaseFileName | Ja | String | Returnerer filnavnet på Base-filen i FSO.FileNaming-format. | 
| Filter | Nej | String | Specificerer et filter som skal anvendes på dataarket, på form som en WHERE-delsætning i en SQL-forespørgsel uden nøgleordet WHERE. Hvis der angives en tom streng, så bliver det aktive Filter fjernet. | 
| LastRow | Ja | Integer | Returnerer antallet af rækker i datasættet | 
| OrderBy | Nej | String | Angiver rækkefølgen for visning af dataposterne, på form som en ORDER BY-delsætning fra en SQL-forespørgsel, uden nøgleordet ORDER BY. Hvis der angives en tom streng, så fjernes den aktive OrderBy. | 
| ParentDatabase | Ja | Objekt | Returnerer den instans af Database-tjenesten, som dataarket tilhører. | 
| Source | Ja | String | Returnerer en streng som repræsenterer datakilden, hvilket kan være et SQL-udtryk, et tabelnavn eller et forespørgselsnavn. | 
| SourceType | Ja | String | Returner typen af datakilden, hvilket kan være en af de følgende værdier: "SQL", "TABLE" eller "QUERY" (forespørgsel). | 
| XComponent | Ja | UNO-objekt | Returnerer det com.sun.star.lang.XComponent UNO-objekt, som repræsenterer dataarket. | 
| XControlModel | Ja | UNO-objekt | Returnerer det com.sun.star.awt.XControl UNO-objekt, som repræsenterer dataarket. | 
| XTabControllerModel | Ja | UNO-objekt | Returnerer det com.sun.star.awt.XTabControllerModel UNO-objekt, som repræsenterer dataarket. | 
| Liste over metoder i tjenesten Datasheet | ||
|---|---|---|
Sætter datavisningsvinduet, som refereres til at Datasheet-instansen, i forgrunden.
svc.Activate()
      oSheet.Activate()
    
      sheet.Activate()
    Lukker det datavisningsvindue, som refereres til at Datasheet-instansen.
svc.CloseDatasheet()
      oSheet.CloseDatasheet()
    
      sheet.CloseDatasheet()
    Opretter et nyt menuelement i datavisningsvinduet og returnerer en instans af SFWidgets.Menu, som menuelementer programmeringsmæssigt kan tilføjes med.
Menuer tilføjet med CreateMenu-metoden går tabt, så snart datavisningsvinduet lukkes.
svc.CreateMenu(menuheader: str, opt before: any, opt submenuchar: str): obj
menuheader: Navne på den nye menu.
before: Dette argument kan enten være navnet på et eksisterende menuelement, som den nye menu vil blive placeret før, eller argumentet kan være et tal, som udtrykker placeringen af den nye menu. Hvis dette argument står tomt, bliver den nye menu placeret som det sidste element.
submenuchar: Skilletegnet brug i menu-træer (standard = ">")
      Dim oMenu As Object
      Set oMenu = oSheet.CreateMenu("Min menu", Before := "Data")
      With oMenu
          .AddItem("Item 1", Command := ".uno:Om")
          ' ...
          .Dispose()
      End With
    
      menu = sheet.CreateMenu("Min menu", before="Data")
      menu.AddItem("Item 1", command=".uno:Om")
      # ...
      menu.Dispose()
    Læs hjælpesiden Menu-tjeneste for at lære mere om, hvordan du opretter menuer og undermenuer og tilknytter kommandoer.
Returnerer teksten i en given kolonne fra den aktuelle række.
Denne metode ændrer ikke markørens placering i datavisningsvinduet.
svc.GetText(column: any): str
column: Navnet på kolonnen som en streng eller en kolonneposition (begyndende med 1). Hvis en position er større end antallet af kolonner, returneres den sidste kolonne.
      oSheet.GetText("FirstName")
    
      sheet.GetText("FirstName")
    Returnerer værdien en en given kolonne fra den aktuelle række som en gyldig Basic-type.
Følgende typer kan blive returneret: String, Integer, Long, Single, Double, Date og Null.
Binære typer returneres som en Long-værdi, der angiver længden på det binære felt.
Værdien Empty returneres, hvis den krævede værdi ikke kunne hentes.
Denne metode ændrer ikke markørens placering i datavisningsvinduet.
svc.GetValue(column: any): any
column: Navnet på kolonnen som en streng eller en kolonneposition (begyndende med 1). Hvis en position er større end antallet af kolonner, returneres den sidste kolonne.
      oSheet.GetValue("Address")
    
      sheet.GetValue("Address")
    Flytter markøren til den angivne række og kolonne.
svc.GoToCell(opt row: int, opt column: any): bool
row: Rækkenummeret som en talværdi, begyndende med 1. Hvis det forespurgte rækkenummer overskrider antallet af eksisterende rækker, bliver markøren flyttet til den sidste række. Hvis dette argument ikke er angivet, bliver rækken ikke ændret.
column: Navnet på kolonnen som en String eller kolonnenummeret (begyndende med 1). Hvis det forespurgte kolonnenummer overskrider antallet af eksisterende kolonner, bliver markøren flyttet til den sidste kolonne. Hvis dette argument ikke er angivet, bliver kolonnen ikke ændret.
      ' Flytter markøren til kolonnen "Efternavn" i række 4
      oSheet.GoToCell(4, "Efternavn")
      ' Flytter markøren til den tredje kolonne i den aktuelle række
      oSheet.GoToCell(Column := 3)
      ' Flytter markøren en række ned i den samme kolonne
      oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
      ' Flytter til den sidste kolonne i den sidste række
      Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
      oSheet.GoToCell(oSheet.LastRow, LastColumn)
    
      sheet.GoToCell(4, "Efternavn")
      sheet.GoToCell(column=3)
      sheet.GoToCell(row=sheet.CurrentRow + 1)
      sheet.GoToCell(sheet.LastRow, len(sheet.ColumnHeaders))
    Fjerner et menuelement fra datavisningen ud fra navnet.
Denne kommando kan fjerne menuer som tilhører standard-brugerfladen, så vel som menuer der blev programmeringsmæssigt tilføjet med CreateMenu-metoden. Fjernelse af standardmenuer er ikke permanent, og de vil dukke op igen efter at vinduet er blevet lukket og åbnet igen.
svc.RemoveMenu(menuheader: str): bool
menuheader: Navnet på menuen, der skal fjernes, med forskel på store og små bogstaver. Navne må ikke indeholde tilde-tegnet ("~").
      oSheet.RemoveMenu("Data")
    
      sheet.RemoveMenu("Data")