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 :

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

Before using the Base service the ScriptForge library needs to be loaded or imported:

note

‚ÄĘ Basic macros require to load ScriptForge library using the following statement:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

‚ÄĘ Python scripts require an import from scriptforge module:
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

PrintOut
SetPrinter


CloseFormDocument

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

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

Returns an array with the full names (path/name) of all form documents in the Base document as a zero-based Array of strings.

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 :

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()
    #   ... Run queries, SQL statements, ...
    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")
  

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.

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.

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: The name of the printer queue where to print to. When absent, the default printer is set.

orientation: Either PORTRAIT or LANDSCAPE. When absent, left unchanged with respect to the printer settings.

paperformat: Specifies the paper format as a string value that can be either A3, A4, A5, LETTER, LEGAL or TABLOID. Left unchanged when absent.

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 !