Service SFDatabases.Datasheet

Le service Datasheet permet de visualiser le contenu des tables de la base de données ainsi que les résultats des requêtes et des instructions SQL à l'aide de la vue de données de Base. De plus, ce service permet de :

Invocation du service

Avant d'utiliser le service Datasheet, la bibliothèque ScriptForge doit être chargée ou importée :

note

‚ÄĘ Les macros Basic n√©cessitent de charger la biblioth√®que ScriptForge √† l'aide de l'instruction suivante¬†:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

‚ÄĘ Les scripts Python n√©cessitent un import depuis le module scriptforge¬†:
from scriptforge import CreateScriptService


En Basic :

Le service Datasheet peut être appelé de deux manières différentes selon que le fichier de base de données est ouvert ou non.

L'exemple ci-dessous considère que le fichier de base de données est ouvert, donc le service UI peut être utilisé pour récupérer le document et la méthode OpenTable du service Database est utilisé pour obtenir une instance de service Datasheet.


    Dim ui As Object, oBase As Object, oSheet As Object
    Set ui = CreateScriptService("UI")
    ' L'objet oBase est une instance du service Base
    Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
    ' L'objet oSheet est une instance du service Datasheet
    Set oSheet = oBase.OpenTable("Customers")
  

Dans l'exemple ci-dessus, il est également possible d'utiliser la méthode OpenQuery du service Base pour obtenir une instance Datasheet.

Pour invoquer le service Datasheet lorsque le fichier de base de données n'est pas ouvert, utilisez les méthodes OpenTable, OpenQuery ou OpenSql à partir de le service Database. L'exemple ci-dessous utilise la méthode OpenTable pour ouvrir une table existante dans le fichier de base de données :


    Dim oDatabase As Object, oSheet As Object
    ' L'objet oDatabase est une instance du service Database
    Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
    ' L'objet oSheet est une instance du service Datasheet
    Set oSheet = oDatabase.OpenTable("Customers")
  
En Python

Les exemples ci-dessus peuvent être traduits en Python comme suit :


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

Propriétés

Les propriétés suivantes sont disponibles dans le service Datasheet :

Nom

Lecture seule

Type

Description

ColumnHeaders

Oui

Matrice de cha√ģnes

Renvoie un Array avec les noms des en-têtes de colonne dans la feuille de données.

CurrentColumn

Oui

String

Renvoie le nom de la colonne actuellement sélectionnée.

CurrentRow

Oui

Integer

Renvoie le numéro de la ligne actuellement sélectionnée, en commençant à 1.

DatabaseFileName

Oui

String

Renvoie le nom de fichier du fichier Base au format FSO.FileNaming.

Filter

Non

String

Sp√©cifie un filtre √† appliquer √† la feuille de donn√©es exprim√© sous la forme de la clause WHERE d'une requ√™te SQL sans le mot cl√© WHERE. Si une cha√ģne vide est sp√©cifi√©e, le Filtre actif est supprim√©.

LastRow

Oui

Integer

Renvoie le nombre de lignes dans la feuille de données.

OrderBy

Non

String

Sp√©cifie l'ordre dans lequel les enregistrements sont affich√©s sous la forme de la clause ORDER BY d'une requ√™te SQL sans le mot cl√© ORDER BY. Si une cha√ģne vide est sp√©cifi√©e, le OrderBy actif est supprim√©.

ParentDatabase

Oui

Objet

Renvoie l'instance de service Database à laquelle appartient la feuille de données.

Source

Oui

String

Renvoie une cha√ģne qui repr√©sente la source de donn√©es, qui peut √™tre une instruction SQL, un nom de table ou un nom de requ√™te.

SourceType

Oui

String

Renvoie le type de la source de données, qui peut être l'une des valeurs suivantes : "SQL", "TABLE" ou "QUERY".

XComponent

Oui

Objet UNO

Renvoie l'objet UNO com.sun.star.lang.XComponent qui représente la feuille de données.

XControlModel

Oui

Objet UNO

Renvoie l'objet UNO com.sun.star.awt.XControl qui représente la feuille de données

XTabControllerModel

Oui

Objet UNO

Renvoie l'objet UNO com.sun.star.awt.XTabControllerModel qui représente la feuille de données.


Méthodes

Liste des méthodes dans le service Datasheet

Activate
CloseDatasheet
CreateMenu

GetText
GetValue
GoToCell

RemoveMenu
Toolbars



Activate

Amène au premier plan la fenêtre d'affichage des données référencée par l'instance Datasheet.

Syntaxe :

svc.Activate()

Exemple :

En Basic :

      oSheet.Activate()
    
En Python

      sheet.Activate()
    

CloseDatasheet

Ferme la fenêtre d'affichage des données référencée par l'instance Datasheet.

Syntaxe :

svc.CloseDatasheet()

Exemple :

En Basic :

      oSheet.CloseDatasheet()
    
En Python

      sheet.CloseDatasheet()
    

CreateMenu

Crée une nouvelle entrée de menu dans la fenêtre d'affichage des données et renvoie une instance de service SFWidgets.Menu, par laquelle des éléments de menu peuvent être ajoutés par programmation.

note

Les menus ajoutés à l'aide de la méthode CreateMenu sont perdus dès que la fenêtre d'affichage des données est fermée.


Syntaxe :

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

Paramètres :

menuheader : le nom du nouveau menu.

before : cet argument peut être soit le nom d'une entrée de menu existante devant laquelle le nouveau menu sera placé, soit un nombre exprimant la position du nouveau menu. Si cet argument est laissé vide, le nouveau menu est placé comme dernière entrée.

submenuchar : Le délimiteur utilisé dans les arborescences de menu (par défaut = ">")

Exemple :

En Basic :

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

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

Lisez la page d'aide Service de menu pour en savoir plus sur la création d'entrées de menu et de sous-menu et sur les commandes associées.


GetText

Renvoie le texte d'une colonne donnée de la ligne actuelle.

note

Cette méthode ne modifie pas la position du curseur dans la fenêtre d'affichage des données.


Syntaxe :

svc.GetText(column: any): str

Paramètres :

column¬†: le nom de la colonne sous forme de cha√ģne ou la position de la colonne (commen√ßant √† 1). Si une position sup√©rieure au nombre de colonnes est donn√©e, la derni√®re colonne est renvoy√©e.

Exemple :

En Basic :

      oSheet.GetText("FirstName")
    
En Python

      sheet.GetText("FirstName")
    

GetValue

Renvoie la valeur dans une colonne donnée de la ligne actuelle en tant que type Basic valide.

Les types pouvant être renvoyés sont : String, Integer, Long, Single, Double, Date et Null.

Les types binaires sont renvoyés sous la forme d'une valeur Long indiquant la longueur du champ binaire.

Une valeur Empty est renvoyée si la valeur requise n'a pas pu être récupérée.

note

Cette méthode ne modifie pas la position du curseur dans la fenêtre d'affichage des données.


Syntaxe :

svc.GetValue(column: any): any

Paramètres :

column¬†: le nom de la colonne sous forme de cha√ģne ou la position de la colonne (commen√ßant √† 1). Si une position sup√©rieure au nombre de colonnes est donn√©e, la derni√®re colonne est renvoy√©e.

Exemple :

En Basic :

      oSheet.GetValue("Address")
    
En Python

      sheet.GetValue("Address")
    

GoToCell

Déplace le curseur sur la ligne et la colonne spécifiées.

note

Cette méthode ne modifie pas la position du curseur dans la fenêtre d'affichage des données.


Syntaxe :

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

Paramètres :

row : Le numéro de ligne sous forme de valeur numérique commençant à 1. Si la ligne demandée dépasse le nombre de lignes existantes, le curseur est déplacé vers la dernière ligne. Si cet argument n'est pas spécifié, la ligne n'est pas modifiée.

column : Le nom de la colonne sous forme de String ou la position de la colonne (commençant à 1). Si la colonne demandée dépasse le nombre de colonnes existantes, le curseur est déplacé vers la dernière colonne. Si cet argument n'est pas spécifié, la colonne n'est pas modifiée.

Exemple :

En Basic :

      ' Déplace le curseur dans la colonne "LastName" de la ligne 4
      oSheet.GoToCell(4, "LastName")
      ' Déplace le curseur sur la troisième colonne de la ligne courante
      oSheet.GoToCell(Column := 3)
      ' Déplace le curseur d'une ligne vers le bas en le laissant dans la même colonne
      oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
      ' Passe à la dernière colonne de la dernière ligne
      Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
      oSheet.GoToCell(oSheet.LastRow, LastColumn)
    
En Python

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

RemoveMenu

Supprime une entrée de menu de la vue des données par son nom.

note

Cette m√©thode peut supprimer les menus qui appartiennent √† l'interface utilisateur standard ainsi que les menus qui ont √©t√© ajout√©s par programme avec la m√©thode CreateMenu. La suppression des menus standard n'est pas permanente et ils r√©appara√ģtront apr√®s la fermeture et la r√©ouverture de la fen√™tre.


Syntaxe :

svc.RemoveMenu(menuheader: str): bool

Paramètres :

menuheader : Le nom sensible à la casse du menu à supprimer. Le nom ne doit pas inclure le caractère tilde ("~").

Exemple :

En Basic :

      oSheet.RemoveMenu("Data")
    
En Python

      sheet.RemoveMenu("Data")
    

Toolbars

Cette méthode renvoie soit une liste des noms de barres d'outils disponibles dans le document actif, soit une instance du service SFWidgets.Toolbar.

Syntaxe :

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

Paramètres :

ToolbarName : le nom habituel de l'une des barres d'outils disponibles.

Exemple :

En Basic :

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

    a_list = doc.Toolbars()
  
warning

Toutes les routines ou identifiants de base ScriptForge qui sont préfixés par un caractère de soulignement "_" sont réservés à un usage interne. Ils ne sont pas destinés à être utilisés dans des macros de base ou des scripts Python.


Aidez-nous !