LibreOfficeDev 25.8 Hjelp
Tjenesten Økt samler ulike generelle metoder for:
installasjons- eller utførelsesmiljøet
UNO introspeksjon
påkalling av eksterne skript eller programmer
Før du bruker Session-tjenesten, må ScriptForge-biblioteket lastes eller importeres:
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim session As Variant
    session = CreateScriptService("Session")
  
    from scriptforge import CreateScriptService
    session = CreateScriptService("Session")
  Nedenfor er en liste over konstanter som er tilgjengelige for å lette betegnelsen på biblioteket som inneholder et Basic- eller Python-skript å påkalle. Bruk dem som session.CONSTANT.
| CONSTANT | Verdi | Hvor finner man biblioteket? | Anvendelig | 
|---|---|---|---|
| SCRIPTISEMBEDDED | "document" | i dokumentet | Basic + Python | 
| SCRIPTISAPPLICATION | "application" | i et hvilket som helst delt bibliotek | Basic | 
| SCRIPTISPERSONAL | "user" | i Mine makroer | Python | 
| SCRIPTISPERSOXT | "user:uno_packages" | i en utvidelse installert for gjeldende bruker | Python | 
| SCRIPTISSHARED | "share" | i Applikasjonsmakroer | Python | 
| SCRIPTISSHAROXT | "share:uno_packages" | i en utvidelse installert for alle brukere | Python | 
| SCRIPTISOXT | "uno_packages" | i en utvidelse, men installasjonsparametrene er ukjente | Python | 
| Liste over metoder i sesjonstjenesten | ||
|---|---|---|
| 
             ExecuteBasicScript | 
             HasUnoProperty | |
Utfør...-metoder i Økt-tjenesten oppfører seg som følger: 
Argumenter sendes av verdi. Endringer gjort av den kalte funksjonen til argumentene oppdaterer ikke verdiene deres i det anropende skriptet. 
En enkelt verdi eller en rekke verdier returneres til det anropende skriptet.
Kjør BASIC-skriptet gitt navn og plassering, og hent eventuelt resultatet.
Hvis skriptet ikke returnerer noe, som er tilfellet med prosedyrer definert med Sub, er den returnerte verdien Tom.
session.ExecuteBasicScript(scope: str, script: str, args: any[0..*]): any
omfang: Streng som spesifiserer hvor skriptet er lagret. Det kan enten være "dokument" (konstant session.SCRIPTISEMBEDDED) eller "applikasjon" (konstant session.SCRIPTISAPPLICATION).
script: Streng som spesifiserer skriptet som skal kalles i formatet "library.module.method" som en streng som skiller mellom store og små bokstaver.
Biblioteket lastes inn i minnet om nødvendig.
Modulen må ikke være en klassemodul.
Metoden kan være en Sub eller en Funksjon.
args: Argumentene som skal sendes til det kalte skriptet.
Tenk på følgende grunnleggende funksjon kalt DummyFunction som er lagret i "Mine makroer" i "Standard"-biblioteket inne i en modul kalt "Module1".
Funksjonen tar ganske enkelt inn to heltallsverdier v1 og v2 og returnerer summen av alle verdier som starter i v1 og slutter på 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
  Eksemplene nedenfor viser hvordan du kaller DummyFunction fra 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 en Calc-funksjon ved å bruke dets engelske navn og basert på de gitte argumentene. 
Hvis argumentene er matriser, utføres funksjonen som enmatriseformel.
session.ExecuteCalcFunction(calcfunction: str, args: any[0..*]): any
calcfunction: Navnet på Calc-funksjonen som skal anropes, på engelsk.
args: Argumentene som skal sendes til den anropte Calc-funksjonen. Hvert argument må enten være en streng, en numerisk verdi eller en rekke matriser som kombinerer disse typene.
    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 en 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)
  Kjør Python-skriptet gitt plassering og navn, hent resultatet hvis noen. Resultatet kan være en enkelt verdi eller en rekke verdier.
Hvis skriptet ikke blir funnet, eller hvis det ikke returnerer noe, er den returnerte verdien Tom.
session.ExecutePythonScript(scope: str, script: str, args: any[0..*]): any
omfang: En av de aktuelle konstantene som er oppført over. Standardverdien er session.SCRIPTISSHARED.
script: Enten "library/module.py$method" eller "module.py$method" eller "myExtension.oxt|myScript|module.py$method" som en streng som skiller mellom store og små bokstaver.
bibliotek: Mappebanen til Python-modulen.
myScript: Mappen som inneholder Python-modulen.
module.py: Python-modulen.
metode: Python-funksjonen.
args: Argumentene som skal sendes til det anropte skriptet.
Tenk på Python-funksjonen odd_integers definert nedenfor som lager en liste med odde heltallsverdier mellom v1 og v2. Anta at denne funksjonen er lagret i en fil med navnet my_macros.py i mappen med brukerskript.
    def odd_integers(v1, v2):
        odd_list = [v for v in range(v1, v2 + 1) if v % 2 != 0]
        return odd_list
  Les hjelpesiden Organisasjon og plassering av Python-skript for å lære mer om hvor Python-skript kan lagres.
Følgende eksempler viser hvordan du kaller funksjonen odd_integers fra 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 gjeldende PDF-eksportinnstillinger som er definert i -dialogboksen, som kan nås ved å velge .
Eksportalternativer satt med -dialogboksen beholdes for fremtidig bruk. Derfor returnerer GetPDFExportOptions innstillingene som er definert. Bruk i tillegg SetPDFExportOptions for å endre gjeldende PDF-eksportalternativer.
Denne metoden returnerer et Ordbok-objekt der hver nøkkel representerer eksportalternativer og de tilsvarende verdiene er gjeldende PDF-eksportinnstillinger.
Les PDF Export wiki-siden for å lære mer om alle tilgjengelige alternativer.
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 True hvis et UNO-objekt inneholder den gitte metoden. Returnerer False når metoden ikke finnes eller når et argument er ugyldig.
session.HasUnoMethod(unoobject: uno, methodname: str): bool
unoobject: Objektet som skal inspiseres.
metodenavn: metoden som en streng som skiller mellom store og små bokstaver
    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 True hvis et UNO-objekt har den gitte egenskapen. Returnerer False når egenskapen ikke finnes eller når et argument er ugyldig.
session.HasUnoProperty(unoobject: uno, propertyname: str): bool
unoobject: Objektet som skal inspiseres.
egenskapsnavn: egenskapen som en streng som skiller mellom store og små bokstaver
    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
  Åpne en Uniform Resource Locator (URL) i standardnettleseren.
session.OpenURLInBrowser(url: str)
url: URL-en som skal åpnes.
    ' Basic
    session.OpenURLInBrowser("help.libreoffice.org/")
  
    # Python
    session.OpenURLInBrowser("help.libreoffice.org/")
  Utfører en vilkårlig systemkommando og returnerer Sann hvis den ble lansert.
session.RunApplication(command: str, parameters: str): bool
kommando: Kommandoen som skal utføres. Dette kan være en kjørbar fil eller et dokument som er registrert med en applikasjon slik at systemet vet hvilken applikasjon som skal startes for det dokumentet. Denne metoden starter likeledes .bat- eller shell-skript. Kommandoen må uttrykkes i gjeldende SF_FileSystem.FileNaming-notasjon.
parametere: En liste over mellomromseparerte parametere som en enkelt streng. Metoden validerer ikke de gitte parameterne, men sender dem bare til den angitte 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 en melding - med valgfrie vedlegg - til mottakere fra brukerens e-postklient. Meldingen kan redigeres av brukeren før sending eller, alternativt, sendes umiddelbart.
session.SendMail(recipient: str, cc: str = '', bcc: str = '', subject: str = '', body: str = '', filenames: str = '', editmessage: bool = True)
mottaker: En e-postadresse («Til»-mottakeren).
cc: En kommadelt liste over e-postadresser («karbonkopi»-mottakerne).
bcc: En kommadelt liste over e-postadresser ("blinde kopi"-mottakere).
emne: overskriften på meldingen.
body: Innholdet i meldingen som en uformatert tekst.
filnavn: en kommadelt liste over filnavn. Hvert filnavn må respektere SF_FileSystem.FileNaming-notasjonen.
editmessage: Når True (standard), blir meldingen redigert før den sendes.
    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")
  Endrer PDF-eksportinnstillingene som er definert i -dialogen, som kan nås ved å velge .
Å kalle denne metoden endrer de faktiske verdiene som er angitt i -dialogen, som brukes av ExportAsPDF-metoden fra Dokument-tjenesten.
Denne metoden returnerer True når den er vellykket.
Les PDF Eksport wiki-siden for å lære mer om alle tilgjengelige alternativer.
session.SetPDFExportOptions(pdfoptions: obj): bool
pdfoptions: Ordbok objekt som definerer PDF-eksportinnstillingene som skal endres. Hvert nøkkelverdi-par representerer et eksportalternativ og verdien som vil bli satt i dialogboksen.
Følgende eksempel endrer maksimal bildeoppløsning til 150 dpi og eksporterer gjeldende dokument som en 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 en liste over metodene som kan kalles fra et UNO-objekt. Listen er en nullbasert rekke av strenger og kan være tom.
session.UnoMethods(unoobject: uno): str[0..*]
unoobject: Objektet som skal inspiseres.
    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 en liste over egenskapene til et UNO-objekt. Listen er en nullbasert rekke av strenger som kan være tom.
session.UnoProperties(unoobject: uno): str[0..*]
unoobject: Objektet som skal inspiseres.
    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
  Identifiser typen av et UNO-objekt som en streng.
session.UnoObjectType(unoobject: uno): str
unoobject: Objektet som skal identifiseres.
    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"
  Få noe nettinnhold fra en URI.
session.WebService(uri: str): str
uri: URI-adressen til nettjenesten.
    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"))