Služba SFDocuments.FormDocument

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 Zobrazit - Formuláře. 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.

tip

Další informace o metodách a vlastnostech pro správu dokumentů LibreOffice naleznete na stránce Služba Document.


Volání služby

Před používáním služby FormDocument je nutné načíst či naimportovat knihovnu ScriptForge pomocí:

note

• V makrech Basicu je nutné načíst knihovnu ScriptForge následujícím příkazem:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Ve skriptech Pythonu je nezbytné import z modulu scriptforge:
from scriptforge import CreateScriptService


V Basicu

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

Jestliže se zavolá metoda OpenFormDocument na již otevřený dokument formulářů, okno s tímto dokumentem se aktivuje a získá zaměření.


V Pythonu

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

CloseDocument
Forms

GetDatabase

PrintOut


CloseDocument

Zavře dokument formulářů, na který odkazuje instance FormDocument. V případě úspěšného uzavření dokumentu vrátí True.

Syntaxe:

svc.CloseDocument(): bool

Příklad:

V Basicu

    oFormDoc.CloseDocument()
  
V Pythonu

    formDoc.CloseDocument()
  

Forms

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á.

note

Dokument formulářů obsahuje alespoň jeden hlavní formulář. Komplexnější dokumenty se mohou skládat z více než jednoho formuláře a podformulářů.


Syntaxe:

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

svc.Forms(form: str): svc

svc.Forms(form: int): svc

Parametry:

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ářů.

Příklad:

V Basicu

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()
  
V Pythonu

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

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

Další informace o metodách a vlastnostech formulářů naleznete na stránce služby Form.


GetDatabase

Vrátí instanci objektu SFDatabases.Database, která poskytuje přístup ke spouštění SQL příkazů na databázi, ke které je aktuální formulář připojen nebo která je uložena v aktuálním dokumentu Base.

Každý formulář má své spojení s databází, výjimkou jsou dokumenty Base, kde všechny formuláře sdílí stejné spojení.

Syntaxe:

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

Parametry:

user, password: Nepovinné přihlašovací parametry (výchozí = "").

Příklad:


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

      db = form.GetDatabase()  # SFDatabases.Database
   

PrintOut

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.

Syntaxe:

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: Stránky, které se mají vytisknout, jako řetězec. Tento argument se zadává stejně jako v uživatelském rozhraní (viz dialogové okno Soubor - Tisk), 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).

Příklad:

V Basicu

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

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

Všechny procedury nebo identifikátory knihovny ScriptForge, které jsou uvozeny podtržítkem "_", jsou určeny pro interní použití. Není zamýšleno je používat v makrech Basicu nebo skriptech Pythonu.


Podpořte nás!