Contenu

# Service SFDocuments.FormDocument

Le service FormDocument permet d'accéder aux documents de formulaire stockés dans les documents LibreOffice Base.

Dans un document Base, les documents de formulaire existants peuvent être visualisés en sélectionnant Afficher - Formulaires dans l'interface utilisateur. Chaque document de formulaire peut être composé d'un ou plusieurs formulaires, y compris le formulaire principal et d'autres sous-formulaires.

Ce service hérite des méthodes et des propriétés du service Document et est souvent utilisé avec les services Base et Database.

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 FormDocument, la bibliothèque ScriptForge doit être chargée ou importée :

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

Une instance de service FormDocument peut être créée en appelant la méthode OpenFormDocument qui existe à la fois dans les services Base et Database.

L'exemple ci-dessous utilise le service UI pour ouvrir un document Base, puis récupérer un document de formulaire. Notez que dans cet exemple, le document Base et le document de formulaire seront ouverts et affichés à l'écran.

        Dim ui As Object, oBase As Object, oFormDoc As Object
        ui = CreateScriptService("UI")
        oBase = ui.OpenBaseDocument("C:\Documents\MyDatabase.odb")
        oFormDoc = oBase.OpenFormDocument("MyFormDocument")
        ' ...
        oFormDoc.CloseDocument()

L'exemple suivant utilise le service Database pour ouvrir le document de formulaire. Dans ce cas, le fichier Base ne sera pas ouvert et seul le document formulaire sera affiché.

        Dim oDatabase As Object, oFormDoc As Object
        oDatabase = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
        oFormDoc = oDatabase.OpenFormDocument("MyFormDocument")

L'appel de OpenFormDocument pour un document de formulaire déjà ouvert activera la fenêtre du document et la mettra au focus.

##### En Python

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

        ui = CreateScriptService("UI")
        baseDoc = ui.OpenBaseDocument("C:\Documents\MyDatabase.odb")
        formDoc = baseDoc.OpenFormDocument("MyFormDocument")
        # ...
        formDoc.CloseDocument()

        database = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
        formDoc = database.OpenFormDocument("MyFormDocument")

Liste des méthodes dans le service formDocument
CloseDocument Forms | GetDatabase | PrintOut

## CloseDocument

Ferme le document de formulaire référencé par l'instance FormDocument. Renvoie True si le document de formulaire a été fermé avec succès.

### Syntaxe :

svc.CloseDocument(): bool

### Exemple :

##### En Basic :

        oFormDoc.CloseDocument()

##### En Python

        formDoc.CloseDocument()

## Forms

Renvoie soit une matrice avec les noms des formulaires principaux contenus dans le document de formulaire, soit une instance de service Form faisant référence à un formulaire spécifique.

Appelez cette méthode sans arguments pour obtenir une matrice de chaînes de base zéro avec les noms de tous les formulaires contenus dans le document de formulaire.

Fournissez un nom de formulaire ou un index comme argument pour obtenir une instance de service Form correspondant au formulaire spécifié.

Un document de formulaire possède au moins un formulaire principal. Les formulaires plus complexes peuvent être composés de plusieurs formulaires et sous-formulaires.

### Syntaxe :

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

svc.Forms(form: str): svc

svc.Forms(form: int): svc

### Paramètres :

form : cet argument peut être soit une chaîne avec le nom d'un formulaire qui existe dans le document de formulaire, soit l'index de base zéro du formulaire qui doit être renvoyé. Si cet argument n'est pas spécifique, alors une matrice avec le nom de tous les formulaires disponibles est renvoyé.

### Exemple :

##### En Basic :

L'exemple suivant vérifie si le document formulaire contient un formulaire nommé « MainForm » :

        arrForms = oFormDoc.Forms()
        If SF_Array.Contains(arrForms, "MainForm") Then
            ' ...
        End If

L'exemple ci-dessous récupère le formulaire nommé "MainForm" et le déplace vers le dernier enregistrement :

        Dim oForm As Object
        oForm = oFormDoc.Forms("MainForm")
        oForm.MoveLast()

##### En Python

        arrForms = formDoc.Forms()
        if "MainForm" in arrForms:
            # ...

        form = formDoc.Forms("MainForm")
        form.MoveLast()

Pour en savoir plus sur les méthodes et propriétés des formulaires, reportez-vous à la page d'aide du service Form.

### GetDatabase

Renvoie une instance SFDatabases.Database donnant accès à l'exécution des commandes SQL sur la base de données à laquelle le formulaire actif est connecté et/ou qui est stocké dans le document Base actif.

Chaque formulaire a sa propre connexion à la base de données, sauf dans les documents Base où ils partagent tous la même connexion.

### Syntaxe :

svc.GetDatabase(opt user: str, opt password: str): svc

### Paramètres :

user, password : Les paramètres optionnels de connexion (par défaut = "").

### Exemple :

          Dim myDb As Object ' SFDatabases.Database
          Set myDb = oForm.GetDatabase()

##### En Python

          db = form.GetDatabase()  # SFDatabases.Database

## PrintOut

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

Renvoie True si le document a été envoyé avec succès à l'imprimante.

### Syntaxe :

svc.PrintOut(pages: str = "", copies: int = 1, printbackground: bool = true, printblankpages: bool = false, printevenpages: bool = true, printoddpages: bool = true, printimages: bool = true): bool

### Paramètres :

pages : les pages à imprimer sous forme de chaîne. Cet argument doit être spécifié de la même manière que dans l'interface utilisateur (voir la boîte de dialogue Fichier - Imprimer). Exemple : "1-4;10;15-18". La valeur par défaut est une chaîne vide "" qui entraînera l'impression de toutes les pages.

copies : le nombre de copies à imprimer (par défaut = 1).

printbackground : spécifie si l'image d'arrière-plan doit être imprimée (par défaut = True).

printblankpages : spécifie si les pages vierges doivent être imprimées (par défaut = False).

printevenpages : spécifie si les pages paires doivent être imprimées (par défaut = True).

printoddpages : spécifie si les pages impaires doivent être imprimées (par défaut = True).

printimages : spécifie si les images doivent être imprimées (par défaut = True).

### Exemple :

##### En Basic :

        oFormDoc.PrintOut("1-4", Copies := 2, PrintBackground := False)

##### En Python

        formDoc.PrintOut("1-4", copies = 2, printbackground = False)

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.

Rubriques connexes

Service SFDocuments.Base

SFDatabases.Database

Service SFDocuments.Document

SFDocuments. Service Form

Service ScriptForge.UI