Controlli > Controlli avanzati > Input e output per controlli modificabili tramite script
Input e output per controlli modificabili tramite script
Gli input e gli output per qualsiasi controllo modificabile tramite script di PTC Mathcad Prime hanno le proprietà indicate di seguito. I controlli possono accettare come input qualsiasi tipo di dati di PTC Mathcad Prime valido. Ciò include scalari, array e stringhe o espressioni che producono uno di questi valori.
L'indicizzazione delle variabili di input e output inizia da 0. Input e output dispongono di proprietà e metodi associati. Utilizzando gli output di un controllo come input per un altro controllo, è possibile includere più controlli nello stesso foglio di lavoro. Associando un controllo ai valori di input e output, è possibile definire la sua posizione nell'ordine di calcolo del foglio di lavoro e notificare la richiesta di ricalcolo quando i valori di input vengono modificati, nonché notificare al foglio di lavoro quando aggiornare i valori di output. È quindi importante assegnare valori di input e output a qualsiasi controllo che utilizzerà queste variabili del foglio di lavoro.
Per controlli avanzati con input, si consiglia di definire la variabile di output. Se si lascia un segnaposto vuoto, all'apertura del foglio di lavoro i valori non saranno disponibili per il controllo.
Se il controllo non dispone di una variabile di output e gli input sono in formato array, quando lo script accede a tali input è richiesta una convalida dell'input. Aggiungere la riga seguente allo script in uso:
VBScript
If IsArray(Inputs(0).value) = False Then Exit Sub
JScript
if (!Inputs[0].Value.length) return;
Python
if Inputs is None:
return
Valore
La proprietà Value viene utilizzata per accedere alla parte reale dei dati. I parametri row e col sono facoltativi. Se vengono specificati i parametri row e col, viene restituito un valore scalare nel parametro row o col specificato.
x = objDataValue.Value( [row, col])
objDataValue.Value( [row, col] ) = x
Script di input in 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 di input in VBScript:
x = Inputs(0).Value(0,0)
y = Inputs(1).Value(0)
z = Inputs(2).Value
Script di input in 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 di output in JScript:
Outputs[0].Value = x;
Script d output in VBScript:
Outputs(0).Value = x
Script di output in Python:
Outputs[0].Value = x
Elemento
Descrizione
x
La parte reale dei dati in questa posizione.
row
L'indice intero della riga selezionata.
col
L'indice intero della colonna selezionata.
Quando la proprietà Value viene utilizzata sul lato sinistro di un'espressione, l'array non aumenta automaticamente per adattarsi ai dati. Per evitare che venga restituito un errore è necessario utilizzare la metodologia del linguaggio di creazione di script standard per definire la dimensione. Ad esempio:
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'
In entrambi i casi l'output è un array a tre righe e tre colonne.
Righe e colonne
Le proprietà Rows e Cols sono valori di sola lettura che restituiscono il numero di righe o colonne nel controllo. È possibile usarli per determinare le dimensioni di un vettore o di un array memorizzato in un particolare elemento in fase di esecuzione.
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']
Elemento
Descrizione
x
Il numero intero di righe o colonne.
È stato utile?