Field Target References: Difference between revisions
No edit summary |
No edit summary |
||
Line 64: | Line 64: | ||
|- | |- | ||
|modify[''oper'',''val'',''str''] | |modify[''oper'',''val'',''str''] | ||
|(Right, Number) | |(Right, Number) Applies a modification to the field with accompanying notes for tracking a history of changes. The modification nature is given by the ''oper'' parameter, which must be one of the standard arithmetic operators: '+', '-', '*', '/'. The ''val'' parameter is an arithmetic expression the provides the modification value to be applied. The ''str'' parameter is a text annotation that is recorded along with the modification. If ''str'' is the empty string, the notes are the name of the initial pick context that is applying the change (or "?????" if the initial context is not a pick). The field must be explicitly configured to support history tracking. Always returns a value of zero.<br> | ||
Example: perform this.field[myfield].modify[+,1,"first"] | |||
|- | |- | ||
|history[''spl''] | |history[''spl''] |
Revision as of 03:35, 7 December 2008
Context: HL Kit … Kit Reference … Target References
There are a variety of ways to access and manipulate the contents of fields. The complete list of target references for fields is presented in the table below.
NOTE! When a field is accessed from within a thing or a visual script, all operations are restricted to read-only behavior. Any attempts to modify a field from within a thing context or via a visual script will fail.
value (Left, Right, Number) Accesses the contents of the field as a numeric value. If the field is text and the contents retrieved, the contents are automatically converted to a suitable value.
Example: result = this.field[myfield].value
Example: this.field[myfield].value = 42text (Left, Right, String) Accesses the contents of the field as a string. If the field is numeric can the contents retrieved, the contents are automatically converted to a suitable string.
Example: result = this.field[myfield].text
Example: this.field[myfield].text = "hello"isempty (Right, Number) Returns non-zero if the field contains the empty string and zero if it contains text of any length. If used on a numeric field or with an array or matrix, an error is reported. Testing of array and matrix elements must be done via the "compare" intrinsic.
Example: result = this.field[myfield].isempty
reset (Right, Number) The contents of the field are reset to the initial default value for the thing. A value of zero is always returned.
Example: perform this.field[myfield].reset
ischosen (Right, Number) Returns non-zero if the field contains a pick or a thing that was selected via a menu. If the field is associated with a menu and no selection has yet been made, zero is returned.
Example: result = this.field[myfield].ischosen
delta (Left, Right, Number) Accesses the delta component of a user field for manipulation separately from the user-specified value. The field must be explicitly configured to support delta processing.
Example: result = this.field[myfield].delta
Example: this.field[myfield].delta = 2arrayvalue[row] (Left, Right, Number) Accesses the contents of a specific element of the array-based field as a numeric value. The index of the element is given by row, where the index is a zero-based value that must be less than the number of rows in the array. If the field is text and the contents retrieved, the contents are automatically converted to a suitable value.
Example: result = this.field[myfield].arrayvalue[3]
Example: this.field[myfield].arrayvalue[3] = 42arraytext[row] (Left, Right, Number) Accesses the contents of a specific element of the array-based field as a string. The index of the element is given by row, where the index is a zero-based value that must be less than the number of rows in the array. If the field is numeric can the contents retrieved, the contents are automatically converted to a suitable string.
Example: result = this.field[myfield].arraytext[3]
Example: this.field[myfield].arraytext[3] = "hello"matrixvalue[row,col] (Left, Right, Number) Accesses the contents of a specific element of the matrix-based field as a numeric value. The index of the element is given by row and col, where the indices are zero-based values that must be less than the number of rows and columns in the matrix, respectively. If the field is text and the contents retrieved, the contents are automatically converted to a suitable value.
Example: result = this.field[myfield].matrixvalue[3,4]
Example: this.field[myfield].matrixvalue[3,4] = 42matrixtext[row,col] (Left, Right, String) Accesses the contents of a specific element of the matrix-based field as a string. The index of the element is given by row and col, where the indices are zero-based values that must be less than the number of rows and columns in the matrix, respectively. If the field is numeric and the contents retrieved, the contents are automatically converted to a suitable string.
Example: result = this.field[myfield].matrixvalue[3,4]
Example: this.field[myfield].matrixvalue[3,4] = 42arraydump (Right, String) Generates and returns a text string the contains the values of all elements in the array, with the results appropriately formatted for easy viewing. This mechanism is ideal for use within "debug" statements to help isolate scripting problems with arrays. Only usable with array-based fields.
Example: result = this.field[myfield].arraydump
NOTE! The generated output is capped to the limits of the debug output mechanism, so using this mechanism with large arrays and/or text-based fields may result in the output being truncated.matrixdump (Right, String) Generates and returns a text string the contains the values of all elements in the matrix, with the results appropriately formatted for easy viewing. This mechanism is ideal for use within "debug" statements to help isolate scripting problems with matrices. Only usable with matrix-based fields.
Example: result = this.field[myfield].matrixdump
NOTE! The generated output is capped to the limits of the debug output mechanism, so using this mechanism with large matrices and/or text-based fields may result in the output being truncated.modify[oper,val,str] (Right, Number) Applies a modification to the field with accompanying notes for tracking a history of changes. The modification nature is given by the oper parameter, which must be one of the standard arithmetic operators: '+', '-', '*', '/'. The val parameter is an arithmetic expression the provides the modification value to be applied. The str parameter is a text annotation that is recorded along with the modification. If str is the empty string, the notes are the name of the initial pick context that is applying the change (or "?????" if the initial context is not a pick). The field must be explicitly configured to support history tracking. Always returns a value of zero.
Example: perform this.field[myfield].modify[+,1,"first"]
history[spl] (Right, String)