Servizio SFDatabases.Database

Il servizio Datasheet consente di visualizzare i contenuti delle tabelle di un database, così come i risultati delle ricerche e delle istruzioni SQL usando la Struttura dati di Base. Inoltre, questo servizio permette di:

Invocazione del servizio

Prima di usare il servizio Datasheet è necessario caricare o importare le librerie ScriptForge:

note

• Le macro in Basic richiedono il caricamento della libreria ScriptForge usando la seguente istruzione:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Gli script in Python richiedono un'importazione dal modulo scriptforge:
from scriptforge import CreateScriptService


In Basic

Il servizio Datasheet può essere invocato in due modi differenti a seconda che il file del database sia aperto o no.

L'esempio seguente presuppone che il file del database sia aperto, perciò il servizio UI può essere usato per trovare il documento e il metodo OpenTable del servizio Database è usato per ottenere un'istanza del servizio Datasheet.


    Dim ui As Object, oBase As Object, oSheet As Object
    Set ui = CreateScriptService("UI")
    ' L'oggetto oBase è un'istanza del servizio Base
    Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
    ' L'oggetto oSheet è un'istanza del servizio Datasheet
    Set oSheet = oBase.OpenTable("Customers")
  

Nell'esempio qui sopra è anche possibile usare il metodo OpenQuery del servizio Base per ottenere un'istanza di Datasheet.

Per invocare il servizio Datasheet quando il file del database non è aperto, usare i metodi OpenTable, OpenQuery o OpenSql del servizio Database. L'esempio seguente usa il metodo OpenTable per aprire una tabella esistente nel file di database:


    Dim oDatabase As Object, oSheet As Object
    ' L'oggetto oDatabase è un'istanza del servizio Database
    Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
    ' L'oggetto oSheet è un'istanza del servizio Datasheet
    Set oSheet = oDatabase.OpenTable("Customers")
  
In Python

Gli esempi qui sopra possono essere portati in Python come segue:


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

Proprietà

Le seguenti proprietà sono disponibili nel servizio Datasheet:

Nome

Solo lettura

Tipo

Descrizione

ColumnHeaders

Matrice di stringhe

Restituisce una matrice Array con i nomi delle intestazioni di colonna della struttura dati.

CurrentColumn

String

Restituisce il nome della colonna attualmente selezionata.

CurrentRow

Integer

Restituisce il numero della riga attualmente selezionata, a partire da 1.

DatabaseFileName

String

Restituisce il nome del file di Base nel formato FSO.FileNaming.

Filter

No

String

Specifica un filtro da applicare alla struttura dati espresso come clausola WHERE di una ricerca SQL senza la parola chiave WHERE. Se è specificata una stringa vuota il filtro attivo Filter viene eliminato.

LastRow

Integer

Restituisce il numero di righe nella struttura dati.

OrderBy

No

String

Specifica l'ordine in cui sono visualizzati i record, espresso come clausola ORDER BY di una ricerca SQL senza la parola chiave ORDER BY. Se è specificata una stringa vuota l'ordinamento attivo OrderBy viene eliminato.

ParentDatabase

Oggetto

Restituisce l'istanza del servizio Database a cui appartiene la struttura dati.

Source

String

Restituisce una stringa che rappresenta la sorgente dei dati, che può essere un'istruzione SQL, il nome di una tabella o il nome di una ricerca.

SourceType

String

Restituisce il tipo della sorgente dei dati, che può essere uno dei seguenti valori: "SQL", "TABLE" o "QUERY".

XComponent

Oggetto UNO

Restituisce l'oggetto UNO com.sun.star.lang.XComponent che rappresenta la struttura dati.

XControlModel

Oggetto UNO

Restituisce l'oggetto UNO com.sun.star.awt.XControl che rappresenta la struttura dati.

XTabControllerModel

Oggetto UNO

Restituisce l'oggetto UNO com.sun.star.awt.XTabControllerModel che rappresenta la struttura dati.


Metodi

Elenco dei metodi del servizio Datasheet

Activate
CloseDatasheet
CreateMenu

GetText
GetValue
GoToCell

RemoveMenu
Toolbars



Activate

Porta in primo piano la finestra della struttura dati a cui fa riferimento l'istanza di Datasheet.

Sintassi:

svc.Activate()

Esempio:

In Basic

      oSheet.Activate()
    
In Python

      sheet.Activate()
    

CloseDatasheet

Chiude la finestra della struttura dati a cui fa riferimento l'istanza di Datasheet.

Sintassi:

svc.CloseDatasheet()

Esempio:

In Basic

      oSheet.CloseDatasheet()
    
In Python

      sheet.CloseDatasheet()
    

CreateMenu

Crea una nuova voce di menu nella finestra della struttura dati e restituisce un'istanza del servizio SFWidgets.Menu, attraverso la quale le voci di menu possono essere aggiunte con la programmazione.

note

I menu aggiunti con il metodo CreateMenu vengono persi alla chiusura della finestra della struttura dati.


Sintassi:

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

Parametri:

menuheader: il nome del nuovo menu.

before: questo argomento può essere o il nome di una voce di menu esistente prima della quale posizionare il nuovo menu o un numero che rappresenta la posizione del nuovo menu. Se questo argomento è lasciato vuoto il nuovo menu sarà posizionato come ultima voce.

submenuchar: il delimitatore usato nei menu ad albero (predefinito = ">")

Esempio:

In Basic

      Dim oMenu As Object
      Set oMenu = oSheet.CreateMenu("Mio menu", Before := "Dati")
      With oMenu
          .AddItem("Voce 1", Command := ".uno:About")
          ' ...
          .Dispose()
      End With
    
In Python

      menu = sheet.CreateMenu("Mio menu", before="Dati")
      menu.AddItem("Voce 1", command=".uno:About")
      # ...
      menu.Dispose()
    
tip

Per saperne di più su come creare nuove voci di menu e sottomenu e sui comandi a queste associati leggere la pagina Servizio Menu della guida in linea.


GetText

Restituisce il testo nella colonna indicata della riga corrente.

note

Questo metodo non modifica la posizione del cursore nella finestra della struttura dati.


Sintassi:

svc.GetText(column: any): str

Parametri:

column: il nome della colonna in formato stringa o la sua posizione (a partire da 1). Se è indicata una posizione maggiore del numero di colonne, viene restituita l'ultima colonna.

Esempio:

In Basic

      oSheet.GetText("FirstName")
    
In Python

      sheet.GetText("FirstName")
    

GetValue

Restituisce il valore nella colonna indicata della riga corrente come tipo di Basic valido.

I tipi che possono essere restituiti sono: String, Integer, Long, Single, Double, Date e Null.

I tipi binari sono restituiti come valore Long che indica la lunghezza del campo binario.

Un valore Empty è restituito quando il valore richiesto non può essere trovato.

note

Questo metodo non modifica la posizione del cursore nella finestra della struttura dati.


Sintassi:

svc.GetValue(column: any): any

Parametri:

column: il nome della colonna in formato stringa o la sua posizione (a partire da 1). Se è indicata una posizione maggiore del numero di colonne, viene restituita l'ultima colonna.

Esempio:

In Basic

      oSheet.GetValue("Address")
    
In Python

      sheet.GetValue("Address")
    

GoToCell

Sposta il cursore nella riga e colonna specificate.

note

Questo metodo non modifica la posizione del cursore nella finestra della struttura dati.


Sintassi:

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

Parametri:

row: il numero della riga come valore numerico a partire da 1. Se la riga richiesta è superiore al numero di righe esistenti, il cursore viene spostato all'ultima riga. Se questo argomento non è specificato, allora la riga non viene modificata.

column: il nome della colonna in formato String o la posizione della colonna (a partire da 1). Se la colonna richiesta è superiore al numero di colonne esistenti, il cursore viene spostato all'ultima colonna. Se questo argomento non è specificato, allora la colonna non viene modificata.

Esempio:

In Basic

      ' Sposta il cursore alla colonna "UltimoNome" della riga 4
      oSheet.GoToCell(4, "UltimoNome")
      ' Sposta il cursore alla terza colonna della riga corrente
      oSheet.GoToCell(Column := 3)
      ' Sposta il cursore in basso di una riga lasciandolo nella stessa colonna
      oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
      ' Si sposta all'ultima colonna dell'ultima riga
      Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
      oSheet.GoToCell(oSheet.LastRow, LastColumn)
    
In Python

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

RemoveMenu

Elimina una voce di menu dalla struttura dati in base al suo nome.

note

Questo metodo può eliminare menu che appartengono all'interfaccia utente standard, così come menu aggiunti attraverso la programmazione con il metodo CreateMenu. L'eliminazione di menu standard non è permanente e questi ricompaiono in seguito alla chiusura e riapertura della finestra.


Sintassi:

svc.RemoveMenu(menuheader: str): bool

Parametri:

menuheader: il nome, che distingue tra maiuscole e minuscole, del menu da eliminare. Il nome non deve comprendere il carattere tilde ("~").

Esempio:

In Basic

      oSheet.RemoveMenu("Data")
    
In Python

      sheet.RemoveMenu("Data")
    

Toolbars

Questo metodo restituisce un elenco dei nomi delle barre degli strumenti disponibili nel documento corrente o un'istanza del servizio SFWidgets.Toolbar.

Sintassi:

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

Parametri:

ToolbarName: il nome comune di una delle barre degli strumenti disponibili.

Esempio:

In Basic

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

    a_list = doc.Toolbars()
  
warning

Tutte le routine e gli identificatori Basic di ScriptForge che iniziano con un carattere di sottolineatura "_" sono riservati per uso interno. Non è previsto il loro utilizzo nelle macro in Basic o negli script in Python.


Sosteneteci!