Edukiak
Indizea 🔎︎

# ScriptForge.Session zerbitzua

Session zerbitzuak xede orokorreko zenbait metodo biltzen ditu, honakoei lotutakoak:

- instalazioko edo exekuzioko ingurunea

- UNO barne-behaketa

- kanpoko scriptak edo programak deitzea

## Zerbitzuari deitzea

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

Zerbitzu hau erabat onartuta dago bai Basic bai Python lengoaietan. Adibide guztiak Basic programazio-lengoaian eman dira, baina erraz bihurtu daitezke Python lengoaiara.

## Konstanteak

Behean, deituko den Basic edo Python script bat duen liburutegia izendatzea errazteko erabilgarri dauden konstanteen zerrenda.
Erabili horiek session.CONSTANT gisa.

CONSTANT | Balioa | Non dago liburutegia? | Aplikagarria
SCRIPTISEMBEDDED | "document" | dokumentuan | Basic + Python
SCRIPTISAPPLICATION | "application" | partekatutako edozein liburutegitan | Basic
SCRIPTISPERSONAL | "user" | Nire makroetan | Python
SCRIPTISPERSOXT | "user:uno_packages" | uneko erabiltzailearentzako instalatutako hedapen batean | Python
SCRIPTISSHARED | "share" | LibreOffice makroetan | Python
SCRIPTISSHAROXT | "share:uno_packages" | erabiltzaile guztientzat instalatutako hedapen batean | Python
SCRIPTISOXT | "uno_packages" | instalazio-parametro ezezagunak dituen hedapen batean | Python

Session zerbitzuaren metodoen zerrenda
ExecuteBasicScript ExecuteCalcFunction ExecutePythonScript HasUnoMethod | HasUnoProperty OpenURLInBrowser RunApplication SendMail | UnoMethods UnoProperties UnoObjectType WebService

Session zerbitzuaren metodoek honako portaera dute:
Argumentuak balio bidez pasatzen dira. Deitutako funtzioak gauzatutako eguneratzeak ez zaizkio deia egin duen scriptari itzultzen.
Balio bakarra edo balioen matrize bat itzultzen zaio deia egin duen scriptari.

## ExecuteBasicScript

Exekutatu Basic scripta izena eta kokalekua emanda, eta atzitu emaitza, halakorik badago.

Scripta aurkitzen ez bada edo ezer ez bada itzultzen, itzulitako balioa Empty izango da.

### Sintaxia:

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

### Parametroak:

Scope: "document" edo "application" edo session.CONSTANTS aplikagarrietako bat.

Script: "library.module.method" maiuskulak/minuskulak bereizten dituen kate gisa.
Liburutegia memorian kargatuko da, beharrezkoa bada.
Ez du klase-modulua izan behar.
Metodoa Sub bat edo Function bat izan daiteke.

arg0, ...: Deitutako scriptari emango zaizkion argumentuak.

### Adibidea:

          session.ExecuteBasicScript(, "XrayTool._Main.Xray", CreateUnoService("com.sun.star.util.TextSearch"))
          ' Xray funtzioak ez du baliorik itzultzen

## ExecuteCalcFunction

Exekutatu Calc funtzio bat bere ingelesezko izena erabilita eta emandako argumentuetan oinarrituta.
Argumentuak matrizeak badira, funtzioa matrize-formula modura exekutatuko da.

### Sintaxia:

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

### Parametroak:

CalcFunction: Exekutatuko den funtzioaren ingelesezko izena.

arg0, ...: Deitutako Calc funtzioari emango zaizkion argumentuak. Argumentu bakoitzak katea, zenbakizko balioa edo mota horiek konbinatzen dituzten matrizeen matrizea izan behar du.

### Adibidea:

          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)
          ' Errore bat sortzen du.

## ExecutePythonScript

Exekutatu Python scripta, bere kokalekua eta izena emanda, eta atzitu emaitzak, halakorik badago. Emaitza balio bakarra edo balioen matrizea izan daiteke.

Scripta aurkitzen ez bada edo ezer ez bada itzultzen, itzulitako balioa Empty izango da.

LibreOffice Application Programming Interface (API) scriptgintzako lan-markoak lengoaien arteko scripten exekuzioa onartzen du Python eta Basic lengoaien kasuan, baina baita onartutako beste edozein programazio-lengoaiaren kasuan ere. Argumentuak atzera eta aurrera pasatu daitezke deietan, bi lengoaiek ezagutzen dituzten jatorrizko datu motak ordezkatzen badituzte, eta scriptgintzako lan-markoak haiek modu egokian bihurtuko dituztela onartuta.

### Sintaxia:

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

### Parametroak:

Scope: session.CONSTANTS aplikagarrietako bat. Lehenetsia = session.SCRIPTISSHARED.

Script: "liburutegia/modulua.py$metodoa" edo "modulua.py$metodoa" edo "nireHedapena.oxt|nireScripta|modulua.py$metodoa" maiuskulak/minuskulak bereizten dituen kate gisa..

- liburutegia: Python modulua dagoen karpetaren bide-izena.

- nireScripta: Python modulua dagoen karpeta.

- modulua.py: Python modulua.

- metodoa: Python funtzioa.

arg0 ...: Deitutako scriptari emango zaizkion argumentuak.

### Adibidea:

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

## HasUnoMethod

True itzultzen du UNO objektu batek metodoa badauka. False itzultzen du metodoa aurkitzen ez bada edo argumentu bat baliogabea bada.

### Sintaxia:

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

### Parametroak:

UnoObject: Ikuskatuko den objektua.

MethodName: Metodoaren izena, maiuskulak/minuskulak bereizten dituen kate gisa

### Adibidea:

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

## HasUnoProperty

True itzultzen du UNO objektu batek propietatea badauka. False itzultzen du propietatea aurkitzen ez bada edo argumentu bat baliogabea bada.

### Sintaxia:

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

### Parametroak:

UnoObject: Ikuskatuko den objektua.

PropertyName: Propietatearen izena, maiuskulak/minuskulak bereizten dituen kate gisa

### Adibidea:

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

## OpenURLInBrowser

Ireki Uniform Resource Locator (URL) bat nabigatzaile lehenetsian.

### Sintaxia:

          session.OpenURLInBrowser(URL As String)

### Parametroak:

URL: Irekiko den URLa.

### Adibidea:

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

## RunApplication

Sistemako komando bat ausaz exekutatzen du eta True itzultzen du ongi abiarazi bada.

### Sintaxia:

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

### Parametroak:

Command: Exekutatuko den komandoa. Fitxategi exekutagarri bat izan daiteke edo aplikazio batekin erregistratuta dagoen dokumentu bat, sistemak jakin dezan zein aplikazio abiarazi behar den dokumentu horretarako. Komandoa uneko SF_FileSystem.FileNaming notazioan adierazi behar da.

Parameters: Zuriunez bereizitako parametroen zerrenda ba, kate bakar gisa. Metodoak ez ditu emandako parametroak balioztatzen, zehaztutako komandoari haiek pasatu besterik ez du egiten.

### Adibidea:

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

## SendMail

Bidali mezua -aukeran eranskinak gehituta- erabiltzailearen posta elektronikoko bezeroko hartzaileei. Erabiltzaileak mezua editatu dezake hura bidali baino lehen edo, bestela, berehala bidali dezake.

### Sintaxia:

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

### Parametroak:

Recipient: Posta elektronikoko helbide bat ("Nori" hartzailea).

Cc: Posta elektronikoko helbideen zerrenda bat, komaz bananduta ("carbon copy" hartzaileak).

Bcc: Posta elektronikoko helbideen zerrenda bat, komaz bananduta ("blind carbon copy" hartzaileak).

Subject: Mezuaren gaia.

Body: Mezuaren edukia, formaturik gabeko testu gisa.

FileNames: Fitxategi-izenen zerrenda bat, komaz bananduta. Fitxategi-izen bakoitzak SF_FileSystem.FileNaming notazioa jarraitu behar du.

EditMessage: True (lehenetsia) bada, mezua editatu egingo da bidalia izan baino lehen.

### Adibidea:

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

## UnoMethods

UNO objektu batetik deitu daitezkeen metodoen zerrenda itzultzen du. Zerrenda zeron oinarritutako matrize bat da, katez osatutakoa, eta hutsik egon daiteke.

### Sintaxia:

          session.UnoMethods(UnoObject As Object) As Variant

### Parametroak:

UnoObject: Ikuskatuko den objektua.

### Adibidea:

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

## UnoProperties

UNO objektu baten propietateen zerrenda itzultzen du. Zerrenda zeron oinarritutako matrize bat da, katez osatutakoa, eta hutsik egon daiteke.

### Sintaxia:

          session.UnoProperties(UnoObject As Object) As Variant

### Parametroak:

UnoObject: Ikuskatuko den objektua.

### Adibidea:

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

## UnoObjectType

Identifikatu UNO objektu baten mota kate gisa.

### Sintaxia:

          session.UnoObjectType(UnoObject As Object) As String

### Parametroak:

UnoObject: Identifikatuko den objektua.

### Adibidea:

          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

Eskuratu web-edukia URI batetik.

### Sintaxia:

          session.WebService(URI As String) As String

### Parametroak:

URI: Web-zerbitzuaren URI testua.

### Adibidea:

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

Aurrizki gisa azpimarra bat ("_") duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez daude Basic makroetan erabiltzeko pentsatuta.

Erlazionatutako gaiak

Array funtzioa

Calc funtzioei deitzea

Python scriptak Basic-etik deitzea

ScriptForge.FileSystem zerbitzua