SFDocument. Υπηρεσία FormDocument

Η υπηρεσία FormDocument επιτρέπει την πρόσβαση σε έγγραφα φόρμας που είναι αποθηκευμένα στα έγγραφα του LibreOffice Base.

Σε ένα έγγραφο Base, τα υπάρχοντα έγγραφα φόρμας μπορούν να προβληθούν επιλέγοντας Προβολή - Φόρμες στη διεπαφή χρήστη. Κάθε έγγραφο φόρμας μπορεί να αποτελείται από μία ή περισσότερες φόρμες, συμπεριλαμβανομένης της κύριας φόρμας και άλλων υποφορμών.

Αυτή η υπηρεσία κληρονομεί μεθόδους και ιδιότητες από την υπηρεσία Document και χρησιμοποιείται συχνά παράλληλα με τις υπηρεσίες Base και Database.

tip

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


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

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

note

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

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


Σε Basic

Μια παρουσία υπηρεσίας FormDocument μπορεί να δημιουργηθεί καλώντας τη μέθοδο OpenFormDocument που υπάρχει και στις υπηρεσίες Base και Database.

Το παρακάτω παράδειγμα χρησιμοποιεί την υπηρεσία UI για να ανοίξει ένα έγγραφο βάσης και στη συνέχεια να ανακτήσει ένα έγγραφο φόρμας. Σημειώστε ότι σε αυτό το παράδειγμα θα ανοίξουν και θα εμφανιστούν στην οθόνη τόσο το έγγραφο Base όσο και το έγγραφο φόρμας.


    Dim ui As Object, oBase As Object, oFormDoc As Object
    ui = CreateScriptService("UI")
    oBase = ui.OpenBaseDocument("C:\Documents\MyDatabase.odb")
    oFormDoc = oBase.OpenFormDocument("MyFormDocument")
    ' ...
    oFormDoc.CloseDocument()
  

Το παρακάτω παράδειγμα χρησιμοποιεί την υπηρεσία Database για να ανοίξει το έγγραφο της φόρμας. Σε αυτήν την περίπτωση, το αρχείο Base δεν θα ανοίξει και θα εμφανιστεί μόνο το έγγραφο της φόρμας.


    Dim oDatabase As Object, oFormDoc As Object
    oDatabase = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
    oFormDoc = oDatabase.OpenFormDocument("MyFormDocument")
  
note

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


Σε Python

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


    ui = CreateScriptService("UI")
    baseDoc = ui.OpenBaseDocument("C:\Documents\MyDatabase.odb")
    formDoc = baseDoc.OpenFormDocument("MyFormDocument")
    # ...
    formDoc.CloseDocument()
  

    database = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
    formDoc = database.OpenFormDocument("MyFormDocument")
  

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

CloseDocument
Forms

GetDatabase

PrintOut


CloseDocument

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

Σύνταξη:

svc.CloseDocument(): bool

Παράδειγμα:

Σε Basic

    oFormDoc.CloseDocument()
  
Σε Python

    formDoc.CloseDocument()
  

Forms

Επιστρέφει είτε έναν πίνακα με τα ονόματα των κύριων φορμών που περιέχονται στο έγγραφο φόρμας, είτε μια παρουσία υπηρεσίας Form που αναφέρεται σε μια συγκεκριμένη φόρμα.

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

Δώστε ένα όνομα φόρμας ή ένα ευρετήριο ως όρισμα για να αποκτήσετε μια παρουσία της υπηρεσίας Form που αντιστοιχεί στην καθορισμένη φόρμα.

note

Ένα έγγραφο φόρμας έχει τουλάχιστον μία κύρια φόρμα. Τα πιο σύνθετα έγγραφα φόρμας μπορεί να αποτελούνται από περισσότερες από μία φόρμες και υποφόρμες.


Σύνταξη:

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

svc.Forms(form: str): svc

svc.Forms(form: int): svc

Παράμετροι:

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

Παράδειγμα:

Σε Basic

Το ακόλουθο παράδειγμα ελέγχει εάν το έγγραφο φόρμας περιέχει μια φόρμα με το όνομα "MainForm":


    arrForms = oFormDoc.Forms()
    If SF_Array.Contains(arrForms, "MainForm") Then
        ' ...
    End If
  

Το παρακάτω παράδειγμα ανακτά τη φόρμα με το όνομα "MainForm" και τη μετακινεί στην τελευταία εγγραφή:


    Dim oForm As Object
    oForm = oFormDoc.Forms("MainForm")
    oForm.MoveLast()
  
Σε Python

    arrForms = formDoc.Forms()
    if "MainForm" in arrForms:
        # ...
  

    form = formDoc.Forms("MainForm")
    form.MoveLast()
  
tip

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


GetDatabase

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

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

Σύνταξη:

svc.GetDatabase(opt user: str, opt password: str): svc

Παράμετροι:

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

Παράδειγμα:


      Dim myDb As Object ' SFDatabases.Database
      Set myDb = oForm.GetDatabase()
   
Σε Python

      db = form.GetDatabase()  # SFDatabases.Database
   

PrintOut

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

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

Σύνταξη:

svc.PrintOut(pages: str = "", copies: int = 1, printbackground: bool = true, printblankpages: bool = false, printevenpages: bool = true, printoddpages: bool = true, printimages: bool = true): bool

Παράμετροι:

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

copies: Ο αριθμός των αντιγράφων που θα εκτυπωθούν (Προεπιλογή = 1).

printbackground: καθορίζει εάν η εικόνα παρασκηνίου θα πρέπει να εκτυπωθεί (Προεπιλογή = True).

printblankpages: καθορίζει εάν θα πρέπει να εκτυπωθούν οι κενές σελίδες (Προεπιλογή = False).

printevenpages: καθορίζει εάν θα πρέπει να εκτυπώνονται οι ζυγές σελίδες (Προεπιλογή = True).

printoddpages: καθορίζει εάν θα πρέπει να εκτυπώνονται οι μονές σελίδες (Προεπιλογή = True).

printimages: καθορίζει εάν οι εικόνες θα πρέπει να εκτυπωθούν (Προεπιλογή = True).

Παράδειγμα:

Σε Basic

    oFormDoc.PrintOut("1-4", Copies := 2, PrintBackground := False)
  
Σε Python

    formDoc.PrintOut("1-4", copies = 2, printbackground = False)
  
warning

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


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