Controls > Advanced Controls > 可指令化控制項的輸入和輸出
可指令化控制項的輸入和輸出
任何 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
Value 屬性用於存取資料的實數部分。rowcol 為選用參數。如果指定 rowcol 參數,系統會傳回所指定 rowcol 的純量值。
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
RowsCols 屬性為唯讀值,會在控制項中傳回列數或欄數。您可以使用這兩個屬性來決定執行時間內儲存於特定元素的向量或陣列維度。
JScript:
x = Inputs[0].Rows;
x = Inputs[0].Cols;
VBScript:
X = Inputs(0).Rows
X = Inputs(0).Cols
元素
描述
x
以整數表示列數或欄數。
這是否有幫助?