Vsebina
Kazalo 🔎︎

# Storitev ScriptForge.Session

Storitev Session obsega različne splošne metode glede:

- okolja nameščanja ali izvajanja,

- vpogleda v delovanje UNO in

- priklica zunanjih skriptov ali programov.

## Priklic storitve

         GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
         Dim session As Variant
         session = CreateScriptService("Session")

Ta storitev je v celoti podprta v jezikih Basic in Python. Vsi primeri so zapisani v programskem jeziku Basic in jih lahko enostavno pretvorite v Python.

## Konstante

Sledi seznam konstant, ki so na voljo za poenostavitev označevanja knjižnice, ki vsebuje skript v jeziku Basic ali Python, ki ga želite priklicati.
Uporabite jih kot session.CONSTANT.

CONSTANT | Vrednost | Kje najdete knjižnico? | Uporabno
SCRIPTISEMBEDDED | "document" | v dokumentu | Basic + Python
SCRIPTISAPPLICATION | "application" | v poljubni knjižnici v skupni rabi, | Basic
SCRIPTISPERSONAL | "user" | v Mojih makrih, | Python
SCRIPTISPERSOXT | "user:uno_packages" | v razširitvi, nameščeni za trenutnega uporabnika, | Python
SCRIPTISSHARED | "share" | med makri LibreOffice, | Python
SCRIPTISSHAROXT | "share:uno_packages" | v razširitvi, nameščeni za vse uporabnike, | Python
SCRIPTISOXT | "uno_packages" | v razširitvi, katere namestitveni parametri niso znani. | Python

Seznam metod v storitvi seje
ExecuteBasicScript ExecuteCalcFunction ExecutePythonScript HasUnoMethod | HasUnoProperty OpenURLInBrowser RunApplication SendMail | UnoMethods UnoProperties UnoObjectType WebService

Storitev Session se vede na sledeč način:
argumenti so podani z vrednostjo. Posodobitve, ki jih izvede klicana funkcija, niso vrnjene skriptu, ki kliče funkcijo.
Klicnemu skiptu je vrnjena enojna vrednost ali polje vrednosti.

## ExecuteBasicScript

Izvede skript Basic s podanim mestom in imenom ter prejme rezultat, če obstaja.

Če skripta ni mogoče najti ali ne vrne ničesar, je vrnjena vrednost Empty.

### Skladnja:

          session.ExecuteBasicScript([Scope As String], Script As String[, arg0 As Variant, ...]) As Variant

### Parametri:

Scope: "document" (dokument) ali "application" (program) ali ena od možnih konstant session.CONSTANTS.

Script: "library.module.method" kot niz, ki razlikuje med velikimi in malimi črkami.
Knjižnica se po potrebi naloži v pomnilnik.
Module ne sme biti razredni modul.
Metoda je lahko Sub (podprogram) ali Function (funkcija).

arg0, ...: podani argumenti za klicani skript.

### Primer:

          session.ExecuteBasicScript(, "XrayTool._Main.Xray", CreateUnoService("com.sun.star.util.TextSearch"))
          ' Xray ne vrne vrednosti

## ExecuteCalcFunction

Izvede funkcijo Calc z njenim angleškim imenom in s podanimi argumenti.
Če so argumenti polja, se funkcija izvede kot formula za polja.

### Skladnja:

          session.ExecuteCalcFunction(CalcFunction As String, arg0, ...) As Variant

### Parametri:

CalcFunction: angleško ime funkcije, ki naj bo izvedena.

arg0, ...: argumenti za klicano funkcijo Calc. Vsak argument mora biti niz, številska vrednost ali polje kombinacije le-teh.

### Primer:

          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)
          ' Povzroči napako.

## ExecutePythonScript

Izvede skript Python s podanim mestom in imenom ter prejme rezultat, če obstaja. Rezultat je lahko posamezna vrednost ali polje vrednosti.

Če skripta ni mogoče najti ali ne vrne ničesar, je vrnjena vrednost Empty.

Ogrodje skriptov vmesnika programiranja LibreOffice API (angl. Application Programming Interface) podpira izvajanje skriptov med Pythonom in Basicom ter drugimi podprtimi programskimi jeziki. Argumente lahko podajate skozi klice, če gre za primitivne vrste podatkov, ki jih prepoznata oba jezika, in če jih ogrodje API ustrezno pretvori.

### Skladnja:

          session.ExecutePythonScript([Scope] As String, Script As String[, arg0 As Variant, ...]) As Variant

### Parametri:

Scope: ena od možnih konstant session.CONSTANTS. Privzeto = session.SCRIPTISSHARED.

Script: "library/module.py$method", "module.py$method" ali "myExtension.oxt|myScript|module.py$method" kot niz, razlikuje med velikimi in malimi črkami.

- library: pot mape za modul Python.

- mojSkript: mapa, ki vsebuje modul Python.

- modul.py: modul Python.

- method: funkcija Python.

arg0, ...: podani argumenti za klicani skript.

### Primer:

          session.ExecutePythonScript(session.SCRIPTISSHARED, "Capitalise.py$getNewString", "Abc") ' "abc"

## HasUnoMethod

Vrne True, če UNO-predmet vsebuje dano metodo. Vrne False, če metode ni mogoče najti ali ko argument ni veljaven.

### Skladnja:

          session.HasUnoMethod(UnoObject As Object, MethodName As String) As Boolean

### Parametri:

UnoObject: predmet za proučevanje.

MethodName: ime metode, razlikuje med velikimi in malimi črkami.

### Primer:

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

## HasUnoProperty

Vrne True, če ima UNO-predmet dano lastnost. Vrne False, če lastnosti ni mogoče najte ali če argument ni veljaven.

### Skladnja:

          session.HasUnoProperty(UnoObject As Object, PropertyName As String) As Boolean

### Parametri:

UnoObject: predmet za proučevanje.

PropertyName: ime lastnosti, razlikuje med velikimi in malimi črkami.

### Primer:

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

## OpenURLInBrowser

Odpre naslov URL (angl. Uniform Resource Locator) v privzetem brskalniku.

### Skladnja:

          session.OpenURLInBrowser(URL As String)

### Parametri:

URL: URL, ki ga želite odpreti.

### Primer:

          session.OpenURLInBrowser("https://docs.python.org/3/library/webbrowser.html")

## RunApplication

Izvede arbitrarni sistemski ukaz in vrne True , če se je uspešno zagnal.

### Skladnja:

          session.RunApplication(Command As String, Parameters As String) As Boolean

### Parametri:

Command: ukaz, ki ga želite izvesti. To je lahko izvršna datoteka ali dokument, registriran s programom, tako da sistem ve, kateri program naj zažene za tovrstni dokument. Ukaz mora biti izražen v trenutni notaciji SF_FileSystem.FileNaming.

Parameters: seznam parametrov, ločenih s presledki, podanih kot en sam niz. Metoda ne preveri veljavnosti podanih parametrov, temveč ji le posreduje navedenemu ukazu.

### Primer:

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

## SendMail

Pošlje sporočilo – z neobveznimi priponkami – prejemnikom iz e-poštnega odjemalca uporabnika. Sporočilo lahko uporabnik pred pošiljanjem uredi ali pa je poslano neposredno.

### Skladnja:

          session.SendMail(Recipient As String, [Cc As String], [Bcc As String], [Subject As String], [Body As String], [FileNames As String], [EditMessage As Boolean])

### Parametri:

Recipient: e-poštni naslov prejemnika (v polju »Za«).

Cc: z vejico ločen seznam e-poštnih naslovov prejemnikov (v polju »Kp«, kopija).

Bcc: z vejico ločen seznam e-poštnih naslovov prejemnikov (v polju »Skp«, skrita kopija).

Subject: glava sporočila oz. zadeva.

Body: vsebina sporočila kot neoblikovano besedilo.

FileNames: z vejicami ločen seznam imen datotek. Vsako ime datoteke mora slediti notacijiSF_FileSystem.FileNaming.

EditMessage: če je True (ptivzeta vrednost), lahko sporočilo pred pošiljanjem urejate.

### Primer:

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

## UnoMethods

Vrne seznam metod, ki jih je mogoče klicati iz predmeta UNO. Seznam je ničelno polje nizov in je lahko prazno.

### Skladnja:

          session.UnoMethods(UnoObject As Object) As Variant

### Parametri:

UnoObject: predmet za proučevanje.

### Primer:

          Dim a As Variant
          a = CreateUnoService("com.sun.star.sheet.FunctionAccess")
          MsgBox SF_Array.Contains(session.UnoMethods(a), "callFunction")

## UnoProperties

Vrne seznam lastnosti predmeta UNO. Seznam je ničelno polje nizov in je lahko prazno.

### Skladnja:

          session.UnoProperties(UnoObject As Object) As Variant

### Parametri:

UnoObject: predmet za proučevanje.

### Primer:

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

## UnoObjectType

Identificira vrsto predmeta UNO kot niz.

### Skladnja:

          session.UnoObjectType(UnoObject As Object) As String

### Parametri:

UnoObject: predmet, ki ga je potrebno identificirati.

### Primer:

          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"

## WebService

Pridobi spletno vsebino z naslova URI.

### Skladnja:

          session.WebService(URI As String) As String

### Parametri:

URI: besedilo URI spletne storitve.

### Primer:

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

Vsi podprogrami ali identifikatorji ScriptForge Basic s predpono podčrtaja (»_«) so rezervirani za interno uporabo. Uporabi v makrih Basic niso namenjeni.

Podobne teme

Funkcija Array

Klicanje funkcij programa Calc

Klicanje skriptov Python iz Basica

Storitev ScriptForge.FileSystem service