LibreOffice 24.8 Βοήθεια
Η υπηρεσία Datasheet επιτρέπει την οπτικοποίηση των περιεχομένων των πινάκων της βάσης δεδομένων, καθώς και των αποτελεσμάτων των ερωτημάτων και των προτάσεων SQL χρησιμοποιώντας την προβολή δεδομένων της Base. Επιπλέον, αυτή η υπηρεσία επιτρέπει:
Προσθήκη προσαρμοσμένων μενού στην προβολή δεδομένων.
Πρόσβαση τιμών σε συγκεκριμένες θέσεις της προβολής δεδομένων.
Τοποθέτηση του δρομέα σε ένα συγκεκριμένο κελί της προβολής δεδομένων.
Πριν χρησιμοποιήσετε την υπηρεσία Datasheet, πρέπει να φορτωθεί ή να εισαχθεί η βιβλιοθήκη ScriptForge:
Η υπηρεσία 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 ως εξής:
    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 | ||
|---|---|---|
Φέρνει μπροστά το παράθυρο προβολής δεδομένων που αναφέρεται από την παρουσία Datasheet.
svc.Activate()
      oSheet.Activate()
    
      sheet.Activate()
    Κλείνει το παράθυρο προβολής δεδομένων στο οποίο αναφέρεται η παρουσία Datasheet.
svc.CloseDatasheet()
      oSheet.CloseDatasheet()
    
      sheet.CloseDatasheet()
    Δημιουργεί μια νέα καταχώρηση μενού στο παράθυρο προβολής δεδομένων και επιστρέφει μια παρουσία υπηρεσίας SFWidgets.Menu, με την οποία μπορούν να προστεθούν στοιχεία μενού μέσω προγραμματισμού.
Τα μενού που προστέθηκαν χρησιμοποιώντας τη μέθοδο CreateMenu χάνονται μόλις κλείσει το παράθυρο προβολής δεδομένων.
svc.CreateMenu(menuheader: str, opt before: any, opt submenuchar: str): obj
menuheader: Το όνομα του νέου μενού.
before: Αυτό το όρισμα μπορεί να είναι είτε το όνομα μιας υπάρχουσας καταχώρισης μενού πριν από την οποία θα τοποθετηθεί το νέο μενού, είτε ένας αριθμός που εκφράζει τη θέση του νέου μενού. Εάν αυτό το όρισμα μείνει κενό, το νέο μενού τοποθετείται ως τελευταία καταχώρηση.
submenuchar: Ο οριοθέτης που χρησιμοποιείται στα δέντρα μενού (Προεπιλογή = ">")
      Dim oMenu As Object
      Set oMenu = oSheet.CreateMenu("My Menu", Before := "Data")
      With oMenu
          .AddItem("Item 1", Command := ".uno:About")
          ' ...
          .Dispose()
      End With
    
      menu = sheet.CreateMenu("My Menu", before="Data")
      menu.AddItem("Item 1", command=".uno:About")
      # ...
      menu.Dispose()
    Διαβάστε τη σελίδα βοήθειας Menu service για να μάθετε περισσότερα σχετικά με τον τρόπο δημιουργίας εγγραφών μενού και υπομενού και συσχετισμού εντολών.
Επιστρέφει το κείμενο σε μια δεδομένη στήλη της τρέχουσας σειράς.
Αυτή η μέθοδος δεν αλλάζει τη θέση του δρομέα στο παράθυρο προβολής δεδομένων.
svc.GetText(column: any): str
column: Το όνομα της στήλης ως συμβολοσειρά ή η θέση της στήλης (ξεκινώντας από το 1). Εάν δοθεί μια θέση μεγαλύτερη από τον αριθμό των στηλών, επιστρέφεται η τελευταία στήλη.
      oSheet.GetText("FirstName")
    
      sheet.GetText("FirstName")
    Επιστρέφει την τιμή σε μια δεδομένη στήλη της τρέχουσας σειράς ως έγκυρο τύπο της Basic.
Οι τύποι που μπορούν να επιστραφούν είναι: String, Integer, Long, Single, Double, Date και Null.
Οι δυαδικοί τύποι επιστρέφονται ως τιμή Long που υποδεικνύει το μήκος του δυαδικού πεδίου.
Επιστρέφεται μια τιμή Empty εάν δεν ήταν δυνατή η ανάκτηση της απαιτούμενης τιμής.
Αυτή η μέθοδος δεν αλλάζει τη θέση του δρομέα στο παράθυρο προβολής δεδομένων.
svc.GetValue(column: any): any
column: Το όνομα της στήλης ως συμβολοσειρά, ή η θέση της στήλης (ξεκινώντας από το 1). Εάν δοθεί μια θέση μεγαλύτερη από τον αριθμό των στηλών, επιστρέφεται η τελευταία στήλη.
      oSheet.GetValue("Address")
    
      sheet.GetValue("Address")
    Μετακινεί τον δρομέα στην καθορισμένη γραμμή και στήλη.
svc.GoToCell(opt row: int, opt column: any): bool
row: Ο αριθμός της σειράς ως αριθμητική τιμή που ξεκινά από το 1. Εάν η ζητούμενη σειρά υπερβαίνει τον αριθμό των υπαρχουσών σειρών, ο δρομέας μετακινείται στην τελευταία σειρά. Εάν αυτό το όρισμα δεν έχει καθοριστεί, τότε η σειρά δεν αλλάζει.
column: Το όνομα της στήλης ως String, ή η θέση της στήλης (ξεκινώντας από το 1). Εάν η ζητούμενη στήλη υπερβαίνει τον αριθμό των υπαρχουσών στηλών, ο δρομέας μετακινείται στην τελευταία στήλη. Εάν αυτό το όρισμα δεν έχει καθοριστεί, τότε η στήλη δεν αλλάζει.
      ' Μετακινεί τον δρομέα στη στήλη "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)
    
      sheet.GoToCell(4, "LastName")
      sheet.GoToCell(column=3)
      sheet.GoToCell(row=sheet.CurrentRow + 1)
      sheet.GoToCell(sheet.LastRow, len(sheet.ColumnHeaders))
    Καταργεί μια καταχώρηση μενού από την προβολή δεδομένων με το όνομά της.
Αυτή η μέθοδος μπορεί να αφαιρέσει μενού που ανήκουν στην τυπική διεπαφή χρήστη, καθώς και μενού που προστέθηκαν μέσω προγραμματισμού με τη μέθοδο CreateMenu. Η αφαίρεση των τυπικών μενού δεν είναι μόνιμη και θα εμφανιστούν ξανά μετά το κλείσιμο και το άνοιγμα του παραθύρου.
svc.RemoveMenu(menuheader: str): bool
menuheader: Το όνομα με διάκριση πεζών-κεφαλαίων του μενού που θα καταργηθεί. Το όνομα δεν πρέπει να περιλαμβάνει τον χαρακτήρα tilde ("~").
      oSheet.RemoveMenu("Data")
    
      sheet.RemoveMenu("Data")