Usługa SFDatabases.Datasheet

Usługa Datasheet pozwala na wizualizację zawartości tabel bazy danych oraz wyników kwerend i instrukcji SQL za pomocą widoku danych Base. Dodatkowo usługa ta umożliwia:

Wywoływanie usługi

Przed skorzystaniem z usługi Datasheet należy załadować lub zaimportować bibliotekę ScriptForge:

note

• Podstawowe makra wymagają załadowania biblioteki ScriptForge przy użyciu następującej instrukcji:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Skrypty Pythona wymagają importu z modułu scriptforge:
from scriptforge import CreateScriptService


W języku Basic

Usługę Datasheet można wywołać na dwa różne sposoby, w zależności od tego, czy plik bazy danych jest otwarty.

Poniższy przykład uwzględnia, że plik bazy danych jest otwarty, dlatego do pobrania dokumentu można użyć usługi UI, a metoda OpenTable z usługi Database służy do uzyskania instancji usługi Datasheet.


    Dim ui As Object, oBase As Object, oSheet As Object
    Set ui = CreateScriptService("UI")
    ' Obiekt oBase jest instancją usługi Base
    Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
    ' Obiekt oSheet jest instancją usługi Datasheet
    Set oSheet = oBase.OpenTable("Customers")
  

W powyższym przykładzie możliwe jest również użycie metody OpenQuery z usługi Base w celu uzyskania instancji Datasheet.

Aby wywołać usługę Datasheet, gdy plik bazy danych nie jest otwarty, użyj metod OpenTable, OpenQuery lub OpenSql z usługę Database. Poniższy przykład wykorzystuje metodę OpenTable do otwarcia istniejącej tabeli w pliku bazy danych:


    Dim oDatabase As Object, oSheet As Object
    ' Obiekt oDatabase jest instancją usługi Database
    Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
    ' Obiekt oSheet jest instancją usługi Datasheet
    Set oSheet = oDatabase.OpenTable("Customers")
  
W języku Python

Powyższe przykłady można przetłumaczyć na język Python w następujący sposób:


    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")
  

Właściwości

W usłudze Datasheet dostępne są następujące właściwości:

Nazwa

Tylko do odczytu

Typ

Opis

ColumnHeaders

Tak

Tablica ciągów

Zwraca Array z nazwami główek kolumn w arkuszu danych.

CurrentColumn

Tak

String

Zwraca aktualnie wybraną nazwę kolumny.

CurrentRow

Tak

Integer

Zwraca numer aktualnie wybranego wiersza, zaczynając od 1.

DatabaseFileName

Tak

String

Zwraca nazwę pliku Base w formacie FSO.FileNaming.

Filter

Nie

String

Określa filtr, który ma zostać zastosowany do arkusza danych wyrażonego jako klauzula WHERE kwerendy SQL bez słowa kluczowego WHERE. Jeśli podany zostanie pusty ciąg znaków, aktywny Filter zostanie usunięty.

LastRow

Tak

Integer

Zwraca liczbę wierszy w arkuszu danych.

OrderBy

Nie

String

Określa kolejność wyświetlania rekordów wyrażoną jako klauzula ORDER BY kwerendy SQL bez słowa kluczowego ORDER BY. Jeśli zostanie podany pusty ciąg znaków, aktywny element OrderBy zostanie usunięty.

ParentDatabase

Tak

Obiekt

Zwraca instancję usługi Database, do której należy arkusz danych.

Source

Tak

String

Zwraca ciąg reprezentujący źródło danych, którym może być instrukcja SQL, nazwa tabeli lub nazwa kwerendy.

SourceType

Tak

String

Zwraca typ źródła danych, który może mieć jedną z następujących wartości: „SQL”, „TABLE” lub „QUERY”.

XComponent

Tak

Obiekt UNO

Zwraca obiekt UNO com.sun.star.lang.XComponent, który reprezentuje arkusz danych.

XControlModel

Tak

Obiekt UNO

Zwraca obiekt UNO com.sun.star.awt.XControl, który reprezentuje arkusz danych.

XTabControllerModel

Tak

Obiekt UNO

Zwraca obiekt UNO com.sun.star.awt.XTabControllerModel, który reprezentuje arkusz danych.


Metody

Lista metod w usłudze Datasheet

Activate
CloseDatasheet
CreateMenu

GetText
GetValue
GoToCell

RemoveMenu
Toolbars



Activate

Przenosi na pierwszy plan okno widoku danych, do którego odnosi się instancja Datasheet.

Składnia:

svc.Activate()

Przykład:

W języku Basic

      oSheet.Activate()
    
W języku Python

      sheet.Activate()
    

CloseDatasheet

Zamyka okno widoku danych, do którego odnosi się instancja Datasheet.

Składnia:

svc.CloseDatasheet()

Przykład:

W języku Basic

      oSheet.CloseDatasheet()
    
W języku Python

      sheet.CloseDatasheet()
    

CreateMenu

Tworzy nową pozycję menu w oknie widoku danych i zwraca instancję usługi SFWidgets.Menu, za pomocą której można programowo dodawać elementy menu.

note

Menu dodane metodą CreateMenu zostaną utracone w momencie zamknięcia okna podglądu danych.


Składnia:

svc.CreateMenu(menuheader: str, opt before: any, opt submenuchar: str): obj

Parametry:

menuheader: nazwa nowego menu.

before: argumentem tym może być albo nazwa istniejącej pozycji menu, przed którą zostanie umieszczone nowe menu, albo liczba wyrażająca pozycję nowego menu. Jeśli ten argument pozostanie pusty, nowe menu zostanie umieszczone jako ostatnia pozycja.

submenuchar: separator używany w drzewach menu (domyślnie = ">")

Przykład:

W języku Basic

      Dim oMenu As Object
      Set oMenu = oSheet.CreateMenu("Moje menu", Before := "Data")
      With oMenu
          .AddItem("Element 1", Command := ".uno:About")
          ' ...
          .Dispose()
      End With
    
W języku Python

      menu = sheet.CreateMenu("Moje menu", before="Data")
      menu.AddItem("Element 1", command=".uno:About")
      # ...
      menu.Dispose()
    
tip

Przeczytaj stronę pomocy Usługa Menu, aby dowiedzieć się więcej na temat tworzenia wpisów menu i podmenu oraz kojarzenia poleceń.


GetText

Zwraca tekst w danej kolumnie bieżącego wiersza.

note

Metoda ta nie powoduje zmiany położenia kursora w oknie podglądu danych.


Składnia:

svc.GetText(column: any): str

Parametry:

column: nazwa kolumny jako ciąg lub pozycja kolumny (zaczynając od 1). Jeżeli podana zostanie pozycja większa niż liczba kolumn, zwracana jest ostatnia kolumna.

Przykład:

W języku Basic

      oSheet.GetText("FirstName")
    
W języku Python

      sheet.GetText("FirstName")
    

GetValue

Zwraca wartość w danej kolumnie bieżącego wiersza jako prawidłowy typ Basic.

Typy, które mogą zostać zwrócone to: String, Integer, Long, Single, Double, Date i Null.

Typy binarne są zwracane jako wartość Long wskazująca długość pola binarnego.

Jeśli nie można było pobrać wymaganej wartości, zwracana jest wartość Empty.

note

Metoda ta nie powoduje zmiany położenia kursora w oknie podglądu danych.


Składnia:

svc.GetValue(column: any): any

Parametry:

column: nazwa kolumny jako ciąg lub pozycja kolumny (zaczynając od 1). Jeżeli podana zostanie pozycja większa niż liczba kolumn, zwracana jest ostatnia kolumna.

Przykład:

W języku Basic

      oSheet.GetValue("Address")
    
W języku Python

      sheet.GetValue("Address")
    

GoToCell

Przesuwa kursor do określonego wiersza i kolumny.

note

Metoda ta nie powoduje zmiany położenia kursora w oknie podglądu danych.


Składnia:

svc.GoToCell(opt row: int, opt column: any): bool

Parametry:

row: numer wiersza jako wartość liczbowa rozpoczynająca się od 1. Jeśli żądany wiersz przekracza liczbę istniejących wierszy, kursor zostanie przeniesiony do ostatniego wiersza. Jeśli ten argument nie zostanie określony, wiersz nie zostanie zmieniony.

column: nazwa kolumny jako String lub pozycja kolumny (zaczynając od 1). Jeśli żądana kolumna przekracza liczbę istniejących kolumn, kursor zostanie przesunięty do ostatniej kolumny. Jeśli ten argument nie zostanie określony, kolumna nie zostanie zmieniona.

Przykład:

W języku Basic

      ' Przesuwa kursor do kolumny "LastName" w wierszu 4
      oSheet.GoToCell(4, "LastName")
      ' Przenosi kursor do trzeciej kolumny bieżącego wiersza
      oSheet.GoToCell(Column := 3)
      ' Przesuwa kursor o jeden wiersz w dół, pozostawiając go w tej samej kolumnie
      oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
      ' Przechodzi do ostatniej kolumny ostatniego wiersza
      Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
      oSheet.GoToCell(oSheet.LastRow, LastColumn)
    
W języku Python

      sheet.GoToCell(4, "LastName")
      sheet.GoToCell(column=3)
      sheet.GoToCell(row=sheet.CurrentRow + 1)
      sheet.GoToCell(sheet.LastRow, len(sheet.ColumnHeaders))
    

RemoveMenu

Usuwa pozycję menu z widoku danych według jej nazwy.

note

Ta metoda może usunąć menu należące do standardowego interfejsu użytkownika, a także menu dodane programowo za pomocą metody CreateMenu. Usunięcie standardowych menu nie jest trwałe i pojawią się one ponownie po zamknięciu i ponownym otwarciu okna.


Składnia:

svc.RemoveMenu(menuheader: str): bool

Parametry:

menuheader: nazwa menu, które ma zostać usunięte, uwzględnia wielkość liter. Nazwa nie może zawierać znaku tyldy („~”).

Przykład:

W języku Basic

      oSheet.RemoveMenu("Data")
    
W języku Python

      sheet.RemoveMenu("Data")
    

Toolbars

Ta metoda zwraca listę dostępnych nazw pasków narzędzi w rzeczywistym dokumencie lub instancję usługi SFWidgets.Toolbar.

Składnia:

svc.Toolbars(opt ToolbarName: str): uno
svc.Toolbars(): str[0..]

Parametry:

ToolbarName: zwykła nazwa jednego z dostępnych pasków narzędzi.

Przykład:

W języku Basic

    Dim oToolbar As Object
    Set oToolbar = oDoc.Toolbars("myToolbar")
  
W języku Python

    a_list = doc.Toolbars()
  
warning

Wszystkie podstawowe procedury lub identyfikatory ScriptForge poprzedzone znakiem podkreślenia „_” są zarezerwowane do użytku wewnętrznego. Nie należy ich używać w makrach Basic ani skryptach Pythona.


Prosimy o wsparcie!