Service SFDocuments.Base

Contenu
Index 🔎︎

# SFDocuments.Service 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 :

- Accéder à la base de données contenue dans un document Base.

- Ouvrir les documents de formulaire stockés dans un document Base.

- Vérifier si un document de formulaire à partir d'un document Base est actuellement chargé.

Ce service est disponible à partir de LibreOffice 7.2 et supérieures.

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

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

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

Liste des méthodes dans le service Base
FormDocuments Forms | GetDatabase IsLoaded | OpenFormDocument

## 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 = oDoc.FormDocuments()
        for formName in myForms:
            bas.MsgBox(formName)

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 :

- Une matrice de base zéro avec les noms de tous les formulaires contenus dans un document de formulaire (si l'argument Form est absent)

- Un objet SFDocuments.Form représentant le formulaire spécifié dans l'argument Form.

### 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.

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, instruction 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 création.

Si le document formulaire est déjà ouvert, il est activé sans changer son mode. La méthode renvoie True si le document de formulaire a pu être ouvert.

### Syntaxe :

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

### 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 :

        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 :

        oDoc.OpenFormDocument("myFolder/myFormDocument")

##### En Python

        doc.OpenFormDocument("myFormDocument")

        doc.OpenFormDocument("myFolder/myFormDocument")

Toutes les routines ou identificateurs Basic ScriptForge précédés d'un trait de soulignement "_" sont réservés à un usage interne. Ils ne sont pas destinés à être utilisés dans les macros Basic.

Rubriques connexes

SFDatabases.Database

SFDocuments.Document service

SFDocuments.Form service

ScriptForge.UI service