Service SFDocuments.Base

Le service Base fournit un certain nombre de méthodes et de propriétés pour faciliter la gestion et la manipulation des documents LibreOffice Base.

Ce service est étroitement lié au service Document, qui fournit des méthodes génériques pour gérer les documents LibreOffice, y compris les documents Base. Par conséquent, le service Base étend le service Document et fournit des méthodes supplémentaires spécifiques aux documents Base, permettant aux utilisateurs de :

tip

Reportez-vous au service Document pour en savoir plus sur les méthodes et les propriétés qui peuvent être utilisées pour gérer les documents LibreOffice.


Invocation du service

Avant d'utiliser le service Base, 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 Base peut être appelé de différentes manières. L'extrait de code ci-dessous utilise la méthode CreateBaseDocument du service UI pour créer un nouveau fichier Base.

Notez que dans tous les exemples, l'objet oDoc est une instance du service Base.


    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateBaseDocument("C:\Documents\MyFile.odb")
  

Le service Base peut également être instancié lors de l'ouverture d'un fichier Base existant, comme indiqué ci-dessous :


    Set oDoc = ui.OpenBaseDocument("C:\Documents\MyFile.odb")
  

Si un document Base est déjà ouvert, il est possible d'instancier directement le service Base :


    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  
En Python

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


    from scriptforge import CreateScriptService
    ui = CreateScriptService("UI")
    doc = ui.CreateBaseDocument(r"C:\Documents\MyFile.odb")
  

    doc = ui.OpenBaseDocument(r"C:\Documents\MyFile.odb")
  

    doc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  
note

L'utilisation de la sous-chaîne "SFDocuments." dans l'exemple précédent est facultative.


Liste des méthodes dans le service Base

CloseFormDocument
FormDocuments
Forms
GetDatabase

IsLoaded
OpenFormDocument
OpenQuery
OpenTable

PrintOut
SetPrinter



CloseFormDocument

Ferme le document de formulaire donné. Renvoie True si la fermeture réussit.

warning

La méthode CloseFormDocument est obsolète depuis LibreOffice 7.6. Bien qu'elle soit toujours disponible, elle pourra être supprimée du service Base dans une version ultérieure. Utilisez plutôt la méthode CloseDocument du service FormDocument.


Syntaxe :

svc.CloseFormDocument(formdocument: str): bool

Paramètres :

formdocument : Le nom du FormDocument à fermer, sous forme de chaîne sensible à la casse.

Exemple :

Si les documents de formulaire sont organisés en dossiers, il est nécessaire d'inclure le nom du dossier pour spécifier le document de formulaire à ouvrir, comme illustré dans les exemples suivants :

En Basic :

    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
En Python

    doc.CloseFormDocument('Folder1/myFormDocument')
  

FormDocuments

Renvoie une matrice avec les noms complets (chemin/nom) de tous les documents de formulaire dans le document Base sous la forme d'une matrice de chaînes de base zéro.

Syntaxe :

svc.FormDocuments(): str[0..*]

Exemple :

L'extrait de code ci-dessous imprime les noms de tous les documents de formulaire dans le document Base actuel.

En Basic :

    Dim oDoc as Object, myForms as Object, formName as String
    Set oDoc = CreateScriptService("Document", ThisDataBaseDocument)
    Set myForms = oDoc.FormDocuments()
    For Each formName In myForms
        MsgBox formName
    Next formName
  
En Python

    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisDataBaseDocument)
    myForms = doc.FormDocuments()
    for formName in myForms:
        bas.MsgBox(formName)
  
tip

Pour en savoir plus sur les documents de formulaire, reportez-vous à la page d'aide du service Form.


Forms

En fonction des paramètres fournis, cette méthode renverra :

warning

La méthode Forms est obsolète depuis LibreOffice 7.6. Bien qu'elle soit toujours disponible, elle pourra être supprimée du service Base dans une version ultérieure. Utilisez plutôt la méthode Forms du service FormDocument.


Syntaxe :

svc.Forms(formdocument: str): str[0..*]

svc.Forms(formdocument: str, form: str = ''): svc

svc.Forms(formdocument: str, form: int): svc

Paramètres :

formdocument : Le nom d'un document de formulaire valide sous forme de chaîne sensible à la casse.

form: le nom ou le numéro d'index du formulaire stocké dans le document de formulaire. Si cet argument est absent, la méthode renverra une liste avec les noms de tous les formulaires disponibles dans le document de formulaire.

note

Bien qu'il soit possible d'utiliser des numéros d'index pour faire référence à des formulaires, cela n'est recommandé que lorsqu'il n'y a qu'un seul formulaire dans le document de formulaire. S'il y a deux formulaires ou plus, il est préférable d'utiliser le nom du formulaire à la place.


Exemple :

La première ligne de l'exemple ci-dessous renvoie une liste de tous les formulaires du document de formulaire « myFormDocument ». La deuxième ligne renvoie une instance du service Form représentant le formulaire « myForm ».

En Basic :

    Dim formsList as Object : formsList = oDoc.Forms("myFormDocument")
    Dim oForm as Object : oForm = oDoc.Forms("myFormDocument", "myForm")
  
En Python

    formsList = doc.Forms("myFormDocument")
    form = doc.Forms("myFormDocument", "myForm")
  

GetDatabase

Renvoie une instance du service Database qui permet l'exécution de commandes SQL sur la base de données définie et/ou stockée dans le document Base actif

Syntaxe :

svc.GetDatabase(user: str = '', password: str = ''): svc

Paramètres :

user, password: paramètres de connexion facultatifs sous forme de chaînes. La valeur par défaut des deux paramètres est une chaîne vide "".

Exemple :

En Basic :

    Dim myDoc As Object, myDatabase As Object, ui As Object
    Set ui = CreateScriptService("UI")
    Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
    ' L'utilisateur et le mot de passe sont fournis ci-dessous, si nécessaire
    Set myDatabase = myDoc.GetDatabase()
    '   ... requêtes Run, instruction SQL, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  
En Python

    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    #   ... requêtes Run, instructions SQL, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  

IsLoaded

Renvoie True si le FormDocument spécifié est actuellement ouvert.

Syntaxe :

svc.IsLoaded(formdocument: str): bool

Paramètres :

formdocument : le nom d'un FormDocument à vérifier, en tant que chaîne sensible à la casse.

Exemple :

En Basic :

    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
En Python

    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  

OpenFormDocument

Ouvre le FormDocument spécifié en mode normal ou en mode conception. Cette méthode renvoie une instance de service FormDocument correspondant au document de formulaire spécifié.

Si le document formulaire est déjà ouvert, il est activé sans changer de mode.

Si le document de formulaire spécifié n'existe pas, alors Rien est renvoyé.

Syntaxe :

svc.OpenFormDocument(formdocument: str, designmode: bool = False): svc

Paramètres :

formDocument : Le nom du FormDocument à ouvrir, sous forme de chaîne sensible à la casse.

designmode : si cet argument est True, le FormDocument sera ouvert en mode ébauche.

Exemple :

En Basic :

La plupart des formulaires sont stockés à la racine du document Base et peuvent être ouverts simplement en utilisant leurs noms, comme dans l'exemple ci-dessous :


    Dim oFormDoc As Object
    oFormDoc = oDoc.OpenFormDocument("myFormDocument")
  

Si les documents de formulaire sont organisés en dossiers, il devient nécessaire d'inclure le nom du dossier pour spécifier le document de formulaire à ouvrir, comme illustré dans l'exemple suivant :


    oFormDoc = oDoc.OpenFormDocument("myFolder/myFormDocument")
  
En Python

    formDoc = doc.OpenFormDocument("myFormDocument")
  

    formDoc = doc.OpenFormDocument("myFolder/myFormDocument")
  

OpenQuery

Ouvre la fenêtre Affichage des données de la requête spécifiée et renvoie une instance du service Datasheet.

La requête peut être ouverte en mode normal ou en mode conception.

Si la requête est déjà ouverte, sa fenêtre d'affichage des données sera rendue active.

note

La fermeture du document de base entraînera également la fermeture de la fenêtre Affichage des données.


Syntaxe :

svc.OpenQuery(queryname: str, designmode: bool = False): obj

Paramètres :

queryname : le nom d'une requête existante sous forme de chaîne sensible à la casse.

designmode : si cet argument est défini sur True, la requête est ouverte en mode conception. Sinon, elle est ouverte en mode normal (par défaut = False).

Exemple :

En Basic :

      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
En Python

      doc.OpenQuery("MyQuery", designmode=True)
    

OpenTable

Ouvre la fenêtre Affichage des données de la table spécifiée et renvoie une instance du service Datasheet.

La table peut être ouverte en mode normal ou en mode conception.

Si la table est déjà ouverte, sa fenêtre Affichage des données sera rendue active.

note

La fermeture du document Base entraînera également la fermeture de la fenêtre Affichage des données.


Syntaxe :

svc.OpenTable(tablename: str, designmode: bool = False): obj

Paramètres :

tablename : le nom d'une table existante sous la forme d'une chaîne sensible à la casse.

designmode : si cet argument est défini sur True, la table est ouverte en mode conception. Sinon, il est ouvert en mode normal (par défaut = False).

Exemple :

En Basic :

      oDoc.OpenTable("MyTable", DesignMode = False)
    
En Python

      doc.OpenTable("MyTable", designmode=False)
    

PrintOut

Cette méthode envoie le contenu du document de formulaire donné à une imprimante par défaut ou à une imprimante définie par la méthode SetPrinter().

Renvoie True si le document a été imprimé avec succès.

warning

La méthode PrintOut est obsolète depuis LibreOffice 7.6. Bien qu'elle soit toujours disponible, elle pourra être supprimée du service Base dans une version ultérieure. Utilisez plutôt la méthode PrintOut du service FormDocument.


Syntaxe :

svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool

Paramètres :

formdocument : un nom de formulaire de document valide sous forme de chaîne sensible à la casse. Le document de formulaire doit être ouvert. Il est activé par la méthode.

pages : les pages à imprimer sous forme de chaîne, comme dans l'interface utilisateur. Exemple : "1-4;10;15-18". La valeur par défaut est toutes les pages.

copies : le nombre de copies. La valeur par défaut est 1.

Exemple :

En Basic :

    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
En Python

    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  

SetPrinter

Définissez les options d'impression pour un document de formulaire. Le document de formulaire doit être ouvert.

Renvoie True en cas de succès.

warning

La méthode SetPrinter est obsolète depuis LibreOffice 7.6. Bien qu'elle soit toujours disponible, elle pourra être supprimée du service Base dans une version ultérieure. Utilisez plutôt la méthode SetPrinter du service Document.


Syntaxe :

svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool

Paramètres :

formdocument : un nom de formulaire de document valide sous forme de chaîne sensible à la casse.

printer : le nom de la file d'attente d'impression vers laquelle imprimer. En cas d'absence, l'imprimante par défaut est définie.

orientation : soit PORTRAIT ou PAYSAGE. Lorsque le paramètre est absent, reste inchangé par rapport aux paramètres de l'imprimante.

paperformat : spécifie le format du papier sous la forme d'une valeur de chaîne qui peut être soit A3, A4, A5, LETTER, LEGAL ou TABLOID. Reste inchangé en cas d'absence.

Exemple :

En Basic :

    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
En Python

    doc.SetPrinter('myForm', paperformat='TABLOID')
  
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 !