脚本化控件的输入和输出
任何 PTC Mathcad Prime 脚本化控件的输入和输出均具有以下属性。控件可将任何有效的 PTC Mathcad Prime 数据类型用作输入。其中包括标量、数组和字符串或可求得上述任意值的表达式。
输入和输出变量的索引从 0 开始。输入和输出具有关联的属性和方法。使用一个控件的输出作为另一个控件的输入,可以在同一工作表中包括多个控件。通过将控件与输入和输出值关联,可定义其在工作表计算顺序中的位置,并通知其在输入值发生变更时重新计算,以及通知工作表何时更新输出值。因此,您必须为使用这些工作表变量的所有控件分配输入和输出值。
对于含有输入的高级控件,建议定义输出变量。如果留有空占位符,则在打开工作表后控件无法使用各个值。
若控件无输出变量且输入为数组格式,则在脚本访问这些输入时,需进行输入验证。将以下行添加至脚本:
• VBScript
If IsArray(Inputs(0).value) = False Then Exit Sub
• JScript
if (!Inputs[0].Value.length) return;
值
Value 属性用于访问数据的实数部分。row 和 col 为可选参数。如果指定 row 和 col 参数,则会返回所指定 row 或 col 处的标量值。
x = objDataValue.Value( [row, col])
objDataValue.Value( [row, col] ) = x
• 以 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.
• 以 VBscript 语言编写的输入脚本:
x = Inputs(0).Value(0,0)
y = Inputs(1).Value(0)
z = Inputs(2).Value
• 以 JScript 语言编写的输出脚本:
Outputs[0].Value[0][0] = x;
• 以 VBscript 语言编写的输出脚本:
Outputs(0).Value(0,0) = x
元素
|
说明
|
x
|
此为数据的实数部分。
|
row
|
选定行的整数索引。
|
col
|
选定列的整数索引。
|
在表达式左侧使用 Value 属性时,数组不会自动扩展以适应数据。为避免出错,必须使用标准脚本语言方法来定义大小。例如:
• 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
两种情况的输出均为三行三列数组。
Rows 和 Cols
Rows 和 Cols 属性均为返回控件中行数或列数的只读值。可通过这两个属性确定运行时存储在特定元素中的矢量或数组的维数。
• Jscript:
x = Inputs[0].Rows;
x = Inputs[0].Cols;
• VBscript:
X = Inputs(0).Rows
X = Inputs(0).Cols