Υπηρεσία SFDocuments.Base

Η υπηρεσία Base παρέχει έναν αριθμό μεθόδων και ιδιοτήτων για τη διευκόλυνση της διαχείρισης και του χειρισμού των εγγράφων της Base του LibreOffice.

Αυτή η υπηρεσία σχετίζεται στενά με την υπηρεσία Document, η οποία παρέχει γενικές μεθόδους για το χειρισμό εγγράφων του LibreOffice, συμπεριλαμβανομένων των εγγράφων Base. Ως εκ τούτου, η υπηρεσία Base επεκτείνει την υπηρεσία Document και παρέχει πρόσθετες μεθόδους που είναι ειδικές για έγγραφα Base, επιτρέποντας στους χρήστες να:

tip

Ανατρέξτε στην υπηρεσία Document για να μάθετε περισσότερα σχετικά με τις μεθόδους και τις ιδιότητες που μπορούν να χρησιμοποιείται για τη διαχείριση εγγράφων LibreOffice.


Κλήση υπηρεσίας

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

note

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

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


Σε Basic

Η υπηρεσία Base μπορεί να κληθεί με διάφορους τρόπους. Το παρακάτω απόσπασμα κώδικα χρησιμοποιεί τη μέθοδο CreateBaseDocument από την υπηρεσία UI για τη δημιουργία ενός νέου αρχείου Base.

Σημειώστε ότι σε όλα τα παραδείγματα το αντικείμενο oDoc είναι ένα στιγμιότυπο της υπηρεσίας Base.


    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateBaseDocument("C:\Documents\MyFile.odb")
  

Η υπηρεσία Base μπορεί επίσης να δημιουργηθεί κατά το άνοιγμα ενός υπάρχοντος αρχείου Base, όπως φαίνεται παρακάτω:


    Set oDoc = ui.OpenBaseDocument("C:\Documents\MyFile.odb")
  

Εάν ένα έγγραφο Base είναι ήδη ανοιχτό, μπορείτε να δημιουργήσετε απευθείας την υπηρεσία Base:


    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  
Σε Python

Τα παραπάνω παραδείγματα μπορούν να μεταφραστούν σε Python ως εξής:


    from scriptforge import CreateScriptService
    ui = CreateScriptService("UI")
    doc = ui.CreateBaseDocument(r"C:\Documents\MyFile.odb")
  

    doc = ui.OpenBaseDocument(r"C:\Documents\MyFile.odb")
  

    doc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  
note

Η χρήση της υποσυμβολοσειράς "SFDocuments." στο προηγούμενο παράδειγμα είναι προαιρετική.


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

CloseFormDocument
FormDocuments
Forms
GetDatabase

IsLoaded
OpenFormDocument
OpenQuery
OpenTable

PrintOut
SetPrinter



CloseFormDocument

Κλείνει το έγγραφο της φόρμας που δίνεται. Επιστρέφει True εάν το κλείσιμο είναι επιτυχές.

warning

Η μέθοδος CloseFormDocument έχει καταργηθεί από το LibreOffice 7.6. Αν και είναι ακόμα διαθέσιμη, ενδέχεται να αφαιρεθεί από την υπηρεσία Base σε μελλοντική κυκλοφορία. Χρησιμοποιήστε τη μέθοδο CloseDocument από την υπηρεσία FormDocument.


Σύνταξη:

svc.CloseFormDocument(formdocument: str): bool

Παράμετροι:

formdocument: (έγγραφο φόρμας) Το όνομα του FormDocument που θα κλείσει, ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων.

Παράδειγμα:

Εάν τα έγγραφα φόρμας είναι οργανωμένα σε φακέλους, είναι απαραίτητο να συμπεριλάβετε το όνομα του φακέλου για να καθορίσετε το έγγραφο φόρμας που θα ανοίξει, όπως φαίνεται στα ακόλουθα παραδείγματα:

Σε Basic

    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
Σε Python

    doc.CloseFormDocument('Folder1/myFormDocument')
  

FormDocuments

Επιστρέφει έναν πίνακα με τα πλήρη ονόματα (διαδρομή/όνομα) όλων των εγγράφων φόρμας στο έγγραφο Base ως πίνακας συμβολοσειρών με βάση το μηδέν.

Σύνταξη:

svc.FormDocuments(): str[0..*]

Παράδειγμα:

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

Σε Basic

    Dim oDoc as Object, myForms as Object, formName as String
    Set oDoc = CreateScriptService("Document", ThisDataBaseDocument)
    Set myForms = oDoc.FormDocuments()
    For Each formName In myForms
        MsgBox formName
    Next formName
  
Σε Python

    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisDataBaseDocument)
    myForms = doc.FormDocuments()
    for formName in myForms:
        bas.MsgBox(formName)
  
tip

Για να μάθετε περισσότερα σχετικά με τα έγγραφα φόρμας, ανατρέξτε στη σελίδα βοήθειας της υπηρεσίας Form.


Forms

Ανάλογα με τις παραμέτρους που παρέχονται, αυτή η μέθοδος θα επιστρέψει:

warning

Η μέθοδος Forms έχει καταργηθεί από το LibreOffice 7.6. Αν και είναι ακόμα διαθέσιμη, ενδέχεται να αφαιρεθεί από την υπηρεσία Base σε μελλοντική κυκλοφορία. Χρησιμοποιήστε τη μέθοδο Forms από την υπηρεσία FormDocument.


Σύνταξη:

svc.Forms(formdocument: str): str[0..*]

svc.Forms(formdocument: str, form: str = ''): svc

svc.Forms(formdocument: str, form: int): svc

Παράμετροι:

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

form: (φόρμα:) Το όνομα ή ο αριθμός ευρετηρίου της φόρμας που είναι αποθηκευμένο στο έγγραφο της φόρμας. Εάν αυτό το όρισμα απουσιάζει, η μέθοδος θα επιστρέψει έναν κατάλογο με τα ονόματα όλων των μορφών που είναι διαθέσιμες στο έγγραφο φόρμας.

note

Παρόλο που είναι δυνατή η χρήση αριθμών ευρετηρίου για αναφορά σε φόρμες, αυτό συνιστάται μόνο όταν υπάρχει μόνο μία φόρμα στο έγγραφο φόρμας. Εάν υπάρχουν δύο ή περισσότερες φόρμες, είναι προτιμότερο να χρησιμοποιήσετε το όνομα της φόρμας.


Παράδειγμα:

Η πρώτη γραμμή του παρακάτω παραδείγματος επιστρέφει έναν κατάλογο με όλες τις φόρμες στο έγγραφο φόρμας "myFormDocument". Η δεύτερη γραμμή επιστρέφει ένα στιγμιότυπο της υπηρεσίας Form που αντιπροσωπεύει τη φόρμα "myForm".

Σε Basic

    Dim formsList as Object : formsList = oDoc.Forms("myFormDocument")
    Dim oForm as Object : oForm = oDoc.Forms("myFormDocument", "myForm")
  
Σε Python

    formsList = doc.Forms("myFormDocument")
    form = doc.Forms("myFormDocument", "myForm")
  

GetDatabase

Επιστρέφει ένα στιγμιότυπο της υπηρεσίας Database που επιτρέπει την εκτέλεση εντολών SQL στη βάση δεδομένων που ορίστηκε και/ή αποθηκεύτηκε στο τρέχον έγγραφο Βάσης

Σύνταξη:

svc.GetDatabase(user: str = '', password: str = ''): svc

Παράμετροι:

user, password: (χρήστης, κωδικός πρόσβασης:) Προαιρετικές παράμετροι σύνδεσης ως συμβολοσειρές. Η προεπιλεγμένη τιμή και για τις δύο παραμέτρους είναι μια κενή συμβολοσειρά "".

Παράδειγμα:

Σε Basic

    Dim myDoc As Object, myDatabase As Object, ui As Object
    Set ui = CreateScriptService("UI")
    Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
    ' Ο χρήστης και ο κωδικός πρόσβασης παρέχονται παρακάτω, εάν χρειάζεται
    Set myDatabase = myDoc.GetDatabase()
    '... Εκτέλεση ερωτημάτων, δηλώσεων SQL, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  
Σε Python

    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    #   ... Εκτέλεση ερωτημάτων, προτάσεις SQL, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  

IsLoaded

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

Σύνταξη:

svc.IsLoaded(formdocument: str): bool

Παράμετροι:

formdocument: (έγγραφο φόρμας:) Το όνομα ενός FormDocument προς έλεγχο, ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων.

Παράδειγμα:

Σε Basic

    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
Σε Python

    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  

OpenFormDocument

Ανοίγει το καθορισμένο FormDocument είτε σε κανονική, είτε σε λειτουργία σχεδίασης. Αυτή η μέθοδος επιστρέφει μια παρουσία υπηρεσίας FormDocument που αντιστοιχεί στο καθορισμένο έγγραφο φόρμας.

Εάν το έγγραφο της φόρμας είναι ήδη ανοιχτό, ενεργοποιείται χωρίς να αλλάξει η λειτουργία του.

Εάν το καθορισμένο έγγραφο φόρμας δεν υπάρχει, τότε επιστρέφεται Nothing.

Σύνταξη:

svc.OpenFormDocument(formdocument: str, designmode: bool = False): svc

Παράμετροι:

formDocument: (έγγραφο φόρμας:) Το όνομα του FormDocument που θα ανοίξει, ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων.

designmode: (λειτουργία σχεδίασης:) Εάν αυτό το όρισμα είναι True το FormDocument θα ανοίξει σε λειτουργία σχεδίασης.

Παράδειγμα:

Σε Basic

Τα περισσότερα έγγραφα φόρμας αποθηκεύονται στη ρίζα του εγγράφου Base και μπορούν να ανοίξουν απλά χρησιμοποιώντας τα ονόματά τους, όπως στο παρακάτω παράδειγμα:


    Dim oFormDoc As Object
    oFormDoc = oDoc.OpenFormDocument("myFormDocument")
  

Εάν τα έγγραφα φόρμας είναι οργανωμένα σε φακέλους, είναι απαραίτητο να συμπεριλάβετε το όνομα του φακέλου για να καθορίσετε το έγγραφο φόρμας που θα ανοίξει, όπως φαίνεται στο ακόλουθο παράδειγμα:


    oFormDoc = oDoc.OpenFormDocument("myFolder/myFormDocument")
  
Σε Python

    formDoc = doc.OpenFormDocument("myFormDocument")
  

    formDoc = doc.OpenFormDocument("myFolder/myFormDocument")
  

OpenQuery

Ανοίγει το παράθυρο Προβολή δεδομένων του καθορισμένου ερωτήματος και επιστρέφει μια παρουσία της υπηρεσίας Datasheet.

Το ερώτημα μπορεί να ανοίξει είτε σε κανονική λειτουργία, είτε σε λειτουργία σχεδίασης.

Εάν το ερώτημα είναι ήδη ανοιχτό, το παράθυρο Προβολή δεδομένων του θα ενεργοποιηθεί.

note

Το κλείσιμο του εγγράφου Base θα προκαλέσει και το κλείσιμο του παραθύρου Προβολή δεδομένων.


Σύνταξη:

svc.OpenQuery(queryname: str, designmode: bool = False): obj

Παράμετροι:

queryname: Το όνομα ενός υπάρχοντος ερωτήματος ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων.

designmode: Εάν αυτό το όρισμα οριστεί σε True, το ερώτημα ανοίγει σε λειτουργία σχεδίασης. Διαφορετικά ανοίγει σε κανονική λειτουργία (Προεπιλογή = False).

Παράδειγμα:

Σε Basic

      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
Σε Python

      doc.OpenQuery("MyQuery", designmode=True)
    

OpenTable

Ανοίγει το παράθυρο Προβολή δεδομένων του καθορισμένου πίνακα και επιστρέφει μια παρουσία της υπηρεσίας Datasheet.

Ο πίνακας μπορεί να ανοίξει είτε σε κανονική λειτουργία, είτε σε λειτουργία σχεδίασης.

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

note

Το κλείσιμο του εγγράφου Base θα προκαλέσει και το κλείσιμο του παραθύρου Προβολή δεδομένων.


Σύνταξη:

svc.OpenTable(tablename: str, designmode: bool = False): obj

Παράμετροι:

tablename: Το όνομα ενός υπάρχοντος πίνακα ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων.

designmode: Εάν αυτό το όρισμα οριστεί σε True, ο πίνακας ανοίγει σε λειτουργία σχεδίασης. Διαφορετικά ανοίγει σε κανονική λειτουργία (Προεπιλογή = False).

Παράδειγμα:

Σε Basic

      oDoc.OpenTable("MyTable", DesignMode = False)
    
Σε Python

      doc.OpenTable("MyTable", designmode=False)
    

PrintOut

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

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

warning

Η μέθοδος PrintOut έχει καταργηθεί από το LibreOffice 7.6. Αν και είναι ακόμα διαθέσιμο, ενδέχεται να αφαιρεθεί από την υπηρεσία Base σε μελλοντική κυκλοφορία. Χρησιμοποιήστε τη μέθοδο PrintOut από την υπηρεσία FormDocument.


Σύνταξη:

svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool

Παράμετροι:

formdocument (έγγραφο φόρμας): Ένα έγκυρο όνομα φόρμας εγγράφου ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων. Το έγγραφο φόρμας πρέπει να είναι ανοιχτό. Ενεργοποιείται με τη μέθοδο.

pages (σελίδες): Οι σελίδες που θα εκτυπωθούν ως συμβολοσειρά, όπως στη διεπαφή χρήστη. Παράδειγμα: "1-4;10;15-18". Η προεπιλογή είναι όλες οι σελίδες.

copies (αντίγραφα): Ο αριθμός των αντιγράφων. Η προεπιλογή είναι 1.

Παράδειγμα:

Σε Basic

    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
Σε Python

    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  

SetPrinter

Καθορίστε τις επιλογές εκτυπωτή για ένα έγγραφο φόρμας. Το έγγραφο φόρμας πρέπει να είναι ανοιχτό.

Επιστρέφει True όταν είναι επιτυχές.

warning

Η μέθοδος SetPrinter έχει καταργηθεί από το LibreOffice 7.6. Αν και είναι ακόμα διαθέσιμο, ενδέχεται να αφαιρεθεί από την υπηρεσία Base σε μελλοντική κυκλοφορία. Χρησιμοποιήστε τη μέθοδο SetPrinter από την υπηρεσία Document.


Σύνταξη:

svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool

Παράμετροι:

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

printer (εκτυπωτής): Το όνομα της ουράς του εκτυπωτή όπου θα εκτυπωθεί. Όταν απουσιάζει, ορίζεται ο προεπιλεγμένος εκτυπωτής.

orientation (προσανατολισμός): Είτε PORTRAIT (κατακόρυφα), είτε LANDSCAPE (οριζόντια). Όταν απουσιάζει, αφήνεται αμετάβλητο σε σχέση με τις ρυθμίσεις του εκτυπωτή.

performat (μορφή χαρτιού): Καθορίζει τη μορφή χαρτιού ως τιμή συμβολοσειράς που μπορεί να είναι είτε A3, A4, A5, >LETTER, LEGAL ή TABLOID. Αφήνεται αμετάβλητο όταν απουσιάζει.

Παράδειγμα:

Σε Basic

    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
Σε Python

    doc.SetPrinter('myForm', paperformat='TABLOID')
  
warning

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


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