Nápověda LibreOfficeDev 7.6
Služba Base poskytuje řadu metod a vlastností usnadňujících správu a obsluhu dokumentů LibreOfficeDev Base.
Služba úzce souvisí se službou Dokument, která nabízí obecné metody pro nakládání s dokumenty LibreOfficeDev, a to včetně dokumentů aplikace Base. Služba Base tak službu Document rozšiřuje, nabízí dodatečné metody specifické pro Base, a umožňuje uživatelům:
Získat přístup k databázi obsažené v dokumentu Base.
Otevřít dokument formulářů uložený v dokumentu Base.
Zkontrolovat, zda je dokument formulářů z dokumentu Base aktuálně načten.
Další informace o metodách a vlastnostech pro správu dokumentů LibreOfficeDev naleznete na stránce Služba Document.
Před používáním služby Base je nutné načíst či naimportovat knihovnu ScriptForge pomocí:
Službu Base lze volat různými způsoby. Následující část kódu používá metodu CreateBaseDocument ze služby UI pro vytvoření nového souboru aplikace Base.
Ve všech příkladech je objekt oDoc instancí služby Base.
    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateBaseDocument("C:\Documents\MyFile.odb")
  Instanci služby Base je možné vytvořit také při otevírání existujícího souboru Base:
    Set oDoc = ui.OpenBaseDocument("C:\Documents\MyFile.odb")
  Pokud je soubor Base již otevřen, je možné vytvořit instanci služby Base přímo:
    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  Do Pythonu lze tyto příklady převést následovně:
    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")
  Použití řetězce "SFDocuments." je v předchozím příkladu volitelné.
| Seznam metod služby Base | ||
|---|---|---|
Zavře zadaný dokument formulářů. Při úspěšném uzavření vrátí True.
svc.CloseFormDocument(formdocument: str): bool
formdocument: Název objektu FormDocument, který se má zavřít, jako řetězec, u něhož se rozlišuje velikost písmen.
Pokud jsou dokumenty uspořádány ve složkách, je nezbytné při určení názvu dokumentu formulářů uvést název složky, jak ukazují následující příklady:
    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
    doc.CloseFormDocument('Folder1/myFormDocument')
  Vrátí pole s celými názvy (cesta/název) všech dokumentů formulářů v dokumentu Base, a to jako pole řetězců začínající od 0.
svc.FormDocuments(): str[0..*]
Následující část kódu vypíše názvy všech dokumentů formulářů v aktuálním dokumentu 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)
  Další informace o dokumentech formulářů naleznete na stránce služby Form.
V závislosti na předaných parametrech tato metoda vrátí:
Pole začínající od 0 s názvy všech formulářů obsažených v dokumentu formulářů (pokud chybí argument Form)
Objekt SFDocuments.Form představující formuláře uvedený v argumentu Form.
svc.Forms(formdocument: str): str[0..*]
svc.Forms(formdocument: str, form: str = ''): svc
svc.Forms(formdocument: str, form: int): svc
formdocument: Název platného dokumentu formulářů jako řetězec, u něhož se rozlišuje velikost písmen.
form: Název nebo číslo indexu formuláře uloženého v dokumentu formulářů. Pokud tento argument chybí, metoda vrátí seznam s názvy všech formulářů, které jsou v dokumentu formulářů obsaženy.
I když je možné při odkazování na formuláře používat čísla indexů, je to doporučeno pouze tehdy, je-li v dokumentu formuláře pouze jediný formulář. V případě dvou a více formuláře je vhodné dát místo toho přednost názvu formuláře.
První řádek následujícího příkladu vrátí seznam všech formulářů v dokumentu formulářů „myFormDocument“. Druhý řádek vrátí instanci služby Form představující formulář „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")
  Vrátí instanci služby Database, která umožňuje spouštět SQL příkazy na databázi definované nebo uložené v aktuálním dokumentu Base
svc.GetDatabase(user: str = '', password: str = ''): svc
user, password: Nepovinné přihlašovací parametry jako řetězce. Výchozí hodnotou obou parametrů je prázdný řetězec "".
    Dim myDoc As Object, myDatabase As Object, ui As Object
    Set ui = CreateScriptService("UI")
    Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
    ' Níže jsou uvedeny uživatel a heslo, jsou-li potřeba
    Set myDatabase = myDoc.GetDatabase()
    '   ... Spouštění dotazů, SQL příkazů, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  
    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    # ... Spouštění dotazů, SQL příkazů, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  Vrátí True, pokud je určený FormDocument aktuálně otevřený.
svc.IsLoaded(formdocument: str): bool
formdocument: Název objektu FormDocument, který se má zkontrolovat, jako řetězec, u něhož se rozlišuje velikost písmen.
    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  Otevře určený FormDocument v běžném režimu nebo v režimu návrhu.
Pokud je dokument již otevřen, aktivuje se a jeho režim se nezmění. Metoda vrátí True, pokud dokument mohl být otevřen.
svc.OpenFormDocument(formdocument: str, designmode: bool = False): bool
formdocument: Název objektu FormDocument, který se má otevřít, jako řetězec, u něhož se rozlišuje velikost písmen.
designmode: Je-li tento argument True, FormDocument bude otevřen v režimu návrhu.
Většina dokumentů formulářů je uložena v kořeni dokumentu Base, a proto je lze otevřít pouze pomocí názvu, tak jako v následujícím příkladu:
    oDoc.OpenFormDocument("myFormDocument")
  Pokud jsou dokumenty uspořádány ve složkách, je nezbytné při určení názvu dokumentu formulářů uvést název složky, jak ukazují následující příklady:
    oDoc.OpenFormDocument("myFolder/myFormDocument")
  
    doc.OpenFormDocument("myFormDocument")
  
    doc.OpenFormDocument("myFolder/myFormDocument")
  Otevře pro zadaný dotaz okno Pohled na data a vrátí instanci služby Datasheet.
Dotaz lze otevřít v běžném režimu, nebo v režimu návrhu.
Pokud je dotaz již otevřený, jeho okno Pohled na data se stane aktivním.
Zavření dokumentu Base způsobí, že se zavře také okno Pohled na data.
svc.OpenQuery(queryname: str, designmode: bool = False): obj
queryname: Název existujícího dotazu jako řetězec, u něhož se rozlišuje velikost písmen.
designmode: Je-li tento argument nastaven na True, dotaz se otevře v režimu návrhu. V opačném případě se otevře v běžném režimu (výchozí = False).
      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
      doc.OpenQuery("MyQuery", designmode=True)
    Otevře okno Pohled na data se zadanou tabulkou a vrátí instanci služby Datasheet.
Tabulku lze otevřít v běžném režimu, nebo v režimu návrhu.
Pokud je tabulka již otevřená, její okno Pohled na data se stane aktivním.
Zavření dokumentu Base způsobí, že se zavře také okno Pohled na data.
svc.OpenTable(tablename: str, designmode: bool = False): obj
tablename: Název existující tabulky jako řetězec, u něhož se rozlišuje velikost písmen.
designmode: Je-li tento argument nastaven na True, tabulka se otevře v režimu návrhu. V opačném případě se otevře v běžném režimu (výchozí = False).
      oDoc.OpenTable("MyTable", DesignMode = False)
    
      doc.OpenTable("MyTable", designmode=False)
    Tato metoda odešle obsah daného dokumentu formulářů na výchozí tiskárnu nebo na tiskárnu určenou metodou SetPrinter().
Vrátí True, pokud byl dokument úspěšně vytištěn.
svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool
formdocument: Platný název dokumentů formulářů jako řetězec, u něhož se rozlišuje velikost písmen. Dokument formulářů musí být otevřen, aktivuje jej tato metoda.
pages: Stránky, které se mají vytisknout, jako řetězec podobný tomu, který se zadává v uživatelské rozhraní, například: "1-4;10;15-18". Výchozí jsou všechny stránky.
copies: Počet kopií. Výchozí je 1.
    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  Určuje možnosti tiskárny pro dokument formulářů. Tento dokument musí být otevřený.
Vrátí True v případě úspěšného nastavení.
svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool
formdocument: Platný název dokumentu formulářů jako řetězec, u něhož se rozlišuje velikost písmen.
    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
    doc.SetPrinter('myForm', paperformat='TABLOID')