Nápověda LibreOffice 25.2
Služba Datasheet umožňuje vizualizovat obsah databázových tabulek a výsledků dotazů a SQL příkazů pomocí Pohledu na data aplikace Base. Kromě toho lze pomocí této služby:
Přidávat k pohledu na data vlastní nabídky.
Přistupovat v pohledu na data k hodnotám na zadaném umístění.
Umisťovat kurzor na zadané buňky pohledu na data.
Před používáním služby Datasheet je nutné načíst či naimportovat knihovnu ScriptForge pomocí:
Instanci služby Datasheet lze vytvořit dvěma různými způsoby závisejícími na tom, zda je databázový soubor otevřen.
V následujícím příkladu se předpokládá, že je databázový soubor otevřen, a tudíž je možné získat pomocí služby UI dokument a pomocí metody OpenTable ze služby Database poté instanci služby Datasheet.
    Dim ui As Object, oBase As Object, oSheet As Object
    Set ui = CreateScriptService("UI")
    ' Objekt oBase je instancí služby Base
    Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
    ' Objekt oSheet je instancí služby Datasheet
    Set oSheet = oBase.OpenTable("Customers")
  Ve výše uvedeném příkladu je také možné získat instanci služby Datasheet pomocí metody OpenQuery ze služby Base.
Chcete-li vytvořit instanci služby Datasheet v případě, že databázový soubor otevřen není, použijte metodu OpenTable, OpenQuery nebo OpenSql ze služby Database. V následujícím příkladu je k otevření existující tabulky databázového souboru použita metoda OpenTable:
    Dim oDatabase As Object, oSheet As Object
    ' Objekt oDatabase je instancí služby Database
    Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
    ' Objekt oSheet je instancí služby Datasheet
    Set oSheet = oDatabase.OpenTable("Customers")
  Do Pythonu lze tyto příklady převést následovně:
    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")
  Ve službě Datasheet jsou k dispozici následující vlastnosti:
| Název | Pouze pro čtení | Typ | Popis | 
|---|---|---|---|
| ColumnHeaders | ano | pole řetězců (String) | Vrátí pole (Array) s názvy záhlaví sloupců datového listu. | 
| CurrentColumn | ano | String | Vrátí název aktuálně vybraného sloupce. | 
| CurrentRow | ano | Integer | Vrátí číslo aktuálně vybraného řádku (začínající od 1). | 
| DatabaseFileName | ano | String | Vrátí název souboru aplikace Base ve formátu FSO.FileNaming. | 
| Filter | ne | String | Určuje filtr, který se má použít na datový list. Filtr je vyjádřen jako klauzule WHERE SQL příkazu bez klíčového slova WHERE. Je-li zadán prázdný řetězec, aktivní filtr se odstraní. | 
| LastRow | ano | Integer | Vrátí počet řádků datového listu. | 
| OrderBy | ne | String | Určuje pořadí, v němž mají být záznamy zobrazeny. Pořadí je vyjádřeno jako klauzule ORDER BY SQL příkazu bez klíčového slova ORDER BY. Je-li zadán prázdný řetězec, aktivní pořadí se odstraní. | 
| ParentDatabase | ano | objekt | Vrátí instanci služby Database, ke které datový list náleží. | 
| Source | ano | String | Vrátí řetězec představující zdroj dat, kterým může být SQL příkaz, název tabulky nebo název dotazu. | 
| SourceType | ano | String | Vrátí typ zdroje dat, kterým je jedna z následujících hodnot: "SQL", "TABLE" či "QUERY". | 
| XComponent | ano | objekt UNO | Vrátí objekt UNO com.sun.star.lang.XComponent, který představuje datový list. | 
| XControlModel | ano | objekt UNO | Vrátí objekt UNOcom.sun.star.awt.XControl, který představuje datový list. | 
| XTabControllerModel | ano | objekt UNO | Vrátí objekt UNO com.sun.star.awt.XTabControllerModel, který představuje datový list. | 
| Seznam metod služby Datasheet | ||
|---|---|---|
Přenese okno s pohledem na data, na které odkazuje instance služby Datasheet, do popředí.
svc.Activate()
      oSheet.Activate()
    
      sheet.Activate()
    Uzavře okno s pohledem na data, na které odkazuje instance služby Datasheet.
svc.CloseDatasheet()
      oSheet.CloseDatasheet()
    
      sheet.CloseDatasheet()
    Vytvoří v okně pohledu na data novou položku nabídky a vrátí instanci služby SFWidgets.Menu, pomocí které lze položky nabídky skriptem přidávat.
Jakmile se okno s pohledem na data zavře, nabídky přidaný metodou CreateMenu se ztratí.
svc.CreateMenu(menuheader: str, opt before: any, opt submenuchar: str): obj
menuheader: Název nové nabídky.
before: Tímto argumentem je buď název stávající položky nabídky, před kterou bude nová nabídka umístěna, nebo číslo vyjadřující pozici nové nabídky. Je-li ponechán prázdný, nová nabídka se umístí jako poslední položka.
submenuchar: Oddělovač použitý v hierarchii nabídek (výchozí = ">")
      Dim oMenu As Object
      Set oMenu = oSheet.CreateMenu("Moje nabídka", Before := "Data")
      With oMenu
          .AddItem("Položka 1", Command := ".uno:About")
          ' ...
          .Dispose()
      End With
    
      menu = sheet.CreateMenu("Moje nabídka", before="Data")
      menu.AddItem("Položka 1", command=".uno:About")
      # ...
      menu.Dispose()
    Další informace o vytváření nabídek a podnabídek a souvisejících příkazech naleznete na stránce nápovědy služba Menu.
Vrátí text ze zadaného sloupce aktuálního řádku.
Tato metoda nezmění pozici kurzoru v okně pohledu na data.
svc.GetText(column: any): str
column: Název sloupce jako řetězec nebo pozice sloupce (začínající od 1). Pokud je pozice větší než počet sloupců, použije se poslední sloupec.
      oSheet.GetText("FirstName")
    
      sheet.GetText("FirstName")
    Vrátí hodnotu ze zadaného sloupce aktuálního řádku jako platný typ jazyka Basic.
Vracenými typy jsou: String, Integer, Long, Single, Double, Date a Null.
Binární typy jsou vraceny jako hodnota Long udávající délku binárního pole.
Pokud požadovanou hodnotu nelze získat, vrátí se hodnota Empty.
Tato metoda nezmění pozici kurzoru v okně pohledu na data.
svc.GetValue(column: any): any
column: Název sloupce jako řetězec nebo pozice sloupce (začínající od 1). Pokud je pozice větší než počet sloupců, použije se poslední sloupec.
      oSheet.GetValue("Address")
    
      sheet.GetValue("Address")
    Přesune kurzor na zadaný řádek a sloupec.
svc.GoToCell(opt row: int, opt column: any): bool
row: Číslo řádku jako číselná hodnota začínající od 1. Pokud je požadované číslo větší než počet řádků, kurzor se přesune na poslední z nich. Není-li tento argument zadán, řádek se nezmění.
column: Název sloupce jako řetězec (String) nebo pozice sloupce (začínající od 1). Pokud je pozice větší než počet sloupců, kurzor se přesune na poslední z nich. Není-li tento argument zadán, sloupec se nezmění.
      ' Přesune kurzor na sloupec "PosledniNazev" v řádku 4
      oSheet.GoToCell(4, "PosledniNazev")
      ' Přesune kurzor na třetí sloupec aktuálního řádku
      oSheet.GoToCell(Column := 3)
      ' Přesune kurzor ve stejném sloupci o řádek níž
      oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
      ' Přesune kurzor na poslední sloupec posledního řádku
      Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
      oSheet.GoToCell(oSheet.LastRow, LastColumn)
    
      sheet.GoToCell(4, "PosledniNazev")
      sheet.GoToCell(column=3)
      sheet.GoToCell(row=sheet.CurrentRow + 1)
      sheet.GoToCell(sheet.LastRow, len(sheet.ColumnHeaders))
    Odstraní z pohledu na data položku nabídky, a to podle jejího názvu.
Touto metodou lze odstranit jak nabídky, které jsou součástí standardního uživatelského rozhraní, tak ty, které byly přidány ve skriptu pomocí metody CreateMenu. Odstranění standardních nabídek není trvalé a zruší se tehdy, když je okno zavřeno a znovu otevřeno.
svc.RemoveMenu(menuheader: str): bool
menuheader: Název nabídky, která se má odstranit. V názvu se rozlišuje velikost písmen. Název nesmí obsahovat znak vlnovky ("~").
      oSheet.RemoveMenu("Data")
    
      sheet.RemoveMenu("Data")