Vector extraction from a column with grouping information
BOOL ExtractOneGroup( vector & v, int nCol, const vector<ushort> & vRowMap, int r1Map, int r1, int r2, ushort nGroupIndex )
TRUE on success; FALSE on failure
EX1
// fill worksheet with // 1 1 // 1 2 // 1 3 // 2 4 // 2 5 // 2 6 // 3 7 // 2 8 // 1 9 // 1 10 // make sure worksheet is active then type // Worksheet_ExtractOneGroup_Ex1 // make worksheet active again, then type // Worksheet_ExtractOneGroup_Ex1 2; // can see both 1 and 2 extracted void Worksheet_ExtractOneGroup_Ex1(int nGroupVal = 1, int nGroupCol = 0, int nDataCol = 1) { Worksheet wks = Project.ActiveLayer(); if(!wks) return; Column cc(wks, nGroupCol); vector<ushort> vRowMap(cc);// assume group col already contain group numeric values like 1,2,3 etc vector vResult; if(wks.ExtractOneGroup(vResult, nDataCol, vRowMap, 0, 0, vRowMap.GetSize()-1, nGroupVal)) { // save result into new wks to view Worksheet wResult("Test"); if(wResult == NULL) { wResult.Create(); wResult.GetPage().Rename("Test"); wResult.SetSize(-1, 0); } int nCol = wResult.AddCol(); DataRange dr; dr.Add("X", wResult, 0, nCol, -1, nCol); dr.SetData(vResult); } else printf("Fail to extract grouped vectors from column in worksheet!"); }
Worksheet::MakeGroupEntriesAndRowMap
origin.h