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

Σύνταξη:

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

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

Σύνταξη:

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 είτε σε κανονική λειτουργία, είτε σε λειτουργία σχεδίασης.

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

Σύνταξη:

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

Παράμετροι:

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

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

Παράδειγμα:

Σε Basic

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


    oDoc.OpenFormDocument("myFormDocument")
  

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


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

    doc.OpenFormDocument("myFormDocument")
  

    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.

note

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.

note

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

Σύνταξη:

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

Σύνταξη:

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.


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