LibreOffice 24.8 Βοήθεια
Η υπηρεσία Base παρέχει έναν αριθμό μεθόδων και ιδιοτήτων για τη διευκόλυνση της διαχείρισης και του χειρισμού των εγγράφων της Base του LibreOffice.
Αυτή η υπηρεσία σχετίζεται στενά με την υπηρεσία Document, η οποία παρέχει γενικές μεθόδους για το χειρισμό εγγράφων του LibreOffice, συμπεριλαμβανομένων των εγγράφων Base. Ως εκ τούτου, η υπηρεσία Base επεκτείνει την υπηρεσία Document και παρέχει πρόσθετες μεθόδους που είναι ειδικές για έγγραφα Base, επιτρέποντας στους χρήστες να:
Αποκτήστε πρόσβαση στη βάση δεδομένων που περιέχεται σε ένα έγγραφο Base.
Άνοιγμα εγγράφων φόρμας που είναι αποθηκευμένα σε ένα έγγραφο Base.
Ελέγξτε εάν ένα έγγραφο φόρμας από ένα έγγραφο Base έχει φορτωθεί αυτήν τη στιγμή.
Ανατρέξτε στην υπηρεσία Document για να μάθετε περισσότερα σχετικά με τις μεθόδους και τις ιδιότητες που μπορούν να χρησιμοποιείται για τη διαχείριση εγγράφων LibreOffice.
Πριν τη χρήση της υπηρεσίας Base, πρέπει να φορτωθεί ή να εισαχθεί η βιβλιοθήκη ScriptForge:
Η υπηρεσία 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 ως εξής:
    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")
  Η χρήση της υποσυμβολοσειράς "SFDocuments." στο προηγούμενο παράδειγμα είναι προαιρετική.
| Κατάλογος μεθόδων στην υπηρεσία Base | ||
|---|---|---|
Κλείνει το έγγραφο της φόρμας που δίνεται. Επιστρέφει True εάν το κλείσιμο είναι επιτυχές.
Η μέθοδος CloseFormDocument έχει καταργηθεί από το LibreOffice 7.6. Αν και είναι ακόμα διαθέσιμη, ενδέχεται να αφαιρεθεί από την υπηρεσία Base σε μελλοντική κυκλοφορία. Χρησιμοποιήστε τη μέθοδο CloseDocument από την υπηρεσία FormDocument.
svc.CloseFormDocument(formdocument: str): bool
formdocument: (έγγραφο φόρμας) Το όνομα του FormDocument που θα κλείσει, ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων.
Εάν τα έγγραφα φόρμας είναι οργανωμένα σε φακέλους, είναι απαραίτητο να συμπεριλάβετε το όνομα του φακέλου για να καθορίσετε το έγγραφο φόρμας που θα ανοίξει, όπως φαίνεται στα ακόλουθα παραδείγματα:
    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
    doc.CloseFormDocument('Folder1/myFormDocument')
  Επιστρέφει έναν πίνακα με τα πλήρη ονόματα (διαδρομή/όνομα) όλων των εγγράφων φόρμας στο έγγραφο Base ως πίνακας συμβολοσειρών με βάση το μηδέν.
svc.FormDocuments(): str[0..*]
Το παρακάτω απόσπασμα κώδικα εκτυπώνει τα ονόματα όλων των εγγράφων φόρμας στο τρέχον έγγραφο Base.
    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
  
    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisDataBaseDocument)
    myForms = doc.FormDocuments()
    for formName in myForms:
        bas.MsgBox(formName)
  To learn more about form documents, refer to ScriptForge.FormDocument service help page.
Ανάλογα με τις παραμέτρους που παρέχονται, αυτή η μέθοδος θα επιστρέψει:
Ένας πίνακας μηδενικής βάσης με τα ονόματα όλων των φορμών που περιέχονται σε ένα έγγραφο φόρμας (εάν το όρισμα Form απουσιάζει)
Ένα αντικείμενο SFDocuments.Form που αντιπροσωπεύει τη μορφή που καθορίζεται στο όρισμα Form.
Η μέθοδος 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: (φόρμα:) Το όνομα ή ο αριθμός ευρετηρίου της φόρμας που είναι αποθηκευμένο στο έγγραφο της φόρμας. Εάν αυτό το όρισμα απουσιάζει, η μέθοδος θα επιστρέψει έναν κατάλογο με τα ονόματα όλων των μορφών που είναι διαθέσιμες στο έγγραφο φόρμας.
Παρόλο που είναι δυνατή η χρήση αριθμών ευρετηρίου για αναφορά σε φόρμες, αυτό συνιστάται μόνο όταν υπάρχει μόνο μία φόρμα στο έγγραφο φόρμας. Εάν υπάρχουν δύο ή περισσότερες φόρμες, είναι προτιμότερο να χρησιμοποιήσετε το όνομα της φόρμας.
Η πρώτη γραμμή του παρακάτω παραδείγματος επιστρέφει έναν κατάλογο με όλες τις φόρμες στο έγγραφο φόρμας "myFormDocument". Η δεύτερη γραμμή επιστρέφει ένα στιγμιότυπο της υπηρεσίας Form που αντιπροσωπεύει τη φόρμα "myForm".
    Dim formsList as Object : formsList = oDoc.Forms("myFormDocument")
    Dim oForm as Object : oForm = oDoc.Forms("myFormDocument", "myForm")
  
    formsList = doc.Forms("myFormDocument")
    form = doc.Forms("myFormDocument", "myForm")
  Επιστρέφει ένα στιγμιότυπο της υπηρεσίας Database που επιτρέπει την εκτέλεση εντολών SQL στη βάση δεδομένων που ορίστηκε και/ή αποθηκεύτηκε στο τρέχον έγγραφο Βάσης
svc.GetDatabase(user: str = '', password: str = ''): svc
user, password: (χρήστης, κωδικός πρόσβασης:) Προαιρετικές παράμετροι σύνδεσης ως συμβολοσειρές. Η προεπιλεγμένη τιμή και για τις δύο παραμέτρους είναι μια κενή συμβολοσειρά "".
    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()
  
    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    #   ... Εκτέλεση ερωτημάτων, προτάσεις SQL, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  Επιστρέφει True εάν το καθορισμένο FormDocument είναι ανοιχτό αυτήν τη στιγμή.
svc.IsLoaded(formdocument: str): bool
formdocument: (έγγραφο φόρμας:) Το όνομα ενός FormDocument προς έλεγχο, ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων.
    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  Ανοίγει το καθορισμένο FormDocument είτε σε κανονική, είτε σε λειτουργία σχεδίασης. Αυτή η μέθοδος επιστρέφει μια παρουσία υπηρεσίας FormDocument που αντιστοιχεί στο καθορισμένο έγγραφο φόρμας.
Εάν το έγγραφο της φόρμας είναι ήδη ανοιχτό, ενεργοποιείται χωρίς να αλλάξει η λειτουργία του.
Εάν το καθορισμένο έγγραφο φόρμας δεν υπάρχει, τότε επιστρέφεται Nothing.
svc.OpenFormDocument(formdocument: str, designmode: bool = False): svc
formDocument: (έγγραφο φόρμας:) Το όνομα του FormDocument που θα ανοίξει, ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων.
designmode: (λειτουργία σχεδίασης:) Εάν αυτό το όρισμα είναι True το FormDocument θα ανοίξει σε λειτουργία σχεδίασης.
Τα περισσότερα έγγραφα φόρμας αποθηκεύονται στη ρίζα του εγγράφου Base και μπορούν να ανοίξουν απλά χρησιμοποιώντας τα ονόματά τους, όπως στο παρακάτω παράδειγμα:
    Dim oFormDoc As Object
    oFormDoc = oDoc.OpenFormDocument("myFormDocument")
  Εάν τα έγγραφα φόρμας είναι οργανωμένα σε φακέλους, είναι απαραίτητο να συμπεριλάβετε το όνομα του φακέλου για να καθορίσετε το έγγραφο φόρμας που θα ανοίξει, όπως φαίνεται στο ακόλουθο παράδειγμα:
    oFormDoc = oDoc.OpenFormDocument("myFolder/myFormDocument")
  
    formDoc = doc.OpenFormDocument("myFormDocument")
  
    formDoc = doc.OpenFormDocument("myFolder/myFormDocument")
  Ανοίγει το παράθυρο Προβολή δεδομένων του καθορισμένου ερωτήματος και επιστρέφει μια παρουσία της υπηρεσίας Datasheet.
Το ερώτημα μπορεί να ανοίξει είτε σε κανονική λειτουργία, είτε σε λειτουργία σχεδίασης.
Εάν το ερώτημα είναι ήδη ανοιχτό, το παράθυρο Προβολή δεδομένων του θα ενεργοποιηθεί.
Το κλείσιμο του εγγράφου Base θα προκαλέσει και το κλείσιμο του παραθύρου Προβολή δεδομένων.
svc.OpenQuery(queryname: str, designmode: bool = False): obj
queryname: Το όνομα ενός υπάρχοντος ερωτήματος ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων.
designmode: Εάν αυτό το όρισμα οριστεί σε True, το ερώτημα ανοίγει σε λειτουργία σχεδίασης. Διαφορετικά ανοίγει σε κανονική λειτουργία (Προεπιλογή = False).
      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
      doc.OpenQuery("MyQuery", designmode=True)
    Ανοίγει το παράθυρο Προβολή δεδομένων του καθορισμένου πίνακα και επιστρέφει μια παρουσία της υπηρεσίας Datasheet.
Ο πίνακας μπορεί να ανοίξει είτε σε κανονική λειτουργία, είτε σε λειτουργία σχεδίασης.
Εάν ο πίνακας είναι ήδη ανοιχτός, το παράθυρο Προβολή δεδομένων του θα ενεργοποιηθεί.
Το κλείσιμο του εγγράφου Base θα προκαλέσει και το κλείσιμο του παραθύρου Προβολή δεδομένων.
svc.OpenTable(tablename: str, designmode: bool = False): obj
tablename: Το όνομα ενός υπάρχοντος πίνακα ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων.
designmode: Εάν αυτό το όρισμα οριστεί σε True, ο πίνακας ανοίγει σε λειτουργία σχεδίασης. Διαφορετικά ανοίγει σε κανονική λειτουργία (Προεπιλογή = False).
      oDoc.OpenTable("MyTable", DesignMode = False)
    
      doc.OpenTable("MyTable", designmode=False)
    Αυτή η μέθοδος στέλνει το περιεχόμενο του δεδομένου εγγράφου φόρμας σε έναν προεπιλεγμένο εκτυπωτή ή σε έναν εκτυπωτή που ορίζεται από τη μέθοδο SetPrinter().
Επιστρέφει True εάν το έγγραφο εκτυπώθηκε με επιτυχία.
Η μέθοδος 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.
    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  Καθορίστε τις επιλογές εκτυπωτή για ένα έγγραφο φόρμας. Το έγγραφο φόρμας πρέπει να είναι ανοιχτό.
Επιστρέφει True όταν είναι επιτυχές.
Η μέθοδος SetPrinter έχει καταργηθεί από το LibreOffice 7.6. Αν και είναι ακόμα διαθέσιμο, ενδέχεται να αφαιρεθεί από την υπηρεσία Base σε μελλοντική κυκλοφορία. Χρησιμοποιήστε τη μέθοδο SetPrinter από την υπηρεσία Document.
svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool
formdocument (έγγραφο φόρμας): Ένα έγκυρο όνομα φόρμας εγγράφου ως συμβολοσειράς με διάκριση πεζών-κεφαλαίων.
    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
    doc.SetPrinter('myForm', paperformat='TABLOID')