Помощ за LibreOffice 25.2
Услугата Datasheet позволява визуализиране съдържанието на таблици в база от данни, както и резултатите от заявки и оператори на SQL, посредством прозореца „Изглед с данни“ на Base. Освен това чрез нея е възможно:
да се добавят потребителски менюта в изгледа с данни
да се осъществява достъп до данните в конкретни позиции от изгледа с данни
да се позиционира курсора в зададена клетка от изгледа с данни.
Преди да използвате услугата Datasheet, библиотеката ScriptForge трябва да бъде заредена или импортирана:
Услугата Datasheet може да бъде извикана по два различни начина според това дали е отворен файл на база от данни.
В примера по-долу се приема, че файлът на базата от данни е отворен, следователно услугата UI може да се използва за извличане на документа, а методът OpenTable от услугата Database – за получаване на екземпляр на услугата Datasheet.
    Dim ui As Object, oBase As Object, oSheet As Object
    Set ui = CreateScriptService("UI")
    ' Обектът oBase е екземпляр на услугата Base.
    Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
    ' Обектът oSheet е екземпляр на услугата Datasheet.
    Set oSheet = oBase.OpenTable("Customers")
  В горния пример е възможно и да се използва методът OpenQuery от услугата Base, за да се получи екземпляр на услугата Datasheet.
За да извикате услугата Datasheet, когато базата от данни не е отворена, използвайте метода OpenTable, OpenQuery или OpenSql от услугата Database. В примера по-долу е използван методът OpenTable, за да се отвори съществуваща таблица във файла на базата от данни:
    Dim oDatabase As Object, oSheet As Object
    ' Обектът oDatabase е екземпляр на услугата Database.
    Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
    ' Обектът oSheet е екземпляр на услугата Datasheet.
    Set oSheet = oDatabase.OpenTable("Customers")
  Примерите по-горе могат да бъдат преведени на Python както следва:
    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")
  В услугата Datasheet са налични следните свойства:
| Име | Само за четене | Тип | Описание | 
|---|---|---|---|
| ColumnHeaders | Да | Масив от низове | Връща масив (Array) със заглавията на колоните в листа с данни. | 
| CurrentColumn | Да | String | Връща името на текущо избраната колона. | 
| CurrentRow | Да | Integer | Връща номера на текущо избрания ред, започвайки от 1. | 
| DatabaseFileName | Да | String | Връща името на файла на Base във формата, зададен с FSO.FileNaming. | 
| Filter | Не | String | Указва филтър, който да се приложи върху листа с данни, изразен като клауза WHERE от заявка на SQL без ключовата дума WHERE. Ако е зададен празен низ, активният Filter се премахва. | 
| LastRow | Да | Integer | Връща броя редове в листа с данни. | 
| OrderBy | Не | String | Указва реда, в който да се показват записите, изразен като клауза ORDER BY на заявка на SQL без ключовите думи ORDER BY. Ако е зададен празен низ, активният OrderBy се премахва. | 
| ParentDatabase | Да | Обект | Връща екземпляра на услугата Database, към който принадлежи листът с данни. | 
| Source | Да | String | Връща низ, представящ източника на данни, който може да бъде оператор на SQL, име на таблица или име на заявка. | 
| SourceType | Да | String | Връща типа на източника на данни, който може да бъде една от следните стойности: "SQL", "TABLE" или "QUERY". | 
| XComponent | Да | UNO обект | Връща UNO обекта от типа com.sun.star.lang.XComponent, който представя листа с данни. | 
| XControlModel | Да | UNO обект | Връща UNO обекта от типа com.sun.star.awt.XControl, който представя листа с данни. | 
| XTabControllerModel | Да | UNO обект | Връща UNO обекта от типа com.sun.star.awt.XTabControllerModel, който представя листа с данни. | 
| Списък с методи на услугата Datasheet | ||
|---|---|---|
Изнася на преден план прозореца на изгледа с данни, сочен от екземпляра на Datasheet.
svc.Activate()
      oSheet.Activate()
    
      sheet.Activate()
    Затваря прозореца на изгледа с данни, сочен от екземпляра на Datasheet.
svc.CloseDatasheet()
      oSheet.CloseDatasheet()
    
      sheet.CloseDatasheet()
    Създава ново меню в прозореца на изгледа с данни и връща екземпляр на услугата SFWidgets.Menu, с която може по програмен път да се добавят елементи в меню.
Менютата, добавени с метода CreateMenu, се изгубват веднага щом се затвори прозорецът на изгледа с данни.
svc.CreateMenu(menuheader: str, opt before: any, opt submenuchar: str): obj
menuheader: името на новото меню.
before: този аргумент може да бъде или име на съществуващо меню, преди което да се вмъкне новото, или число, указващо позицията на новото меню. Ако аргументът е оставен празен, новото меню се добавя последно.
submenuchar: разделителят, използван в дърветата от менюта (подразбира се ">").
      Dim oMenu As Object
      Set oMenu = oSheet.CreateMenu("Моето меню", Before := "Данни")
      With oMenu
          .AddItem("Елемент 1", Command := ".uno:About")
          ' ...
          .Dispose()
      End With
    
      menu = sheet.CreateMenu("Моето меню", before="Данни")
      menu.AddItem("Елемент 1", command=".uno:About")
      # ...
      menu.Dispose()
    Прочетете помощната страница за услугата Menu, за да научите повече относно създаването на менюта и подменюта и асоциирането на команди.
Връща текста в дадена колона на текущия ред.
Този метод не променя позицията на курсора в прозореца на изгледа с данни.
svc.GetText(column: any): str
column: името на колоната като низ или позицията на колоната (започвайки от 1). Ако е дадена позиция, по-голяма от броя колони, се връща последната колона.
      oSheet.GetText("FirstName")
    
      sheet.GetText("FirstName")
    Връща стойността в дадена колона на текущия ред като валиден тип на Basic.
Типовете, които може да бъдат върнати, са: String, Integer, Long, Single, Double, Date и Null.
За двоичните типове се връща стойност от тип Long, която показва дължината на двоичното поле.
Ако изискваната стойност не може да бъде извлечена, се връща стойност Empty.
Този метод не променя позицията на курсора в прозореца на изгледа с данни.
svc.GetValue(column: any): any
column: името на колоната като низ или позицията на колоната (започвайки от 1). Ако е дадена позиция, по-голяма от броя колони, се връща последната колона.
      oSheet.GetValue("Address")
    
      sheet.GetValue("Address")
    Премества курсора до зададения ред и колона.
svc.GoToCell(opt row: int, opt column: any): bool
row: номерът на ред като числова стойност, започвайки от 1. Ако заявеният номер на ред надхвърля броя съществуващи редове, курсорът се премества върху последния ред. Ако този аргумент не е зададен, редът не се променя.
column: името на колона като стойност от тип String или позицията на колоната (започвайки от 1). Ако заявеният номер на колона надхвърля броя на съществуващите колони, курсорът се премества върху последната колона. Ако този аргумент не е зададен, колоната не се променя.
      ' Премества курсора в колоната "Фамилно име" на ред 4.
      oSheet.GoToCell(4, "ФамилноИме")
      ' Премества курсора в третата колона на текущия ред.
      oSheet.GoToCell(Column := 3)
      ' Премества курсора с един ред надолу и го оставя в същата колона.
      oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
      ' Премества курсора в последната колона на последния ред.
      Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
      oSheet.GoToCell(oSheet.LastRow, LastColumn)
    
      sheet.GoToCell(4, "ФамилноИме")
      sheet.GoToCell(column=3)
      sheet.GoToCell(row=sheet.CurrentRow + 1)
      sheet.GoToCell(sheet.LastRow, len(sheet.ColumnHeaders))
    Премахва меню от изгледа с данни по името му.
Този метод може да премахва менюта, принадлежащи на стандартния потребителски интерфейс, както и менюта, добавени по програмен път чрез метода CreateMenu. Премахването на стандартни менюта е временно и те се появяват отново след затваряне и повторно отваряне на прозореца.
svc.RemoveMenu(menuheader: str): bool
menuheader: името на менюто, което да бъде премахнато, със спазване на малки и главни букви. Името не трябва да съдържа знака тилда ("~").
      oSheet.RemoveMenu("Data")
    
      sheet.RemoveMenu("Data")