Nápověda LibreOffice 25.2
Záměrem služby ScriptForge.Basic je, aby šla v kontextu Pythonu spouštět vybraná sada metod jazyka LibreOffice Basic. Metody služby Basic přesně reprodukují syntaxi a chování funkcí vestavěných v Basicu.
Typický příklad:
   bas.MsgBox('Zobrazit ze skriptu Pythonu tento text v dialogu')
  Služba ScriptForge.Basic je omezena na skripty Pythonu.
Před použitím služby Basic naimportujte metodu CreateScriptService() z modulu scriptforge:
    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
  | Název | Pouze pro čtení | Typ | Popis | 
|---|---|---|---|
| MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL | ano | Integer | Hodnoty: 0, 1, 5, 4, 3 | 
| MB_ICONEXCLAMATION, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP | ano | Integer | Hodnoty: 48, 64, 32, 16 | 
| MB_ABORTRETRYIGNORE, MB_DEFBUTTON1, MB_DEFBUTTON2, MB_DEFBUTTON3 | ano | Integer | Hodnoty: 2, 128, 256, 512 | 
| IDABORT, IDCANCEL, IDIGNORE, IDNO, IDOK, IDRETRY, IDYES | ano | Integer | Hodnoty: 3, 2, 5, 7, 1, 4, 6 | 
| StarDesktop | ano | objekt | Vrátí objekt StarDesktop představující aplikaci LibreOffice. | 
| ThisComponent | ano | objekt | Jestliže aktuální komponenta odkazuje na dokument LibreOffice, tato metoda vrátí objekt UNO, který tento dokument reprezentuje. Pokud aktuální komponenta neodpovídá žádnému dokumentu, metoda vrátí None. | 
| ThisDatabaseDocument | ano | objekt | Pokud je skript spuštěn z dokumentu Base nebo některé z jeho dílčích komponent, vrátí tato metoda hlavní komponentu instance Base. V ostatních případech tato metoda vrátí None. | 
Převede číselný výraz nebo řetězec na nativní objekt Pythonu datetime.datetime.
Tato metoda zpřístupňuje skriptům Pythonu vestavěnou funkci Basicu CDate.
svc.CDate(expression: any): obj
expression: číselný výraz nebo řetězec představující datum.
    d = bas.CDate(1000.25)
    bas.MsgBox(str(d)) # 1902-09-26 06:00:00
    bas.MsgBox(d.year) # 1902
  Převede reprezentaci data/času v UNO na nativní objekt Pythonu datetime.datetime.
svc.CDateFromUnoDateTime(unodate: uno): obj
unodate: Objekt UNO data/času, některý z následujících typů: com.sun.star.util.DateTime, com.sun.star.util.Date nebo com.sun.star.util.Time
V následujícím příkladu je vytvořen objekt com.sun.star.util.DateTime, který se převede na objekt Pythonu datetime.datetime.
    uno_date = bas.CreateUnoStruct('com.sun.star.util.DateTime')
    uno_date.Year = 1983
    uno_date.Month = 2
    uno_date.Day = 23
    new_date = bas.CDateFromUnoDateTime(uno_date)
    bas.MsgBox(str(new_date)) # 1983-02-23 00:00:00
  Převede reprezentaci data na objekt com.sun.star.util.DateTime.
svc.CDateToUnoDateTime(date: obj): uno
date: Objekt Pythonu data/času, některý z následujících typ: datetime.datetime, datetime.date, datetime.time, float (time.time) nebo time.struct_time.
    from datetime import datetime
    current_datetime = datetime.now()
    uno_date = bas.CDateToUnoDateTime(current_datetime)
    bas.MsgBox(str(uno_date.Year) + "-" + str(uno_date.Month) + "-" + str(uno_date.Day))
  Vrátí cestu systému k souboru pro danou adresu URL s file:.
svc.ConvertFromUrl(url: str): str
url: Absolutní adresa URL s file:.
Cesta systému s názvem souboru.
    filename = bas.ConvertFromUrl( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt")
    bas.MsgBox(filename)
  Vrátí adresu URL s file: pro danou cestu systému.
svc.ConvertToUrl(systempath: str): str
systempath: Název souboru v systému jako řetězec.
Adresa URL s file: jako řetězec.
    url = bas.ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt')
    bas.MsgBox(url)
  Vytvoří instanci služby UNO se službou ProcessServiceManager.
svc.CreateUnoService(servicename: str): uno
servicename: Plně kvalifikovaný název služby, například com.sun.star.ui.dialogs.FilePicker či com.sun.star.sheet.FunctionAccess.
    dsk = bas.CreateUnoService('com.sun.star.frame.Desktop')
  Vrátí instanci struktury UNO zadaného typu.
svc.CreateUnoStruct(unostructure: str): uno
unostructure: Plně kvalifikovaný název struktury, například com.sun.star.beans.Property nebo com.sun.star.util.DateTime.
    date_struct = CreateUnoStruct('com.sun.star.util.DateTime')
  Přidá k určenému datu/času interval (se zadaným počtem opakování) a vrátí výsledné datum.
svc.DateAdd(interval: str, number: num, date: datetime): datetime
interval: Řetězec z následující tabulky, který určuje interval data nebo času.
number: Číselný výraz, který určuje, kolikrát se má interval přidat (number je kladné) nebo odebrat (number je záporné).
date: Hodnota datetime.datetime, k níž se přidá hodnota interval, a to numberkrát.
Hodnota datetime.datetime.
    dt = datetime.datetime(2004, 1, 31)
    dt = bas.DateAdd("m", 1, dt)
    print(dt)
  Vrátí počet intervalů mezi dvěma daty/časy.
svc.DateDiff(interval: str, date1: datetime, date2: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: Řetězec, který určuje interval, jak je popsáno u metody DateAdd.
date1, date2: Dvě hodnoty datetime.datetime, které se mají porovnat.
Číslo.
    date1 = datetime.datetime(2005,1, 1)
    date2 = datetime.datetime(2005,12,31)
    diffDays = bas.DateDiff('d', date1, date2)
    print(diffDays)
  Funkce DatePart vrátí určenou část data.
svc.DatePart(interval: str, date: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: Řetězec, který určuje interval, jak je popsáno u metody DateAdd.
date: Datum/čas, ze kterého se má vypočítat výsledek.
firstdayofweek, firstweekofyear: nepovinné parametry určující první den v týdnu a první týden v roce, jak je popsáno výše u metody DateDiff.
Požadovaná část zadaného data/času.
    print(bas.DatePart("ww", datetime.datetime(2005,12,31)
    print(bas.DatePart('q', datetime.datetime(1999,12,30)
  Vypočítá datum z data zadaného jako řetězec.
svc.DateValue(date: str): datetime
Vypočtené datum.
    dt = bas.DateValue("23-02-2011")
    print(dt)
  Převede číslo na řetězec a ten upraví podle zadaného formátu.
svc.Format(expression: any, format = ''): str
    txt = bas.Format(6328.2, '##.##0.00')
    print(txt)
  Vrátí výchozí kontext process service factory, pokud existuje, jinak vrátí null.
GetDefaultContext je alternativou metody getComponentContext(), dostupné z globální proměnné XSCRIPTCONTEXT nebo z modulu uno.py.
svc.GetDefaultContext(): uno
Výchozí kontext pro komponentu se používá při vytváření instancí služeb pomocí XMultiServiceFactory. Další informace naleznete v kapitole Professional UNO příručky Developer's Guide na api.libreoffice.org.
    ctx = bas.GetDefaultContext()
  Vrátí číselnou hodnotu určující grafické uživatelské rozhraní. Tato funkce je k dispozici kvůli zpětné kompatibilitě s předchozími verzemi.
Chcete-li rozpoznat operační systém, použijte metodu system() z modulu Pythonu platform.
svc.GetGuiType(): int
    n = bas.GetGuiType()
  Vrátí na operačním systému závislý oddělovač adresářů používaný při určování cesty k souboru.
Pro rozpoznání oddělovače pro cestu použijte os.pathsep z modulu Pythonu os.
svc.GetPathSeparator(): str
    sep = bas.GetPathSeparator()
  Vrátí počet systémových tiků operačního systému. Tuto funkci je možné použít k optimalizaci některých procesů. Pomocí této metody odhadnete čas v milisekundách.
svc.GetSystemTicks(): int
    ticks_ini = bas.GetSystemTicks()
    time.sleep(1)
    ticks_end = bas.GetSystemTicks()
    bas.MsgBox("{} - {} = {}".format(ticks_end, ticks_ini,ticks_end - ticks_ini))
  Vrátí objekt UNO obsahující všechny sdílené knihovny a modulu Basicu.
Tato metoda v Pythonu odpovídá metodě GlobalScope.BasicLibraries ve skriptech Basicu.
svc.GlobalScope.BasicLibraries(): uno
com.sun.star.script.XLibraryContainer
V následujícím příkladu je načtena knihovna Basicu Gimmicks, pokud již nebyla načtena dříve.
    libs = bas.GlobalScope.BasicLibraries()
    if not libs.isLibraryLoaded("Gimmicks"):
        libs.loadLibrary("Gimmicks")
  Vrátí objekt UNO obsahující všechny sdílené knihovny dialogových oken.
Tato metoda v Pythonu odpovídá metodě GlobalScope.DialogLibraries ve skriptech Basicu.
svc.GlobalScope.DialogLibraries(): uno
com.sun.star.comp.sfx2.DialogLibraryContainer
V následujícím příkladu se zobrazí dialog s názvy všech dostupných knihoven dialogových oken.
    dlg_libs = bas.GlobalScope.DialogLibraries()
    lib_names = dlg_libs.getElementNames()
    bas.MsgBox("\n".join(lib_names))
  svc.InputBox(prompt: str, [title: str], [default: str], [xpostwips: int, ypostwips: int]): str
String
    txt = s.InputBox('Zadejte heslo:', "Drahý uživateli")
    s.MsgBox(txt, s.MB_ICONINFORMATION, "Potvrzení hesla")
  Podrobné informace naleznete na wiki stránce Input/Output to Screen with Python.
Zobrazí dialog obsahující zprávu a volitelně vrátí hodnotu.
Konstanty MB_xx popisují typ dialogu, počet a typ zobrazených tlačítek a typ ikony. Jejich hodnoty tvoří bitový vzorek, který určuje vzhled dialogu MsgBox.
bas.MsgBox(prompt: str, [buttons: int], [title: str])[: int]
Volitelné celé číslo popsané výše u vlastnosti IDxx.
Vrátí aktuální systémový datum a čas jako nativní objekt Pythonu datetime.datetime.
svc.Now(): datetime
    bas.MsgBox(bas.Now(), bas.MB_OK, "Now")
  Vrátí celočíselnou hodnotu typu složenou z hodnot modré, červené a zelené složky.
svc.RGB(red:int, green: int, blue: int): int
Integer
    YELLOW = bas.RGB(255,255,0)
  Prozkoumá objekty UNO nebo proměnné.
svc.Xray(obj: any)
obj: Proměnná nebo objekt UNO.
    bas.Xray(bas.StarDesktop)