| 2.14.2.15 op_changeBrief InformationGet/set/execute operation using a tree
 Additional InformationThis X-Function is not designed for Auto GetN Dialog.
 Minimum Origin Version Required: 8.1 SR2
 Command Line Usage
1. op_change ir:=FitNL1! tr:=mytr;  // output the tree of an operation.
 2. op_change ir:=col(2) tr:=mytr op:=run; // Set the operation by a tree and run. 
 X-Function Execution OptionsPlease refer to the page for additional option switches when accessing the x-function from script
 Variables
| Display Name
 | Variable Name
 | I/O and
 Type
 | Default Value
 | Description |  
|  | ir | Input
 Range
 | <optional> | Specifies the range that contains operation. This X-Function gets treenodes from or triggers the recalculation using settings specified in treenodes in this range. |  
|  | tr | Input/Output
 TreeNode
 | <none> | Specifies the tree name to get or set operation settings. |  
|  | op | Input
 int
 | 0 | Specified the operation performed on the tree node Option list:
 get:Get Tree
Gets settings from input operation object and store them in tree node
run:Set and Execute
Sets and executes the operation settings stored in tree node
set:Set Tree Only
Sets operation settings to tree node only
 |  
|  | result | Output
 int
 | <unassigned> | Shows whether the execution succeeds or not. If result = 1, execution succeeds. If result = 0 or -1, execution fails. |  DescriptionAfter getting results of an operation, which allows recalculation, it is usually wanted to get access to the operation settings, change some of them and trigger a new recalculation. This X-Function allows you to obtain the operation settings from the input object and store them into a user-defined tree. You can reset the settings and execute the operation again. It is especially useful when you load an Analysis Template and want to change some settings for a new run of analysis.
 ExamplesThis example shows how do a smoothing and then modify input and some parameters and update the result with op_change X-Function.
 newbook;
col(1)={1:32}; //Fill first column with numbers from 1 to 32
col(2)=col(1)+rnd(); //Fill second column with column 1's value plus random numbers.
col(3)=col(1)+3*rnd(); //Create and fill third column with column 1's values plus 3 times random numbers
worksheet -s 2 0; //select 2nd column
smooth -r 2; //do smoothing on selected column and set recalculation mode to manual
op_change ir:=col(4) tr:=mytree; //get smooth settings to mytree 
mytree.xfGetN.iy.Range1.Y$="[%H]Sheet1!C"; //change input Y value to be column C. Note: User can run mytree.= to see the contents in tree
mytree.xfGetN.npts=10; //change npt variable (points of window) to be 10
op_change ir:=col(4) tr:=mytree op:=run; //recalculate smoothing by using changed settings in mytree: col C as input and npts=10This example modifies the polynomial fitting's settings with op_change X-function.
 newbook name:="Curves" result:=bkn$;
// import file from Origin EXE path.
string fn$= system.path.program$ + "\Samples\Curve Fitting\Polynomial Fit.dat" ;
impASC fname:= fn$
options.sparklines:=0 
options.FileStruct.NumericSeparator:=0 
options.Names.FNameToSht:=0 
options.Names.FNameToBk:=0 
options.Names.FNameToBkComm:=0;
// use fitpoly X-function to carry out polynomial fit for the XY dataset in the first two columns.
// use the "-r" switch option to set the recalculation mode to "Auto". 
fitpoly iy:=[%(bkn$)]!(1,2) polyorder:=2 
        coef:=<new> oy:=[<Input>]<new>!<new> 
        AdjRSq:=arsq RSqCOD:=rsq -r 1;
// get a range variable that contains this operation, which will be used later. 
range r1 = [%(bkn$)]%(page.active$)!col(1);
// get the setting in the operation as the tree variable mytree. 
op_change ir:=r1 tr:=mytree;
// change the settings of the operation.
// change the input data
mytree.xfGetN.iy.Range1.Y$ = "[%(bkn$)]1!C";
// change the polynomial order
mytree.xfGetN.polyorder = 3;
// execute the operation again with the modified settings. 
op_change ir:=r1 tr:=mytree op:=run; |