ScriptForge.Session-tjeneste

Tjenesten Økt samler ulike generelle metoder for:

TjenestepÄkallelse

FÞr du bruker Session-tjenesten, mÄ ScriptForge-biblioteket lastes eller importeres:

note

‱ Grunnleggende makroer krever Ă„ laste ScriptForge-biblioteket ved hjelp av fĂžlgende setning:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

‱ Python-skript krever import fra scriptforge-modulen:
fra scriptforge import CreateScriptService


I Basic

    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim session As Variant
    session = CreateScriptService("Session")
  
I Python

    from scriptforge import CreateScriptService
    session = CreateScriptService("Session")
  

Konstanter

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
ExecuteCalcFunction
ExecutePythonScript
GetPDFExportOptions
HasUnoMethod

HasUnoProperty
OpenURLInBrowser
RunApplication
SendMail
SetPDFExportOptions

UnoMethods
UnoProperties
UnoObjectType
WebService


tip

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.


ExecuteBasicScript

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.

Syntaks:

session.ExecuteBasicScript(scope: str, script: str, args: any[0..*]): any

Parametre:

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.

args: Argumentene som skal sendes til det kalte skriptet.

Eksempel:

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.

I Basic

    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
  
I Python

    session = CreateScriptService("Session")
    bas = CreateScriptService("Basic")
    b_script = 'Standard.Module1.DummyFunction'
    result = session.ExecuteBasicScript('application', b_script, 1, 10)
    bas.MsgBox(result) # 55
  

ExecuteCalcFunction

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.

Syntaks:

session.ExecuteCalcFunction(calcfunction: str, args: any[0..*]): any

Parametre:

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.

Eksempel:

I Basic

    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.
  
I Python

    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)
  

ExecutePythonScript

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.

LibreOffice Application Programming Interface (API) Scripting Framework, stÞtter kjÞring av ulike sprÄk script mellom Python og Basic, eller andre stÞttede programmeringssprÄk for den saks skyld. Argumenter kan sendes frem og tilbake over anrop, forutsatt at de representerer primitive datatyper som begge sprÄk gjenkjenner, og forutsatt at Scripting Framework konverterer dem pÄ riktig mÄte.

Syntaks:

session.ExecutePythonScript(scope: str, script: str, args: any[0..*]): any

Parametre:

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.

args: Argumentene som skal sendes til det anropte skriptet.

Eksempel:

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
  
tip

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.

I Basic

    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)
  
I Python

    session = CreateScriptService("Session")
    script = "my_macros.py$odd_integers"
    result = session.ExecutePythonScript(session.SCRIPTISPERSONAL, script, 1, 9)
    bas.MsgBox(repr(result))
  

GetPDFExportOptions

Returnerer gjeldende PDF-eksportinnstillinger som er definert i PDF-alternativer-dialogboksen, som kan nÄs ved Ä velge Fil - Eksporter som - Eksporter som PDF.

Eksportalternativer satt med PDF-alternativer-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.

tip

Les PDF Export wiki-siden for Ă„ lĂŠre mer om alle tilgjengelige alternativer.


Syntaks:

session.GetPDFExportOptions(): obj

Eksempel:

I Basic

    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
    ' ...
  
note

Denne metoden er bare tilgjengelig for Basic -skript.


HasUnoMethod

Returnerer True hvis et UNO-objekt inneholder den gitte metoden. Returnerer False nÄr metoden ikke finnes eller nÄr et argument er ugyldig.

Syntaks:

session.HasUnoMethod(unoobject: uno, methodname: str): bool

Parametre:

unoobject: Objektet som skal inspiseres.

metodenavn: metoden som en streng som skiller mellom store og smÄ bokstaver

Eksempel:

I Basic

    Dim a As Variant
    a = CreateUnoService("com.sun.star.sheet.FunctionAccess")
    MsgBox session.HasUnoMethod(a, "callFunction") ' True
  
I Python

    bas = CreateScriptService("Basic")
    a = bas.createUnoService("com.sun.star.sheet.FunctionAccess")
    result = session.HasUnoMethod(a, "callFunction")
    bas.MsgBox(result) # True
  

HasUnoProperty

Returnerer True hvis et UNO-objekt har den gitte egenskapen. Returnerer False nÄr egenskapen ikke finnes eller nÄr et argument er ugyldig.

Syntaks:

session.HasUnoProperty(unoobject: uno, propertyname: str): bool

Parametre:

unoobject: Objektet som skal inspiseres.

egenskapsnavn: egenskapen som en streng som skiller mellom store og smÄ bokstaver

Eksempel:

I Basic

    Dim svc As Variant
    svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
    MsgBox session.HasUnoProperty(svc, "Wildcards")
  
I Python

    bas = CreateScriptService("Basic")
    a = bas.createUnoService("com.sun.star.sheet.FunctionAccess")
    result = session.HasUnoProperty(a, "Wildcards")
    bas.MsgBox(result) # True
  

OpenURLInBrowser

Åpne en Uniform Resource Locator (URL) i standardnettleseren.

Syntaks:

session.OpenURLInBrowser(url: str)

Parametre:

url: URL-en som skal Äpnes.

Eksempel:


    ' Basic
    session.OpenURLInBrowser("help.libreoffice.org/")
  

    # Python
    session.OpenURLInBrowser("help.libreoffice.org/")
  

RunApplication

UtfÞrer en vilkÄrlig systemkommando og returnerer Sann hvis den ble lansert.

Syntaks:

session.RunApplication(command: str, parameters: str): bool

Parametre:

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. Kommandoen mÄ uttrykkes i gjeldende SF_FileSystem.FileName 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.

Eksempel:

I Basic

    session.RunApplication("Notepad.exe")
    session.RunApplication("C:\myFolder\myDocument.odt")
    session.RunApplication("kate", "/home/user/install.txt") ' GNU/Linux
  
I Python

    session.RunApplication("Notepad.exe")
    session.RunApplication(r"C:\myFolder\myDocument.odt")
    session.RunApplication("kate", "/home/user/install.txt") # GNU/Linux
  

SendMail

Send en melding - med valgfrie vedlegg - til mottakere fra brukerens e-postklient. Meldingen kan redigeres av brukeren fĂžr sending eller, alternativt, sendes umiddelbart.

Syntaks:

session.SendMail(recipient: str, cc: str = '', bcc: str = '', subject: str = '', body: str = '', filenames: str = '', editmessage: bool = True)

Parametre:

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.

Eksempel:

I Basic

    session.SendMail("someone@example.com" _
        , Cc := "b@other.fr, c@other.be" _
        , FileNames := "C:\myFile1.txt, C:\myFile2.txt")
  
I Python

    session.SendMail("someone@example.com",
                     cc="john@other.fr, mary@other.be"
                     filenames=r"C:\myFile1.txt, C:\myFile2.txt")
  

SetPDFExportOptions

Endrer PDF-eksportinnstillingene som er definert i PDF-alternativer-dialogen, som kan nÄs ved Ä velge Fil - Eksporter som - Eksporter som PDF.

Å kalle denne metoden endrer de faktiske verdiene som er angitt i PDF-alternativer-dialogen, som brukes av ExportAsPDF-metoden fra Dokument-tjenesten.

Denne metoden returnerer True nÄr den er vellykket.

tip

Les PDF Eksport wiki-siden for Ă„ lĂŠre mer om alle tilgjengelige alternativer.


Syntaks:

session.SetPDFExportOptions(pdfoptions: obj): bool

Parametre:

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.

Eksempel:

I Basic

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)
  
note

Denne metoden er bare tilgjengelig for Basic -skript.


UnoMethods

Returnerer en liste over metodene som kan kalles fra et UNO-objekt. Listen er en nullbasert rekke av strenger og kan vĂŠre tom.

Syntaks:

session.UnoMethods(unoobject: uno): str[0..*]

Parametre:

unoobject: Objektet som skal inspiseres.

Eksempel:

I Basic

    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
  
I Python

    bas = CreateScriptService("Basic")
    a = bas.createUnoService("com.sun.star.sheet.FunctionAccess")
    methods = session.UnoMethods(a)
    msg = "\n".join(methods)
    bas.MsgBox(msg)
  

UnoProperties

Returnerer en liste over egenskapene til et UNO-objekt. Listen er en nullbasert rekke av strenger som kan vĂŠre tom.

Syntaks:

session.UnoProperties(unoobject: uno): str[0..*]

Parametre:

unoobject: Objektet som skal inspiseres.

Eksempel:

I Basic

    Dim svc As Variant
    svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
    MsgBox SF_Array.Contains(session.UnoProperties(svc), "Wildcards") ' True
  
I Python

    bas = CreateScriptService("Basic")
    svc = bas.createUnoService("com.sun.star.sheet.FunctionAccess")
    properties = session.UnoProperties(a)
    b = "Wildcards" in properties
    bas.MsgBox(str(b)) # True
  

UnoObjectType

Identifiser typen av et UNO-objekt som en streng.

Syntaks:

session.UnoObjectType(unoobject: uno): str

Parametre:

unoobject: Objektet som skal identifiseres.

Eksempel:

I Basic

    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"
  
I Python

    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"
  

WebService

FĂ„ noe nettinnhold fra en URI.

Syntaks:

session.WebService(uri: str): str

Parametre:

uri: URI-adressen til nettjenesten.

Eksempel:

I Basic

    session.WebService("wiki.documentfoundation.org/api.php?" _
        & "hidebots=1&days=7&limit=50&action=feedrecentchanges&feedformat=rss")
  
I Python

    session.WebService(("wiki.documentfoundation.org/api.php?" 
                       "hidebots=1&days=7&limit=50&action=feedrecentchanges&feedformat=rss"))
  
warning

Alle ScriptForge Grunnleggende rutiner eller identifikatorer som er prefikset med et understrekingstegn "_" er reservert for intern bruk. De er ikke ment Ă„ brukes i grunnleggende makroer eller Python-skript.