Περιεχόμενα

# SFDocuments.Base service

Η υπηρεσία 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 εάν το κλείσιμο είναι επιτυχές.

The method CloseFormDocument is deprecated since LibreOffice 7.6. Although it is still available, it may be removed from the Base service in a future release. Use the CloseDocument method from the FormDocument service instead.

### Σύνταξη:

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)

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

## Forms

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

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

- Ένα αντικείμενο SFDocuments.Form που αντιπροσωπεύει τη μορφή που καθορίζεται στο όρισμα Form.

The method Forms is deprecated since LibreOffice 7.6. Although it is still available, it may be removed from the Base service in a future release. Use the Forms method from the FormDocument service instead.

### Σύνταξη:

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

Opens the specified FormDocument either in normal or in design mode. This method returns a FormDocument service instance corresponding to the specified form document.

If the form document is already open, it is activated without changing its mode.

If the specified form document does not exist, then Nothing is returned.

### Σύνταξη:

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

Opens the Data View window of the specified query and returns an instance of the Datasheet service.

The query can be opened either in normal or design mode.

If the query is already open, its Data View window will be made active.

Closing the Base document will cause the Data View window to be closed as well.

### Σύνταξη:

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

### Παράμετροι:

queryname: The name of an existing query as a case-sensitive String.

designmode: If this argument is set to True the query is opened in design mode. Otherwise it is opened in normal mode (Default = False).

### Παράδειγμα:

##### Σε Basic

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

##### Σε Python

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

## OpenTable

Opens the Data View window of the specified table and returns an instance of the Datasheet service.

The table can be opened either in normal or design mode.

If the table is already open, its Data View window will be made active.

Closing the Base document will cause the Data View window to be closed as well.

### Σύνταξη:

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

### Παράμετροι:

tablename: The name of an existing table as a case-sensitive String.

designmode: If this argument is set to True the table is opened in design mode. Otherwise it is opened in normal mode (Default = False).

### Παράδειγμα:

##### Σε Basic

          oDoc.OpenTable("MyTable", DesignMode = False)

##### Σε Python

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

## PrintOut

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

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

The method PrintOut is deprecated since LibreOffice 7.6. Although it is still available, it may be removed from the Base service in a future release. Use the PrintOut method from the FormDocument service instead.

### Σύνταξη:

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

The method SetPrinter is deprecated since LibreOffice 7.6. Although it is still available, it may be removed from the Base service in a future release. Use the SetPrinter method from the Document service instead.

### Σύνταξη:

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