ScriptForge.Session serbisyo

Ang Sesyon ang serbisyo ay nagtitipon ng iba't ibang pangkalahatang layunin na pamamaraan tungkol sa:

Panawagan sa serbisyo

Bago gamitin ang Sesyon serbisyo ang ScriptForge kailangang i-load o i-import ang library:

note

• Ang mga pangunahing macro ay kailangang mag-load ScriptForge aklatan gamit ang sumusunod na pahayag:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Ang mga script ng Python ay nangangailangan ng pag-import mula sa scriptforge module:
mula sa scriptforge import CreateScriptService


Sa Basic

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

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

Mga Constant

Nasa ibaba ang isang listahan ng mga constant na magagamit upang mapagaan ang pagtatalaga ng library na naglalaman ng isang Basic o Python script na i-invoke. Gamitin ang mga ito bilang sesyon.NAGTAGA .

CONSTANT

Halaga

Saan mahahanap ang library?

Naaangkop

SCRIPTISEMBEDDED

"document"

sa dokumento

Basic + Python

SCRIPTISAPPLICATION

"application"

sa anumang nakabahaging aklatan

Basic

SCRIPTISPERSONAL

"user"

sa Aking Macros

Python

SCRIPTISPERSOXT

"user:uno_packages"

sa isang extension na naka-install para sa kasalukuyang user

Python

SCRIPTISSHARED

"share"

sa Mga Macro ng Application

Python

SCRIPTISSHAROXT

"share:uno_packages"

sa isang extension na naka-install para sa lahat ng user

Python

SCRIPTISOXT

"uno_packages"

sa isang extension ngunit hindi alam ang mga parameter ng pag-install

Python


Listahan ng Mga Paraan sa Serbisyo ng Session

ExecuteBasicScript
ExecuteCalcFunction
ExecutePythonScript
GetPDFExportOptions
HasUnoMethod

HasUnoProperty
OpenURLInBrowser
RunApplication
SendMail
SetPDFExportOptions

UnoMethods
UnoProperties
UnoObjectType
WebService


tip

Isagawa... mga pamamaraan sa Sesyon kumilos ang serbisyo tulad ng sumusunod:
Ang mga argumento ay ipinapasa sa pamamagitan ng halaga. Ang mga pagbabagong ginawa ng tinatawag na function sa mga argumento ay hindi nag-a-update ng kanilang mga halaga sa script ng pagtawag.
Ang isang solong halaga o isang hanay ng mga halaga ay ibinalik sa script ng pagtawag.


ExecuteBasicScript

Ipatupad ang BASIC script na ibinigay sa pangalan at lokasyon nito, at kunin ang resulta nito, kung mayroon man.

Kung ang script ay walang ibinalik, na kung saan ay ang kaso ng mga pamamaraan na tinukoy sa Sub , ang ibinalik na halaga ay Walang laman .

Syntax:

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

Mga Parameter:

saklaw : String na tumutukoy kung saan naka-imbak ang script. Maaari itong alinman sa "dokumento" (constant session.SCRIPTISEMBEDDED ) o "application" (constant session.SCRIPTISAPPLICATION ).

script : String na tumutukoy sa script na tatawagin sa format na "library.module.method" bilang isang case-sensitive na string.

args : Ang mga argumentong ipapasa sa tinatawag na script.

Halimbawa:

Isaalang-alang ang sumusunod na Pangunahing function na pinangalanan DummyFunction na nakaimbak sa "My Macros" sa "Standard" na library sa loob ng isang module na pinangalanang "Module1".

Ang function ay kumukuha lamang ng dalawang integer na halaga v1 at v2 at ibalik ang kabuuan ng lahat ng mga halaga simula sa v1 at nagtatapos sa 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
  

Ipinapakita ng mga halimbawa sa ibaba kung paano tumawag DummyFunction mula sa loob ng Basic at Python script.

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

Magsagawa ng Calc function gamit ang English na pangalan nito at batay sa mga ibinigay na argumento.
Kung ang mga argumento ay mga arrays, ang function ay ipapatupad bilang isang array formula .

Syntax:

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

Mga Parameter:

calcfunction : Ang pangalan ng Calc function na tatawagin, sa English.

args : Ang mga argumentong ipapasa sa tinatawag na Calc function. Ang bawat argument ay dapat na alinman sa isang string, isang numeric na halaga o isang hanay ng mga array na pinagsasama-sama ang mga uri na iyon.

Halimbawa:

Sa 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)
    ' Bumubuo ng error.
  
Sa 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

Ipatupad ang script ng Python na ibinigay sa lokasyon at pangalan nito, kunin ang resulta nito kung mayroon man. Ang resulta ay maaaring iisang value o array ng mga value.

Kung ang script ay hindi natagpuan, o kung wala itong ibinalik, ang ibinalik na halaga ay Walang laman .

Ang LibreOffice Application Programming Interface (API) Scripting Framework ay sumusuporta sa inter-language script execution sa pagitan ng Python at Basic, o iba pang sinusuportahang programming language para sa bagay na iyon. Ang mga argumento ay maaaring ipasa nang pabalik-balik sa mga tawag, sa kondisyon na kinakatawan ng mga ito ang mga primitive na uri ng data na kinikilala ng parehong wika, at ipagpalagay na ang Scripting Framework ay na-convert ang mga ito nang naaangkop.

Syntax:

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

Mga Parameter:

saklaw : Isa sa mga naaangkop na constant na nakalista sa itaas . Ang default na halaga ay session.SCRIPTISSHARED .

script : Alinman sa "library/module.py$method" o "module.py$method" o "myExtension.oxt|myScript|module.py$method" bilang isang case-sensitive na string.

args : Ang mga argumentong ipapasa sa tinatawag na script.

Halimbawa:

Isaalang-alang ang Python function odd_integers tinukoy sa ibaba na lumilikha ng isang listahan na may kakaibang mga halaga ng integer sa pagitan v1 at v2 . Ipagpalagay na ang function na ito ay naka-imbak sa isang file na pinangalanan my_macros.py sa iyong folder ng mga script ng gumagamit.


    def odd_integers(v1, v2):
        odd_list = [v for v in range(v1, v2 + 1) if v % 2 != 0]
        return odd_list
  
tip

Basahin ang pahina ng tulong Organisasyon at Lokasyon ng Python Scripts upang matuto nang higit pa tungkol sa kung saan maaaring iimbak ang mga script ng Python.


Ang mga sumusunod na halimbawa ay nagpapakita kung paano tawagan ang function odd_integers mula sa loob ng Basic at Python script.

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

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

GetPDFExportOptions

Ibinabalik ang kasalukuyang mga setting ng pag-export ng PDF na tinukoy sa Mga Pagpipilian sa PDF dialog, na maaaring ma-access sa pamamagitan ng pagpili File - I-export bilang - I-export bilang PDF .

Itinakda ang mga opsyon sa pag-export gamit ang Mga Pagpipilian sa PDF ang dialog ay pinananatili para magamit sa hinaharap. Kaya naman GetPDFExportOptions ibinabalik ang mga setting na kasalukuyang tinukoy. Bilang karagdagan, gamitin SetPDFExportOptions upang baguhin ang kasalukuyang mga opsyon sa pag-export ng PDF.

Ang pamamaraang ito ay nagbabalik ng a Diksyunaryo object kung saan ang bawat key ay kumakatawan sa mga opsyon sa pag-export at ang mga katumbas na halaga ay ang kasalukuyang mga setting ng pag-export ng PDF.

tip

Basahin ang Pahina ng wiki ng PDF Export para matuto pa tungkol sa lahat ng available na opsyon.


Syntax:

session.GetPDFExportOptions(): obj

Halimbawa:

Sa 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

Ang pamamaraang ito ay magagamit lamang para sa Basic mga script.


HasUnoMethod

Nagbabalik totoo kung ang isang UNO object ay naglalaman ng ibinigay na pamamaraan. Nagbabalik Mali kapag ang pamamaraan ay hindi natagpuan o kapag ang isang argumento ay hindi wasto.

Syntax:

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

Mga Parameter:

unoobject : Ang bagay na susuriin.

pangalan ng pamamaraan : ang paraan bilang isang case-sensitive na string

Halimbawa:

Sa Basic

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

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

HasUnoProperty

Nagbabalik totoo kung ang isang bagay ng UNO ay may ibinigay na pag-aari. Nagbabalik Mali kapag ang ari-arian ay hindi natagpuan o kapag ang isang argumento ay hindi wasto.

Syntax:

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

Mga Parameter:

unoobject : Ang bagay na susuriin.

propertyname : ang property bilang isang case-sensitive na string

Halimbawa:

Sa Basic

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

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

OpenURLInBrowser

Magbukas ng Uniform Resource Locator ( URL ) sa default na browser.

Syntax:

session.OpenURLInBrowser(url: str)

Mga Parameter:

url : Ang URL na bubuksan.

Halimbawa:


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

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

RunApplication

Nagsasagawa ng arbitrary system command at nagbabalik totoo kung ito ay matagumpay na nailunsad.

Syntax:

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

Mga Parameter:

utos : Ang utos na isagawa. Ito ay maaaring isang executable file o isang dokumento na nakarehistro sa isang application upang malaman ng system kung anong application ang ilulunsad para sa dokumentong iyon. Ang utos ay dapat ipahayag sa kasalukuyang SF_FileSystem.FileNaming notasyon.

mga parameter : Isang listahan ng mga parameter na pinaghihiwalay ng espasyo bilang isang string. Ang pamamaraan ay hindi nagpapatunay sa ibinigay na mga parameter, ngunit ipinapasa lamang ang mga ito sa tinukoy na utos.

Halimbawa:

Sa Basic

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

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

SendMail

Magpadala ng mensahe - na may mga opsyonal na attachment - sa mga tatanggap mula sa mail client ng user. Ang mensahe ay maaaring i-edit ng user bago ipadala o, bilang kahalili, ipadala kaagad.

Syntax:

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

Mga Parameter:

tatanggap : Isang email address (ang tatanggap ng "Kay").

cc : Isang listahan ng mga email address na pinaghihiwalay ng kuwit (ang mga tatanggap ng "carbon copy").

bcc : Isang listahan ng mga email address na pinaghihiwalay ng kuwit (ang mga tatanggap ng "blind carbon copy").

paksa : ang header ng mensahe.

katawan : Ang mga nilalaman ng mensahe bilang isang hindi na-format na teksto.

mga filename : isang listahan ng mga pangalan ng file na pinaghihiwalay ng kuwit. Dapat igalang ng bawat pangalan ng file ang SF_FileSystem.FileNaming notasyon.

edit message : Kailan totoo (default), ang mensahe ay na-edit bago ipadala.

Halimbawa:

Sa Basic

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

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

SetPDFExportOptions

Binabago ang mga setting ng pag-export ng PDF na tinukoy sa Mga Pagpipilian sa PDF dialog, na maaaring ma-access sa pamamagitan ng pagpili File - I-export bilang - I-export bilang PDF .

Ang pagtawag sa paraang ito ay nagbabago sa aktwal na mga halaga na itinakda sa Mga Pagpipilian sa PDF dialog, na ginagamit ng ExportAsPDF pamamaraan mula sa Dokumento serbisyo.

Nagbabalik ang pamamaraang ito totoo kapag matagumpay.

tip

Basahin ang Pahina ng wiki ng PDF Export para matuto pa tungkol sa lahat ng available na opsyon.


Syntax:

session.SetPDFExportOptions(pdfoptions: obj): bool

Mga Parameter:

pdfoptions : Diksyunaryo bagay na tumutukoy sa mga setting ng pag-export ng PDF na babaguhin. Ang bawat key-value pair ay kumakatawan sa isang opsyon sa pag-export at ang value na itatakda sa dialog.

Halimbawa:

Sa Basic

Binago ng sumusunod na halimbawa ang maximum na resolution ng imahe sa 150 dpi at ine-export ang kasalukuyang dokumento bilang isang 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

Ang pamamaraang ito ay magagamit lamang para sa Basic mga script.


UnoMethods

Nagbabalik ng listahan ng mga pamamaraan na matatawag mula sa isang bagay na UNO. Ang listahan ay isang zero-based na hanay ng mga string at maaaring walang laman.

Syntax:

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

Mga Parameter:

unoobject : Ang bagay na susuriin.

Halimbawa:

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

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

UnoProperties

Nagbabalik ng listahan ng mga katangian ng isang bagay na UNO. Ang listahan ay isang zero-based na hanay ng mga string at maaaring walang laman.

Syntax:

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

Mga Parameter:

unoobject : Ang bagay na susuriin.

Halimbawa:

Sa Basic

    Dim svc As Variant
    svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
    MsgBox SF_Array.Contains(session.UnoProperties(svc), "Wildcards") ' True
  
Sa 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

Kilalanin ang uri ng bagay ng UNO bilang isang string.

Syntax:

session.UnoObjectType(unoobject: uno): str

Mga Parameter:

unoobject : Ang bagay na makikilala.

Halimbawa:

Sa 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"
  
Sa 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

Kumuha ng ilang nilalaman sa web mula sa isang URI.

Syntax:

session.WebService(uri: str): str

Mga Parameter:

uri : URI address ng serbisyo sa web.

Halimbawa:

Sa Basic

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

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

Lahat ScriptForge Ang mga pangunahing gawain o identifier na may prefix na may underscore na character na "_" ay nakalaan para sa panloob na paggamit. Ang mga ito ay hindi nilalayong gamitin sa Basic macros o Python script.


Mangyaring suportahan kami!