Aide LibreOfficeDev 25.8
Le service Base fournit un certain nombre de méthodes et de propriétés pour faciliter la gestion et la manipulation des documents LibreOfficeDev Base.
Ce service est étroitement lié au service Document, qui fournit des méthodes génériques pour gérer les documents LibreOfficeDev, 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é.
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 LibreOfficeDev.
Avant d'utiliser le service Base, la bibliothèque ScriptForge doit être chargée ou importée :
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")
  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 | ||
|---|---|---|
Ferme le document de formulaire donné. Renvoie True si la fermeture réussit.
La méthode CloseFormDocument est obsolète depuis LibreOfficeDev 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.
svc.CloseFormDocument(formdocument: str): bool
formdocument : Le nom du FormDocument à fermer, sous forme de chaîne sensible à la casse.
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 :
    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
    doc.CloseFormDocument('Folder1/myFormDocument')
  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.
svc.FormDocuments(): str[0..*]
L'extrait de code ci-dessous imprime les noms de tous les documents de formulaire dans le document Base actuel.
    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
  
    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisDataBaseDocument)
    myForms = doc.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 ScriptForge.FormDocument.
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.
La méthode Forms est obsolète depuis LibreOfficeDev 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.
svc.Forms(formdocument: str): str[0..*]
svc.Forms(formdocument: str, form: str = ''): svc
svc.Forms(formdocument: str, form: int): svc
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.
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 ».
    Dim formsList as Object : formsList = oDoc.Forms("myFormDocument")
    Dim oForm as Object : oForm = oDoc.Forms("myFormDocument", "myForm")
  
    formsList = doc.Forms("myFormDocument")
    form = doc.Forms("myFormDocument", "myForm")
  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
svc.GetDatabase(user: str = '', password: str = ''): svc
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 "".
    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()
  
    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    #   ... requêtes Run, instructions SQL, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  Renvoie True si le FormDocument spécifié est actuellement ouvert.
svc.IsLoaded(formdocument: str): bool
formdocument : le nom d'un FormDocument à vérifier, en tant que chaîne sensible à la casse.
    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  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é.
svc.OpenFormDocument(formdocument: str, designmode: bool = False): svc
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.
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")
  
    formDoc = doc.OpenFormDocument("myFormDocument")
  
    formDoc = doc.OpenFormDocument("myFolder/myFormDocument")
  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.
La fermeture du document de base entraînera également la fermeture de la fenêtre Affichage des données.
svc.OpenQuery(queryname: str, designmode: bool = False): obj
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).
      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
      doc.OpenQuery("MyQuery", designmode=True)
    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.
La fermeture du document Base entraînera également la fermeture de la fenêtre Affichage des données.
svc.OpenTable(tablename: str, designmode: bool = False): obj
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).
      oDoc.OpenTable("MyTable", DesignMode = False)
    
      doc.OpenTable("MyTable", designmode=False)
    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.
La méthode PrintOut est obsolète depuis LibreOfficeDev 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.
svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool
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.
    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  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.
La méthode SetPrinter est obsolète depuis LibreOfficeDev 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.
svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool
formdocument : un nom de formulaire de document valide sous forme de chaîne sensible à la casse.
    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
    doc.SetPrinter('myForm', paperformat='TABLOID')