Nápověda LibreOffice 24.8
Služba FormDocument umožňuje přistupovat k dokumentům formulářů uloženým v dokumentech LibreOffice Base.
V dokumentu aplikace Base lze stávající dokumenty formulářů zobrazovat v uživatelském rozhraní volbou . Každý dokument formulářů může obsahovat jeden či více formulářů, a to včetně hlavního formuláře a podformulářů.
Tato služba dědí metody a vlastnosti služby Document. Často se používá spolu se službam Base a Database.
Další informace o metodách a vlastnostech pro správu dokumentů LibreOffice naleznete na stránce Služba Document.
Před používáním služby FormDocument je nutné načíst či naimportovat knihovnu ScriptForge pomocí:
Instanci služby FormDocument lze vytvořit voláním metody OpenFormDocument, která existuje jak ve službě Base, tak ve službě Database.
V následujícím příkladu se pomocí služby UI otevře dokument Base poté se z něj získá dokument formulářů. V tomto případě se otevře a na obrazovce zobrazí jak dokument Base, tak dokument formulářů.
    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()
  V následujícím příkladu se pomocí služby Database otevře dokument formulářů. V tomto případě se soubor Base neotevře a zobrazí se pouze dokument formulářů.
    Dim oDatabase As Object, oFormDoc As Object
    oDatabase = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
    oFormDoc = oDatabase.OpenFormDocument("MyFormDocument")
  Jestliže se zavolá metoda OpenFormDocument na již otevřený dokument formulářů, okno s tímto dokumentem se aktivuje a získá zaměření.
Do Pythonu lze tyto příklady převést následovně:
    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")
  | Seznam metod služby FormDocument | ||
|---|---|---|
Zavře dokument formulářů, na který odkazuje instance FormDocument. V případě úspěšného uzavření dokumentu vrátí True.
svc.CloseDocument(): bool
    oFormDoc.CloseDocument()
  
    formDoc.CloseDocument()
  Vrátí buď pole názvů hlavních formulářů, které dokument formulářů obsahuje, nebo instanci služby Form odkazující na zadaný formulář.
Voláním této metody bez argumentů získáte pole řetězců začínající od 0 s názvy všech formulářů, které dokument formulářů zahrnuje.
Zadáte-li jako argument název formuláře nebo index, získáte instanci služby Form, která zadanému formuláři odpovídá.
Dokument formulářů obsahuje alespoň jeden hlavní formulář. Komplexnější dokumenty se mohou skládat z více než jednoho formuláře a podformulářů.
svc.Forms(): str[0..*]
svc.Forms(form: str): svc
svc.Forms(form: int): svc
form: Tímto argumentem může být buď řetězec s názvem formuláře, který se v dokumentu formulářů nachází, nebo index začínající od 0 pro formulář, který se má vrátit. Není-li tento argument zadán, vrátí se pole s názvy všech dostupných formulářů.
V následujícím příkladu se kontroluje, zda dokument formulářů obsahuje formulář s názvem "MainForm":
    arrForms = oFormDoc.Forms()
    If SF_Array.Contains(arrForms, "MainForm") Then
        ' ...
    End If
  V tomto příkladu se získá formulář s názvem "MainForm" a přesune se na poslední záznam:
    Dim oForm As Object
    oForm = oFormDoc.Forms("MainForm")
    oForm.MoveLast()
  
    arrForms = formDoc.Forms()
    if "MainForm" in arrForms:
        # ...
  
    form = formDoc.Forms("MainForm")
    form.MoveLast()
  Další informace o metodách a vlastnostech formulářů naleznete na stránce služby Form.
Tato metoda odešle obsah dokumentu formulářů na výchozí tiskárnu nebo na tiskárnu určenou metodou SetPrinter.
V případě úspěšného odeslání na tiskárnu vrátí True.
svc.PrintOut(pages: str = "", copies: int = 1, printbackground: bool = true, printblankpages: bool = false, printevenpages: bool = true, printoddpages: bool = true, printimages: bool = true): bool
pages: Stránky, které se mají vytisknout, jako řetězec. Tento argument se zadává stejně jako v uživatelském rozhraní (viz dialogové okno ), například: "1-4;10;15-18". Výchozí hodnotou je prázdný řetězec "", který způsobí tisk všech stránek.
copies: Počet vytištěných kopií (výchozí = 1).
printbackground: určuje, zda se má vytisknout obrázek na pozadí (výchozí = True).
printblankpages: určuje, zda se mají vytisknout prázdné stránky (výchozí = False).
printevenpages: určuje, zda se mají vytisknout sudé stránky (výchozí = True).
printoddpages: určuje, zda se mají vytisknout liché stránky (výchozí = True).
printimages: určuje, zda se mají vytisknout obrázky (výchozí = True).
    oFormDoc.PrintOut("1-4", Copies := 2, PrintBackground := False)
  
    formDoc.PrintOut("1-4", copies = 2, printbackground = False)