Get/set/execute operation using a tree
This X-Function is not designed for Auto GetN Dialog.
Minimum Origin Version Required: 8.1 SR2
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.
Please refer to the page for additional option switches when accessing the x-function from script
Display Name |
Variable Name |
I/O and Type |
Default Value |
Description |
---|---|---|---|---|
ir |
Input Range |
|
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 |
|
Specifies the tree name to get or set operation settings. | |
op |
Input int |
|
Specified the operation performed on the tree node
Option list:
| |
result |
Output int |
|
Shows whether the execution succeeds or not. If result = 1, execution succeeds. If result = 0 or -1, execution fails. |
After 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.
This 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=10
This 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;