To refer to an object within the current window, call a method of that object instead of using action-other-control().
To refer to an object outside the current window, collect the information you want to refer to in a user-defined property on startup of the current window, and then refer to that property.
Action-other-control() performs an action on a control other than the current one. The control is specified by a path.
action-other-control(<path>, <method> [<method>...])
Specification of the target control the action should be performed on.
The action you want to perform.
action-other-control(<-*TextBox1, control-set-values (<property>, <value>))
action-other-control(<-*currentColumn.data, convert-alternative-format(DDMMYY, MMDDYY, DDMM, MONDD))
Make sure that methods and parameters can be interpreted by the target object identified by <path>. Variable elements must be resolved before they are passed to the target object, and must make sense in the context of the target object, rather than in the context of the action-other-control() command. The following example illustrates how variables in a decision definition can be resolved before they are passed to the target object. The purpose is to copy a value from TextBox2 into TextBox1:
SELECT '<-*TextBox1', 'control-set-values(<property>,' || :TextBox2 || ')'
This concatenation can also be performed in-line:
action-other-control('<-*TextBox1', 'control-set-values(<property>,' || :TextBox2 || ')')
In this last code example, quotes around the first parameter of action-other-control() are necessary only because the second parameter is quoted. If there had been no variable element (in this example, :1), no quotes would have been necessary.
Depending on circumstances, sql-script() may offer a more readable alternative:
sql-script(SELECT :"<-*TextBox2" TextBox1)