Pomoč LibreOffice 24.8
Storitev Datasheet omogoča vizualizacijo vsebine tabel zbirke podatkov, kot tudi rezultate poizvedb in izjav SQL, ki uporabljajo podatkovni pogled modula Base. Poleg tega vam ta storitev omogoča naslednje:
Dodajte menije po meri podatkovnemu pogledu.
Dostopajte do vrednosti na določenih položajih v podatkovnem pogledu.
Postavite kazalko v določeno celico v podatkovnem pogledu.
Pred uporabo storitve Datasheet je potrebno naložiti ali uvoziti knjižnico ScriptForge:
Storitev Datasheet je mogoče priklicati na dva različna načina, odvisno od tega, ali je datoteka zbirke podatkov odprta.
Spodnji primer predvideva, da je datoteka zbirke podatkov odprta, zato je storitev UI možno uporabiti, da pridobi dokument, metoda OpenTable iz storitve Database pa se uporabi, da pridobi instanco storitve Datasheet.
    Dim ui As Object, oBase As Object, oSheet As Object
    Set ui = CreateScriptService("UI")
    ' Predmet oBase je instanca storitve Base
    Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
    ' Predmet oSheet je instanca storitve Datasheet
    Set oSheet = oBase.OpenTable("Customers")
  V zgornjem primeru lahko uporabite tudi metodo OpenQuery iz storitve Base, da dobite instanco Datasheet.
Če želite priklicati storitev Datasheet, ko datoteka zbirke podatkov ni odprta, uporabite metodo OpenTable, OpenQuery ali OpenSql iz storitve Database. Spodnji primer uporablja metodo OpenTable za odpiranje obstoječe tabele v datoteki zbirke podatkov:
    Dim oDatabase As Object, oSheet As Object
    ' Predmet oDatabase je instanca storitve Database
    Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
    ' Predmet oSheet je instanca storitve Datasheet
    Set oSheet = oDatabase.OpenTable("Customers")
  Zgornje primere lahko prevedemo v Python na sledeč način:
    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")
  Naslednje lastnosti so na voljo v storitvi DataSheet:
| Ime | Samo za branje | Vrsta | Opis | 
|---|---|---|---|
| ColumnHeaders | Da | Polje nizov | Vrne polje Array z imeni naslovov stolpcev v delovnem listu. | 
| CurrentColumn | Da | String | Vrne ime trenutno izbranega stolpca. | 
| CurrentRow | Da | Integer | Vrne številko trenutno izbrane vrstice, začenši z 1. | 
| DatabaseFileName | Da | String | Vrne ime datoteke Base v obliki zapisa FSO.FileNaming. | 
| Filter | Ne | String | Določa filter, ki bo uveljavljen na delovnem listu, izražen kot stavek WHERE poizvedbe SQL brez ključne besede WHERE. Če je naveden prazen niz, se dejavni Filter odstrani. | 
| LastRow | Da | Integer | Vrne število vseh vrstic v delovnem listu. | 
| OrderBy | Ne | String | Določa zaporedje, v katerem naj bodo prikazani zapisi, kot stavek SQL ORDER BY, vendar brez ključnih besed ORDER BY. Če je naveden prazen niz, se dejavni OrderBy odstrani. | 
| ParentDatabase | Da | Predmet | Vrne instanco storitve Database, kateri pripada delovni list. | 
| Source | Da | String | Vrne niz, ki predstavlja vir podatkov, ki je lahko izjava SQL, ime tabele ali ime poizvedbe. | 
| SourceType | Da | String | Vrne vrsto vira podatkov, ki ima lahko eno od naslednjih vrednosti: »SQL«, »TABLE« ali »QUERY«. | 
| XComponent | Da | Predmet UNO | Vrne predmet UNO com.sun.star.lang.XComponent, ki predstavlja delovni list. | 
| XControlModel | Da | Predmet UNO | Vrne predmet UNO com.sun.star.awt.XControl, ki predstavlja delovni list. | 
| XTabControllerModel | Da | Predmet UNO | Vrne predmet UNO com.sun.star.awt.XTabControllerModel, ki predstavlja delovni list. | 
| Seznam metod v storitvi Datasheet | ||
|---|---|---|
V ospredje postavi okno podatkovnega pogleda, na katerega se sklicuje instanca Datasheet.
svc.Activate()
      oSheet.Activate()
    
      sheet.Activate()
    Zapre okno podatkovnega pogleda, na katerega se sklicuje instanca Datasheet.
svc.CloseDatasheet()
      oSheet.CloseDatasheet()
    
      sheet.CloseDatasheet()
    Ustvari nov menijski vnos v oknu podatkovnega pogleda in vrne instanco storitve SFWidgets.Menu, s katero lahko programsko dodajate elemente menija.
Meniji, dodani z metodo CreateMenu, so izgubljeni, takoj ko se zapre okno podatkovnega pogleda.
svc.CreateMenu(menuheader: str, opt before: any, opt submenuchar: str): obj
menuheader: ime novega menija.
before: ta argument je lahko ime obstoječega vnosa menija, pred katerega bo postavljen nov meni, ali število, ki izraža položaj novega menija. Če za ta argument vrednost ni določena, bo novi meni vzpostavljen kot zadnji vnos.
submenuchar: ločilo, uporabljeno v menijskih drevesih (privzeto = ">").
      Dim oMenu As Object
      Set oMenu = oSheet.CreateMenu("Moj meni", Before := "Podatki")
      With oMenu
          .AddItem("Element 1", Command := ".uno:About")
          ' ...
          .Dispose()
      End With
    
      menu = sheet.CreateMenu("Moj meni", before="Podatki")
      menu.AddItem("Element 1", command=".uno:About")
      # ...
      menu.Dispose()
    Preverite stran pomoči storitve Menu, da izveste več o tem, kako ustvarite vnose menija in podmenijev ter z njimi povežete ukaze.
Vrne besedilo v danem stolpcu trenutne vrstice.
Ta metoda ne spremeni položaja kazalke v oknu podatkovnega pogleda.
svc.GetText(column: any): str
column: ime stolpca kot niz (String) ali položaj stolpca (začenši z 1). Če je položaj večji od podanega števila stolpcev, vrne zadnji stolpec.
      oSheet.GetText("FirstName")
    
      sheet.GetText("FirstName")
    Vrne vrednost v danem stolpcu trenutne vrstice kot veljavno vrsto Basic.
Vrste, ki so lahko vrnjene, so: String, Integer, Long, Single, Double, Date in Null.
Binarne vrste so vrnjene kot vrednost Long, kar nakazuje dolžino binarnega polja.
Vrne vrednost Empty, če zahtevane vrednosti ni mogoče pridobit.
Ta metoda ne spremeni položaja kazalke v oknu podatkovnega pogleda.
svc.GetValue(column: any): any
column: ime stolpca kot niz (String) ali položaj stolpca (začenši z 1). Če je položaj večji od podanega števila stolpcev, vrne zadnji stolpec.
      oSheet.GetValue("Address")
    
      sheet.GetValue("Address")
    Kazalko premakne v navedeno vrstico in stolpec.
svc.GoToCell(opt row: int, opt column: any): bool
row: številka vrstice kot številska vrednost, začenši z 1. Če zahtevana vrstica presega število obstoječih vrstic, se kazalka postavi v zadnjo vrstico. Če ta argument ni podan, se stolpec ne spremeni.
column: ime stolpca kot niz (String) ali položaj stolpca (začenši z 1). Če je številka zahtevanega stolpca večja od števila obstoječih stolpcev, se kazalka postavi v zadnji stolpec. Če ta argument ni podan, se stolpec ne spremeni.
      ' Premakne kazalko v stolpec »Priimek« v vrstici 4
      oSheet.GoToCell(4, "Priimek")
      ' Premakne kazalko v tretji stolpec trenutne vrstice
      oSheet.GoToCell(Column := 3)
      ' Premakne kazalko eno vrstico navzdol, da ostane v istem stolpcu
      oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
      ' Premakne kazalko v zadnji stolpec zadnje vrstice
      Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
      oSheet.GoToCell(oSheet.LastRow, LastColumn)
    
      sheet.GoToCell(4, "Priimek")
      sheet.GoToCell(column=3)
      sheet.GoToCell(row=sheet.CurrentRow + 1)
      sheet.GoToCell(sheet.LastRow, len(sheet.ColumnHeaders))
    Odstrani menijski vnos iz podatkovnega pogleda po njegovem imenu.
Ta metoda lahko odstrani menije, ki sodijo k standardnemu uporabniškemu vmesniku, kot tudi menije, ki so programsko dodani z metodo CreateMenu. Odstranitev standardnih menijev ni trajna in ti se ponovno pojavijo, potem ko okno zaprete in ponovno odprete.
svc.RemoveMenu(menuheader: str): bool
menuheader: ime menija, ki bo odstranjen; loči med malimi in velikimi črkami. Ime ne sme vsebovati znaka vijuge oz. tilde (»~«).
      oSheet.RemoveMenu("Data")
    
      sheet.RemoveMenu("Data")