Pomoč LibreOfficeDev 7.6
Storitev ScriptForge.Basic ponuja zbirko metod LibreOfficeDev Basic, ki jih je moč izvajati v kontekstu Pythona. Metode storitve Basic imajo isto skladnjo in vedenje kot vgrajene funkcije Basica.
Značilen primer:
   bas.MsgBox('Prikaži to besedilo v sporočilu iz skripta Python.')
  Storitev SFDocuments.Basic je omejena na skripte Python.
Pred uporabo storitve Basic je potrebno uvoziti metodo CreateScriptService() iz modula scriptforge:
    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
  | Ime | Samo za branje | Vrsta | Opis | 
|---|---|---|---|
| MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL | Da | Integer | Vrednosti: 0, 1, 5, 4, 3 | 
| MB_ICONEXCLAMATION, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP | Da | Integer | Vrednosti: 48, 64, 32, 16 | 
| MB_ABORTRETRYIGNORE, MB_DEFBUTTON1, MB_DEFBUTTON2, MB_DEFBUTTON3 | Da | Integer | Vrednosti: 2, 128, 256, 512 | 
| IDABORT, IDCANCEL, IDIGNORE, IDNO, IDOK, IDRETRY, IDYES | Da | Integer | Vrednosti: 3, 2, 5, 7, 1, 4, 6 | 
| StarDesktop | Da | Predmet | Vrne Predmet StarDesktop, ki predstavlja program LibreOfficeDev. | 
| ThisComponent | Da | Predmet | Če se trenutna komponenta nanaša na dokument LibreOfficeDev, ta metoda vrne predmet UNO, ki predstavlja dokument. Ta lastnost vrne None, če trenutna komponenta ne ustreza dokumentu. | 
| ThisDatabaseDocument | Da | Predmet | Če se skript izvaja iz dokumenta programa Base ali ene od njegovih podkomponent, ta metoda vrne glavno komponento instance Base. Ta lastnost sicer vrne None. | 
Pretvori numerični izraz ali niz v domorodni predmet Pythona datetime.datetime.
Ta metoda razkrije vgrajeno funkcijo Basic CDate v skriptih Python.
svc.CDate(expression: any): obj
izraz: numeričen izraz ali niz, ki predstavlja datum.
    d = bas.CDate(1000.25)
    bas.MsgBox(str(d)) # 1902-09-26 06:00:00
    bas.MsgBox(d.year) # 1902
  Pretvori reprezentacijo datuma/časa UNO v domorodni predmet Pythona datetime.datetime.
svc.CDateFromUnoDateTime(unodate: uno): obj
unodate: predmet datuma/časa UNO ene od naslednjih vrst: com.sun.star.util.DateTime, com.sun.star.util.Date ali com.sun.star.util.Time.
Spodnji primer ustvari predmet com.sun.star.util.DateTime in ga pretvori v predmet Pythona 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
  Pretvori reprezentacijo datuma v predmet com.sun.star.util.DateTime.
svc.CDateToUnoDateTime(date: obj): uno
date: Pythonov predmet datuma/časa ene od naslednjih vrst: datetime.datetime, datetime.date, datetime.time, float (time.time) ali 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))
  Vrne sistemsko datotečno pot za dani URL file:.
svc.ConvertFromUrl(url: str): str
url: absolutni URL za file:.
Ime datoteke s sistemsko potjo.
    filename = bas.ConvertFromUrl( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt")
    bas.MsgBox(filename)
  Vrne URL datoteke file: za dano sistemsko pot.
svc.ConvertToUrl(systempath: str): str
systempath: sistemsko ime datoteke kot niz.
URL file: kot niz.
    url = bas.ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt')
    bas.MsgBox(url)
  Instanco storitve UNO tvori z upraviteljem procesnih storitev ProcessServiceManager.
svc.CreateUnoService(servicename: str): uno
servicename : povsem kvalificirano ime storitve, kot npr. com.sun.star.ui.dialogs.FilePicker ali com.sun.star.sheet.FunctionAccess.
    dsk = bas.CreateUnoService('com.sun.star.frame.Desktop')
  Vrne instanco strukture UNO navedene vrste.
svc.CreateUnoStruct(unostructure: str): uno
unostructure: povsem kvalificirano ime strukture, kot npr. com.sun.star.beans.Property ali com.sun.star.util.DateTime.
    date_struct = CreateUnoStruct('com.sun.star.util.DateTime')
  Prišteje razdobje (datum ali čas) navedenemu datumu/času tolikokrat, kolikokrat je zahtevano, in vrne končni rezultat.
svc.DateAdd(interval: str, number: num, date: datetime): datetime
interval: niz iz naslednje tabele, ki definira datumsko ali časovno razdobje.
number (števec): numerični izraz, ki pove, kolikokrat se interval interval prišteje (ko je pozitiven) ali odšteje (ko je negativen).
date (datum): dana datumsko-časovna vrednost (datetime.datetime); vrednost interval bo tej vrednosti dodana tolikokrat, kolikor znaša number.
Datumska/časovna vrednost datetime.datetime.
    dt = datetime.datetime(2004, 1, 31)
    dt = bas.DateAdd("m", 1, dt)
    print(dt)
  Vrne število datumskih ali časovnih intervalov med podanima datumskima/časovnima vrednostma.
svc.DateDiff(interval: str, date1: datetime, date2: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: niz, ki definira datumsko ali časovno razdobje, kot je opredeljeno v zgornji metodi DateAdd.
date1, date2: vrednosti datuma datetime.datetime, ki ju primerjate.
Število.
    date1 = datetime.datetime(2005,1, 1)
    date2 = datetime.datetime(2005,12,31)
    diffDays = bas.DateDiff('d', date1, date2)
    print(diffDays)
  Funkcija DatePart vrača zahtevani del datuma.
svc.DatePart(interval: str, date: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: niz, ki definira datumsko ali časovno razdobje, kot je opredeljeno v zgornji metodi DateAdd.
date (datum): datum/čas, iz katerega se izračuna rezultat.
firstdayofweek, firstweekofyear: neobvezna parametra, ki določata začetni dan tedna in začetni teden leta, kar je podrobneje pojasnjeno pri zgornji metodi DateDiff.
Izvlečeni del podanega datuma/časa.
    print(bas.DatePart("ww", datetime.datetime(2005,12,31)
    print(bas.DatePart('q', datetime.datetime(1999,12,30)
  Izračuna datumsko vrednost iz datumskega niza.
svc.DateValue(date: str): datetime
Izračunani datum.
    dt = bas.DateValue("23-02-2011")
    print(dt)
  Pretvori število v niz in ga potem oblikuje v skladu z obliko, ki jo navedete.
svc.Format(expression: any, format = ''): str
    txt = bas.Format(6328.2, '##.##0.00')
    print(txt)
  Vrne privzeti kontekst tovarne za procesne storitve (process service factory), če obstaja, v nasprotnem primeru vrne ničelni sklic (null).
GetDefaultContext je alternativa za metodo getComponentContext(), ki je na voljo pri globalni spremenljivki XSCRIPTCONTEXT ali v modulu uno.py.
svc.GetDefaultContext(): uno
Privzeti kontekst komponente se uporabi, kadar tvorite instance storitve prek XMultiServiceFactory. Podrobnosti si oglejte v poglavju Professional UNO v vodniku za razvijalce (Developer's Guide) na api.libreoffice.org (v angl.).
    ctx = bas.GetDefaultContext()
  Vrne numerično vrednost, ki določa grafični uporabnikov vmesnik. Ta funkcija je omogočena zgolj za združljivost s starejšimi različicami.
Glejte metodo system() iz modula Python platform za prepoznavanje operacijskega sistema.
svc.GetGuiType(): int
    n = bas.GetGuiType()
  Vrne ločilo map za določanje poti datotek, kot ga določa operacijski sistem.
uporabite os.pathsep iz modula Python os za identifikacijo ločila poti.
svc.GetPathSeparator(): str
    sep = bas.GetPathSeparator()
  Vrne število tikov, kot jih nudi operacijski sistem. Z njihovo pomočjo lahko optimizirate določene procese. Uporabite to metodo za oceno časa v milisekundah:
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))
  Vrne predmet UNO, ki vsebuje vse knjižnice in module Basic v skupni rabi.
Ta metoda je Pythonov ekvivalent za GlobalScope.BasicLibraries v skriptih Basic.
svc.GlobalScope.BasicLibraries(): uno
com.sun.star.script.XLibraryContainer
Naslednji primer naloži Gimmicks, knjižnico Basic, če še ni naložena.
    libs = bas.GlobalScope.BasicLibraries()
    if not libs.isLibraryLoaded("Gimmicks"):
        libs.loadLibrary("Gimmicks")
  Vrne predmet UNO, ki vsebuje vse knjižnice pogovornih oken v skupni rabi.
Ta metoda je Pythonov ekvivalent za GlobalScope.DialogLibraries v skriptih Basic.
svc.GlobalScope.DialogLibraries(): uno
com.sun.star.comp.sfx2.DialogLibraryContainer
Naslednji primer prikaže okno z imeni vseh knjižnic pogovornih oken, ki so na voljo.
    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 ('Prosimo, vnesite stavek:', "Dragi uporabnik")
    s.MsgBox(txt, s.MB_ICONINFORMATION, "Za potrditev stavka")
  Podrobnosti si preberite v članku Vhod/izhod na zaslonu s Pythonom na wikiju (v angl.).
Prikaže pogovorno okno, ki vsebuje sporočilo in vrne neobvezno vrednost.
Konstante MB_xx pomagajo določiti vrsto pogovornega okna, število in vrsto prikazanih gumbov ter vrsto ikone. Z dodajanjem njihovih ustreznih vrednosti tvorijo bitne vzorce, ki določajo videz pogovornega okna MsgBox.
bas.MsgBox(prompt: str, [buttons: int], [title: str])[: int]
Neobvezno celo število, kot je opisano v zgodnjih lastnostih IDxx.
Vrne trenutni sistemski datum in čas kot domorodni predmet Pythona datetime.datetime.
svc.Now(): datetime
    bas.MsgBox(bas.Now(), bas.MB_OK, "Now")
  Vrne celoštevilsko vrednost za barvo, sestavljeno iz rdeče, zelene in modre komponente.
svc.RGB(red:int, green: int, blue: int): int
Integer
    YELLOW = bas.RGB(255,255,0)
  Preveri predmete UNO ali spremenljivke.
svc.Xray(obj: any)
obj: spremenljivka ali predmet UNO.
    bas.Xray(bas.StarDesktop)