Hi, Eli.
To set a column as X data, you may just use SetType(). For example, wks.Columns(str).SetType(OKDATAOBJ_DESIGNATION_X).
Mike's code can be modified as follows:
void test()
{
Worksheet wksSrc = Project.ActiveLayer();
if( !wksSrc )
return;
string wksName = wksSrc.GetPage().GetName();
Worksheet wksSort;
wksSort.Create();
for(int i=0;i<wksSrc.GetNumCols(); i+=2)
{
wksSort.SetCell(i/2,0,wksSrc.Columns(i).GetName()); // X col names to 1st col
wksSort.SetCell(i/2,1,wksSrc.Columns(i+1).GetName()); // Y col names to 2nd col
}
wksSort.Sort(1); // sort ascending w.r.t second column (Y col names)
Dataset dd1,dd2;
string str;
Worksheet wks;
wks.Create();
wks.DeleteCol(0);
wks.DeleteCol(0); // start with a blank wks
for(i=0;i<wksSrc.GetNumCols()/2;i++)
{
wksSort.GetCell(i,0,str);
wks.AddCol(str);
wks.Columns(str).SetType(OKDATAOBJ_DESIGNATION_X);//Set the column to X
dd1.Attach(wksSrc.Columns(str));
dd2.Attach(wks.Columns(str));
dd2 = dd1; // copy X column
wksSort.GetCell(i,1,str);
wks.AddCol(str);
dd1.Attach(wksSrc.Columns(str));
dd2.Attach(wks.Columns(str));
dd2 = dd1; // copy Y column
}
wksSort.Destroy(); // close sort wks
wksSrc.Destroy(); // close source wks
wks.GetPage().Rename(wksName); // rename sorted wks
}
Deanna
OriginLab GZ Office
Edited by - Deanna on 04/17/2006 9:45:36 PM