Pomoc LibreOffice 25.2
Usługa Base zapewnia szereg metod i właściwości ułatwiających zarządzanie i obsługę dokumentów LibreOffice Base.
Ta usługa jest ściśle powiązana z usługą Document, która zapewnia ogólne metody obsługi dokumentów LibreOffice, w tym dokumentów Base. W związku z tym usługa Base rozszerza usługę Document i udostępnia dodatkowe metody, specyficzne dla dokumentów Base, umożliwiające użytkownikom:
Uzyskiwanie dostępu do bazy danych zawartej w dokumencie Base.
Otwieranie dokumentów formularzy przechowywanych w dokumencie Base.
Sprawdzanie, czy dokument formularza z dokumentu Base jest aktualnie załadowany.
Zapoznaj się z usługą Document, aby dowiedzieć się więcej o metodach i właściwościach, których można używać do zarządzania dokumentami LibreOffice.
Przed użyciem usługi Base należy załadować lub zaimportować bibliotekę ScriptForge:
Usługę Base można wywołać na różne sposoby. Poniższy fragment kodu używa metody CreateBaseDocument z usługi UI do utworzenia nowego pliku Base.
Zauważ, że we wszystkich przykładach obiekt oDoc jest instancją usługi Base.
    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateBaseDocument("C:\Documents\MyFile.odb")
  Usługę Base można również utworzyć podczas otwierania istniejącego pliku Base, jak pokazano poniżej:
    Set oDoc = ui.OpenBaseDocument("C:\Documents\MyFile.odb")
  Jeśli dokument Base jest już otwarty, możliwe jest bezpośrednie utworzenie instancji usługi Base:
    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  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")
    doc = ui.CreateBaseDocument(r"C:\Documents\MyFile.odb")
  
    doc = ui.OpenBaseDocument(r"C:\Documents\MyFile.odb")
  
    doc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  Użycie podłańcucha "SFDocuments." w poprzednim przykładzie jest opcjonalne.
| Lista metod w usłudze Base | ||
|---|---|---|
Zamyka podany dokument formularza. Zwraca True, jeśli zamknięcie się powiodło.
Metoda CloseFormDocument jest przestarzała od wersji 7.6 LibreOffice. Chociaż jest nadal dostępna, może zostać usunięta z usługi Base w przyszłej wersji. Zamiast tego użyj metody CloseDocument z usługi FormDocument.
svc.CloseFormDocument(formdocument: str): bool
formdocument: Nazwa FormDocument do zamknięcia jako ciąg z rozróżnianiem wielkości liter.
Jeśli dokumenty formularza są zorganizowane w folderach, konieczne jest podanie nazwy folderu w celu określenia dokumentu formularza, który ma zostać otwarty, jak pokazano w poniższych przykładach:
    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
    doc.CloseFormDocument('Folder1/myFormDocument')
  Zwraca tablicę z pełnymi nazwami (ścieżka/nazwa) wszystkich dokumentów formularza w dokumencie Base jako tablicę ciągów liczoną od zera.
svc.FormDocuments(): str[0..*]
Poniższy fragment kodu wypisuje nazwy wszystkich dokumentów formularzy w bieżącym dokumencie Base.
    Dim oDoc as Object, myForms as Object, formName as String
    Set oDoc = CreateScriptService("Document", ThisDataBaseDocument)
    Set myForms = oDoc.FormDocuments()
    For Each formName In myForms
        MsgBox formName
    Next formName
  
    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisDataBaseDocument)
    myForms = doc.FormDocuments()
    for formName in myForms:
        bas.MsgBox(formName)
  Więcej informacji na temat dokumentów formularzy można znaleźć na stronie pomocy usługi ScriptForge.FormDocument.
W zależności od podanych parametrów ta metoda zwróci:
Tablicę liczoną od zera z nazwami wszystkich formularzy zawartych w dokumencie formularza (jeśli nie ma argumentu Form)
Obiekt SFDocuments.Form reprezentujący formularz określony w argumencie Form.
Metoda Forms jest przestarzała od wersji 7.6 LibreOffice. Chociaż jest nadal dostępna, może zostać usunięta z usługi Base w przyszłej wersji. Zamiast tego użyj metody Forms z usługi FormDocument.
svc.Forms(formdocument: str): str[0..*]
svc.Forms(formdocument: str, form: str = ''): svc
svc.Forms(formdocument: str, form: int): svc
formdocument: nazwa prawidłowego dokumentu formularza jako ciąg z rozróżnianą wielkością liter.
form: nazwa lub numer indeksu formularza przechowywanego w dokumencie formularza. W przypadku braku tego argumentu metoda zwróci listę z nazwami wszystkich formularzy dostępnych w dokumencie formularza.
Chociaż możliwe jest odwoływanie się do formularzy za pomocą numerów indeksów, jest to zalecane tylko wtedy, gdy w dokumencie formularza znajduje się tylko jeden formularz. Jeśli istnieją dwa lub więcej formularzy, lepiej jest zamiast tego użyć nazwy formularza.
Pierwszy wiersz poniższego przykładu zwraca listę wszystkich formularzy w dokumencie formularza „myFormDocument”. Drugi wiersz zwraca instancję usługi Form reprezentującą formularz „myForm”.
    Dim formsList as Object : formsList = oDoc.Forms("myFormDocument")
    Dim oForm as Object : oForm = oDoc.Forms("myFormDocument", "myForm")
  
    formsList = doc.Forms("myFormDocument")
    form = doc.Forms("myFormDocument", "myForm")
  Zwraca instancję usługi Database, która umożliwia wykonywanie poleceń SQL na zdefiniowanej bazie danych i/lub przechowywane w bieżącym dokumencie Base
svc.GetDatabase(user: str = '', password: str = ''): svc
user, password: opcjonalne parametry logowania jako łańcuchy znaków. Wartością domyślną dla obu parametrów jest pusty ciąg znaków "".
    Dim myDoc As Object, myDatabase As Object, ui As Object
    Set ui = CreateScriptService("UI")
    Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
    ' Poniżej znajduje się nazwa użytkownika i hasło w razie potrzeby
    Set myDatabase = myDoc.GetDatabase()
    ' ... Uruchamiaj kwerendy, instrukcje SQL, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  
    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    #   ... Uruchamiaj kwerendy, instrukcje SQL, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  Zwraca True, jeśli określony FormDocument jest aktualnie otwarty.
svc.IsLoaded(formdocument: str): bool
formdocument: nazwa FormDocument do sprawdzenia jako ciąg z rozróżnianiem wielkości liter.
    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  Otwiera określoną FormDocument w trybie normalnym lub w trybie projektowania. Ta metoda zwraca instancję usługi FormDocument odpowiadającą określonemu dokumentowi formularza.
Jeżeli dokument formularza jest już otwarty, zostaje on aktywowany bez zmiany jego trybu.
Jeśli określony dokument formularza nie istnieje, zwracane jest Nothing.
svc.OpenFormDocument(formdocument: str, designmode: bool = False): svc
formDocument: nazwa FormDocument do otwarcia jako ciąg z rozróżnianiem wielkości liter.
designmode: jeśli ten argument ma wartość True, FormDocument zostanie otwarty w trybie projektu.
Większość dokumentów formularzy jest przechowywana w katalogu głównym dokumentu Base i można je otwierać, używając ich nazw, jak w poniższym przykładzie:
    Dim oFormDoc As Object
    oFormDoc = oDoc.OpenFormDocument("myFormDocument")
  Jeśli dokumenty formularza są zorganizowane w folderach, konieczne staje się uwzględnienie nazwy folderu w celu określenia dokumentu formularza, który ma zostać otwarty, jak pokazano w poniższym przykładzie:
    oFormDoc = oDoc.OpenFormDocument("myFolder/myFormDocument")
  
    formDoc = doc.OpenFormDocument("myFormDocument")
  
    formDoc = doc.OpenFormDocument("myFolder/myFormDocument")
  Otwiera okno Widok danych określonej kwerendy i zwraca instancję usługi Datasheet.
Kwerendę można otworzyć w trybie normalnym lub projektu.
Jeśli kwerenda jest już otwarta, jej okno Widok danych zostanie uaktywnione.
Zamknięcie dokumentu Base spowoduje również zamknięcie okna Widok danych.
svc.OpenQuery(queryname: str, designmode: bool = False): obj
queryname: nazwa istniejącej kwerendy jako ciąg tekstowy z rozróżnianiem wielkości liter.
designmode: jeśli ten argument jest ustawiony na True, kwerenda jest otwierana w trybie projektu. W przeciwnym razie jest otwierana w trybie normalnym (domyślnie = False).
      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
      doc.OpenQuery("MyQuery", designmode=True)
    Otwiera okno Widok danych określonej tabeli i zwraca instancję usługi Datasheet.
Tabelę można otworzyć w trybie normalnym lub projektu.
Jeśli tabela jest już otwarta, jej okno Widok danych zostanie uaktywnione.
Zamknięcie dokumentu Base spowoduje również zamknięcie okna Widok danych.
svc.OpenTable(tablename: str, designmode: bool = False): obj
tablename: nazwa istniejącej tabeli jako ciąg tekstowy z rozróżnianiem wielkości liter.
designmode: jeśli ten argument jest ustawiony na True, tabela jest otwierana w trybie projektu. W przeciwnym razie jest otwierana w trybie normalnym (domyślnie = False).
      oDoc.OpenTable("MyTable", DesignMode = False)
    
      doc.OpenTable("MyTable", designmode=False)
    Ta metoda wysyła zawartość podanego dokumentu formularza do drukarki domyślnej lub drukarki zdefiniowanej metodą SetPrinter().
Zwraca True, jeśli dokument został pomyślnie wydrukowany.
Metoda PrintOut jest przestarzała od wersji 7.6 LibreOffice. Chociaż jest nadal dostępna, może zostać usunięta z usługi Base w przyszłej wersji. Zamiast tego użyj metody PrintOut z usługi FormDocument.
svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool
formdocument: prawidłowa nazwa formularza dokumentu jako ciąg z rozróżnianiem wielkości liter. Dokument formularza musi być otwarty, ta metoda go aktywuje.
pages: strony do wydrukowania jako ciąg, tak jak w interfejsie użytkownika. Przykład: "1-4;10;15-18". Domyślnie są to wszystkie strony.
copies: liczba kopii. Wartość domyślna to 1.
    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  Ustawianie opcji drukarki dla dokumentu formularza. Dokument formularza musi być otwarty.
Zwraca True, gdy się powiedzie.
Metoda SetPrinter jest przestarzała od wersji 7.6 LibreOffice. Chociaż jest nadal dostępna, może zostać usunięta z usługi Base w przyszłej wersji. Zamiast tego użyj metody SetPrinter z usługi Document.
svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool
formdocument: prawidłowa nazwa formularza dokumentu jako ciąg z rozróżnianiem wielkości liter.
    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
    doc.SetPrinter('myForm', paperformat='TABLOID')