Contrôles > Contrôles avancés > Entrées et sorties des contrôles scriptables
Entrées et sorties des contrôles scriptables
Les entrées et les sorties de tous les contrôles scriptés PTC Mathcad Prime ont les propriétés suivantes. Les contrôles peuvent accepter n'importe quel type de données PTC Mathcad Prime valide en entrée. Cela inclut les scalaires, les tableaux et les chaînes ou les expressions qui produisent l'une de ces valeurs.
L'indexation des variables d'entrée et de sortie commence à partir de 0. Les entrées et les sorties ont des propriétés et des méthodes associées. L'utilisation des sorties d'un contrôle comme entrées d'un autre vous permet d'inclure plusieurs contrôles dans le même document. En associant un contrôle à des valeurs d'entrée et de sortie, vous définissez sa place dans l'ordre de calcul du document et vous lui demandez de recalculer lorsque les valeurs d'entrée changent, tout en indiquant au document quand mettre à jour les valeurs de sortie. Il est donc important d'attribuer des valeurs d'entrée et de sortie à tout contrôle qui utilisera ces variables du document.
Pour les contrôles avancés avec entrées, il est recommandé de définir la variable de sortie. Si vous laissez une marque de réservation vide, les valeurs ne sont pas disponibles pour le contrôle lors de l'ouverture du document.
Lorsque le contrôle n'a pas de variable de sortie et que les entrées sont au format tableau, lorsque le script accède à ces entrées, une validation d'entrée est nécessaire. Ajoutez la ligne ci-dessous à votre script :
VBScript
If IsArray(Inputs(0).value) = False Then Exit Sub
JScript
if (!Inputs[0].Value.length) return;
Python
if Inputs is None:
return
Valeur
La propriété Value est utilisée pour accéder à la partie réelle des données. Les paramètres row et col sont facultatifs. Si les paramètres row et col sont spécifiés, une valeur scalaire aux row ou col spécifiés est renvoyée.
x = objDataValue.Value( [row, col])
objDataValue.Value( [row, col] ) = x
Script d'entrée en JScript :
var x = Inputs[0].Value[0][0]; //Accessing the 1st input, where the input is a matrix.
var y = Inputs[1].Value[0]; //Accessing the 2nd input, where the input is a vector.
var z = Inputs[2].Value; //Accessing the 3rd input, where the input is a variable.
Script d'entrée en VBScript :
x = Inputs(0).Value(0,0)
y = Inputs(1).Value(0)
z = Inputs(2).Value
Script d'entrée en Python :
x = Inputs[0]['Value'][0][0] // //Accessing the 1st input, where the input is a matrix.
y = Inputs[1]['Value'][0] //Accessing the 2nd input, where the input is a vector.
z = Inputs[2]['Value']/Accessing the 3rd input, where the input is a variable.
Script de sortie en JScript :
Outputs[0].Value = x;
Script de sortie en VBScript :
Outputs(0).Value = x
Script de sortie en Python :
Outputs[0].Value = x
Elément
Description
x
La partie réelle des données à cette position.
row
L'indice entier de la ligne sélectionnée.
col
L'indice entier de la colonne sélectionnée.
Lorsque la propriété Value est utilisée du côté gauche d'une expression, le tableau ne s'agrandit pas automatiquement pour s'adapter aux données. Pour éviter l'erreur, vous devez utiliser la méthodologie standard du langage de script pour définir la taille. Exemple :
JScript :
//When using JScript, set the variable to array '[]' before assigning values.
Outputs[0].Value = [];
//In JS ES3 you can only use array of arrays.
Outputs[0].Value[0]=[0,0,0];
Outputs[0].Value[1]=[0,0,0];
Outputs[0].Value[2]=[0,0,1];
VBScript :
Dim out(2,2) ‘Set the array size. Notice this will create 3x3 dimensional array in VBscript.
Outputs(0).value=out
Outputs(0).value(2,2) = 1
Python :
Outputs[0]['Value'] = [] # Initialize 'Value' as an empty list
Outputs[0]['Value'].append([0, 0, 0]) # Append the list [0, 0, 0] to 'Value'
Outputs[0]['Value'].append([1, 1, 1]) # Append the list [1 ,1, 1] to 'Value'
Outputs[0]['Value'].append([2, 2, 2]) # Append the list [2 ,2, 2] to 'Value'
Dans les deux cas, le résultat est un tableau de trois lignes et trois colonnes.
Lignes et colonnes
Les propriétés Rows et Cols sont des valeurs en lecture seule qui renvoient le nombre de lignes ou de colonnes du contrôle. Vous pouvez les utiliser pour déterminer les dimensions d'un vecteur ou d'un tableau stocké dans un élément particulier au moment de l'exécution.
JScript :
x = Inputs[0].Rows;
x = Inputs[0].Cols;
VBScript :
x = Inputs(0).Rows
x = Inputs(0).Cols
Python
x = Inputs[0]['Rows']
x = Inputs[0]['Cols']
Elément
Description
x
Le nombre entier de lignes ou de colonnes.
Est-ce que cela a été utile ?