Tenesta ScriptForge.Session

Tenesta Session samlar ulike generelle metodar:

Oppkall av tenester

Before using the Session service the ScriptForge library needs to be loaded or imported:

note

• Basic macros require to load ScriptForge library using the following statement:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python scripts require an import from scriptforge module:
from 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")
  

Konstantar

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 LibreOffice-makroar

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

HasUnoProperty
OpenURLInBrowser
RunApplication
SendMail
SetPDFExportOptions

UnoMethods
UnoProperties
UnoObjectType
WebService


tip

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.


ExecuteBasicScript

Køyrer det grunnleggjande 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.

Syntaks:

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

Parametrar:

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.

args: Argumenta som skal sendast til det oppkalla skriptet.

Eksempel:

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.

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

Syntaks:

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

Parametrar:

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.

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 ein 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

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.

Skriptnettverket LibreOffice Application Programming Interface (API) har støtte for å køyra blanda skript mellom Python og Basic, eller andre programmeringsspråk for den saks skuld. Såleis kan argument sendast mellom språka dersom dei er såkalla primitive datatypar som begge språka forstår og at dei vert konverterte korrekt.

Syntaks:

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

Parametrar:

scope: Ein av dei tilgjengelege konstantane lista i ovanfor. 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.

args: Argumenta som skal sendast til det oppkalla skriptet.

Eksempel:

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
  
tip

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.

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 dei gjeldande innstillingane for PDF-eksport definerte i dialogvindauget PDF Innstillingar, som du har tilgang til frå Fil → Eksporter som → Eksporter som PDF.

Eksportinnstillingane som er sette i dialogvindauget PDF-innstillingar 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.

tip

Du finn meir om dei tilgjengelege innstillingane i PDF Export wiki page.


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 tilgjengeleg berre for Basic-skript.


HasUnoMethod

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.

Syntaks:

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

Parametrar:

unoobject: Objektet som skal kontrollerast.

methodname: metoden som ein streng som skil mellom store og små bokstavar

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 Sann viss eit UNO-objekt har den gjevne metoden. Returnerer Usann når metoden ikkje vart funnen eller når eit argument er ugyldig.

Syntaks:

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

Parametrar:

unoobject: Objektet som skal kontrollerast.

propertyname: metoden som ein streng som skil mellom store og små bokstavar

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

Opnar ein Uniform Resource Locator (URL) i standard nettlesar.

Syntaks:

session.OpenURLInBrowser(url: str)

Parametrar:

url: Adressa som skal opnast.

Eksempel:


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

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

RunApplication

Utfører ein arbitrær system-kommando og returnerer Sann viss det lukkast å starta han.

Syntaks:

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

Parametrar:

command: The command to execute. This may be an executable file or a document which is registered with an application so that the system knows what application to launch for that document. The command must be expressed in the current SF_FileSystem.FileNaming notation.

parameters: A list of space separated parameters as a single string. The method does not validate the given parameters, but only passes them to the specified command.

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 a message - with optional attachments - to recipients from the user's mail client. The message may be edited by the user before sending or, alternatively, be sent immediately.

Syntaks:

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

Parametrar:

recipient: An email address (the "To" recipient).

cc: A comma-separated list of email addresses (the "carbon copy" recipients).

bcc: A comma-separated list of email addresses (the "blind carbon copy" recipients).

subject: the header of the message.

body: The contents of the message as an unformatted text.

filenames: a comma-separated list of file names. Each file name must respect the SF_FileSystem.FileNaming notation.

editmessage: When True (default), the message is edited before being sent.

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

Modifies the PDF export settings defined in the PDF Options dialog, which can be accessed by choosing File - Export as - Export as PDF.

Calling this method changes the actual values set in the PDF Options dialog, which are used by the ExportAsPDF method from the Document service.

This method returns True when successful.

tip

Read the PDF Export wiki page to learn more about all available options.


Syntaks:

session.SetPDFExportOptions(pdfoptions: obj): bool

Parametrar:

pdfoptions: Dictionary object that defines the PDF export settings to be changed. Each key-value pair represents an export option and the value that will be set in the dialog.

Eksempel:

I Basic

The following example changes the maximum image resolution to 150 dpi and exports the current document as a PDF file.


    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 tilgjengeleg berre for Basic-skript.


UnoMethods

Returns a list of the methods callable from an UNO object. The list is a zero-based array of strings and may be empty.

Syntaks:

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

Parametrar:

unoobject: The object to inspect.

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

Returns a list of the properties of an UNO object. The list is a zero-based array of strings and may be empty.

Syntaks:

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

Parametrar:

unoobject: The object to inspect.

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

Identify the type of a UNO object as a string.

Syntaks:

session.UnoObjectType(unoobject: uno): str

Parametrar:

unoobject: The object to identify.

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

Get some web content from a URI.

Syntaks:

session.WebService(uri: str): str

Parametrar:

uri: URI address of the web service.

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 Basic-rutinane og -identifikatorane som vert innleidde med understrek «_» er reserverte for internt bruk. Dei er ikkje meint brukte i Basic-makroar.