Spis treści

# Usługa SFDocument.FormDocument

Usługa FormDocument umożliwia dostęp do dokumentów formularzy przechowywanych w dokumentach LibreOffice Base.

W dokumencie Base istniejące dokumenty formularzy można przeglądać, wybierając Widok - Formularze w interfejsie użytkownika. Każdy dokument formularza może składać się z jednego lub większej liczby formularzy, w tym formularza głównego i innych formularzy podrzędnych.

Ta usługa dziedziczy metody i właściwości z usługi Document i jest często używana razem z usługami Base i Database.

Przejdź do usługi Document, aby dowiedzieć się więcej o metodach i właściwościach, których można używać do zarządzania dokumentami LibreOffice.

## Wywoływanie usługi

Przed użyciem usługi FormDocument należy załadować lub zaimportować bibliotekę ScriptForge:

• 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

Instancję usługi FormDocument można utworzyć, wywołując metodę OpenFormDocument, która istnieje zarówno w usługach Base, jak i Database.

Poniższy przykład wykorzystuje usługę UI do otwarcia dokumentu Base, a następnie pobrania dokumentu formularza. Należy pamiętać, że w tym przykładzie zarówno dokument Base, jak i dokument formularza zostaną otwarte i wyświetlone na ekranie.

        Dim ui As Object, oBase As Object, oFormDoc As Object
        ui = CreateScriptService("UI")
        oBase = ui.OpenBaseDocument("C:\Documents\MyDatabase.odb")
        oFormDoc = oBase.OpenFormDocument("MyFormDocument")
        ' ...
        oFormDoc.CloseDocument()

Poniższy przykład wykorzystuje usługę Database do otwarcia dokumentu formularza. W takim przypadku plik Base nie zostanie otwarty i wyświetlony zostanie jedynie dokument formularza.

        Dim oDatabase As Object, oFormDoc As Object
        oDatabase = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
        oFormDoc = oDatabase.OpenFormDocument("MyFormDocument")

Wywołanie OpenFormDocument dla dokumentu formularza, który jest już otwarty, aktywuje okno dokumentu i ustawia jego fokus.

##### W języku Python

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

        ui = CreateScriptService("UI")
        baseDoc = ui.OpenBaseDocument("C:\Documents\MyDatabase.odb")
        formDoc = baseDoc.OpenFormDocument("MyFormDocument")
        # ...
        formDoc.CloseDocument()

        database = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
        formDoc = database.OpenFormDocument("MyFormDocument")

Lista metod w usłudze FormDocument
CloseDocument Forms | GetDatabase | PrintOut

## CloseDocument

Zamyka dokument formularza, do którego odwołuje się instancja FormDocument. Zwraca wartość True, jeśli dokument formularza został pomyślnie zamknięty.

### Składnia:

svc.CloseDocument(): bool

### Przykład:

##### W języku Basic

        oFormDoc.CloseDocument()

##### W języku Python

        formDoc.CloseDocument()

## Forms

Zwraca tablicę z nazwami głównych formularzy zawartych w dokumencie formularza lub instancję usługi Form odwołującą się do konkretnego formularza.

Wywołaj tę metodę bez argumentów, aby uzyskać tablicę ciągów o wartości zerowej zawierającą nazwy wszystkich formularzy zawartych w dokumencie formularza.

Podaj nazwę formularza lub indeks jako argument, aby uzyskać instancję usługi Form odpowiadającą określonemu formularzowi.

Dokument formularza ma co najmniej jeden formularz główny. Bardziej złożone dokumenty formularzy mogą składać się z więcej niż jednego formularza i formularzy podrzędnych.

### Składnia:

svc.Forms(): str[0..*]

svc.Forms(form: str): svc

svc.Forms(form: int): svc

### Parametry:

form: argumentem tym może być ciąg znaków zawierający nazwę formularza istniejącego w dokumencie formularza lub indeks liczony od zera formularza, który ma zostać zwrócony. Jeśli argument ten nie jest konkretny, zwracana jest tablica z nazwami wszystkich dostępnych formularzy.

### Przykład:

##### W języku Basic

Poniższy przykład sprawdza, czy dokument formularza zawiera formularz o nazwie "MainForm":

        arrForms = oFormDoc.Forms()
        If SF_Array.Contains(arrForms, "MainForm") Then
            ' ...
        End If

Poniższy przykład pobiera formularz o nazwie "MainForm" i przenosi go do ostatniego rekordu:

        Dim oForm As Object
        oForm = oFormDoc.Forms("MainForm")
        oForm.MoveLast()

##### W języku Python

        arrForms = formDoc.Forms()
        if "MainForm" in arrForms:
            # ...

        form = formDoc.Forms("MainForm")
        form.MoveLast()

Więcej informacji na temat metod i właściwości formularzy znajdziesz na stronie pomocy usługi Form.

### GetDatabase

Zwróć instancję SFDatabases.Database zapewnia dostęp do wykonywania poleceń SQL w bazie danych, z którą bieżący formularz jest połączony i/lub który jest przechowywany w bieżącym dokumencie Base.

Każdy formularz ma własne połączenie z bazą danych, z wyjątkiem dokumentów Base, gdzie wszystkie mają to samo połączenie.

### Składnia:

svc.GetDatabase(opt user: str, opt password: str): svc

### Parametry:

user, password: opcjonalne parametry logowania (domyślnie = "").

### Przykład:

          Dim myDb As Object ' SFDatabases.Database
          Set myDb = oForm.GetDatabase()

##### W języku Python

          db = form.GetDatabase()  # SFDatabases.Database

## PrintOut

Ta metoda wysyła dokument formularza zawartości do drukarki domyślnej lub do drukarki zdefiniowanej przez metodę SetPrinter().

Zwraca wartość True, jeśli dokument został pomyślnie wysłany do drukarki.

### Składnia:

svc.PrintOut(pages: str = "", copies: int = 1, printbackground: bool = true, printblankpages: bool = false, printevenpages: bool = true, printoddpages: bool = true, printimages: bool = true): bool

### Parametry:

pages: strony do wydrukowania jako ciąg znaków. Argument ten należy podać analogicznie jak w interfejsie użytkownika (patrz okno dialogowe Plik - Drukuj). Przykład: "1-4;10;15-18". Wartość domyślna to pusty ciąg znaków "", który spowoduje wydrukowanie wszystkich stron.

copies: liczba kopii do wydrukowania (domyślnie = 1).

printbackground: określa, czy obraz tła powinien być drukowany (domyślnie = True).

printblankpages: określa, czy mają być drukowane puste strony (domyślnie = False).

printevenpages: określa, czy mają być drukowane strony parzyste (domyślnie = True).

printoddpages: określa, czy mają być drukowane strony nieparzyste (domyślnie = True).

printimages: określa, czy obrazy mają być drukowane (domyślnie = True).

### Przykład:

##### W języku Basic

        oFormDoc.PrintOut("1-4", Copies := 2, PrintBackground := False)

##### W języku Python

        formDoc.PrintOut("1-4", copies = 2, printbackground = False)

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.

Tematy pokrewne

Usługa SFDocuments.Base

Usługa SFDatabases.Database

Usługa SFDocuments.Document

Usługa SFDocuments.Form

Usługa ScriptForge.UI