Usługa SFDocument.FormDocument

Usługa FormDocument umożliwia dostęp do dokumentów formularzy przechowywanych w dokumentach Collabora Office 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.

tip

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 Collabora Office.


Wywoływanie usługi

Przed użyciem usługi FormDocument 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

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

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

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.

note

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()
  
tip

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


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