Worksheet::ExtractOneGroup
ExtractOneGroup
Description
Vector extraction from a column with grouping information
Syntax
BOOL ExtractOneGroup( vector & v, int nCol, const vector<ushort> & vRowMap, int r1Map, int r1, int r2, ushort nGroupIndex )
Parameters
- v
- [output] Reference to vector to receive data
- nCol
- [input] The column index
- vRowMap
- [input] The output map from the the method MakeGroupEntriesAndRowMap()
- r1Map
- [input] It must match r1 passed to MakeGroupEntriesAndRowMap().
- r1
- [input] Row bounds
- r2
- [input] Row bounds. If r2 = -1 : use the whole column
- r1 must be >= r1Map, and r2 must be less than or equal to r2 passed to MakeGroupEntriesAndRowMap().
- nGroupIndex
- [input] The values inside vRowMap to be used when creating v.
Return
TRUE on success; FALSE on failure
Examples
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!");
}
Remark
See Also
Worksheet::MakeGroupEntriesAndRowMap
header to Include
origin.h
|