LibreOffice 25.2 Hjelp
Tenesta Session samlar ulike generelle metodar:
installasjons- eller utførings-miljøet
UNO-introspeksjon
oppkall av eksterne skript eller program
Før du brukar tenesta Session, må biblioteket ScriptForge vera lasta inn eller importert:
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim session As Variant
    session = CreateScriptService("Session")
  
    from scriptforge import CreateScriptService
    session = CreateScriptService("Session")
  Nedanfor er ei liste over tilgjengelege konstantar for å finna ut kva for eit bibliotek som inneheld eit Basic- eller Python-skript som skal kallast opp. Bruk dette som session.CONSTANT.
| CONSTANT | Verdi | Kvar finn eg biblioteket? | Tilgjengeleg | 
|---|---|---|---|
| SCRIPTISEMBEDDED | "document" | i dokumentet | Basic + Python | 
| SCRIPTISAPPLICATION | "application" | i eit delt bibliotek | Basic | 
| SCRIPTISPERSONAL | "user" | i Mine makroar | Python | 
| SCRIPTISPERSOXT | "user:uno_packages" | i ei utviding installert for den gjeldande brukaren | Python | 
| SCRIPTISSHARED | "share" | i programmakroar | Python | 
| SCRIPTISSHAROXT | "share:uno_packages" | i ei utviding installert for alle brukarane | Python | 
| SCRIPTISOXT | "uno_packages" | i ei utviding sjølv om installasjonsparametera er ukjende | Python | 
| Liste over metodar i tenesta Session | ||
|---|---|---|
| 
             ExecuteBasicScript | 
             HasUnoProperty | |
Metodane Execute... i tenesta Session fungerer slik:
Argumenta vert sende vidare som ein verdi. Endringar av argumenta gjort av den oppkallande funksjonen vil ikkje oppdatera verdiane i det skriptet som vert kalla opp.
Det vert returnert ein enkelt verdi eller ei matrise av verdiar til det oppkallande skriptet.
Køyrer BASIC-skriptet med namn og plassering, og hentar eventuelt resultatet.
Viss skriptet ikkje returnerer noko, noko som skjer med prosedyrar som er definerte med Sub, er returverdien Empty.
session.ExecuteBasicScript(scope: str, script: str, args: any[0..*]): any
scope: Streng som seier kor skriptet er lagra. Det kan vera anten "document" (konstant session.SCRIPTISEMBEDDED) eller "application" (konstant session.SCRIPTISAPPLICATION).
script: Streng som spesifiserer skriptet som skal kallast opp i formatet "library.module.method" som ein streng som skil mellom store og små bokstavar.
Biblioteket vert lasta inn i minnet om nødvendig.
Modulen må ikkje vera ein klasse-modul.
Metoden kan vera ein Sub eller ein Function
args: Argumenta som skal sendast til det oppkalla skriptet.
Sjå på Basic-funksjonen med namnet DummyFunction, som er lagra i "Mine makroar" i "Standard"-biblioteket inne i ein modul kalla "Module1".
Funksjonen tek heilt enkelt to heiltals-verdiarv1 og v2 og returnerer summen av alle verdiane som byrjar med v1 og sluttar med v2.
    Function DummyFunction(v1 as Integer, v2 as Integer) As Long
        Dim result as Long, i as Integer
        For i = v1 To v2
            result = result + i
        Next i
        DummyFunction = result
    End Function
  Eksempla nedanfor viser korleis DummyFunction vert kalla opp inne frå Basic- og Python-skript.
    Dim session : session = CreateScriptService("Session")
    Dim b_script as String, result as Long
    b_script = "Standard.Module1.DummyFunction"
    result = session.ExecuteBasicScript("application", b_script, 1, 10)
    MsgBox result ' 55
  
    session = CreateScriptService("Session")
    bas = CreateScriptService("Basic")
    b_script = 'Standard.Module1.DummyFunction'
    result = session.ExecuteBasicScript('application', b_script, 1, 10)
    bas.MsgBox(result) # 55
  Utfør ein Calc-funksjon ved å bruka det engelske namnet på han og basert på dei gjevne argumenta. 
Viss argumenta er matriser, vert funksjonen utført som ein matriseformel.
session.ExecuteCalcFunction(calcfunction: str, args: any[0..*]): any
calcfunction: Namnet på den Calc-funksjonen som skal kallast opp på engelsk.
args: Argumenta som skal overførast til den kalla Calc-funksjonen. Kvart argument må anten vera ein streng, ein numerisk verdi eller ei matrise av matriser som kombinerer desse typane.
    session.ExecuteCalcFunction("AVERAGE", 1, 5, 3, 7) ' 4
    session.ExecuteCalcFunction("ABS", Array(Array(-1, 2, 3), Array(4, -5, 6), Array(7, 8, -9)))(2)(2) ' 9
    session.ExecuteCalcFunction("LN", -3)
    ' Genererer ein feil.
  
    session.ExecuteCalcFunction("AVERAGE", 1, 5, 3, 7) # 4
    session.ExecuteCalcFunction("ABS", ((-1, 2, 3), (4, -5, 6), (7, 8, -9)))[2][2] # 9
    session.ExecuteCalcFunction("LN", -3)
  Køyrer Python-skriptet frå plasseringa og namnet og hentar eventuelt resultatet. Resultatet kan vera éin enkelt verdi eller ei matrise med verdiar.
Viss skriptet ikkje vert funne eller ikkje returnerer noko, vert det returnert verdien Empty.
session.ExecutePythonScript(scope: str, script: str, args: any[0..*]): any
scope: Ein av dei tilgjengelege konstantane som er oppført over. Standardverdien er session.SCRIPTISSHARED.
script: Anten "library/module.py$method", "module.py$method" eller "myExtension.oxt|myScript|module.py$method" som ein streng som skil mellom store og små bokstavar.
library: Mappestien til Python-modulen.
myScript: Mappa som inneheld Python-modulen.
module.py: Python-modulen.
metode: Python-funksjonen.
args: Argumenta som skal sendast til det oppkalla skriptet.
Sjå på Python-funksjonen odd_integers definert nedanfor, som lagar ei liste over odde heiltalsverdiar mellom v1 og v2. Gå ut frå at denne funksjonen er lagra i ei fil med namnet my_macros.py i brukarskriptmappa.
    def odd_integers(v1, v2):
        odd_list = [v for v in range(v1, v2 + 1) if v % 2 != 0]
        return odd_list
  Les hjelpsida Organisering og plassering av Python-skript for å læra meir om kvar Python-skripta kan lagrast.
Dei neste eksempla viser korleis funksjonen odd_integers vert kalla opp av Basic- og Python-skript.
    Dim script as String, session as Object
    script = "my_macros.py$odd_integers"
    session = CreateScriptService("Session")
    Dim result as Variant
    result = session.ExecutePythonScript(session.SCRIPTISPERSONAL, script, 1, 9)
    MsgBox SF_String.Represent(result)
  
    session = CreateScriptService("Session")
    script = "my_macros.py$odd_integers"
    result = session.ExecutePythonScript(session.SCRIPTISPERSONAL, script, 1, 9)
    bas.MsgBox(repr(result))
  Returnerer dei gjeldande innstillingane for PDF-eksport definerte i dialogvindauget , som du har tilgang til frå .
Eksportinnstillingane som er sette i dialogvindauget vert oppretthalde for framtidig bruk. Difor returnerer GetPDFExportOptions dei gjeldande innstillingane. Bruk også SetPDFExportOptions for å endra dei gjeldande PDF-eksportinnstillingane.
Denne metoden returnerer eit Dictionary-objekt der kvar nøkkel representerer innstillingar der dei samsvarande verdiane er dei gjeldande eksportinnstillingane.
Du finn meir om dei tilgjengelege innstillingane i PDF Export wiki page.
session.GetPDFExportOptions(): obj
    Dim expSettings As Object, msg As String, key As String, optLabels As Variant
    expSettings = session.GetPDFExportOptions()
    optLabels = expSettings.Keys
    For Each key in optLabels
        msg = msg + key & ": " & expSettings.Item(key) & Chr(10)
    Next key
    MsgBox msg
    ' Zoom: 100
    ' Changes: 4
    ' Quality: 90
    ' ...
  Returnerer Sann viss eit UNO-objekt inneheld den gjevne metoden. Returnerer Usann når metoden ikkje vart funnen eller når eit argument er ugyldig.
session.HasUnoMethod(unoobject: uno, methodname: str): bool
unoobject: Objektet som skal kontrollerast.
methodname: metoden som ein streng som skil mellom store og små bokstavar
    Dim a As Variant
    a = CreateUnoService("com.sun.star.sheet.FunctionAccess")
    MsgBox session.HasUnoMethod(a, "callFunction") ' True
  
    bas = CreateScriptService("Basic")
    a = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
    result = session.HasUnoMethod(a, "callFunction")
    bas.MsgBox(result) # True
  Returnerer Sann viss eit UNO-objekt har den gjevne metoden. Returnerer Usann når metoden ikkje vart funnen eller når eit argument er ugyldig.
session.HasUnoProperty(unoobject: uno, propertyname: str): bool
unoobject: Objektet som skal kontrollerast.
propertyname: metoden som ein streng som skil mellom store og små bokstavar
    Dim svc As Variant
    svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
    MsgBox session.HasUnoProperty(svc, "Wildcards")
  
    bas = CreateScriptService("Basic")
    a = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
    result = session.HasUnoProperty(a, "Wildcards")
    bas.MsgBox(result) # True
  Opnar ein Uniform Resource Locator (URL) i standard nettlesar.
session.OpenURLInBrowser(url: str)
url: Adressa som skal opnast.
    ' Basic
    session.OpenURLInBrowser("help.libreoffice.org/")
  
    # Python
    session.OpenURLInBrowser("help.libreoffice.org/")
  Utfører ein arbitrær system-kommando og returnerer Sann viss det lukkast å starta han.
session.RunApplication(command: str, parameters: str): bool
command: Kommandoen som skal utførast. Dette kan vera ei køyrbar fil eller eit dokument som er registrert med eit program slik at systemet veit kva program som skal startast for det dokumentet. Denne metoden startar også .bat- eller shell-skript. Kommandoen må vera i gjeldande SF_FileSystem.FileName-notasjon.
parameters: Ei liste over parametrar, skilde med mellomrom, som ein enkelt streng. Metoden validerer ikkje dei gjevne parametra, men sender dei berre vidare til den gjevne kommandoen.
    session.RunApplication("Notepad.exe")
    session.RunApplication("C:\\myFolder\\myDocument.odt")
    session.RunApplication("kate", "/home/user/install.txt") ' GNU/Linux
  
    session.RunApplication("Notepad.exe")
    session.RunApplication(r"C:\\myFolder\\myDocument.odt")
    session.RunApplication("kate", "/home/user/install.txt") # GNU/Linux
  Send ei melding – med valfrie vedlegg – til mottakarane frå brukaren sin e-postklient. Meldinga kan redigerast av brukaren før ho vert sendt, eller sendast straks.
session.SendMail(recipient: str, cc: str = '', bcc: str = '', subject: str = '', body: str = '', filenames: str = '', editmessage: bool = True)
recipient: Ei e-postadresse (mottakaren «Til»).
cc: Ei komma-separert liste over e-postadresser (mottakarane av «cc» (blåpapirkopi)).
cc: Ei komma-separert liste over e-postadresser (mottakarane av «bcc» (blind blåpapirkopi)).
subject: overskrifta i meldinga (Emne).
body: Innhaldet i meldinga som ein uformatert tekst.
filenames: ei komma-separert liste over filnamn. Kvart filnamn må fylla krava i SF_FileSystem.FileNaming-notasjonen.
editmessage: Når Sann (standard), er meldinga redigert før ho vart sendt.
    session.SendMail("someone@example.com" _
        , Cc := "b@other.fr, c@other.be" _
        , FileNames := "C:\myFile1.txt, C:\myFile2.txt")
  
    session.SendMail("someone@example.com",
                     cc="john@other.fr, mary@other.be"
                     filenames=r"C:\myFile1.txt, C:\myFile2.txt")
  Endrar innstillingane for PDF-eksport definerte i dialogvindauget , som du har tilgang til frå .
Oppkall av denne metoden endrar dei aktuelle verdiane som er sette i dialogvindauget , som vert brukt av metoden ExportAsPDF frå tenesta Document.
Denne metoden returnerer Sann viss han lukkast.
Du finn meir om dei tilgjengelege innstillingane i PDF Export wiki page.
session.SetPDFExportOptions(pdfoptions: obj): bool
pdfoptions: Objektet Dictionary definerer PDF-eksportindstillingane som skal endrast. Kvart nøkkelverdipar representerer ei eksportinnstilling og den verdien som skal setjast i dialogvindauget.
Eksempelet nedanfor endrar den maksimale biletoppløysninga til 150 dpi og eksporterer det gjeldande dokumentet som ei PDF-fil.
    Dim newSettings As Object, oDoc As Object
    Set oDoc = CreateScriptService("Document")
    Set newSettings = CreateScriptService("Dictionary")
    newSettings.Add("ReduceImageResolution", True)
    newSettings.Add("MaxImageResolution", 150)
    session.SetPDFExportOptions(newSettings)
    oDoc.ExportAsPDF("C:\Documents\myFile.pdf", Overwrite := True)
  Returnerer ei liste over metodar som kan kallast opp frå eit UNO-objekt. Lista er ei null-basert matrise av strengar, og kan vera tom.
session.UnoMethods(unoobject: uno): str[0..*]
unoobject: Objektet som skal kontrollerast.
    Dim svc : svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
    Dim methods : methods = session.UnoMethods(svc)
    Dim msg as String
    For Each m in methods
        msg = msg & m & Chr(13)
    Next m
    MsgBox msg
  
    bas = CreateScriptService("Basic")
    a = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
    methods = session.UnoMethods(a)
    msg = "\n".join(methods)
    bas.MsgBox(msg)
  Returnerer ei liste over eigenskapar til eit UNO-objekt. Lista er ei null-basert matrise av strengar, og kan vera tom.
session.UnoProperties(unoobject: uno): str[0..*]
unoobject: Objektet som skal kontrollerast.
    Dim svc As Variant
    svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
    MsgBox SF_Array.Contains(session.UnoProperties(svc), "Wildcards") ' True
  
    bas = CreateScriptService("Basic")
    svc = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
    properties = session.UnoProperties(a)
    b = "Wildcards" in properties
    bas.MsgBox(str(b)) # True
  Identifiserer typen til eit UNO-objekt som ein streng.
session.UnoObjectType(unoobject: uno): str
unoobject: Objektet som skal identifiserast.
    Dim svc As Variant, txt As String
    svc = CreateUnoService("com.sun.star.system.SystemShellExecute")
    txt = session.UnoObjectType(svc) ' "com.sun.star.comp.system.SystemShellExecute"
    svc = CreateUnoStruct("com.sun.star.beans.Property")
    txt = session.UnoObjectType(svc) ' "com.sun.star.beans.Property"
  
    bas = CreateScriptService("Basic")
    svc = bas.CreateUnoService("com.sun.star.system.SystemShellExecute")
    txt = session.UnoObjectType(svc) # "com.sun.star.comp.system.SystemShellExecute"
    svc = bas.CreateUnoService("com.sun.star.beans.Property")
    txt = session.UnoObjectType(svc) # "com.sun.star.beans.Property"
  Hent noko nett-innhald frå ei URI.
session.WebService(uri: str): str
uri: URI-adressa til nettenesta.
    session.WebService("wiki.documentfoundation.org/api.php?" _
        & "hidebots=1&days=7&limit=50&action=feedrecentchanges&feedformat=rss")
  
    session.WebService(("wiki.documentfoundation.org/api.php?" 
                       "hidebots=1&days=7&limit=50&action=feedrecentchanges&feedformat=rss"))