LibreOffice 25.2 Help
De service ScriptForge.Basic bevat een aantal LibreOffice Basic methodes die vanuit Python uitgevoerd kunnen worden. De methodes in de service Basic gebruiken dezelfde syntaxis en doen hetzelfde als de ingebouwde Basic-functies.
Typerend voorbeeld:
   bas.MsgBox('Toon deze tekst in een berichtvenster vanuit een Python-script')
  De service ScriptForge.Basic is alleen voor gebruik in Python-scripts.
Voordat de service Basic gebruikt kan worden moet de methode CreateScriptService worden geïmporteerd uit de module scriptforge:
    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
  | Naam | AlleenLezen | Type | Beschrijving | 
|---|---|---|---|
| MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL | Ja | Integer | Waarden: 0, 1, 5, 4, 3 | 
| MB_ICONEXCLAMATION, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP | Ja | Integer | Waarden: 48, 64, 32, 16 | 
| MB_ABORTRETRYIGNORE, MB_DEFBUTTON1, MB_DEFBUTTON2, MB_DEFBUTTON3 | Ja | Integer | Waarden: 2, 128, 256, 512 | 
| IDABORT, IDCANCEL, IDIGNORE, IDNO, IDOK, IDRETRY, IDYES | Ja | Integer | Waarden: 3, 2, 5, 7, 1, 4, 6 | 
| StarDesktop | Ja | UNO | Retourneert het StarDesktop-object dat de toepassing LibreOffice vertegenwoordigt. | 
| ThisComponent | Ja | UNO | Als de huidige component verwijst naar een LibreOffice-document, retourneert deze methode het UNO-object dat het document vertegenwoordigt. Deze eigenschap retourneert Geen wanneer de huidige component niet overeenkomt met een document. | 
| ThisDatabaseDocument | Ja | UNO | Als het script wordt uitgevoerd vanuit een Base-document of een van de subcomponenten ervan, retourneert deze methode de hoofdcomponent van de Base-instantie. Anders retourneert deze eigenschap Geen. | 
Converteert een numerieke expressie of een tekenreeks naar een intern datetime.datetime Python-object.
Met deze methode kan de interne Basic-functie CDate worden gebruikt in Python-scripts.
svc.CDate(expression: any): obj
expression: een numerieke expressie of een tekenreeks die staat voor een datum.
    d = bas.CDate(1000.25)
    bas.MsgBox(str(d)) # 1902-09-26 06:00:00
    bas.MsgBox(d.year) # 1902
  Converteert een UNO date/time veld naar een intern datetime.datetime Python-object.
svc.CDateFromUnoDateTime(unodate: uno): obj
unodate: Een UNO datum/tijd object van een van de volgende types: com.sun.star.util.DateTime, com.sun.star.util.Date of com.sun.star.util.Time
In dit voorbeeld wordt een com.sun.star.util.DateTime object aangemaakt en daarna geconverteerd naar een datetime.datetime Python object.
    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
  Converteert een representatie van een datum naar een com.sun.star.util.DateTime object.
svc.CDateToUnoDateTime(date: obj): uno
date: Een Python datum/tijd object van een van de volgende types: datetime.datetime, datetime.date, datetime.time, float (time.time) of 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))
  Retourneert een bestandsnaam voor het als argument meegegeven bestand: url.
svc.ConvertFromUrl(url: str): str
url: Een bestand dat met de URL wordt aangegeven.
Een systeempad bestandsnaam.
    filename = bas.ConvertFromUrl( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt")
    bas.MsgBox(filename)
  Retourneert een bestand: URL voor het gegeven systeempad.
svc.ConvertToUrl(systempath: str): str
systempath: Een systeembestandsnaam als een tekenreeks.
A file: URL als een tekenreeks.
    url = bas.ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt')
    bas.MsgBox(url)
  Maakt een instantie van een UNO-service aan met de ProcessServiceManager.
svc.CreateUnoService(servicename: str): uno
servicename: Een volledige servicenaam zoals com.sun.star.ui.dialogs.FilePicker of com.sun.star.sheet.FunctionAccess.
    dsk = bas.CreateUnoService('com.sun.star.frame.Desktop')
  Retourneert een exemplaar van een UNO-structuur van het opgegeven type.
svc.CreateUnoStruct(unostructure: str): uno
unostructure: Een volledig gekwalificeerde structuurnaam zoals com.sun.star.beans.Property of com.sun.star.util.DateTime.
    date_struct = CreateUnoStruct('com.sun.star.util.DateTime')
  Voegt een datum of tijdsperiode een aantal keren toe aan een gegeven datum/tijd en retourneert de resulterende datum.
svc.DateAdd(interval: str, number: num, date: datetime): datetime
interval: Een tekst uit de onderstaande tabel die aangeeft wat het datum/tijd interval is.
number: Een numerieke expressie die aangeeft hoe vaak de waarde van het interval wordt opgeteld (positieve waarde) of afgetrokken (negatieve waarde).
date: Een datetime.datetime waarde die het beginpunt aangeeft, de waarde van het interval wordt number keer aan deze datetime.datetime waarde toegevoegd.
Een datetime.datetime waarde.
    dt = datetime.datetime(2004, 1, 31)
    dt = bas.DateAdd("m", 1, dt)
    print(dt)
  Retourneert het aantal dagen of het aantal tijdsintervallen tussen twee opgegeven datums/tijden.
svc.DateDiff(interval: str, date1: datetime, date2: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: Een tekenreeks expressie die het datuminterval aangeeft, zoals hierboven bij de methode DateAdd is beschreven.
date1, date2: De twee datetime.datetime waarden die vergeleken gaan worden.
Een getal.
    date1 = datetime.datetime(2005,1, 1)
    date2 = datetime.datetime(2005,12,31)
    diffDays = bas.DateDiff('d', date1, date2)
    print(diffDays)
  De functie DatePart retourneert een aangegeven deel van een datum.
svc.DatePart(interval: str, date: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: Een tekst die het datuminterval aangeeft, dit zoals hierboven bij de methode DateAdd is beschreven.
date: De datum waaruit het resultaat wordt berekend.
firstdayofweek, firstweekofyear: optionele parameters die de eerste dag van de week resp. jaar aangeven. dit zoals hierboven bij de methode DateDiff is beschreven.
Het gevraagde deel uit de gegeven datum/tijd.
    print(bas.DatePart("ww", datetime.datetime(2005,12,31)
    print(bas.DatePart('q', datetime.datetime(1999,12,30)
  Bepaalt een datumwaarde uit een tekenreeks die een datum weergeeft.
svc.DateValue(date: str): datetime
De berekende datum.
    dt = bas.DateValue("23-02-2011")
    print(dt)
  Converteert een getal naar een tekenreeks en past het aan volgens de gespecificeerde opmaak.
svc.Format(expression: any, format = ''): str
    txt = bas.Format(6328.2, '##.##0.00')
    print(txt)
  Retourneert de standaardcontext van de processervicefactory, indien aanwezig, anders retourneert een null-referentie.
GetDefaultContext is een alternatief voor de methode getComponentContext die via de globale variabele XSCRIPTCONTEXT of van de module uno.py beschikbaar is.
svc.GetDefaultContext(): uno
De standaard component context wordt gebruikt als de services via XMultiServiceFactory worden aangemaakt. Lees het hoofdstuk Professional UNO in de Developer's Guide op api.libreoffice.org voor meer informatie.
    ctx = bas.GetDefaultContext()
  Retourneert een numerieke waarde die de grafische gebruikersinterface aangeeft. Deze functie is alleen bedoeld voor achterwaartse compatibiliteit met eerdere versies.
Refereer aan de methode system van de Python-module platform om het besturingssysteem te bepalen.
svc.GetGuiType(): int
    n = bas.GetGuiType()
  Retourneert het besturingssysteemafhankelijke mapscheidingsteken dat wordt gebruikt om bestandspaden op te geven.
Gebruik os.pathsep van de Python-module os om het pad scheidingsteken te bepalen.
svc.GetPathSeparator(): str
    sep = bas.GetPathSeparator()
  Retourneert het aantal systeemticks dat door het besturingssysteem wordt geleverd. U kunt deze functie gebruiken om bepaalde processen te optimaliseren. Gebruik deze methode om de tijd in milliseconden te schatten:
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))
  Retourneert het UNO-object dat alle gedeelde Basic bibliotheken en modules bevat.
De methode is in Python de equivalent van GlobalScope.BasicLibraries in Basic.
svc.GlobalScope.BasicLibraries(): uno
com.sun.star.script.XLibraryContainer
In het volgende voorbeeld wordt de Gimmicks Basic-bibliotheek geladen als deze nog niet is geladen.
    libs = bas.GlobalScope.BasicLibraries()
    if not libs.isLibraryLoaded("Gimmicks"):
        libs.loadLibrary("Gimmicks")
  Retourneert het UNO-object dat alle gedeelde dialoogbibliotheken bevat.
Deze methode is in Python de equivalent van GlobalScope.DialogLibraries in Basic.
svc.GlobalScope.DialogLibraries(): uno
com.sun.star.comp.sfx2.DialogLibraryContainer
Het volgende voorbeeld toont een berichtvenster met de namen van alle beschikbare dialoogbibliotheken.
    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('Vul a.u.b. een korte zin in:', "Beste gebruiker")
    s.MsgBox(txt, s.MB_ICONINFORMATION, "Bevestiging van de korte zin")
  Een uitgebreide beschrijving staat op de wiki: Input/Output to Screen with Python.
Toont een dialoogvenster met een bericht en retourneert een optionele waarde.
MB_xx-constanten helpen bij het specificeren van het dialoogtype, het aantal en het type knoppen dat moet worden weergegeven, plus het pictogramtype. Door hun respectieve waarden toe te voegen, vormen ze bitpatronen, die het uiterlijk van het dialoogvenster MsgBox bepalen.
bas.MsgBox(prompt: str, [buttons: int], [title: str])[: int]
Een optioneel geheel getal zoals beschreven in bovenstaande IDxx-eigenschappen.
Retourneert de huidige systeemdatum en -tijd als een datetime.datetime native Python-object.
svc.Now(): datetime
    bas.MsgBox(bas.Now(), bas.MB_OK, "Now")
  Retourneert een gehele kleurwaarde die bestaat uit rode, groene en blauwe componenten.
svc.RGB(red:int, green: int, blue: int): int
Integer
    YELLOW = bas.RGB(255,255,0)
  Uno-objecten of variabelen onderzoeken.
svc.Xray(obj: any)
obj: Een variabele of UNO-object.
    bas.Xray(bas.StarDesktop)