Travailler avec les bases de données du projet FlexPro
FlexPro stocke tous les objets dans une base de données projet. Vous pouvez appliquer une structure hiérarchique à cette base de données projets en créant des dossiers. Ainsi, une base de données projets FlexPro ressemble à un disque dur sur votre ordinateur. Au lieu de fichiers sur le disque dur, une base de données projet FlexPro contient des ensembles de données, des formules, des objets de présentation, des feuilles de calcul et des documents dont vous avez besoin pour votre analyse. Tout comme sur un disque dur, vous pouvez créer une hiérarchie de dossiers dans une base de données projet FlexPro pour organiser vos objets FlexPro.
Création d'une base de données projet
FlexPro peut ouvrir plusieurs bases de données à la fois qui sont ensuite stockées dans la collection Bases de données. Pour créer une nouvelle base de données vide, utilisez la méthode Add de la collection Databases. La méthode Add fournit la base de données nouvellement créée de manière à ce que vous puissiez l'affecter à une variable pour une utilisation ultérieure :
Dim Doc As Database
Set Doc = Databases.Add
Ouverture d'une base de données
Utilisez la méthode Open de la collection Databases pour ouvrir une base de données stockée dans un fichier.
Dim Doc As Database
Set Doc = Databases.Open("C:\Databases\MyDatabase.fpd", fpOpenModeBackup)
Sauvegarde d'une base de données
Si la base de données est nouvelle et n'a pas encore été enregistrée, utilisez la méthode SaveAs. Le deuxième argument détermine comment la base de données doit être sauvegardée.
Doc.SaveAs "C:\Databases\MyDatabase.fpd", fpSaveModeOneFile
Utilisez la méthode d'enregistrement pour enregistrer une base de données qui a déjà été ouverte en tant que fichier et qui a été enregistrée au moins une fois auparavant.
Doc.Save
Utilisez la méthode Enregistrer de la collection Bases de données pour enregistrer toutes les bases de données qui sont actuellement ouvertes. Pour les bases de données qui n'ont pas encore de nom de fichier, une boîte de dialogue apparaît, dans laquelle vous pouvez spécifier le nom.
Bases de données.Save
Fermeture d'une base de données
Vous pouvez fermer une base de données individuelle en utilisant sa méthode de fermeture.
Doc.Close fpSaveChanges
Vous pouvez également fermer toutes les bases de données qui sont actuellement ouvertes.
Bases de données.Fermer fpPromptToSaveChanges
Accès aux bases de données
Pour accéder à une base de données dans la collection Bases de données, utilisez le nom du chemin d'accès ou le nom qui s'affiche dans la fenêtre principale de FlexPro.
Set Doc = Databases("C:\Databases\MyDatabase.fpd")
Utilisez la méthode ActiveDatabase de l'objet Application pour accéder à la base de données actuellement active.
ActiveDatabase.Close
Création d'objets et de dossiers
Utilisez la méthode Add de l'objet Folder pour créer des objets et des dossiers dans la base de données. Utilisez la propriété RootFolder de l'objet Database pour accéder au dossier racine.
Dim Fld As Folder
Set Fld = ActiveDatabase.RootFolder.Add("Folder", fpObjectTypeFolder)
La méthode Add peut également ajouter d'autres objets, en renvoyant le nouvel objet comme résultat.
Avec Fld.Add("Series", fpObjectTypeFormula)
.Formula = "(100, 0.0, 0.1)"
End With
Accès aux objets
Pour accéder à un objet dans un dossier, utilisez la méthode Object du dossier. Vous pouvez spécifier le nom de l'objet et le type d'objet ou juste le nom avec l'extension liée au type spécifique.
ActiveDatabase.RootFolder.Object("Diagram", fpObjectTypeDiagram2D) _
.Comments = "Measurement 1"
ou
ActiveDatabase.RootFolder.Object("Diagram.2D").Comments = "Mesure 1"
En utilisant la propriété Parent, qui est disponible pour chaque objet FlexPro, vous pouvez accéder à l'objet (généralement un dossier) qui contient l'objet. L'exemple suivant permet d'accéder au commentaire ajouté à un dossier contenant l'ensemble de données qui a été attribué à la variable objet "Dataset".
Dataset.Parent.Comments = " Mesure 1 "
Recherche d'objets dans la base de données
Utilisez la méthode Objets de l'objet Dossier pour rechercher des objets. Plusieurs options sont disponibles.
L'exemple suivant recherche tous les objets de l'ensemble de données dont le nom commence par "sig".
Dim Objets
Set Objects = ActiveDatabase.RootFolder.Objects("^sig*\.dat$")
L'expression régulière est structurée comme suit :
Séquence |
Signification |
---|---|
"^sig" |
Spécifie que le nom de l'objet doit commencer par "sig". |
".*" |
Représente une chaîne de caractères de n'importe quelle longueur, composée de n'importe quels caractères. |
"\.dat$" |
Spécifie que le nom de l'objet doit se terminer par ".dat", c'est-à-dire que l'objet doit être un ensemble de données. |
L'exemple suivant trouve un objet de jeu de données appelé "Signal" et un graphique 2D appelé "Plot".
Dim Objets
Set Objects = ActiveDatabase.RootFolder.Objects("Signal", "Plot.2d")
L'exemple suivant recherche tous les objets dont la valeur de la propriété Origine est "Mesure 1".
Dim Constraints As New SearchConstraints
Avec Constraints.Add
.SearchItem = fpSearchItemOrigin
.CompareOperation = fpSearchCompareOpTextIs
.SearchValue = "Measurement 1"
End With
Dim Objets
Set Objects = ActiveDatabase.RootFolder.Objects(Constraints)
Utilisez la méthode Objets de l'objet Base de données pour accéder simultanément à des objets situés dans différents dossiers. L'exemple suivant supprime deux objets.
ActiveDatabase.Objects(Array("\Diagram.2d", _
"\Measurement1\Signal")).Delete
Utilisez la méthode de recherche de l'objet Dossier pour rechercher des objets dans tout ou partie de la base de données. L'exemple suivant recherche tous les ensembles de données dont la valeur maximale est supérieure à 10 et déplace ces ensembles de données vers le dossier "Data Folder".
Dim Constraints As New SearchConstraints
Avec Constraints.Add
.SearchItem = fpSearchItemObjectType
.CompareOperation = fpSearchCompareOpObjectTypeIsKindOf
.SearchValue = fpObjectTypeDataSet
End With
Avec Constraints.Add
.SearchItem = fpSearchItemMaximum
.CompareOperation = fpSearchCompareOpValueGreater
.SearchValue = 10#
End With
ActiveDatabase.RootFolder.Search(True, Constraints). _
Déplacer vers ActiveDatabase.Object("\Data Folder.FLD")