Accès aux informations sur l’en-tête

22.04.2021

FlexPro peut ajouter une référence aux informations d'en-tête d'un objet de données à une valeur FPScript qui provient de cet objet de données. Vous pouvez donc accéder aux attributs de l'objet de données via la valeur. Les informations d'en-tête sont les propriétés de l'objet ValueObject, y compris la liste des paramètres. Si une valeur FPScript est transmise comme argument ou comme valeur de retour d'une valeur dans une formule différente, cette valeur peut être utilisée pour accéder aux informations d'en-tête sans référence à un objet. FlexPro utilise ces informations d'en-tête attribuées aux données pour des tâches telles que l'étiquetage des axes dans un graphique.

Lorsqu'il attribue les informations d'en-tête d'une formule à sa valeur de résultat, FlexPro prend en compte le paramètre Informations d'en-tête de l'onglet Résultats de la formule. Vous pouvez y définir si les informations d'en-tête doivent uniquement être ajoutées ou si les informations d'en-tête existantes doivent être remplacées ou supprimées.

Les fonctions FPScript qui ne modifient que les données transmises en argument, comme les fonctions de filtrage, transmettent les informations d'en-tête de l'argument à votre résultat. Il en va de même pour les opérations d'indexation permettant de sélectionner un composant de données ou un élément de liste.

Le code suivant utilise la variable x pour accéder aux commentaires de la composante X de l'ensemble de données contenant la valeur x :

Dim x = \Data\DataSet

x.CommentairesX

Vous pouvez également avoir un accès en écriture à un attribut :

x.CommentsX = "Heure"

x.UpperRangeLimitX = 1.3

Dans ce cas, l'accès en écriture ne concerne pas l'objet de données sur lequel il est basé (\Data\DataSet dans l'exemple ci-dessus). Au lieu de cela, x se voit attribuer une copie locale pour la propriété à modifier. Cette copie est ensuite fixée à la valeur attribuée. Vous pouvez supprimer la copie locale en supprimant la propriété associée :

x.CommentsX = ""

x.UpperRangeLimitX = ?

Les attributs associés seront alors supprimés de l'ensemble de données lors de la prochaine tentative d'accès en lecture.

Paramètres

La liste complète des paramètres est toujours fournie sous forme de copie locale. Si, lors de l'utilisation de l'accès en écriture, un nom est spécifié qui ne comporte aucun paramètre, le nom sera créé automatiquement.

x.Paramètres("MonParam") = 1.3

Appliquez la valeur Vide pour supprimer à nouveau un paramètre :

x.Paramètres("MonParam") = Vide

Vous pouvez vérifier si un paramètre se trouve dans la liste en utilisant la propriété Index. Le résultat sera 0 si ce n'est pas le cas.

x.Paramètres.Index("MonParam")

L'accès en lecture à un paramètre ne donne que sa valeur. Vous devez lire et assigner l'unité séparément :

ChangeUnit(x.Paramètres("MonParam"), x.Paramètres("MonParam").Unité)

Calculs

Seul l'accès en lecture est disponible pour les calculs. L'accès en lecture à un calcul ne donne que sa valeur. Vous devez lire et assigner l'unité séparément :

ChangeUnit(x.Calculs("MonCalcul"), x.Calculs("MonCalcul").Unité)

Vous pouvez vérifier si un calcul se trouve dans la liste en utilisant la propriété Index. Le résultat sera 0 si ce n'est pas le cas.

x.Calculs.Index("MonCalcul")

Listes

Les formulaires qui fournissent une liste avec plusieurs ensembles de données comme résultat sont une particularité. Si la formule regroupe uniquement des ensembles de données dans une liste, les éléments de la liste obtiennent les informations d'en-tête des ensembles de données dont ils sont issus :

Dim x = [Signal1, Signal2]
x.[0].Name donne comme résultat "Signal1"

Remarque : Si vous renvoyez ce type de liste en tant que résultat de formule et que vous ne souhaitez pas que les informations d'en-tête soient écrasées par celles de la formule, vous devrez choisir ce qui suit dans la zone de liste Informations d'en-tête de l'onglet Résultats de la boîte de dialogue Propriétés de la formule : Automatique, Affectation uniquement si elle n'est pas déjà présente ou Jamais d'affectation.

Si la formule calcule un résultat et que celui-ci est renvoyé sous forme de liste, vous devrez définir la façon de nommer les éléments de la liste sous Noms des éléments de la liste dans l'onglet Résultats de la formule. Les noms des éléments de liste des données sources calculées sont souvent intégrés dans les noms des éléments de liste du résultat et sont donc connus de FlexPro. Ceci est fait en assignant les données sources de la variable locale SourceData. FlexPro en tient compte lors de l'attribution des noms d'éléments après le calcul de la formule.

Dim SourceData = [Signal1, Signal2]
Intégral(SourceData)

x.[0].Name donne pour résultat "Signal1Integral", si dans l'onglet Résultats de la formule, l'option Automatique est activée et la formule elle-même s'appelle "Integral".

x.[0].CommentsX Si, dans l'onglet Résultats de la formule, l'option Toujours affecter est activée, le résultat de l'expression fournit les commentaires X de la formule contenant le code FPScript. Sinon, le résultat fournit les commentaires X de l'ensemble de données Signal1, puisque la fonction Integral les transmet dans son résultat.

Composants

Si une variable FPScript contient un composant d'un ensemble de données agrégé, alors le composant est utilisé comme modèle pour les propriétés pour lesquelles un composant peut être spécifié de manière facultative comme argument si vous omettez l'argument :

Dim x = DataSet.X

x.Quantity correspond à DataSet.Quantity(fpDataComponentX)

Il est donc facile d'accéder aux attributs de chaque composant pertinent.

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