Περιεχόμενα

# SFDocument. Υπηρεσία FormDocument

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

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

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

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

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

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

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

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

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

### Σύνταξη:

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()

Για να μάθετε περισσότερα σχετικά με τις μεθόδους και τις ιδιότητες φόρμας, ανατρέξτε στη σελίδα βοήθειας της υπηρεσίας 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)

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

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

Υπηρεσία SFDocuments.Base

SFDatabases.Database

Υπηρεσία SFDocuments.Document

ΥπηρεσίαSFDocuments.Form

Υπηρεσία ScriptForge.UI