Accès aux données et aux objets

23.08.2021

Non seulement vous pouvez accéder aux variables locales dans FPScript, mais vous pouvez également accéder à des ensembles de données externes et à des résultats de calcul. Si vous utilisez un nom tel que "DataSeries", FPScript procède comme suit pour trouver l'objet portant ce nom. Au départ, FPScript vérifie s'il existe une constante prédéfinie portant ce nom. Il vérifie ensuite si une variable locale a été définie avec ce nom dans la formule. Si ce n'est pas le cas, et si la formule FPScript est une fonction avec des arguments, elle vérifie si une variable d'argument existe avec ce nom. Si rien n'est trouvé lors de la recherche, elle recherche un ensemble de données ou une formule portant ce nom particulier. La recherche s'effectue dans le dossier contenant la formule. Si, toutefois, ce dossier comporte un sous-dossier activé, ce sous-dossier est prioritaire dans la recherche. Si l'objet trouvé est une formule, celle-ci est calculée, si nécessaire, et le résultat est repris pour un calcul ultérieur.

Nom du chemin

Le nom du chemin de l'objet décrit son emplacement précis dans la base de données du projet.

Lesnoms de chemins absolus fournissent le chemin du dossier racine de la base de données du projet vers l'objet requis. Les noms de dossiers sont classés par série, chaque nom de dossier se terminant par un "\". Comme le dossier racine n'a pas de nom, seul un "\" est écrit pour lui. Par conséquent, tous les noms de chemins absolus commencent par un '\'. L'exemple suivant localise l'objet appelé "DataSet" dans le sous-dossier "Measurement1" du dossier "Analysis" :

\Analysis\Measurement1\DataSet

Le sous-dossier "Measurement1" est sélectionné de cette façon :

\Analysis\Measurement1

Cet accès fournit tous les ensembles de données du dossier sous forme de liste dans l'ordre dans lequel ils sont affichés dans la liste des objets non triés.

Remarque :   Si, dans l'exemple ci-dessus, un ensemble de données appelé "Mesure1" se trouve dans le dossier "Analyse", l'accès sera fourni à cet ensemble de données et non au dossier du même nom. Pour accéder au dossier dans ce cas également, vous devez ajouter l'extension '.fld'.

Un objet appelé "DataSet" situé dans le dossier racine est sélectionné comme suit :

\DataSet

Si le nom du chemin contient des caractères spéciaux, par exemple des espaces, ou s'il commence par un nombre, vous devez le spécifier en utilisant des guillemets simples :

'\Analysis\Measurement A\DataSet'

'\01\DataSet'

Si vous souhaitez accéder à des objets qui ne sont pas des ensembles de données, des formules, des objets d'analyse ou des dossiers, vous devez spécifier une extension de nom de fichier:

\Analysis\Document.doc

Vous pouvez accéder au sous-dossier activé d'un dossier en utilisant le mot-clé ActivatedFolder, qui ne comporte pas de '\' à la fin :

\Analysis\ActivatedFolder

Lesnoms de chemin relatifs fournissent le chemin d'accès à l'objet cible depuis le dossier à partir duquel vous essayez d'y accéder. Ici, '.\' décrit le dossier à partir duquel vous essayez d'y accéder, et '..\' décrit le dossier parent, c'est-à-dire le dossier situé au-dessus de lui dans la hiérarchie des dossiers. L'exemple suivant permet d'accéder à un ensemble de données situé dans le dossier voisin appelé "Measurement2" :

..\Measurement2\DataSet

Il s'agit de lire le nom du dossier à partir duquel l'accès est effectué :

.\.Name

Vous pouvez accéder à un ensemble de données situé dans le sous-dossier "Measurement1" de la manière suivante :

Mesure1\DataSet

Pour accéder à un objet situé dans le même dossier, il suffit de fournir son nom :

DataSet

ou

Feuille de travail.wks

Les noms de chemins relatifs ne commencent jamais par un '\', mais par '.\' ou '..\' ou par le nom du sous-dossier.

Pour faciliter la création d'une liste des objets, vous pouvez utiliser les caractères de remplacement "*" et " ?" dans les noms de chemins :

'\Measurement*\Signal'        correspond à [\Mesure1\Signal, \Mesure2\Signal, ...].

Utilisez le caractère générique '*' pour une chaîne de caractères de n'importe quelle longueur et le caractère générique '?' pour un seul caractère.

Remarque :   Si vous utilisez un nom de chemin absolu ou un nom de chemin relatif qui commence par '.\', tout sous-dossier activé sera ignoré, ce qui signifie que le nom de chemin décrit toujours exactement l'objet spécifié, même s'il y a interférence par un objet du même nom dans le sous-dossier activé.

Accès indirect

L'opérateur d'orientation ($$) vous donne la possibilité d'accéder aux objets en utilisant une chaîne de caractères avec le nom de l'objet. L'exemple suivant montre une utilisation courante :

Name = InputText("Veuillez entrer le nom de l'ensemble de données")
Intégral($Name$)

Référence de l'objet

Une référence d'objet est une référence à un objet dans FlexPro, par exemple à une formule ou à un dossier. Vous pouvez utiliser ce type de référence d'objet pour accéder à la valeur de la référence d'objet ou pour accéder aux propriétés de l'objet, par exemple pour accéder à son nom ou à ses commentaires. Si vous utilisez le nom du chemin d'accès à un objet de données dans FPScript, il représentera la valeur de l'objet de données et ne fournira pas de référence d'objet. Pour le construire, vous devez utiliser l'instruction Set ou le mot-clé As Object:

Dim Obj = DataSet As Object

ou

Set Obj = DataSet

Toutefois, l'opérateur d'orientation ($$) fournit également une référence d'objet pour les objets de données :

Dim Obj = $"DataSet"$

est équivalent à :

Dim Obj = DataSet As Object

Si un nom de chemin d'accès ne fait pas référence à un objet de données mais à un dossier, par exemple, le dossier représente alors la référence de l'objet. Les affirmations suivantes sont donc équivalentes :

Dim Obj = Folder.fld As Object

ou

Dim Obj = Folder.fld

FlexPro analyse automatiquement une référence d'objet si la valeur est requise pour des calculs supplémentaires. Vous pouvez utiliser l'opérateur de valeur pour analyser explicitement une référence d'objet :

Dim Val = Valeur $"DataSet"$

Partager l’article ou envoyer par mail :

Vous serez probablement intéressé par les articles suivants :