CExtReportGridWnd report grid control is based on the
CExtTreeGridWnd tree grid control. You should get access to the report tree data provider object first:
CExtReportGridWnd & wndRG = . . .
CExtReportGridDataProvider & _ReportDP = wndRG.GetReportData();
The report data provider manages report/tree grid rows, but internally it uses another instance of the
plain memory data provider containing all the rows in the expanded state and all the columns in the active state. You can get this memory cache of grid cells:
CExtGridDataProvider & _DP = _ReportDP._Tree_GetCacheDP();
This data provider is the real two dimensional storage of grid cells. It contains all the rows and columns of then report grid. First rows from the top are outer header rows at the top side of the report grid, next rows are the outer header rows at the bottom, next are data rows in the unfiltered and expanded state. The first header row at the top contains the
grid cells. First column from the left is the tree structure column containing the
grid cells, next rows are header columns at the left side of the report grid, next are headers at the right side, next are the inactive report columns and, finally, next are the active report columns. We just hacked the report grid for you. The
method can tell you the entire count of rows in the memory data provider. You should subtract the count of header rows from the top and bottom and you will get the entire un-filtered row count including report group rows.