Περιεχόμενα

# Υπηρεσία SFDocuments.Base

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

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

- Αποκτήστε πρόσβαση στη βάση δεδομένων που περιέχεται σε ένα έγγραφο Base.

- Άνοιγμα εγγράφων φόρμας που είναι αποθηκευμένα σε ένα έγγραφο Base.

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

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

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

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

• Οι μακροεντολές 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")

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

Κατάλογος μεθόδων στην υπηρεσία Base
CloseFormDocument FormDocuments Forms GetDatabase | IsLoaded OpenFormDocument OpenQuery OpenTable | PrintOut SetPrinter

## CloseFormDocument

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

Η μέθοδος 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)

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

## Forms

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

- Ένας πίνακας μηδενικής βάσης με τα ονόματα όλων των φορμών που περιέχονται σε ένα έγγραφο φόρμας (εάν το όρισμα 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".

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

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

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

Το κλείσιμο του εγγράφου 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.

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

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

Το κλείσιμο του εγγράφου 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 εάν το έγγραφο εκτυπώθηκε με επιτυχία.

Η μέθοδος 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 όταν είναι επιτυχές.

Η μέθοδος 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')

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

Σχετικά θέματα

SFDatabases.Database

Υπηρεσία SFDocuments.Document

ΥπηρεσίαSFDocuments.Form

Υπηρεσία ScriptForge.UI

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