Περιεχόμενα

# Υπηρεσία SFDatabases.Datasheet

Η υπηρεσία Datasheet επιτρέπει την οπτικοποίηση των περιεχομένων των πινάκων της βάσης δεδομένων, καθώς και των αποτελεσμάτων των ερωτημάτων και των προτάσεων SQL χρησιμοποιώντας την προβολή δεδομένων της Base. Επιπλέον, αυτή η υπηρεσία επιτρέπει:

- Προσθήκη προσαρμοσμένων μενού στην προβολή δεδομένων.

- Πρόσβαση τιμών σε συγκεκριμένες θέσεις της προβολής δεδομένων.

- Τοποθέτηση του δρομέα σε ένα συγκεκριμένο κελί της προβολής δεδομένων.

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

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

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

##### Σε Basic

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

Το παρακάτω παράδειγμα θεωρεί ότι το αρχείο της βάσης δεδομένων είναι ανοιχτό, επομένως η υπηρεσία UI μπορεί να χρησιμοποιηθεί για την ανάκτηση του εγγράφου και η μέθοδος OpenTable από την υπηρεσία Database χρησιμοποιείται για τη λήψη μιας παρουσίας υπηρεσίας Datasheet.

        Dim ui As Object, oBase As Object, oSheet As Object
        Set ui = CreateScriptService("UI")
        ' Το αντικείμενο oBase είναι μια παρουσία της υπηρεσίας Base
        Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
        ' Το Object oSheet είναι ένα παράδειγμα της υπηρεσίας Datasheet
        Set oSheet = oBase.OpenTable("Customers")

Στο παραπάνω παράδειγμα, είναι επίσης δυνατό να χρησιμοποιήσετε τη μέθοδο OpenQuery από την υπηρεσία Base για να λάβετε μια παρουσία του Datasheet.

Για να καλέσετε την υπηρεσία Datasheet όταν το αρχείο της βάσης δεδομένων δεν είναι ανοιχτό, χρησιμοποιήστε τις μεθόδους OpenTable, OpenQuery, ή OpenSql από την υπηρεσία Database. Το παρακάτω παράδειγμα χρησιμοποιεί τη μέθοδο OpenTable για να ανοίξει έναν υπάρχοντα πίνακα στο αρχείο της βάσης δεδομένων:

        Dim oDatabase As Object, oSheet As Object
        ' Το αντικείμενο oDatabase είναι μια παρουσία της υπηρεσίας Database
        Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
        ' Το Object oSheet είναι ένα παράδειγμα της υπηρεσίας Datasheet
        Set oSheet = oDatabase.OpenTable("Customers")

##### Σε Python

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

        from scriptforge import CreateScriptService
        ui = CreateScriptService("UI")
        base_doc = ui.GetDocument(r"C:\Documents\MyFile.odb")
        sheet = base_doc.OpenTable("Customers")

        database = CreateScriptService("Database", r"C:\Documents\myDB.odb")
        sheet = database.OpenTable("Customers")

## Ιδιότητες

Οι ακόλουθες ιδιότητες είναι διαθέσιμες στην υπηρεσία Datasheet:

Όνομα | Μόνο για ανάγνωση | Τύπος | Περιγραφή
--- | --- | --- | ---
ColumnHeaders | Ναι | Πίνακας συμβολοσειρών | Επιστρέφει έναν Array με τα ονόματα των κεφαλίδων στηλών στο φύλλο δεδομένων.
CurrentColumn | Ναι | String | Επιστρέφει το τρέχον επιλεγμένο όνομα στήλης.
CurrentRow | Ναι | Integer | Επιστρέφει τον αριθμό της τρέχουσας επιλεγμένης σειράς, ξεκινώντας από το 1.
DatabaseFileName | Ναι | String | Επιστρέφει το όνομα αρχείου του αρχείου Base σε μορφή FSO.FileNaming.
Filter | Όχι | String | Καθορίζει ένα φίλτρο που θα εφαρμοστεί στο φύλλο δεδομένων που εκφράζεται ως ο όρος WHERE ενός ερωτήματος SQL χωρίς τη λέξη-κλειδί WHERE. Εάν καθοριστεί μια κενή συμβολοσειρά, τότε το ενεργό Filter καταργείται.
LastRow | Ναι | Integer | Επιστρέφει τον αριθμό των σειρών στο φύλλο δεδομένων.
OrderBy | Όχι | String | Καθορίζει τη σειρά με την οποία εμφανίζονται οι εγγραφές που εκφράζονται ως ο όρος ORDER BY ενός ερωτήματος SQL χωρίς τη λέξη-κλειδί ORDER BY. Εάν οριστεί μια κενή συμβολοσειρά, τότε η ενεργή OrderBy καταργείται.
ParentDatabase | Ναι | Αντικείμενο | Επιστρέφει την παρουσία υπηρεσίας Database στην οποία ανήκει το φύλλο δεδομένων.
Source | Ναι | String | Επιστρέφει μια συμβολοσειρά που αντιπροσωπεύει την προέλευση δεδομένων, η οποία μπορεί να είναι μια πρόταση SQL, ένα όνομα πίνακα ή ένα όνομα ερωτήματος.
SourceType | Ναι | String | Επιστρέφει τον τύπο της προέλευσης δεδομένων, που μπορεί να είναι μία από τις ακόλουθες τιμές: "SQL", "TABLE" ή "QUERY".
XComponent | Ναι | Αντικείμενο UNO | Επιστρέφει το αντικείμενο UNO com.sun.star.lang.XComponent που αντιπροσωπεύει το φύλλο δεδομένων.
XControlModel | Ναι | Αντικείμενο UNO | Επιστρέφει το αντικείμενο UNO com.sun.star.awt.XControl που αντιπροσωπεύει το φύλλο δεδομένων.
XTabControllerModel | Ναι | Αντικείμενο UNO | Επιστρέφει το αντικείμενο UNO com.sun.star.awt.XTabControllerModel που αντιπροσωπεύει το φύλλο δεδομένων.

## Μέθοδοι

Κατάλογος μεθόδων στην υπηρεσία Datasheet
Activate CloseDatasheet CreateMenu | GetText GetValue GoToCell | RemoveMenu Toolbars

## Activate

Φέρνει μπροστά το παράθυρο προβολής δεδομένων που αναφέρεται από την παρουσία Datasheet.

### Σύνταξη:

svc.Activate()

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

##### Σε Basic

          oSheet.Activate()

##### Σε Python

          sheet.Activate()

## CloseDatasheet

Κλείνει το παράθυρο προβολής δεδομένων στο οποίο αναφέρεται η παρουσία Datasheet.

### Σύνταξη:

svc.CloseDatasheet()

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

##### Σε Basic

          oSheet.CloseDatasheet()

##### Σε Python

          sheet.CloseDatasheet()

## CreateMenu

Δημιουργεί μια νέα καταχώρηση μενού στο παράθυρο προβολής δεδομένων και επιστρέφει μια παρουσία υπηρεσίας SFWidgets.Menu, με την οποία μπορούν να προστεθούν στοιχεία μενού μέσω προγραμματισμού.

Τα μενού που προστέθηκαν χρησιμοποιώντας τη μέθοδο CreateMenu χάνονται μόλις κλείσει το παράθυρο προβολής δεδομένων.

### Σύνταξη:

svc.CreateMenu(menuheader: str, opt before: any, opt submenuchar: str): obj

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

menuheader: Το όνομα του νέου μενού.

before: Αυτό το όρισμα μπορεί να είναι είτε το όνομα μιας υπάρχουσας καταχώρισης μενού πριν από την οποία θα τοποθετηθεί το νέο μενού, είτε ένας αριθμός που εκφράζει τη θέση του νέου μενού. Εάν αυτό το όρισμα μείνει κενό, το νέο μενού τοποθετείται ως τελευταία καταχώρηση.

submenuchar: Ο οριοθέτης που χρησιμοποιείται στα δέντρα μενού (Προεπιλογή = ">")

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

##### Σε Basic

          Dim oMenu As Object
          Set oMenu = oSheet.CreateMenu("My Menu", Before := "Data")
          With oMenu
              .AddItem("Item 1", Command := ".uno:About")
              ' ...
              .Dispose()
          End With

##### Σε Python

          menu = sheet.CreateMenu("My Menu", before="Data")
          menu.AddItem("Item 1", command=".uno:About")
          # ...
          menu.Dispose()

Διαβάστε τη σελίδα βοήθειας Menu service για να μάθετε περισσότερα σχετικά με τον τρόπο δημιουργίας εγγραφών μενού και υπομενού και συσχετισμού εντολών.

## GetText

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

Αυτή η μέθοδος δεν αλλάζει τη θέση του δρομέα στο παράθυρο προβολής δεδομένων.

### Σύνταξη:

svc.GetText(column: any): str

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

column: Το όνομα της στήλης ως συμβολοσειρά ή η θέση της στήλης (ξεκινώντας από το 1). Εάν δοθεί μια θέση μεγαλύτερη από τον αριθμό των στηλών, επιστρέφεται η τελευταία στήλη.

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

##### Σε Basic

          oSheet.GetText("FirstName")

##### Σε Python

          sheet.GetText("FirstName")

## GetValue

Επιστρέφει την τιμή σε μια δεδομένη στήλη της τρέχουσας σειράς ως έγκυρο τύπο της Basic.

Οι τύποι που μπορούν να επιστραφούν είναι: String, Integer, Long, Single, Double, Date και Null.

Οι δυαδικοί τύποι επιστρέφονται ως τιμή Long που υποδεικνύει το μήκος του δυαδικού πεδίου.

Επιστρέφεται μια τιμή Empty εάν δεν ήταν δυνατή η ανάκτηση της απαιτούμενης τιμής.

Αυτή η μέθοδος δεν αλλάζει τη θέση του δρομέα στο παράθυρο προβολής δεδομένων.

### Σύνταξη:

svc.GetValue(column: any): any

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

column: Το όνομα της στήλης ως συμβολοσειρά, ή η θέση της στήλης (ξεκινώντας από το 1). Εάν δοθεί μια θέση μεγαλύτερη από τον αριθμό των στηλών, επιστρέφεται η τελευταία στήλη.

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

##### Σε Basic

          oSheet.GetValue("Address")

##### Σε Python

          sheet.GetValue("Address")

## GoToCell

Μετακινεί τον δρομέα στην καθορισμένη γραμμή και στήλη.

### Σύνταξη:

svc.GoToCell(opt row: int, opt column: any): bool

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

row: Ο αριθμός της σειράς ως αριθμητική τιμή που ξεκινά από το 1. Εάν η ζητούμενη σειρά υπερβαίνει τον αριθμό των υπαρχουσών σειρών, ο δρομέας μετακινείται στην τελευταία σειρά. Εάν αυτό το όρισμα δεν έχει καθοριστεί, τότε η σειρά δεν αλλάζει.

column: Το όνομα της στήλης ως String, ή η θέση της στήλης (ξεκινώντας από το 1). Εάν η ζητούμενη στήλη υπερβαίνει τον αριθμό των υπαρχουσών στηλών, ο δρομέας μετακινείται στην τελευταία στήλη. Εάν αυτό το όρισμα δεν έχει καθοριστεί, τότε η στήλη δεν αλλάζει.

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

##### Σε Basic

          ' Μετακινεί τον δρομέα στη στήλη "LastName" στη σειρά 4
          oSheet.GoToCell(4, "LastName")
          ' Μετακινεί τον δρομέα στην τρίτη στήλη της τρέχουσας σειράς
          oSheet.GoToCell(Column := 3)
          ' Μετακινεί τον δρομέα μία σειρά προς τα κάτω αφήνοντάς τον στην ίδια στήλη
          oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
          ' Μετακινείται στην τελευταία στήλη της τελευταίας σειράς
          Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
          oSheet.GoToCell(oSheet.LastRow, LastColumn)

##### Σε Python

          sheet.GoToCell(4, "LastName")
          sheet.GoToCell(column=3)
          sheet.GoToCell(row=sheet.CurrentRow + 1)
          sheet.GoToCell(sheet.LastRow, len(sheet.ColumnHeaders))

## RemoveMenu

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

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

### Σύνταξη:

svc.RemoveMenu(menuheader: str): bool

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

menuheader: Το όνομα με διάκριση πεζών-κεφαλαίων του μενού που θα καταργηθεί. Το όνομα δεν πρέπει να περιλαμβάνει τον χαρακτήρα tilde ("~").

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

##### Σε Basic

          oSheet.RemoveMenu("Data")

##### Σε Python

          sheet.RemoveMenu("Data")

### Toolbars

Αυτή η μέθοδος επιστρέφει είτε έναν κατάλογο με τα διαθέσιμα ονόματα της γραμμής εργαλείων στο πραγματικό έγγραφο, είτε μια παρουσία υπηρεσίας SFWidgets.Toolbar.

### Σύνταξη:

svc.Toolbars(opt ToolbarName: str): uno
svc.Toolbars(): str[0..]

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

ToolbarName: Το συνηθισμένο όνομα μιας από τις διαθέσιμες γραμμές εργαλείων.

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

##### Σε Basic

        Dim oToolbar As Object
        Set oToolbar = oDoc.Toolbars("myToolbar")

##### Σε Python

        a_list = doc.Toolbars()

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

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

SFDatabases.Database

Υπηρεσία ScriptForge.UI