Update an Origin C Dataset object from an Origin data set or vice-versa.
void Update( BOOL bFromOrigin, int mode = -1 )
EX1
///Update OC when Origin Changed. // a Worksheet with at least 1 column must exist prior to execution void Dataset_Update_ex1() { Worksheet wks=Project.ActiveLayer(); if (wks) { Dataset dsA(wks, 0); string strWksColname = dsA.GetName(); dsA.SetSize(10); dsA=1; string strExecute = "set " + strWksColname + " -e 20;" + strWksColname + "=2;"; LT_execute(strExecute); // Note Dataset size is not updated but Dataset values change in Local Variables windows of Debug mode dsA.Update(TRUE); // Note Dataset dsA size is now updated in Local Variables windows of Debug mode ASSERT(dsA.GetSize()==20); } }
EX2
///Update Origin when OC data changed. // Assumes a worksheet with 2 columns // This example shows how to update Origin from inside Origin C program before it returns void Dataset_Update_ex2() { Worksheet wks=Project.ActiveLayer(); if (wks) { Dataset aa(wks, 0); string strWksColname = aa.GetName(); // in case column is empty if(aa.GetSize()<1) { aa.SetSize(10); aa=0; } aa[0]+= 1; aa.Update(FALSE, REDRAW_REFRESH); MessageBox(GetWindow(),strWksColname + " increment 1, click OK to increment again"); aa[0]+=1; } }
EX3
// Demonstrate the usage of REDRAW_REALTIME_SCOPE and REDRAW_REALTIME_WKS // Assumes: // 1) Worksheet's first column is filled with row numbers // 2) Worksheet's A(X) vs. B(Y) is plotted as line plot // 3) The line plot is set to animate mode so that the effect is fully visualized // (set plot active and then execute LabTalk script command "set %C -an 1") /// Realtime update Origin from OC void Dataset_Update_ex3() { int imax = 20; Worksheet wks=Project.ActiveLayer(); if (wks) { Dataset aa(wks, 0); int nMaxRows = 10; if ( aa.GetSize() < nMaxRows ) { aa.SetSize(nMaxRows); aa=0; } int ic = 0;//current cell for ( int ii = 0; ii < imax; ii++ ) { for(int jj = 0; jj < nMaxRows; jj++) aa[jj] = 1; aa[ic++] = 2; if(ic >= nMaxRows) ic = 0; //aa.Update(FALSE, REDRAW_REALTIME_WKS); aa.Update(FALSE, REDRAW_REALTIME_SCOPE); LT_execute("sec -w 0.1;");// hard wait } } }
Update an Origin C Dataset object from an Origin data set or update an Origin data set from an Origin C Dataset object. The number of elements and memory allocated are primarily affected by this method.
vectorbase::Append, Matrix::Update
origin.h