Υπηρεσία SFDatabases.Datasheet

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

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

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

note

• Οι μακροεντολές 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, με την οποία μπορούν να προστεθούν στοιχεία μενού μέσω προγραμματισμού.

note

Τα μενού που προστέθηκαν χρησιμοποιώντας τη μέθοδο 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()
    
tip

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


GetText

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

note

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


Σύνταξη:

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 εάν δεν ήταν δυνατή η ανάκτηση της απαιτούμενης τιμής.

note

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


Σύνταξη:

svc.GetValue(column: any): any

Παράμετροι:

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

Παράδειγμα:

Σε Basic

      oSheet.GetValue("Address")
    
Σε Python

      sheet.GetValue("Address")
    

GoToCell

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

note

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


Σύνταξη:

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

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

note

Αυτή η μέθοδος μπορεί να αφαιρέσει μενού που ανήκουν στην τυπική διεπαφή χρήστη, καθώς και μενού που προστέθηκαν μέσω προγραμματισμού με τη μέθοδο 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()
  
warning

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


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