LibreOfficeDev 25.8 Βοήθεια
Η υπηρεσία Session συγκεντρώνει διάφορες μεθόδους γενικής χρήσης σχετικές με:
το περιβάλλον εγκατάστασης ή εκτέλεσης
Ενδοσκόπηση UNO
την επίκληση εξωτερικών σεναρίων ή προγραμμάτων
Πριν χρησιμοποιήσετε την υπηρεσία Session, πρέπει να φορτωθεί ή να εισαχθεί η βιβλιοθήκη ScriptForge:
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim session As Variant
    session = CreateScriptService("Session")
  
    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 | 
             HasUnoProperty | |
Οι μέθοδοι Execute... (Εκτέλεση...) στην υπηρεσία Session συμπεριφέρονται ως εξής: 
Τα ορίσματα μεταβιβάζονται με τιμή. Οι αλλαγές που γίνονται από την καλούμενη συνάρτηση στα ορίσματα δεν ενημερώνουν τις τιμές τους στο σενάριο κλήσης. 
Μια μεμονωμένη τιμή ή ένας πίνακας τιμών επιστρέφεται στο σενάριο κλήσης.
Εκτελέστε τη δέσμη ενεργειών της 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" ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων.
Η βιβλιοθήκη φορτώνεται στη μνήμη εάν είναι απαραίτητο.
Η ενότητα δεν πρέπει να είναι μια ενότητα κλάσης.
Η μέθοδος μπορεί να είναι Sub (υπορουτίνα) ή Function (συνάρτηση).
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.
    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
  
    session = CreateScriptService("Session")
    bas = CreateScriptService("Basic")
    b_script = 'Standard.Module1.DummyFunction'
    result = session.ExecuteBasicScript('application', b_script, 1, 10)
    bas.MsgBox(result) # 55
  Εκτελέστε μια συνάρτηση Calc χρησιμοποιώντας το αγγλικό της όνομα και με βάση τα δεδομένα ορίσματα. 
Εάν τα ορίσματα είναι πίνακες, η συνάρτηση εκτελείται ως τύπος πίνακα.
session.ExecuteCalcFunction(calcfunction: str, args: any[0..*]): any
calcfunction: Το όνομα της συνάρτησης Calc που θα κληθεί, στα αγγλικά.
args: Τα ορίσματα που θα μεταβιβαστούν στην καλούμενη συνάρτηση Calc. Κάθε όρισμα πρέπει να είναι είτε συμβολοσειρά, αριθμητική τιμή, ή ένας πίνακας πινάκων που συνδυάζει αυτούς τους τύπους.
    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)
    ' Δημιουργεί ένα σφάλμα.
  
    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)
  Εκτελέστε το σενάριο Python, του οποίου δίνεται η τοποθεσία και το ονόμα του, ανακτήστε το αποτέλεσμα του, εάν υπάρχει. Το αποτέλεσμα μπορεί να είναι μια μεμονωμένη τιμή ή ένας πίνακας τιμών.
Εάν το σενάριο δεν βρεθεί ή αν δεν επιστρέψει τίποτα, η τιμή που επιστρέφεται είναι Empty.
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" ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων.
library (βιβλιοθήκη): Η διαδρομή φακέλου προς τη λειτουργική μονάδα Python.
myScript: Ο φάκελος που περιέχει τη λειτουργική μονάδα Python.
module.py: Η λειτουργική μονάδα Python.
method: Η συνάρτηση Python.
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
  Διαβάστε τη σελίδα βοήθειας Οργάνωση και τοποθεσία σεναρίων Python για να μάθετε περισσότερα σχετικά με το πού μπορούν να αποθηκευτούν τα σενάρια Python.
Τα ακόλουθα παραδείγματα δείχνουν πώς να καλέσετε τη συνάρτηση odd_integers μέσα από τα σενάρια Basic και Python.
    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)
  
    session = CreateScriptService("Session")
    script = "my_macros.py$odd_integers"
    result = session.ExecutePythonScript(session.SCRIPTISPERSONAL, script, 1, 9)
    bas.MsgBox(repr(result))
  Επιστρέφει τις τρέχουσες ρυθμίσεις εξαγωγής PDF που ορίζονται στο παράθυρο διαλόγου , στο οποίο μπορείτε να προσπελάσετε επιλέγοντας .
Οι επιλογές εξαγωγής που έχουν οριστεί με το παράθυρο διαλόγου διατηρούνται για μελλοντική χρήση. Ως εκ τούτου, το GetPDFExportOptions επιστρέφει τις ρυθμίσεις που έχουν οριστεί αυτήν τη στιγμή. Επιπλέον, χρησιμοποιήστε SetPDFExportOptions για να αλλάξετε τις τρέχουσες επιλογές εξαγωγής PDF.
Αυτή η μέθοδος επιστρέφει ένα αντικείμενο Dictionary (Λεξικό) όπου κάθε κλειδί αντιπροσωπεύει επιλογές εξαγωγής και οι αντίστοιχες τιμές είναι οι τρέχουσες ρυθμίσεις εξαγωγής PDF.
Διαβάστε τη σελίδα wiki Εξαγωγή PDF για να μάθετε περισσότερα σχετικά με όλες τις διαθέσιμες επιλογές.
session.GetPDFExportOptions(): obj
    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
    ' ...
  Επιστρέφει True εάν ένα αντικείμενο UNO περιέχει τη δεδομένη μέθοδο. Επιστρέφει False όταν η μέθοδος δεν βρίσκεται ή όταν ένα όρισμα είναι άκυρο.
session.HasUnoMethod(unoobject: uno, methodname: str): bool
unoobject: Το αντικείμενο προς επιθεώρηση.
methodname (όνομα μεθόδου): η μέθοδος ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων
    Dim a As Variant
    a = CreateUnoService("com.sun.star.sheet.FunctionAccess")
    MsgBox session.HasUnoMethod(a, "callFunction") ' True
  
    bas = CreateScriptService("Basic")
    a = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
    result = session.HasUnoMethod(a, "callFunction")
    bas.MsgBox(result) # True
  Επιστρέφει True εάν ένα αντικείμενο UNO έχει τη δεδομένη ιδιότητα. Επιστρέφει False όταν η ιδιότητα δεν βρέθηκε, ή όταν ένα όρισμα είναι άκυρο.
session.HasUnoProperty(unoobject: uno, propertyname: str): bool
unoobject: Το αντικείμενο προς επιθεώρηση.
propertyname (όνομα ιδιότητας): η ιδιότητα ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων
    Dim svc As Variant
    svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
    MsgBox session.HasUnoProperty(svc, "Wildcards")
  
    bas = CreateScriptService("Basic")
    a = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
    result = session.HasUnoProperty(a, "Wildcards")
    bas.MsgBox(result) # True
  Ανοίξτε ένα Uniform Resource Locator (URL) στον προεπιλεγμένο περιηγητή.
session.OpenURLInBrowser(url: str)
url: Η διεύθυνση URL για άνοιγμα.
    ' Basic
    session.OpenURLInBrowser("help.libreoffice.org/")
  
    # Python
    session.OpenURLInBrowser("help.libreoffice.org/")
  Εκτελεί μια τυχαία εντολή συστήματος και επιστρέφει το True εάν εκκινήθηκε με επιτυχία.
session.RunApplication(command: str, parameters: str): bool
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. This method equally starts .bat or shell scripts.The command must be expressed in the current SF_FileSystem.FileNaming notation.
parameters (παράμετροι): Ένας κατάλογος παραμέτρων που χωρίζονται με διαστήματα ως συμβολοσειρά. Η μέθοδος δεν επικυρώνει τις δεδομένες παραμέτρους, αλλά τις μεταβιβάζει μόνο στην καθορισμένη εντολή.
    session.RunApplication("Notepad.exe")
    session.RunApplication("C:\\myFolder\\myDocument.odt")
    session.RunApplication("kate", "/home/user/install.txt") ' GNU/Linux
  
    session.RunApplication("Notepad.exe")
    session.RunApplication(r"C:\\myFolder\\myDocument.odt")
    session.RunApplication("kate", "/home/user/install.txt") # GNU/Linux
  Στείλτε ένα μήνυμα - με προαιρετικά συνημμένα - σε παραλήπτες από το πρόγραμμα-πελάτη αλληλογραφίας του χρήστη. Το μήνυμα μπορεί να επεξεργαστεί από τον χρήστη πριν από την αποστολή, ή εναλλακτικά, να αποσταλεί αμέσως.
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 (προεπιλογή), το μήνυμα επεξεργάζεται πριν αποσταλεί.
    session.SendMail("someone@example.com" _
        , Cc := "b@other.fr, c@other.be" _
        , FileNames := "C:\myFile1.txt, C:\myFile2.txt")
  
    session.SendMail("someone@example.com",
                     cc="john@other.fr, mary@other.be"
                     filenames=r"C:\myFile1.txt, C:\myFile2.txt")
  Τροποποιεί τις ρυθμίσεις εξαγωγής PDF που ορίζονται στο παράθυρο διαλόγου , στο οποίο μπορείτε να προσπελάσετε επιλέγοντας .
Η κλήση αυτής της μεθόδου αλλάζει τις ενεργές τιμές που ορίζονται στο παράθυρο διαλόγου , οι οποίες χρησιμοποιούνται από τη μέθοδο ExportAsPDF από την υπηρεσία Document.
Αυτή η μέθοδος επιστρέφει True όταν είναι επιτυχής.
Διαβάστε τη σελίδα wiki Εξαγωγή PDF για να μάθετε περισσότερα σχετικά με όλες τις διαθέσιμες επιλογές.
session.SetPDFExportOptions(pdfoptions: obj): bool
pdfoptions (επιλογές pdf): το αντικείμενο Dictionary (Λεξικό) που ορίζει τις ρυθμίσεις εξαγωγής PDF που πρέπει να αλλάξουν. Κάθε ζεύγος κλειδιού-τιμής αντιπροσωπεύει μια επιλογή εξαγωγής και την τιμή που θα οριστεί στο παράθυρο διαλόγου.
Το παρακάτω παράδειγμα αλλάζει τη μέγιστη ανάλυση εικόνας σε 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)
  Επιστρέφει έναν κατάλογο με τις μεθόδους που μπορούν να κληθούν από ένα αντικείμενο UNO. Ο κατάλογος είναι ένας πίνακας συμβολοσειρών με βάση το μηδέν και μπορεί να είναι κενός.
session.UnoMethods(unoobject: uno): str[0..*]
unoobject: Το αντικείμενο προς επιθεώρηση.
    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
  
    bas = CreateScriptService("Basic")
    a = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
    methods = session.UnoMethods(a)
    msg = "\n".join(methods)
    bas.MsgBox(msg)
  Επιστρέφει έναν κατάλογο με τις ιδιότητες ενός αντικειμένου UNO. Ο κατάλογος είναι ένας πίνακας συμβολοσειρών με βάση το μηδέν και μπορεί να είναι κενός.
session.UnoProperties(unoobject: uno): str[0..*]
unoobject: Το αντικείμενο προς επιθεώρηση.
    Dim svc As Variant
    svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
    MsgBox SF_Array.Contains(session.UnoProperties(svc), "Wildcards") ' True
  
    bas = CreateScriptService("Basic")
    svc = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
    properties = session.UnoProperties(a)
    b = "Wildcards" in properties
    bas.MsgBox(str(b)) # True
  Προσδιορίζει τον τύπο ενός αντικειμένου UNO ως συμβολοσειρά.
session.UnoObjectType(unoobject: uno): str
unoobject: Το αντικείμενο προς αναγνώριση.
    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"
  
    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"
  Λάβετε το περιεχόμενο ιστού από ένα URI.
session.WebService(uri: str): str
uri: διεύθυνση URI της υπηρεσίας Ιστού.
    session.WebService("wiki.documentfoundation.org/api.php?" _
        & "hidebots=1&days=7&limit=50&action=feedrecentchanges&feedformat=rss")
  
    session.WebService(("wiki.documentfoundation.org/api.php?" 
                       "hidebots=1&days=7&limit=50&action=feedrecentchanges&feedformat=rss"))