Υπηρεσία ScriptForge.Session

Η υπηρεσία Session συγκεντρώνει διάφορες μεθόδους γενικής χρήσης σχετικές με:

την κλήση υπηρεσίας

Πριν χρησιμοποιήσετε την υπηρεσία Session, πρέπει να φορτωθεί ή να εισαχθεί η βιβλιοθήκη ScriptForge:

note

• Οι μακροεντολές Basic απαιτούν τη φόρτωση της βιβλιοθήκης ScriptForge χρησιμοποιώντας την ακόλουθη πρόταση:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Τα σενάρια Python απαιτούν εισαγωγή από την ενότητα scriptforge:
από το scriptforge import CreateScriptService


Σε Basic
GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
Dim session As Variant
session = CreateScriptService("Session")
Σε Python
from scriptforge import CreateScriptService
session = CreateScriptService("Session")

Σταθερές

Παρακάτω είναι ένας κατάλογος σταθερών που είναι διαθέσιμες για να διευκολύνουν τον προσδιορισμό της βιβλιοθήκης που περιέχει ένα σενάριο Basic ή Python προς κλήση. Χρησιμοποιήστε τες ως session.CONSTANT.

CONSTANT

Τιμή

Πού βρίσκεται η βιβλιοθήκη;

Εφαρμόσιμος

SCRIPTISEMBEDDED

"document"

στο έγγραφο

Basic + Python

SCRIPTISAPPLICATION

"application"

σε οποιαδήποτε κοινόχρηστη βιβλιοθήκη

Basic

SCRIPTISPERSONAL

"user"

στο Οι μακροεντολές μου

Python

SCRIPTISPERSOXT

"user:uno_packages"

σε μια επέκταση που έχει εγκατασταθεί για τον τρέχοντα χρήστη

Python

SCRIPTISSHARED

"share"

στο Μακροεντολές εφαρμογής

Python

SCRIPTISSHAROXT

"share:uno_packages"

σε μια επέκταση που είναι εγκατεστημένη για όλους τους χρήστες

Python

SCRIPTISOXT

"uno_packages"

σε μια επέκταση στην οποία οι παράμετροι εγκατάστασης είναι άγνωστες

Python


Κατάλογος μεθόδων στην υπηρεσία Session (συνεδρίας)

ExecuteBasicScript
ExecuteCalcFunction
ExecutePythonScript
GetPDFExportOptions
HasUnoMethod

HasUnoProperty
OpenURLInBrowser
RunApplication
SendMail
SetPDFExportOptions

UnoMethods
UnoProperties
UnoObjectType
WebService


tip

Οι μέθοδοι Execute... (Εκτέλεση...) στην υπηρεσία Session συμπεριφέρονται ως εξής:
Τα ορίσματα μεταβιβάζονται με τιμή. Οι αλλαγές που γίνονται από την καλούμενη συνάρτηση στα ορίσματα δεν ενημερώνουν τις τιμές τους στο σενάριο κλήσης.
Μια μεμονωμένη τιμή ή ένας πίνακας τιμών επιστρέφεται στο σενάριο κλήσης.


ExecuteBasicScript

Εκτελέστε τη δέσμη ενεργειών της BASIC δεδομένου του ονόματος και της τοποθεσίας της και λάβετε το αποτέλεσμά της, εάν υπάρχει.

Εάν το σενάριο δεν επιστρέφει τίποτα, όπως συμβαίνει με τις διαδικασίες που ορίζονται με το Sub, η τιμή που επιστρέφεται είναι Empty.

Σύνταξη:

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

Παράμετροι:

scope: Συμβολοσειρά που καθορίζει πού αποθηκεύεται το σενάριο. Μπορεί να είναι είτε "document" (constant session.SCRIPTISEMBEDDED), είτε "application" (σταθερά session.SCRIPTISAPPLICATION).

script: Συμβολοσειρά που καθορίζει το σενάριο που θα κληθεί στη μορφή "library.module.method" ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων.

args: Τα ορίσματα που θα μεταβιβαστούν στο καλούμενο σενάριο.

Παράδειγμα:

Εξετάστε την ακόλουθη συνάρτηση της Basic με το όνομα DummyFunction που είναι αποθηκευμένη στο "My Macros" στη βιβλιοθήκη "Standard" στην λειτουργική μονάδα που ονομάζεται "Module1".

Η συνάρτηση απλώς λαμβάνει δύο ακέραιες τιμές v1 και v2 και επιστρέφει το άθροισμα όλων των τιμών που ξεκινούν από v1 και τελειώνουν σε 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

Τα παρακάτω παραδείγματα δείχνουν πώς να καλέσετε το DummyFunction μέσα από τα σενάρια Basic και Python.

Σε 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
Σε 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

Εκτελέστε μια συνάρτηση Calc χρησιμοποιώντας το αγγλικό της όνομα και με βάση τα δεδομένα ορίσματα.
Εάν τα ορίσματα είναι πίνακες, η συνάρτηση εκτελείται ως τύπος πίνακα.

Σύνταξη:

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

Παράμετροι:

calcfunction: Το όνομα της συνάρτησης Calc που θα κληθεί, στα αγγλικά.

args: Τα ορίσματα που θα μεταβιβαστούν στην καλούμενη συνάρτηση Calc. Κάθε όρισμα πρέπει να είναι είτε συμβολοσειρά, αριθμητική τιμή, ή ένας πίνακας πινάκων που συνδυάζει αυτούς τους τύπους.

Παράδειγμα:

Σε 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)
' Δημιουργεί ένα σφάλμα.
Σε 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

Εκτελέστε το σενάριο Python, του οποίου δίνεται η τοποθεσία και το ονόμα του, ανακτήστε το αποτέλεσμα του, εάν υπάρχει. Το αποτέλεσμα μπορεί να είναι μια μεμονωμένη τιμή ή ένας πίνακας τιμών.

Εάν το σενάριο δεν βρεθεί ή αν δεν επιστρέψει τίποτα, η τιμή που επιστρέφεται είναι Empty.

Το Πλαίσιο δέσμης ενεργειών του Collabora Office Διασύνδεση προγραμματισμού εφαρμογών (API) υποστηρίζει τη διαγλωσσική εκτέλεση σεναρίων μεταξύ Python και Basic ή άλλες υποστηριζόμενες γλώσσες προγραμματισμού για αυτό το θέμα. Τα ορίσματα μπορούν να διαβιβαστούν πέρα δώθε σε κλήσεις, υπό την προϋπόθεση ότι αντιπροσωπεύουν πρωτογενείς τύπους δεδομένων που αναγνωρίζουν και οι δύο γλώσσες και υποθέτοντας ότι το Πλαίσιο Σεναρίων τα μετατρέπει κατάλληλα.

Σύνταξη:

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

Παράμετροι:

scope: Μία από τις εφαρμόσιμες σταθερές που αναφέρεται παραπάνω. Η προεπιλεγμένη τιμή είναι session.SCRIPTISSHARED.

script: Είτε "library/module.py$method", ή "module.py$method", ή "myExtension.oxt|myScript|module.py$method" ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων.

args: Τα ορίσματα που θα μεταβιβαστούν στο καλούμενο σενάριο.

Παράδειγμα:

Εξετάστε τη συνάρτηση Python odd_integers που ορίζεται παρακάτω και δημιουργεί έναν κατάλογο με περιττές ακέραιες τιμές μεταξύ v1 και v2. Ας υποθέσουμε ότι αυτή η συνάρτηση είναι αποθηκευμένη σε ένα αρχείο με το όνομα my_macros.py στον φάκελο σεναρίων χρήστη.

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

Διαβάστε τη σελίδα βοήθειας Οργάνωση και τοποθεσία σεναρίων Python για να μάθετε περισσότερα σχετικά με το πού μπορούν να αποθηκευτούν τα σενάρια Python.


Τα ακόλουθα παραδείγματα δείχνουν πώς να καλέσετε τη συνάρτηση odd_integers μέσα από τα σενάρια Basic και Python.

Σε 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)
Σε Python
session = CreateScriptService("Session")
script = "my_macros.py$odd_integers"
result = session.ExecutePythonScript(session.SCRIPTISPERSONAL, script, 1, 9)
bas.MsgBox(repr(result))

GetPDFExportOptions

Επιστρέφει τις τρέχουσες ρυθμίσεις εξαγωγής PDF που ορίζονται στο παράθυρο διαλόγου Επιλογές PDF, στο οποίο μπορείτε να προσπελάσετε επιλέγοντας Αρχείο - Εξαγωγή ως - Εξαγωγή ως PDF.

Οι επιλογές εξαγωγής που έχουν οριστεί με το παράθυρο διαλόγου Επιλογές PDF διατηρούνται για μελλοντική χρήση. Ως εκ τούτου, το GetPDFExportOptions επιστρέφει τις ρυθμίσεις που έχουν οριστεί αυτήν τη στιγμή. Επιπλέον, χρησιμοποιήστε SetPDFExportOptions για να αλλάξετε τις τρέχουσες επιλογές εξαγωγής PDF.

Αυτή η μέθοδος επιστρέφει ένα αντικείμενο Dictionary (Λεξικό) όπου κάθε κλειδί αντιπροσωπεύει επιλογές εξαγωγής και οι αντίστοιχες τιμές είναι οι τρέχουσες ρυθμίσεις εξαγωγής PDF.

tip

Διαβάστε τη σελίδα wiki Εξαγωγή PDF για να μάθετε περισσότερα σχετικά με όλες τις διαθέσιμες επιλογές.


Σύνταξη:

session.GetPDFExportOptions(): obj

Παράδειγμα:

Σε 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

Αυτή η μέθοδος είναι διαθέσιμη μόνο για σενάρια Basic.


HasUnoMethod

Επιστρέφει True εάν ένα αντικείμενο UNO περιέχει τη δεδομένη μέθοδο. Επιστρέφει False όταν η μέθοδος δεν βρίσκεται ή όταν ένα όρισμα είναι άκυρο.

Σύνταξη:

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

Παράμετροι:

unoobject: Το αντικείμενο προς επιθεώρηση.

methodname (όνομα μεθόδου): η μέθοδος ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων

Παράδειγμα:

Σε Basic
Dim a As Variant
a = CreateUnoService("com.sun.star.sheet.FunctionAccess")
MsgBox session.HasUnoMethod(a, "callFunction") ' True
Σε Python
bas = CreateScriptService("Basic")
a = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
result = session.HasUnoMethod(a, "callFunction")
bas.MsgBox(result) # True

HasUnoProperty

Επιστρέφει True εάν ένα αντικείμενο UNO έχει τη δεδομένη ιδιότητα. Επιστρέφει False όταν η ιδιότητα δεν βρέθηκε, ή όταν ένα όρισμα είναι άκυρο.

Σύνταξη:

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

Παράμετροι:

unoobject: Το αντικείμενο προς επιθεώρηση.

propertyname (όνομα ιδιότητας): η ιδιότητα ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων

Παράδειγμα:

Σε Basic
Dim svc As Variant
svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
MsgBox session.HasUnoProperty(svc, "Wildcards")
Σε Python
bas = CreateScriptService("Basic")
a = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
result = session.HasUnoProperty(a, "Wildcards")
bas.MsgBox(result) # True

OpenURLInBrowser

Ανοίξτε ένα Uniform Resource Locator (URL) στον προεπιλεγμένο περιηγητή.

Σύνταξη:

session.OpenURLInBrowser(url: str)

Παράμετροι:

url: Η διεύθυνση URL για άνοιγμα.

Παράδειγμα:

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

RunApplication

Εκτελεί μια τυχαία εντολή συστήματος και επιστρέφει το True εάν εκκινήθηκε με επιτυχία.

Σύνταξη:

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

Παράμετροι:

command (εντολή): Η εντολή προς εκτέλεση. Αυτό μπορεί να είναι ένα εκτελέσιμο αρχείο ή ένα έγγραφο που έχει καταχωρηθεί σε μια εφαρμογή, έτσι ώστε το σύστημα να γνωρίζει ποια εφαρμογή να εκκινήσει για αυτό το έγγραφο. Η εντολή πρέπει να εκφράζεται με την τρέχουσα σημειογραφία SF_FileSystem.FileNaming.

parameters (παράμετροι): Ένας κατάλογος παραμέτρων που χωρίζονται με διαστήματα ως συμβολοσειρά. Η μέθοδος δεν επικυρώνει τις δεδομένες παραμέτρους, αλλά τις μεταβιβάζει μόνο στην καθορισμένη εντολή.

Παράδειγμα:

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

SendMail

Στείλτε ένα μήνυμα - με προαιρετικά συνημμένα - σε παραλήπτες από το πρόγραμμα-πελάτη αλληλογραφίας του χρήστη. Το μήνυμα μπορεί να επεξεργαστεί από τον χρήστη πριν από την αποστολή, ή εναλλακτικά, να αποσταλεί αμέσως.

Σύνταξη:

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

Παράμετροι:

recipient (παραλήπτης): Μια διεύθυνση ηλεκτρονικού ταχυδρομείου (ο παραλήπτης του "Προς").

cc: Ένας κατάλογος διευθύνσεων ηλεκτρονικού ταχυδρομείου διαχωρισμένος με κόμματα (οι παραλήπτες "κοινοποίησης").

bcc (κρυφή κοινοποίηση): Ένας κατάλογος διευθύνσεων ηλεκτρονικού ταχυδρομείου διαχωρισμένος με κόμματα (οι παραλήπτες της "κρυφής κοινοποίησης").

subject (θέμα): η κεφαλίδα του μηνύματος.

body (σώμα): Τα περιεχόμενα του μηνύματος ως αμορφοποίητο κείμενο.

filenames (ονόματα αρχείων): ένας κατάλογος ονομάτων αρχείων διαχωρισμένος με κόμματα. Κάθε όνομα αρχείου πρέπει να υπακούει τη σημειογραφία SF_FileSystem.FileNaming.

editmessage (επεξεργασία μηνύματος): Όταν είναι True (προεπιλογή), το μήνυμα επεξεργάζεται πριν αποσταλεί.

Παράδειγμα:

Σε Basic
session.SendMail("someone@example.com" _
    , Cc := "b@other.fr, c@other.be" _
    , FileNames := "C:\myFile1.txt, C:\myFile2.txt")
Σε Python
session.SendMail("someone@example.com",
                 cc="john@other.fr, mary@other.be"
                 filenames=r"C:\myFile1.txt, C:\myFile2.txt")

SetPDFExportOptions

Τροποποιεί τις ρυθμίσεις εξαγωγής PDF που ορίζονται στο παράθυρο διαλόγου Επιλογές PDF, στο οποίο μπορείτε να προσπελάσετε επιλέγοντας Αρχείο - Εξαγωγή ως - Εξαγωγή ως PDF.

Η κλήση αυτής της μεθόδου αλλάζει τις ενεργές τιμές που ορίζονται στο παράθυρο διαλόγου Επιλογές PDF, οι οποίες χρησιμοποιούνται από τη μέθοδο ExportAsPDF από την υπηρεσία Document.

Αυτή η μέθοδος επιστρέφει True όταν είναι επιτυχής.

tip

Διαβάστε τη σελίδα wiki Εξαγωγή PDF για να μάθετε περισσότερα σχετικά με όλες τις διαθέσιμες επιλογές.


Σύνταξη:

session.SetPDFExportOptions(pdfoptions: obj): bool

Παράμετροι:

pdfoptions (επιλογές pdf): το αντικείμενο Dictionary (Λεξικό) που ορίζει τις ρυθμίσεις εξαγωγής PDF που πρέπει να αλλάξουν. Κάθε ζεύγος κλειδιού-τιμής αντιπροσωπεύει μια επιλογή εξαγωγής και την τιμή που θα οριστεί στο παράθυρο διαλόγου.

Παράδειγμα:

Σε Basic

Το παρακάτω παράδειγμα αλλάζει τη μέγιστη ανάλυση εικόνας σε 150 dpi και εξάγει το τρέχον έγγραφο ως αρχείο PDF.

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

Αυτή η μέθοδος είναι διαθέσιμη μόνο για σενάρια Basic.


UnoMethods

Επιστρέφει έναν κατάλογο με τις μεθόδους που μπορούν να κληθούν από ένα αντικείμενο UNO. Ο κατάλογος είναι ένας πίνακας συμβολοσειρών με βάση το μηδέν και μπορεί να είναι κενός.

Σύνταξη:

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

Παράμετροι:

unoobject: Το αντικείμενο προς επιθεώρηση.

Παράδειγμα:

Σε 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
Σε Python
bas = CreateScriptService("Basic")
a = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
methods = session.UnoMethods(a)
msg = "\n".join(methods)
bas.MsgBox(msg)

UnoProperties

Επιστρέφει έναν κατάλογο με τις ιδιότητες ενός αντικειμένου UNO. Ο κατάλογος είναι ένας πίνακας συμβολοσειρών με βάση το μηδέν και μπορεί να είναι κενός.

Σύνταξη:

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

Παράμετροι:

unoobject: Το αντικείμενο προς επιθεώρηση.

Παράδειγμα:

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

Προσδιορίζει τον τύπο ενός αντικειμένου UNO ως συμβολοσειρά.

Σύνταξη:

session.UnoObjectType(unoobject: uno): str

Παράμετροι:

unoobject: Το αντικείμενο προς αναγνώριση.

Παράδειγμα:

Σε 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"
Σε 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

Λάβετε το περιεχόμενο ιστού από ένα URI.

Σύνταξη:

session.WebService(uri: str): str

Παράμετροι:

uri: διεύθυνση URI της υπηρεσίας Ιστού.

Παράδειγμα:

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

Όλες οι ρουτίνες ή αναγνωριστικά του ScriptForge στη Basic που έχουν το πρόθεμα χαρακτήρα υπογράμμισης "_" δεσμεύονται για εσωτερική χρήση. Δεν προορίζονται να χρησιμοποιηθούν σε μακροεντολές Basic ή σενάρια Python.


Παρακαλούμε, υποστηρίξτε μας!