| 2.2.4.9.21 DataRange::GetRangeGetRange
 DescriptionGet one single range's data.
 SyntaxBOOL GetRange( int nIndex, int & r1, int & c1, int & r2, int & c2, Datasheet & ds, string * pstrName = NULL )const 
 BOOL GetRange( Datasheet & ds, int & c1, int & c2, int nIndex = 0 ) 
 int GetRange( LPCTSTR lpcszName, int & r1, int & c1, int & r2, int & c2, Datasheet & ds )const Parameters nIndex[input]the index of the data. DataRange can reference multiple sets of data. Index starts from 0. r1[output]minimum begining row index (0 based) c1[output]begining column index (0 based) r2[output]maximum ending row index (0 based) c2[output]ending column index (0 based) ds[output]the datasheet that contained the datarange pstrName[output]the name of the subrange
 
  ds[output]the datasheet that contained the datarange c1[output]begining column index (0 based) c2[output]ending column index (0 based) nIndex
 
  lpcszName[input]the name of the DataRange r1[output]Output minimum begining row index (0 based) c1[output]Output the begining column index (0 based offset) r2[output]Output maximum ending row index (0 based) c2[output]Output the ending column index (0 based offset) ds[output]the datasheet that contained the datarange
 ReturnReturns TRUE for success or FALSE for failure
 Returns TRUE for success or FALSE for failure
 Returns the index of the subrange if successful else returns -1
 ExamplesEX1
 //This example will output the min and max value of the X,Y column.
void DataRange_GetRange_Ex1(int nCol1 = 0, int nCol2 = 1)
{
    Worksheet wks;
    wks.Create();
    if( wks )
    {
        while(wks.Columns(0))
            wks.DeleteCol(0);
        wks.AddCol("A");
        wks.AddCol("B");
        string strX,strY;
        strX="A";
        strY="B";
        double rr;
        for(int j=0;j<2;j++)
        {
            for (int i=0;i<10;i++)
            {
                   rr=rnd();
                   wks.SetCell(i,j,rr*100);
            }
        }
            
        DataRange dr;
        dr.Add("X", wks, 0, nCol1, -1, nCol1);
        dr.Add("Y", wks, 0, nCol2, -1, nCol2);
        vector vData;
        DWORD dwPlotID;
        int ii, r1, c1, r2, c2;
        Worksheet MyWks;
        string strRange;
        double dmin, dmax;
        ii = dr.GetData(DRR_NO_FACTORS, 0, &dwPlotID, NULL, &vData);
        dr.GetRange(0, r1, c1, r2, c2, MyWks, &strRange);
        vData.GetMinMax(dmin, dmax);
        printf("\nRange '%s': [%s]%s r1 = %d c1 = %d r2 = %d c2 = %d\nmin = %g max = %g\n",
                strRange, MyWks.GetPage().GetName(), MyWks.GetName(), r1, c1, r2, c2, dmin, dmax);
        ii = dr.GetData(DRR_NO_FACTORS| DRR_GET_DEPENDENT, 0, &dwPlotID, NULL, &vData);
        dr.GetRange(1, r1, c1, r2, c2, MyWks, &strRange);
        vData.GetMinMax(dmin, dmax);
        printf("\nRange '%s': [%s]%s r1 = %d c1 = %d r2 = %d c2 = %d\nmin = %g max = %g\n",
                strRange, MyWks.GetPage().GetName(), MyWks.GetName(), r1, c1, r2, c2, dmin, dmax);
    }
}EX2
 //This example will output the min and max value of the X,Y column.
void DataRange_GetRange_Ex2(int nCol1 = 0, int nCol2 = 1)
{
    Worksheet wks ;
    wks.Create();
    if( wks )
    {
        while(wks.Columns(0))
            wks.DeleteCol(0);
        wks.AddCol("A");
        wks.AddCol("B");
        double rr;
        for(int j=0;j<2;j++)
        {
            for (int i=0;i<10;i++)
            {
                   rr=rnd();
                   wks.SetCell(i,j,rr*100);
            }
        }
        DataRange dr;
        dr.Add("X", wks, 0, nCol1, -1, nCol1);
        dr.Add("Y", wks, 0, nCol2, -1, nCol2);
        vector vData;
        DWORD dwPlotID;
        int ii, r1, c1, r2, c2;
        Worksheet MyWks;
        string strRange;
        double dmin, dmax;
        ii = dr.GetData(DRR_NO_FACTORS, 0, &dwPlotID, NULL, &vData);
        strRange = "X";
        dr.GetRange(strRange, r1, c1, r2, c2, MyWks);
        vData.GetMinMax(dmin, dmax);
        printf("\nRange '%s': [%s]%s r1 = %d c1 = %d r2 = %d c2 = %d\nmin = %g max = %g\n",
                strRange, MyWks.GetPage().GetName(), MyWks.GetName(), r1, c1, r2, c2, dmin, dmax);
        ii = dr.GetData(DRR_NO_FACTORS| DRR_GET_DEPENDENT, 0, &dwPlotID, NULL, &vData);
        strRange = "Y";
        dr.GetRange(strRange, r1, c1, r2, c2, MyWks);
        vData.GetMinMax(dmin, dmax);
        printf("\nRange '%s': [%s]%s r1 = %d c1 = %d r2 = %d c2 = %d\nmin = %g max = %g\n",
                strRange, MyWks.GetPage().GetName(), MyWks.GetName(), r1, c1, r2, c2, dmin, dmax);
    }
}EX3
 //Output the datarange's beginning column index and ending column index.
DataRange_GetRange_Ex2()
{
	//Create a worsheet and add two columns.
	Worksheet wks;
	wks.Create();
	wks.AddCol();
	wks.AddCol();
	
	//Create a datarange with two subranges.
	DataRange dr;
	int nCol1 = 0;
	int nCol2 = 1;;
	dr.Add("Range1", wks, 0, nCol1, -1, nCol2);
	nCol1 = 2;
	nCol2 = 3;
	dr.Add("Range2", wks, 0, nCol1, -1, nCol2);
	
	int c1, c2;
	dr.GetRange(wks, c1, c2, 0);
	//output the first subrange's beginning column and ending column index.
	printf("Range1: [%s]%s c1 = %d c2 = %d\n", wks.GetPage().GetName(), wks.GetName(), c1, c2);
	
	dr.GetRange(wks, c1, c2, 1);
	//output the second subrange's beginning column and ending column index.
	printf("Range2: [%s]%s c1 = %d c2 = %d\n", wks.GetPage().GetName(), wks.GetName(), c1, c2);
	
}RemarkSee AlsoDataRange::GetSubRange
 Header to Includeorigin.h
 |